"No ka paʻi wale ʻana nā hopena empirical, ʻo ke kumu maoli o ka hana he aesthetic." Nīnauele nui me Michael Scott

"No ka paʻi wale ʻana nā hopena empirical, ʻo ke kumu maoli o ka hana he aesthetic." Nīnauele nui me Michael Scott Michael Scott - no 34 makahiki ma ke ʻano he kumu ʻepekema ʻepekema ma ke Kulanui o Rochester, a ma kona home University of Wisconsin–Madison he dean ʻo ia no ʻelima mau makahiki. ʻImi ʻo ia a aʻo i nā haumāna e pili ana i ka papahana like a puʻunaue a me ka hoʻolālā ʻōlelo.

ʻIke ka honua iā Michael mai ka puke haʻawina "Ka Papahana Language Pragmatics", pehea ka hana "Nā Algorithms no ka hoʻonohonoho ʻana i ka hoʻonohonoho ʻana i nā multiprocessors hoʻomanaʻo like" Ua loaʻa iā ia ka makana Dijkstra ma ke ʻano he mea kaulana loa ma ke ʻano o ka hoʻopili helu helu. Hiki iā ʻoe ke ʻike iā ia ʻo ia ka mea kākau o kēlā algorithm Michael-Scott.

Me Doug Lee, ua hoʻomohala ʻo ia i nā algorithms non-blocking a me nā queues synchronous e mana ana i nā hale waihona puke Java. Hoʻokō "nā hale ʻikepili pālua" ma JavaSE 6 hoʻomaikaʻi i ka hana ma 10 mau manawa ThreadPoolExecutor.

Nā mea:

  • ʻO ka hana mua, University of Rochester. Project Charlotte, ʻōlelo Lynx;
  • IEEE Scalable Coherent Interface, laka MCS;
  • Ola i loko o kahi honua e loli mau ana;
  • Ke lilo nei nā haumāna i mea pupule? Nā ʻano o ke ao holoʻokoʻa, internationalization;
  • Hana maikaʻi me nā haumāna;
  • Pehea e hoʻomau ai i ka hoʻomākaukau ʻana i nā papa a me nā puke hou;
  • Nā loulou ma waena o ka ʻoihana a me ke kula;
  • Hoʻokō pono i nā manaʻo. MCS, MS, CLH, JSR 166, hana pū me Doug Lee a me nā mea hou aku;
  • Ka hoʻomanaʻo hana;
  • Nā hale hana hou. Ua kokoke ka lanakila o ka hoʻomanaʻo transactional;
  • Hoʻomanaʻo non-volatile, Optane DIMM, nā mea wikiwiki loa;
  • ʻO ke au nui e hiki mai ana. Nā hale ʻikepili pālua. Hydra.

E alakaʻi ʻia ka nīnauele e:

ʻO Vitaly Aksenov - i kēia manawa he postdoc ma IST Austria a he lālā o ke Keʻena ʻenehana kamepiula ma ke Kulanui ITMO. Hana i ka noiʻi ma ke kahua o ke kumumanaʻo a me ka hoʻomaʻamaʻa ʻana o nā hoʻolālā ʻikepili hoʻokūkū. Ma mua o ka hana ʻana ma IST, ua loaʻa iā ia kāna PhD mai ke Kulanui ʻo Paris Diderot a me ke Kulanui ʻo ITMO ma lalo o ka mākaʻikaʻi a Professor Peter Kuznetsov.

Alexey Fedorov - Mea hana ma JUG Ru Group, kahi hui Lūkini e hoʻonohonoho i nā hālāwai kūkā no nā mea hoʻomohala. Ua komo ʻo Alexey i ka hoʻomākaukau ʻana ma mua o 50 mau hālāwai kūkā, a ʻo kāna hoʻomaka e komo i nā mea āpau mai ke kūlana o kahi ʻenekini hoʻomohala ma Oracle (JCK, Java Platform Group) i ke kūlana o kahi mea hoʻomohala ma Odnoklassniki.

ʻO Vladimir Sitnikov - ʻEnekinia ma Netcracker. He ʻumi makahiki o ka hana ma ka hana a me ka scalability o NetCracker OS, lako polokalamu i hoʻohana ʻia e nā mea lawelawe kelepona e hoʻomaʻamaʻa i nā kaʻina hana hoʻokele pūnaewele a me nā lako hana. Makemake i nā pilikia hana Java a me Oracle Database. ʻO ka mea kākau o ka hoʻomaikaʻi ʻana o ka hana ʻoi aku ma mua o ka hoʻokele PostgreSQL JDBC.

ʻO ka hana mua, University of Rochester. Pāhana Charlotte, ʻōlelo Lynx.

Alexey: I ka hoʻomaka ʻana, makemake wau e haʻi aku iā ʻoe ma Rusia mākou makemake nui i ka Computer Science, Data Science a me nā algorithms. He mea haumia loa. Ua heluhelu mākou i nā mea a pau puke Cormen, Leiserson a me Rivest. No laila, ʻo ka ʻaha kūkā e hiki mai ana, ke kula a me kēia nīnauele ponoʻī pono e kaulana loa. Ua loaʻa iā mākou nā nīnau he nui no kēia nīnauele mai nā haumāna, nā mea papahana, a me nā lālā o ke kaiāulu, no laila mahalo nui mākou i kēia manawa. Loaʻa i ka ʻepekema kamepiula ke aloha like i ka US?

ʻO Michael: He ʻokoʻa loa kā mākou kahua, he nui nā ʻaoʻao, a pili i ke kaiāulu ma nā ʻano like ʻole he mea paʻakikī iaʻu ke hāʻawi aku iā ʻoe i kahi pane maopopo. Akā ʻo ka mea ʻoiaʻiʻo ua lawe mai ia i nā loli nui i ka ʻoihana, ʻoihana, ʻoihana a me ke kaiāulu ma ka laulā i nā makahiki he 30 i hala.

Vitali: E hoʻomaka kākou me kahi mea mamao. I loko o nā kula he nui, aia kekahi mea e like me ka hana kūikawā ma kekahi wahi. No ke Kulanui ʻo Carnegie Mellon, ʻo ia ka computing parallel, no ka MIT he cryptography, robots a me multithreading. Aia kekahi ʻano loea ma ke Kulanui o Rochester?

ʻO Michael: No kaʻoiaʻiʻo, e ʻōlelo wau he loea ʻo CMU a me MIT i nā wahi āpau. Ua nānā nui kā mākou ʻoihana i ka naʻauao hana. ʻO ka hapalua o ka poʻe e hana nei no mākou e hana i ka AI a i ʻole ka pilina kanaka-kamepiula - ʻoi aku kēia kaʻana ma mua o nā keʻena ʻē aʻe, a pēlā nō. Akā, i koʻu wā i ke kulanui, ʻaʻohe oʻu mau papa ma AI, ʻaʻole au i hana ma kēia kahua. No laila, ʻoihana koʻu ʻoihana i kahi pilikia ʻaʻohe aʻu mea e pili ai. ʻO ka hōʻoluʻolu, ʻo ka lua o ka pilikia koʻikoʻi no kā mākou keʻena ʻo ia ka papahana like a multi-threaded, ʻo ia hoʻi, koʻu ʻoihana.

Vitali: Ua hoʻomaka ʻoe e hana i ka ʻepekema kamepiula i ka wā e puka mai ana ke kahua o ka papahana multi-threaded. Hōʻike ka papa inoa o kāu mau paʻi ʻana i kāu mau hana mua e pili ana i kahi ākea ākea o nā pilikia: hoʻokele hoʻomanaʻo i nā ʻōnaehana multi-threaded, nā ʻōnaehana waihona puʻupuʻu, nā ʻōnaehana hana. No ke aha ia versatility? Ua ho'āʻo anei ʻoe e ʻimi i kou wahi ma ke kaiāulu noiʻi?

ʻO Michael: Ma ke ano he haumana, ua komo au Pāhana Charlotte ma ke Kulanui o Wisconsin, kahi i hoʻomohala ʻia ai kekahi o nā ʻōnaehana hana mua. Ma laila au i hana pū ai me Rafael Finkel (Raphael Finkel) a me Marvin Solomon (Marvin Solomona). Ua hoʻolaʻa ʻia kaʻu ʻatikala i ka hoʻomohala ʻana i kahi ʻōlelo no nā polokalamu ʻōnaehana no nā ʻōnaehana puʻupuʻu - i kēia manawa ua poina nā mea a pau, a mahalo i ke Akua. Ua hana au i ka ʻōlelo hoʻolālā Lynx, i manaʻo ʻia e maʻalahi ka hana ʻana i nā kikowaena no kahi ʻōnaehana hoʻohele like ʻole. No ka mea i kēlā manawa ua komo nui wau i nā ʻōnaehana hana, manaʻo wau e pili nui kaʻu ʻoihana me lākou. Akā, he kulanui liʻiliʻi loa ʻo Rochester, a ma muli o kēia, ua launa pū nā hui like ʻole ma laila. ʻAʻole he ʻumi mau ʻōnaehana hana ʻē aʻe i laila e kamaʻilio me aʻu, no laila ʻo kaʻu mau pilina me nā poʻe i hana ma nā wahi ʻokoʻa loa. Ua hauʻoli loa wau, ʻo ka lilo ʻana i mea holoʻokoʻa he pōmaikaʻi nui iaʻu. Inā mākou e kamaʻilio kikoʻī e pili ana i nā hoʻolālā ʻikepili multi-threaded a me nā algorithms synchronization, a laila hoʻomaka wau e hana ma luna o lākou me ka pōʻino.

IEEE Scalable Coherent Interface, laka MCS.

Vitali: Hiki iā ʻoe ke haʻi hou mai iaʻu e pili ana i kēia?

ʻO Michael: He moʻolelo ʻakaʻaka kēia ʻaʻole au e luhi i ka haʻi ʻana aku i nā mea a pau. Ua hana ʻia ma kahi hālāwai kūkā ASPLOS ma Bosetona - aia kēia ma ka hopena o nā makahiki 80 a i ʻole 90 mua. John Mellor-Crummey (John Mellor-Crummey), he puka o ko makou kumu. Ua ʻike au iā ia, akā ʻaʻole mākou i hana i ka noiʻi hui ma mua. Mary Vernon (Mary Vernon) mai Wisconsin i kamaʻilio e pili ana i kahi ʻōnaehana multiprocessor a lākou e hoʻomohala nei ma Wisconsin: ʻO Wisconsin Multicube. Ua loaʻa i kēia Multicube kahi ʻōnaehana hoʻonohonoho ma ka pae ʻenehana i kapa ʻia ʻo Q ma Sync Bit, a ma hope ua kapa hou ʻia ʻo ia ʻo Q ma Lock Bit no ka mea ua like ia me ka cheese Colby, he pun. Inā makemake ʻoe i nā mīkini multithreading, ʻike paha ʻoe ua lilo ʻo Colby i ʻenekini synchronization no ka maʻamau IEEE Scalable Coherent Interface. He mīkini laka kēia i hana i nā kuhikuhi mai kahi huna a i kekahi ma ka pae ʻenehana i ʻike kēlā me kēia mea paʻa i ka mea nona ka huli. I ka lohe ʻana o John me aʻu e pili ana i kēia, nānā mākou i kekahi i kekahi a ʻōlelo mākou: no ke aha e hana ai i kēia ma ka pae ʻenehana? ʻAʻole hiki ke loaʻa ka mea like me ka hoʻohana ʻana i ka hoʻohālikelike-a-swap? Lawe mākou i kekahi o nā puke e waiho ana i loko o ka lumi papa a kākau ma luna Kāohi MCS, oiai o Mary i hoomau aku i kana hoike. Ma hope mai, ua hoʻokō mākou, hoʻokolohua, ua kūleʻa ka manaʻo, a paʻi mākou i ka ʻatikala. I kēlā manawa, noʻu, he mea leʻaleʻa wale kēia kumuhana, a ma hope iho ua hoʻolālā wau e hoʻi i nā ʻōnaehana hana. Akā, ua puka mai kekahi pilikia ma nā laina like, a ua lilo ka hoʻonohonoho ʻana, multithreading, a me nā ʻikepili i koʻu mea kūikawā. E like me kāu e ʻike ai, ua loaʻa kēia mau mea ma ka pōʻino.

Vitali: Ua kamaʻāina au i ka MCS blocking no ka manawa lōʻihi, akā a hiki i kēia manawa ʻaʻole au i ʻike ʻo kāu hana ia, a ʻaʻole maopopo iaʻu he acronym ia no kou mau inoa hope.

Pehea e ola ai i kahi honua e loli mau nei?

Alexey: He nīnau kaʻu e pili ana i kekahi kumuhana pili. 30 a i ʻole 40 mau makahiki i hala aku nei ua ʻoi aku ke kūʻokoʻa i nā ʻano loea like ʻole. Inā makemake ʻoe e hoʻomaka i kahi ʻoihana ma ka multithreading a i ʻole nā ​​​​pūnaewele puʻunaue, ʻoluʻolu ʻoe, inā makemake ʻoe e komo i nā ʻōnaehana hana, ʻaʻohe pilikia. Ma kēlā me kēia wahi he nui nā nīnau ākea a he kakaikahi ka poʻe akamai. Ua puka mai nā ʻano loea liʻiliʻi: ʻaʻohe poʻe loea i nā ʻōnaehana hana ma ka laulā, aia nā loea ma nā ʻōnaehana pākahi. Ua like ia me nā ʻōnaehana multithreading a puʻunaue. Akā ʻo ka pilikia ʻaʻole pau ko mākou ola; hiki i nā mea a pau ke hāʻawi i nā makahiki he mau makahiki i ka noiʻi. Pehea e ola ai i kēia ao hou?

ʻO Michael: ʻAʻole mākou kūikawā ma kēia ʻano, ua hana ʻia ka mea like ma nā wahi ʻē aʻe. Laki wau i koʻu hoʻomaka ʻana e hana i ka ʻepekema kamepiula i ka wā o ke kula i kona mau makahiki ʻōpio. Ua hoʻokumu ʻia kekahi mau kumu, akā ʻaʻole i oʻo nā mea a pau. ʻAʻole hiki pinepine kēia manawa. Ua lōʻihi loa ka ʻenekinia uila, ʻoi aku ka lōʻihi o ka physics, ʻaneʻane ka makemakika mai ka hoʻomaka ʻana o ka manawa. Akā ʻaʻole kēia manaʻo ʻaʻohe mea e hana hou i nā mea hoihoi i ka makemakika. Nui nā pilikia ākea, akā i ka manawa like, pono e aʻo hou ʻia. Pono ʻoe e hoʻomaopopo i kēia manawa he nui nā ʻoihana ʻē aʻe ma mua o ka wā ma mua, akā ʻo ke ʻano wale nō ke ʻike nei mākou iā mākou iho i ke kūlana like me ka hapa nui o nā hana kanaka.

Alexey: Makemake au i ka ʻaoʻao kūpono o ka pilikia ma aneʻi. He ʻike makemakika koʻu, a i kaʻu aʻo ʻana, hele pinepine au i nā ʻaha kūkā a hana i nā kumuhana ʻepekema like ʻole. Ua ʻike au ʻaʻohe mea o ka anaina i hoʻomaopopo i kaʻu mau hōʻike, a ma ke ʻano like, ʻo nā hōʻike a nā poʻe ʻē aʻe i maopopo iā lākou wale nō. ʻAʻole kēia ka hihia ma nā kumuhana kiʻekiʻe, akā i ka wā e hoʻomaka ai ʻoe e ʻimi i kekahi mea, ʻaʻole hiki i ka poʻe hoʻolohe ke hoʻomau iā ʻoe. Pehea ʻoe e hana ai me kēia?

ʻO Michael: ʻAʻole lanakila mau. Ua hoʻomākaukau wau i kahi hōʻike i komo hohonu ai au i nā kikoʻī loea. I ka holo ʻana o ka haʻiʻōlelo, ua ʻike ʻia ʻaʻole maopopo ka hapa nui o ka poʻe iaʻu, no laila pono wau e hoʻololi i ke kūlana ma ka lele. ʻAʻole hiki ke hoʻololi ʻia nā paheʻe, no laila ʻaʻole maikaʻi loa ia - no laila, ma ka ʻōlelo maʻamau, hoʻāʻo wau ʻaʻole e hoʻohana i nā paheʻe. Ma ke ʻano holoʻokoʻa, ʻo kaʻu ʻōlelo aʻoaʻo e noʻonoʻo i kāu poʻe hālāwai. Pono ʻoe e ʻike i ka mea āu e kamaʻilio nei, pehea ko lākou pae o ka ʻike, a me nā mea e pono ai lākou e lohe e mahalo i kāu hana.

Vitali: Hiki iā ʻoe ke hāʻawi mai iā mākou i ke ʻano o kēia haʻiʻōlelo?

ʻO Michael: Ma kaʻoiaʻiʻo, makemake wau ʻaʻole e hoʻonui i kēia kumuhana i mea e waiho ʻole ai i ka poʻe i nīnau ʻia. ʻO ka manaʻo, ʻo ke komo pinepine ʻana i ka hohonu o ka pilikia a mākou e hana nei, no laila ua paʻakikī iā mākou ke wehewehe ma ka hoʻomaka ʻana o ke kamaʻilio ʻana i ke kumu o ka hoihoi a koʻikoʻi o ka pilikia a me ka pili ʻana i nā pilikia ua ike ke anaina. Wahi a kaʻu mau ʻike, ʻoi aku ka paʻakikī o nā haumāna e aʻo i kēia mākaukau. A ʻo kēia hoʻi ka nāwaliwali o kaʻu hōʻike hou. Pono ka hōʻike i hoʻonohonoho pono ʻia, mai ka hoʻomaka ʻana, e ʻike i ka pilina me ka lehulehu, e wehewehe iā lākou i ke ʻano o ka pilikia a pehea e pili ai i nā kumuhana i ʻike mua ʻia. Pehea ka ʻenehana o kēia hoʻolauna ʻana ma muli o ka lehulehu. Inā he motley loa ia, a laila hiki i ka hōʻike ke ʻano he nui. Pono e ʻike ʻia ka hoʻolauna ʻana i nā mea a pau, a ma ka hopena ʻaʻole hiki i ka ʻāpana ke hoʻomau iā ʻoe, akā hiki i nā poʻe i kamaʻāina i kāu kahua ke ʻike.

Ke lilo nei nā haumāna i mea pupule? Nā ʻano o ke ao holoʻokoʻa, internationalization.

Alexey: Ke nānā nei ʻoe i nā haumāna no kekahi mau makahiki. Ke piʻi nei nā haumāna i ka dumber a i ʻole ka naʻauao mai nā makahiki he ʻumi a i ʻole makahiki a i kēlā makahiki? Ma Rūsia, hoʻopiʻi mau ka poʻe loea i ka piʻi ʻana o nā haumāna i kēlā me kēia makahiki, a ʻaʻole maopopo i ka mea e hana ai.

ʻO Michael: Hiki iā ʻoe ke lohe i ka nui o nā negativity mai mākou poʻe kahiko. Ma lalo o ka ʻike, loaʻa iā mākou ka manaʻo e manaʻo i nā haumāna e komo i nā makahiki he 30 o ka ʻike i loaʻa iā mākou. Inā ʻoi aku ka hohonu o koʻu ʻike ma mua o ka makahiki 1985, no ke aha i loaʻa ʻole ai i nā haumāna? No ka 20 paha o ko lakou mau makahiki, pehea kou manao? Manaʻo wau ʻo nā hoʻololi koʻikoʻi loa i nā makahiki i hala iho nei aia i loko o ka hoʻokumu demographic: i kēia manawa ua ʻoi aku ka nui o nā haumāna honua, koe naʻe nā Kanada. He nui ka poʻe Kanada ma mua no ka mea kokoke loa mākou i ka palena ʻo Kanada a hiki i nā haumāna mai laila ke hoʻi i ka home i nā hopena pule. Akā i kēia manawa he nui nā kula maikaʻi ma Kanada, a makemake ka poʻe Kanada e aʻo ma aneʻi; ʻoi aku ka liʻiliʻi o lākou e hele mai i USA.

Alexey: Manaʻo ʻoe he ʻano kūloko kēia a i ʻole ka honua?

ʻO Michael: ʻAʻole maopopo iaʻu ʻo wai, akā ua ʻōlelo kekahi he palahalaha ka honua. Ua lilo ko mākou kahua i ʻoi aku ka honua. Nā ʻaha kūkā ACM Ma mua, ua mālama ʻia lākou i loko o ʻAmelika Hui Pū ʻIa, a laila ua hoʻoholo lākou e hoʻopaʻa iā lākou i hoʻokahi manawa i kēlā me kēia 4 mau makahiki ma nā ʻāina ʻē aʻe, a i kēia manawa ua paʻa lākou ma ka honua holoʻokoʻa. ʻOi aku ka hopena o kēia mau hoʻololi IEEE, ʻoiai he hui honua ʻoi aku ia ma mua o ACM. A aia nā noho papahana mai Kina, India, Rūsia, Kelemānia a me nā ʻāina ʻē aʻe he nui, no ka mea, nui ka hana ma nā wahi āpau i kēia manawa.

Alexey: Akā, aia paha kekahi mau hiʻohiʻona maikaʻi ʻole o ia internationalization?

ʻO Michael: E ʻōlelo wau ʻaʻole pili nā mea maikaʻi ʻole i ka ʻenehana, akā i ka politika. I kekahi manawa, ʻo ka pilikia nui ʻo ia ka ʻaihue ʻana o ka US i nā poʻe akamai a akamai loa mai nā ʻāina a puni ka honua. A i kēia manawa ʻo ka pilikia nui ka pāʻani politika ma waena o nā ʻāina like ʻole e pili ana i nā visa a me ka neʻe ʻana.

Alexey: ʻO ia hoʻi, nā pale a me nā mea like. Ua maopopo.

Владимир: Noʻu iho, hoihoi au i ke ʻano āu e hana ai i ke aʻo ʻana i kekahi kumuhana hou i nā haumāna. Aia nā koho ʻokoʻa: hiki iā ʻoe ke hoʻāʻo mua e hoʻoikaika iā lākou e hoʻāʻo i kahi mea hou, a i ʻole hiki iā ʻoe ke uku nui i nā kikoʻī o ka hana ʻana o kekahi ʻenehana. He aha kāu makemake?

Hana maikaʻi me nā haumāna

Alexey: A pehea e ʻike ai i ke koena pōʻino ma waena o ka mua a me ka lua?

ʻO Michael: ʻO ka pilikia, ʻaʻole hele mau nā papa i ke ala aʻu e makemake ai. Hāʻawi maʻa wau i nā haumāna heluhelu i nā mea heluhelu i hiki iā lākou ke komo i loko, hoʻomaopopo i ka mea maikaʻi loa, a hoʻomohala i nā nīnau e pili ana i kēlā mau māhele hiki ʻole iā lākou ke hoʻomaopopo. A laila ma ka papa hiki iā ʻoe ke nānā aku i nā manawa paʻakikī loa a e ʻimi pū iā lākou. ʻO kēia kaʻu makemake nui e aʻo i nā papa. Akā, hāʻawi ʻia i ka ukana e kau nei ma luna o nā haumāna, ʻaʻole hiki iaʻu ke hōʻoia i ka hoʻomākaukau ʻana ma mua. ʻO ka hopena, pono ʻoe e hāʻawi i ka manawa hou i ka haʻi hou ʻana o ka mea ma mua o kou makemake. ʻOiai kēia, hoʻāʻo wau e hoʻomau i kā mākou mau papa. A i ʻole, ʻoi aku ka maʻalahi o ka hoʻopaʻa wikiō i hiki i nā haumāna ke nānā ma ka home. ʻO ke kumu o nā papa ola ka pilina kanaka. Ma ka papa, makemake au e hoʻohana i ka paʻakai a me ka papa ʻeleʻele ma mua o nā paheʻe, koe naʻe i kekahi mau hihia ke paʻakikī loa ke kiʻi e hōʻike ʻia ma ka papa. Mahalo i kēia, ʻaʻole pono wau e pili i kahi hoʻolālā haʻawina paʻa. No ka mea, ʻaʻohe kauoha koʻikoʻi aʻu e hāʻawi ai i nā mea, hiki iaʻu ke hoʻololi i ia i ka lehulehu ma muli o nā nīnau i loaʻa iaʻu. Ma keʻano laulā, hoʻāʻo wau e hana i nā papa e like me ka hiki ke hiki, i pili ka mea aʻu e hōʻike nei i nā nīnau i nīnau ʻia iaʻu.

Владимир: Maikaʻi. I koʻu ʻike, paʻakikī loa ka loaʻa ʻana o nā mea hoʻolohe e nīnau i nā nīnau. ʻOiai inā e nīnau mua ʻoe e nīnau i kekahi nīnau, ʻaʻohe mea naʻaupō a akamai paha, ʻaʻole lākou e hāmau. Pehea ʻoe e hana ai me kēia?

ʻO Michael: E ʻakaʻaka ʻoe, akā inā lōʻihi ʻoe e kū mālie, ʻaʻole liʻuliʻu e hōʻoluʻolu nā mea a pau a nīnau kekahi i kahi nīnau. A i ʻole hiki iā ʻoe ke nīnau i kahi nīnau loea maʻalahi me ka ʻae a i ʻole ka pane e hoʻoholo ai inā maopopo ka poʻe i ka mea i ʻōlelo ʻia. No ka laʻana, aia kahi heihei ʻikepili i ka laʻana ma luna? ʻO wai ka manaʻo pēlā? ʻO wai ka manaʻo ʻaʻole? ʻO wai ka mea maopopo ʻole i kekahi mea, no ka mea, ʻo ka hapa wale nō o nā lima i piʻi i luna?

Vitali: A inā i pane pololei ʻoe, ua kipaku ʻia ʻoe i waho o ka papa :)

ʻO Michael: Inā ʻaʻole ʻoe i pane i kekahi mea, pono ʻoe e nīnau i kahi nīnau. Pono wau e hoʻomaopopo i ka mea pono e ʻike ai ka haumāna no ka pane ʻana i ka nīnau aʻu i nīnau ai. Pono wau iā lākou e kōkua iaʻu e kōkua iā lākou. Ua mākaukau wau e hoʻololi iā lākou i maopopo iā lākou ka pilikia. Akā inā ʻaʻole wau ʻike i ka mea e hana nei i loko o ko lākou poʻo, ʻaʻole hiki iaʻu ke hana. A ināʻaʻoleʻoe e hāʻawi i nā haumāna i ka maluhia no ka manawa lōʻihi, i kekahi manawa i ka hopena e nīnau lākou i nā nīnau kūpono,ʻo ia hoʻi, nā nīnau e hiki ai iaʻu keʻike i ka mea e hana nei i nā poʻo o nā haumāna. 

Alexey: Ke alakaʻi nei kēia mau nīnau i kekahi manawa i nā manaʻo āu i noʻonoʻo ʻole ai ma mua? Ua manaʻo ʻole ʻia lākou? Ke ʻae nei lākou iā ʻoe e nānā i kahi pilikia i kahi mālamalama hou?

ʻO Michael: Aia nā nīnau e wehe i kahi ala hou o ka hōʻike ʻana i nā mea. He mau nīnau e alakaʻi i nā pilikia hoihoi aʻu i manaʻo ʻole e kamaʻilio. 'Ōlelo pinepine nā haumāna iaʻu he maʻamau koʻu e hele i waho o ke kumuhana ke hiki mai kēia. A, e like me kā lākou, ʻo kēia ka mea hoihoi loa o ka haʻawina. Kakaʻikahi, he mau manawa wale nō, nīnau nā haumāna i nā nīnau i hoʻoulu i kahi ala hou i ka noiʻi a ulu aʻe i ʻatikala. Hiki pinepine kēia i ke kamaʻilio ʻana me nā haumāna ma mua o ka wā o nā papa, akā i kekahi manawa i ka wā o nā papa. 

Alexey: No laila ua nīnau nā haumāna iā ʻoe i nā nīnau ma ke kumu i hiki ai ke hoʻopuka i kahi ʻatikala?

ʻO Michael: ʻAe. 

Vitali: Ehia mau kamaʻilio ʻana me nā haumāna? I ka manawa hea lākou e makemake ai e aʻo hou aʻe ma mua o ka mea i uhi ʻia i ka wā haʻawina?

ʻO Michael: Me kaʻu mau haumāna puka - i nā manawa a pau. Loaʻa iaʻu ma kahi o 5 a 6 paha o lākou, a kūkākūkā mākou i kekahi mea me lākou i nā manawa a pau. A ʻaʻole maʻamau ka kamaʻilio ʻana o kēia ʻano me nā haumāna hele wale i kaʻu mau papa. ʻOiai makemake wau e hana pinepine kēia. Manaʻo wau he makaʻu wale lākou e hele mai i ke kumu i nā hola keʻena. I kēlā me kēia kau kau, hoʻokō kekahi mau haumāna i ka lanakila ʻana i kēia pale noʻonoʻo, a he mea hoihoi loa ke kamaʻilio pū me lākou ma hope o ka papa. ʻOiaʻiʻo, inā he koa nā haumāna a pau, ʻaʻole lawa koʻu manawa. No laila paha e hana ana nā mea a pau e like me ka pono. 

Vitali: Pehea ʻoe e loaʻa ai ka manawa e kamaʻilio ai me nā haumāna? E like me kaʻu i ʻike ai, nui ka hana o nā kumu ma USA - ke noi ʻana i nā haʻawina a me nā mea like. 

ʻO Michael: ʻO kaʻoiaʻiʻo, ʻo ka hana ʻana me nā haumāna ke ʻano o kaʻu hana aʻu e hauʻoli nui ai. No laila, lawa koʻu manaʻo hoʻoikaika no kēia. ʻO ka hapa nui o kaʻu manawa ma koʻu keʻena ke hoʻohana ʻia i nā hālāwai o nā ʻano like ʻole. ʻO ke kauwela kēia manawa, no laila ua emi kaʻu papa manawa, akā i ka makahiki kula, i kēlā me kēia lā mai ka hola 9 a hiki i ka hola 17, paʻa iaʻu nā mea a pau. Nā hana noiʻi, nā loiloi, nā haʻawina - no kēia mau mea he ahiahi wale nō a me nā hopena pule. 

Pehea e hoʻomau ai i ka hoʻomākaukau ʻana i nā papa a me nā puke hou.

Alexey: Ke hoʻomau nei ʻoe i ke aʻo ʻana i nā papa āu e aʻo nei no ka manawa lōʻihi? ʻO kekahi mea e like me ka hoʻolauna ʻana i ka ʻepekema kamepiula.

ʻO Michael: ʻO ka mea mua i hiki i ka naʻau ma ʻaneʻi he papa ma nā ʻōlelo papahana. 

Alexey: Pehea ka ʻokoʻa o ka mana o kēia papa mai ka 10, 20, 30 makahiki aku nei? Malia paha ʻo ka mea ʻoi aku ka hoihoi ma ʻaneʻi ʻaʻole nā ​​kikoʻī o kahi papa kūikawā, akā nā ʻano maʻamau.

ʻO Michael: He mea maʻamau kaʻu papa ma nā ʻōlelo papahana i ka manawa aʻu i hana ai. Ua hoʻomaka wau e heluhelu iā ia i ka hopena o nā makahiki 1980, e pani ana i koʻu hoa hana, ʻo Doug Baldwin (ʻO Doug Baldwin). ʻO ke kumuhana o ka papa he pili pili wale nō i koʻu ʻoihana, akā i kona haʻalele ʻana, ʻo wau ka moho maikaʻi loa e aʻo i ka papa. ʻAʻole au makemake i kekahi o nā puke i loaʻa ia manawa, no laila ua pau wau i ke kākau ʻana i ka puke no kēia papa. (Meka a ka mea hoʻoponopono: ke kamaʻilio nei mākou no ka puke "Ka Papahana Language Pragmatics") Ua hoʻohana ʻia ia ma mua o 200 mau kula a puni ka honua. ʻAʻole maʻamau kaʻu ala i ka hui ʻana i nā pilikia o ka hoʻolālā ʻōlelo a me ka hoʻokō ʻana, a nānā nui i ka pilina ma waena o kēia mau ʻano ma nā wahi āpau. ʻAʻole i hoʻololi ʻia ke ʻano kumu, e like me ka nui o nā manaʻo kumu: abstractions, namespaces, modularity, type. Akā ʻo ka hoʻonohonoho o nā ʻōlelo i hōʻike ʻia ai kēia mau manaʻo ua loli loa. I ka wā i hana mua ʻia ai ka papa, ua nui nā laʻana ma Pascal, akā i kēia lā, nui kaʻu mau haumāna i lohe ʻole i kēia ʻōlelo. Akā ʻike lākou iā Swift, Go, Rust, no laila pono wau e kamaʻilio e pili ana i nā ʻōlelo i hoʻohana ʻia i kēia lā. Eia kekahi, ʻike maikaʻi nā haumāna i nā ʻōlelo kākau moʻolelo, akā i koʻu hoʻomaka ʻana e aʻo i kēia papa, ʻo ia ka mea e pili ana i nā ʻōlelo i hōʻuluʻulu ʻia. I kēia manawa makemake mākou i nā mea he nui e pili ana iā Python, Ruby a me Perl, no ka mea, ʻo ia ka mea i kākau ʻia i kēia mau lā, a he nui nā mea hoihoi e hana nei ma kēia mau ʻōlelo, e komo pū ana ma ke kahua o ka hoʻolālā ʻōlelo. 

Vitali: A laila e pili ana kaʻu nīnau e pili ana i ka nīnau ma mua. Pehea e mālama ai i kēia wahi? Manaʻo wau ʻo ka hoʻonui ʻana i kahi papa e like me kēia e pono ai ka hana nui - pono ʻoe e hoʻomaopopo i nā ʻōlelo hou, hoʻomaopopo i nā manaʻo nui. Pehea ʻoe e hana ai i kēia?

ʻO Michael: ʻAʻole hiki iaʻu ke haʻaheo ua lanakila mau wau i ka 100%. Akā ʻo ka hapa nui o ka manawa e hana wale wau i ka hana a nā mea ʻē aʻe - heluhelu i ka Pūnaewele. Inā makemake wau e hoʻomaopopo iā Rust, Google wau iā ia, e hele i ka ʻaoʻao Mozilla a heluhelu i ka manual i kau ʻia ma laila. He ʻāpana kēia o nā mea i hana ʻia i ka hoʻomohala ʻana i ka ʻoihana. Inā mākou e kamaʻilio e pili ana i ka ʻepekema, pono ʻoe e hahai i nā hōʻike ma nā ʻaha kūkā nui. 

Hoʻohui ma waena o ka ʻoihana a me ke kula

Vitali: E kamaʻilio kākou e pili ana i ka pilina ma waena o ka ʻoihana a me ka noiʻi ʻepekema. Ma kāu papa inoa o nā hana, ua loaʻa iaʻu kekahi mau ʻatikala e pili ana i ka coherence cache. Maopopo iaʻu ʻaʻole paʻa nā algorithms cache consistency i ka manawa i paʻi ʻia ai? ʻAʻole lawa ka laulā. Pehea ka maʻamau o kou mau manaʻo i ka hoʻomaʻamaʻa?

ʻO Michael: ʻAʻole maopopo iaʻu i nā puke āu e kamaʻilio nei. Ua hana au i kaʻu mau haumāna ʻo Bill Bolosky (William Bolosky) a me Leonidas Kontotanassis (Leonidas Kontothanassis) i ka hoʻomaka ʻana o nā makahiki 1990 ma ka hoʻokele hoʻomanaʻo ʻana i nā mīkini Neumann. I kēlā manawa, ʻaʻole maopopo ka ʻoihana pehea e hana pono ai i kahi ʻōnaehana multiprocessor: pono anei ke hana i ke kākoʻo no ke komo ʻana i ka hoʻomanaʻo mamao ma ka pae ʻenehana, pono anei e hoʻokaʻawale i ka hoʻomanaʻo, hiki ke hoʻouka i ka cache mai hoʻomanaʻo mamao, a i ʻole he mea pono e hoʻoneʻe i nā ʻaoʻao i loko o ka ʻōnaehana lumi hana? Ua hana ʻo Bill lāua ʻo Leonidas ma kēia wahi a ʻimi i nā ala me ka ʻole o ka hoʻouka ʻana i ka cache mamao. ʻAʻole pili pono kēia i ka coherence cache, akā ua hana mau ia ma ka hoʻokele hoʻomanaʻo NUMA, a ma hope mai ua ulu mai nā ala hou i ka hoʻokomo ʻana i nā ʻaoʻao i nā ʻōnaehana hana hou. Ma ke ʻano holoʻokoʻa, ua hana ʻo Bill lāua ʻo Leonidas i nā hana koʻikoʻi, ʻoiai ʻaʻole ka mea koʻikoʻi loa ma kēia wahi - he nui nā poʻe ʻē aʻe e hana ana i ka mea like i kēlā manawa. Ma hope mai, ua hana au ma kahi kumuhana pili i ka cache coherence i loko o ka pōʻaiapili o ka hoʻomanaʻo transactional hardware. ʻO ka hui aʻu i hana pū ai ma kēia pilikia ua loaʻa i kekahi mau patent. Aia kekahi mau manaʻo hoihoi ma hope o lākou, akā ʻaʻole wau e manaʻo e hoʻopau ʻia lākou i ka hoʻomaʻamaʻa. ʻO kekahi ala a i ʻole, paʻakikī iaʻu e hoʻokolokolo i kā lākou loaʻa kālā. 

Alexey: Ma keia mea, he ninau pilikino hou aku: pehea ka mea nui ia oe e hoohana ia ai kou mau manao? ʻAʻole paha ʻoe e noʻonoʻo i ia mea?

ʻO Michael: Makemake au e nīnau i kēia nīnau ma nā nīnauele me nā poʻe ʻē aʻe, nā mea noi a i ʻole nā ​​moho e makemake ana e komo i ke kumu. Manaʻo wau ʻaʻohe pane pololei i kēia nīnau. Hiki i ka poʻe hana i nā mea ʻoluʻolu ke loaʻa nā manaʻo ʻokoʻa loa. Ua hoihoi au i nā pilikia no ka mea, ʻike wau iā lākou i mea hoihoi, ʻaʻole no ko lākou mau pono kūpono. Akā ma ka ʻaoʻao ʻē aʻe, ke loaʻa nei kekahi mea hoihoi i ka noi, makemake nui wau. No laila ʻaʻole maʻalahi ma ʻaneʻi. Akā i ka hoʻomaka ʻana o kaʻu hana, ʻaʻole au i hoʻoikaika ʻia e ka manaʻo o ka hoʻohana hope ʻana i ka honua, akā ma ka lokahi o ka manaʻo a me ka makemake e ʻimi a ʻike i nā mea e hiki mai ana. Inā ma ka hopena e hāʻawi i nā hopena kūpono, maikaʻi. 

Alexey: Ma muli o kou hoʻonaʻauao ʻana a me kou ʻike, ʻoi aku ka maikaʻi o kou hiki ke hoʻoholo i ka waiwai o nā manaʻo o nā poʻe ʻē aʻe. Hiki iā ʻoe ke hoʻohālikelike iā lākou a hoʻoholo i ka mea ʻoi aku ka maikaʻi me ka mea. Manaʻo wau he manaʻo kou e pili ana i nā mea i hoʻohana ʻia i kēia manawa e nā mea hana nui e like me Intel. Mai kou manaʻo, pehea ka pololei o ka hana a kēia mau hui?

ʻO Michael: Hoʻomaʻamaʻa mau i ka mea hiki ke kūleʻa i ke kālepa, ʻo ia hoʻi, e hana i ka waiwai, a ʻoi aku ʻoe e nīnau i kekahi e pili ana i kēlā. Loaʻa kaʻu hana i nā paʻi puke, a ma ke kahua o nā ʻōnaehana hana e loiloi ʻia lākou ma muli o nā hōʻailona hana: ka wikiwiki, ka hoʻohana ʻana i ka ikehu, ka nui o nā code. Akā, ua manaʻo mau iaʻu ua hoʻohui ʻia kēia mau hopena empirical i nā ʻatikala wale nō i hiki ke paʻi ʻia, a ʻo nā kumu maoli o ka poʻe no ka hana he nani. Loiloi nā mea noiʻi i nā hāʻina mai kahi hiʻohiʻona noʻeau, mālama lākou i ka nani o nā manaʻo, a hoʻāʻo lākou e hana i kahi mea ʻoi aku ka maikaʻi ma mua o nā ala e kū nei. Hoʻokumu ʻia nā mea noiʻi e nā manaʻo pilikino, kumuhana, aesthetic. Akā ʻaʻole hiki iā ʻoe ke kākau e pili ana i kēia ma ka ʻatikala ponoʻī; ʻaʻole kēia mau mea i hoʻopaʻapaʻa no ke komite papahana. ʻO ka mea pōmaikaʻi, ʻoi aku ka wikiwiki a me ka maʻalahi o nā hoʻonā nani. Ua kūkākūkā au a me kaʻu mau hoa hana i kēia kumuhana e pili ana i 15 mau makahiki i hala aku nei a ua pau i ka kākau ʻana i kahi ʻatikala e pili ana. Manaʻo wau hiki iā ʻoe ke loaʻa i kēia manawa, ua kapa ʻia "Pehea e loiloi ai i ka noiʻi ʻōnaehana" a i ʻole kekahi mea like, ʻoi aku ka nui o nā mea kākau. ʻO kēia wale nō ka ʻatikala aʻu i kākau pū ai Sasha Fedorova, no laila inā ʻoe e ʻimi i kona inoa ma kaʻu papa inoa o nā puke, e ʻike ʻoe i kāu mea e pono ai. E kamaʻilio e pili ana i ka loiloi ʻana i ka noiʻi ʻōnaehana a me ke koʻikoʻi o ka nani. 

Alexey: No laila he ʻokoʻa ma waena o ke kūlana o ka mea i manaʻo ʻia he maikaʻi ma ka ʻepekema a me ka ʻoihana. Hoʻolālā ka ʻepekema i ka hana, ka hoʻohana mana, TDP, maʻalahi o ka hoʻokō, a me nā mea hou aku. Loaʻa iā ʻoe ka manawa e alakaʻi i kēia ʻano noiʻi ma ke kulanui? Loaʻa iā ʻoe kahi keʻena hana me nā mīkini like ʻole a me nā hale hana like ʻole e hiki ai iā ʻoe ke hana i nā hoʻokolohua?

ʻO Michael: ʻAe, he nui nā mīkini hoihoi o kā mākou keʻena. ʻO ka pinepine, he liʻiliʻi lākou, loaʻa iā mākou kahi puʻupuʻu liʻiliʻi a me nā ʻōnaehana multiprocessor me nā ʻano accelerators like ʻole. Eia kekahi, he kikowaena helu helu nui ka pā kula e lawelawe ana i nā ʻepekema mai nā ʻano aʻoaʻo like ʻole. Loaʻa iā ia ma kahi o hoʻokahi kaukani nodes a me iwakālua tausani cores, nā mea āpau ma Linux. Inā kū ka pono, hiki iā ʻoe ke kūʻai mau i kekahi AWS. No laila, ʻaʻohe o mākou kaohi nui me ka lako. 

Alexey: Pehea ke kanakolu makahiki aku nei? Ua pilikia paha ia manawa?

ʻO Michael: He mea okoa iki ia manawa. Ma ka waena o ka makahiki 1980, ua manaʻo ʻia he pōkole ka ʻepekema i nā kumuwaiwai helu. No ka hoʻoponopono ʻana i kēia kūlana, ka National Science Foundation (National Science Foundation) ua hoʻokumu i kahi papahana o ka noiʻi hoʻokolohua hui ʻia (Coordinated Experimental Research, CER). ʻO ka pahuhopu o ka papahana ʻo ia ka hoʻolako ʻana i nā ʻōnaehana kamepiula no nā keʻena ʻepekema kamepiula, a ua loaʻa iā ia ka loli nui. Me ke kālā āna i hāʻawi mai ai, ua kūʻai mākou ma ke Kulanui o Rochester i kahi BBN Butterfly 1984-knot ma 128, he makahiki kēia ma mua o koʻu hiki ʻana i laila. I kēlā manawa ʻo ia ka ʻōnaehana multiprocessor nui loa o ka honua me ka hoʻomanaʻo like. He 128 mau kaʻina hana, kēlā me kēia ma ka motherboard ʻokoʻa, a noho ʻia ʻehā mau pā. Loaʻa i kēlā me kēia kaʻina hana he megabyte o ka hoʻomanaʻo, 128 megabytes o RAM he mea hiki ʻole ke noʻonoʻo i kēlā manawa. Ma kēia mīkini ua hoʻokō mākou i ka laka MCS no ka manawa mua. 

Alexey: No laila, inā maopopo iaʻu iā ʻoe, a laila i kēia manawa ua hoʻopau ʻia ka pilikia me ka ʻenehana? 

ʻO Michael: Ma ka laulā, ʻae. Aia kekahi mau hōʻailona: ʻo ka mua, inā ʻoe e hana ana i ka hoʻolālā kamepiula ma ka pae chip, paʻakikī ke hana ma kahi ʻoihana kula no ka mea aia nā mea hana ʻoi aku ka maikaʻi no ka hana ʻana ma ka ʻoihana. Inā makemake ʻoe i kahi mea liʻiliʻi ma mua o 10 nanometer, pono ʻoe e kauoha iā ia mai kahi ʻē aʻe. Ma kēia wahi ʻoi aku ka maʻalahi o ka lilo ʻana i mea noiʻi ma Intel. Inā ʻoe e hana nei i nā kamaʻilio optical ma nā chips a i ʻole ka hoʻomanaʻo ʻana i ka mokuʻāina paʻa, e ʻike ʻoe i nā ʻenehana i ka ʻoihana ʻaʻole i ka ʻepekema, no laila pono ʻoe e hana i nā kuikahi. No ka laʻana, ʻo Stephen Swanson (ʻO Steven Swanson) hana ʻia he hui like no nā ʻenehana hoʻomanaʻo hou. ʻAʻole hana mau kēia palapala, akā i kekahi mau manawa hiki ke kūleʻa. Eia kekahi, ma ka ʻepekema ʻoi aku ka paʻakikī o ka hoʻomohala ʻana i nā ʻōnaehana kamepiula ikaika loa. ʻO nā papahana supercomputer nui loa i kēia manawa ma US, Iapana a me Kina e kālele ana i ka ʻoihana. 

Hoʻokō pono i nā manaʻo. MCS, MS, CLH, JSR 166, hana pū me Doug Lee a ʻoi aku.

Vitali: Ua kamaʻilio mua ʻoe pehea ʻoe i hoʻomaka ai e hana i nā algorithms synchronization. Loaʻa iā ʻoe ʻelua ʻatikala kaulana loa e pili ana Kāohi MCS и Ka lālani Michael-Scott (MS), i hoʻokō ʻia ma Java. (Meka a ka mea hoʻoponopono: hiki ke nānā ʻia nā puke āpau loulou). Ma laila i hoʻokō ʻia ai kēia pāpā me kekahi mau hoʻololi a ua ʻike ʻia CLH laka, a ua hoʻokō ʻia ka pila e like me ka mea i manaʻo ʻia. Akā, ua hala nā makahiki he nui ma waena o ka paʻi ʻana o kāu mau ʻatikala a me kā lākou noi kūpono. 

Alexey: Me he mea lā ma kahi o 10 mau makahiki i ka hihia o ka pila.

ʻO Michael: Ma mua o ka puka ʻana o kēia mau hiʻohiʻona i ka waihona maʻamau o Java?

Vitali: ʻAe. He aha kāu i hana ai i mea e hana ai kēia? A i ʻole lākou i hana ʻole?

ʻO Michael: Hiki iaʻu ke haʻi iā ʻoe pehea i komo ai ʻo MS Queue i Java 5. He mau makahiki ma mua o ka puka ʻana mai, ua hana pū wau me ka hui ʻo Mark Moyers ma Sun Microsystems ma kā lākou lab kokoke i Boston. Ua hoʻonohonoho ʻo ia i kahi papa hana no nā poʻe āna i ʻike ai e hana ana i nā pilikia hoihoi i ka multithreading no ka mea makemake ʻo ia e ʻimi i nā kumuhana hiki iā ia ke kūʻai aku i kā lākou hui. Ma laila au i ʻike mua ai iā Doug Lea. ʻO māua ʻo Doug a me 25 mau kānaka ʻē aʻe mai Sun e kūkākūkā pū ana i ka hōʻike a Doug ma JSR 166, i lilo i java.util.concurrent. Ma ke ala, ua ʻōlelo ʻo Doug e makemake ʻo ia e hoʻohana i ka queue MS, akā no kēia pono ʻo ia i kahi counter no ka helu o nā mea i loko o ka pila no ka interface. ʻO ia hoʻi, pono e hana ʻia kēia ma ke ʻano kaʻawale, atomic, pololei a wikiwiki. Manaʻo wau e hoʻohui i nā helu serial i nā node, e lawe i ka helu o ka node mua a me ka hope a unuhi i kekahi mai kekahi. Ua ʻoki ʻo Doug i kona poʻo, ʻōlelo ʻo "no ke aha ʻaʻole," a pau ka hana ʻana pēlā. Ua kūkākūkā mākou i ka hoʻokō ʻana i kēia ala ma ka hale waihona puke, akā na Doug i hana i ka hapa nui o ka hana iā ia iho. ʻO ka hopena, ua hoʻokō ʻo ia i ke kākoʻo multithreading maikaʻi loa ma Java. 

Alexey: No laila, inā maopopo iaʻu, pono ke ʻano o ka .size () i ʻāpana o ka laina laina maʻamau, a he paʻakikī algorithmic o O (1)?

ʻO Michael: ʻAe, a ma waho aʻe o kēia, koi ʻia kahi counter kaʻawale.

Alexey: No ka mea, ina oe e kahea aku i ka .size() ma Java, manaoia e loaa koke ka hopena a aole e pili ana i ka nui maoli o ka ohi. ʻIke wau, mahalo.

ʻO Michael: I kekahi mau makahiki ma hope mai, e hana ana au ma na hale ikepili elua me ka'u haumana Bill Scherer - 'oia'i'o, 'o ia ka'u e kama'ilio nei. hoike no Hydra. Hele mai ʻo Doug iā mākou a ʻōlelo mai hiki iā ia ke hoʻohana iā lākou i ka Java Executor Framework. Me Bill, ua hana lākou i ʻelua hoʻokō, ka mea i kapa ʻia ʻo nā queues fair a me unfair. Ua aʻo au iā lākou ma kēia papahana, ʻoiai ʻaʻole wau i komo i ke kākau ʻana i ke code maoli. ʻO ka hopena, ua piʻi nui ka wikiwiki o nā mea hoʻokō. 

Владимир: Ua ʻike paha ʻoe i nā hoʻokō hewa ʻole o kāu mau algorithm a i ʻole noi e hoʻohui i nā hiʻohiʻona hou? Ma keʻano laulā, pono e kūlike ka hoʻomaʻamaʻa me ke kumumanaʻo, akā ʻokoʻa pinepine lākou. Inā paha ua kākau ʻoe i kahi algorithm, a ma ka pepa e hana ana, akā ua hoʻomaka ka poʻe i komo i ka hoʻokō e noi iā ʻoe no nā hiʻohiʻona hou aʻe a i ʻole kekahi ʻano tweaking o ka algorithm. Ua loaʻa iā ʻoe nā kūlana like?

ʻO Michael: ʻO ka hiʻohiʻona wale nō i hele mai ai kekahi iaʻu a nīnau "pehea e hoʻokō ai" ʻo ia ka nīnau a Doug, aʻu i kamaʻilio ai. Akā aia kekahi mau hihia i hoʻololi ʻia nā hoʻololi hoihoi e kūpono i nā pono kūpono. No ka laʻana, ua hoʻololi ka hui K42 ma IBM i ka laka MCS a hoʻolilo iā ia i mea maʻamau maʻamau no laila ʻaʻole pono e hoʻohele i ka node queue i hope a i waho i ka loaʻa a me ka hoʻokuʻu ʻana i nā hana maʻamau. Mahalo i kēia pānaʻi maʻamau, ua hoʻomaka kahi manaʻo nani i ke kumumanaʻo e hana i ka hana. He mea kupanaha no ka mea aole lakou i paʻi i kahi ʻatikala e pili ana iā ia, a ʻoiai ua loaʻa iā lākou kahi patent, ua haʻalele lākou iā ia. Nani ka manaʻo, a ke hoʻāʻo nei au e kamaʻilio e pili ana i ia mea i ka wā hiki. 

Aia kekahi mau hihia ʻē aʻe kahi i hoʻomaikaʻi ai nā kānaka i nā algorithm aʻu i paʻi ai. No ka laʻana, he ʻelua ʻanuʻu ka mīkini hoʻonohonoho ʻana o ka queue MS, ʻo ia hoʻi he ʻelua CAS ma ke ala koʻikoʻi o ka pila. Ma nā kaʻa kahiko, he pipiʻi ka CAS. Ua hoʻomaikaʻi maikaʻi ʻo Intel a me nā mea hana ʻē aʻe iā lākou i kēia manawa, akā i kekahi manawa he mau ʻōlelo aʻoaʻo 30-cycle kēia, no laila ʻaʻole makemake ʻia ka loaʻa ʻana o ka ʻoi aku o hoʻokahi ma ke ala koʻikoʻi. ʻO ka hopena, ua hoʻomohala ʻia kahi pila ʻokoʻa e like me ka queue MS, akā hoʻokahi wale nō hana atomic ma ke ala koʻikoʻi. Ua loaʻa kēia ma muli o ka ʻoiaʻiʻo i loko o kekahi manawa o ka hana hiki ke lawe i ka manawa O(n), ma mua o O(1). He mea hiki ʻole, akā hiki. Ua hana kēia ma muli o ka ʻoiaʻiʻo i kekahi mau manawa i hele ka algorithm i ka pila mai ka hoʻomaka a i ke kūlana i kēia manawa i kēia pila. Ma keʻano laulā, ua lilo ka algorithm i mea lanakila loa. E like me kaʻu i ʻike ai, ʻaʻole ia i hoʻohana nui ʻia, ʻo kekahi hapa no ka mea e koi ana nā hana atomic i ka liʻiliʻi loa o nā kumuwaiwai ma mua o ka wā ma mua. Akā, ua nui ka manaʻo. Makemake nui au i ka hana a Dave Dice mai Oracle. ʻO nā mea a pau āna e hana ai he mea maʻalahi loa a hoʻohana ʻo ia i ka hao me ke akamai loa. Loaʻa iā ia ka lima ma ka hapa nui o ka NUMA-aware synchronization algorithms a me nā hoʻonohonoho ʻikepili multi-threaded. 

Владимир: Ke kākau ʻoe i nā algorithm a aʻo paha i nā haumāna, ʻaʻole ʻike koke ʻia ka hopena o kāu hana. Pono ke kaiāulu i kahi manawa e kamaʻāina ai, e ʻōlelo, he ʻatikala hou. ʻAʻole ʻike koke ka algorithm hou i ka noi. 

ʻO Michael: ʻAʻole maopopo loa inā he mea nui a ʻaʻole paha ka ʻatikala. Manaʻo wau he mea hoihoi ia ke aʻo ʻana i nā pepa i loaʻa nā makana ma nā ʻaha kūkā. ʻO ia hoʻi, e nānā i nā ʻatikala i manaʻo ʻia e nā poʻe ma nā komite papahana i ka manawa hoʻokahi. Pono ʻoe e hoʻāʻo e helu i ka helu o nā loulou a me ka hopena i ka ʻoihana i ka hopena o kēia mau ʻatikala i 10, 20, 25 mau makahiki. Ke kānalua nei au aia ka pilina ikaika ma waena o lāua. ʻAʻole ia he zero, akā ʻoi aku ka nāwaliwali ma mua o kā mākou makemake. Nui nā manaʻo e waiho ʻole ʻia no ka manawa lōʻihi ma mua o ka laha ʻana. No ka laʻana, e lawe kākou i ka hoʻomanaʻo transactional. ʻOi aku ma mua o 10 mau makahiki mai ka manawa i paʻi ʻia ai ka ʻatikala kumu a hiki i ka manawa i hoʻomaka maoli ai nā kānaka e kūkulu i nā mīkini me ia. A ma mua o ka ʻike ʻia ʻana o kēia hoʻomanaʻo i nā huahana pāʻoihana - a me nā mea āpau 20. No ka manawa lōʻihi loa ʻaʻohe mea i hoʻolohe i ka ʻatikala, a laila piʻi nui ka helu o nā loulou iā ia. He mea paʻakikī ke wānana i kēia ma mua. Ma kekahi ʻaoʻao, ʻike koke nā manaʻo i ka hoʻokō. I kekahi mau makahiki i hala aku nei, ua kākau wau i kahi pepa me Joe Izraelevitz no DISC i manaʻo i kahi wehewehe kikoʻī hou o ka pono no nā hoʻolālā ʻikepili hoʻomau i hiki ke hoʻohana ʻia ma hope o ka hāʻule ʻana o ka kamepiula. Ua makemake au i ka ʻatikala mai ka hoʻomaka ʻana, akā ua ʻoi aku ka kaulana ma mua o kaʻu i manaʻo ai. Ua hoʻohana ʻia e nā hui like ʻole a lilo i ka wehewehe maʻamau o nā hale hoʻomau. ʻO ia, ʻoiaʻiʻo, maikaʻi.

Владимир: Aia kekahi mau ʻenehana āu e hoʻohana ai no ka loiloi? Ke hoʻāʻo nei ʻoe e loiloi i kāu mau ʻatikala a me kāu mau haumāna? E pili ana i ka hele ʻana o ke kanaka āu i aʻo ai ma ke ala pololei.

ʻO Michael: E like me nā mea ʻē aʻe, ke nānā nui nei au i kaʻu hana i kēia manawa. Eia hou, e like me nā mea ʻē aʻe, nānā au i kekahi manawa iā Google Scholar e ʻike inā e ʻōlelo ʻia ana kaʻu mau pepa i hala, akā ʻoi aku ka makemake. ʻO ka hapa nui, ʻaʻohe au i ka hana a kaʻu mau haumāna i kēia manawa. I ka loiloi ʻana i ka hana o kēia manawa, ʻo ia kekahi o nā manaʻo aesthetic, he aha ka nani a me ka mea ʻole. A ma ka pae o kēlā me kēia lā, pāʻani nui nā nīnau hāmama. No ka laʻana, hele mai kekahi haumāna iaʻu me ka pakuhi o kekahi mau hualoaʻa, a ke hoʻāʻo nei mākou e hoʻomaopopo i kahi i hele mai ai kekahi ʻano ʻano ʻē o ka pakuhi. Ma keʻano laulā, i kā mākou hana ke ho'āʻo mau nei mākou e hoʻomaopopo i nā mea a mākou i hoʻomaopopoʻole ai. 

Hoʻomanaʻo hana

Vitali: Hiki paha iā mākou ke kamaʻilio liʻiliʻi e pili ana i ka hoʻomanaʻo transactional?

ʻO Michael: Manaʻo wau he mea pono ke ʻōlelo liʻiliʻi no ka mea ua hoʻoikaika nui wau i ia mea. He kumuhana kēia i ʻoi aku ka nui o kaʻu mau puke ma mua o nā kumuhana ʻē aʻe. Akā, i ka manawa like, oddly lawa, au mau loa kanalua e pili ana transactional hoʻomanaʻo. I koʻu manaʻo, ʻatikala na Herlihy lāua ʻo Moss (M. Herlihy, J. E. B. Moss) i paʻi ʻia ma mua o kona manawa. I nā makahiki 1990 mua, ua manaʻo lākou e hiki i ka hoʻomanaʻo transactional ke kōkua i nā mea polokalamu akamai e hana ma luna o nā hale ʻikepili multi-threaded, i hiki ke hoʻohana ʻia kēia mau hale i hale waihona puke e nā mea papahana maʻamau. ʻO ia hoʻi, he mea kōkua ia no Doug Lee e hana ana i kāna JSR 166. Akā ʻaʻole i manaʻo ʻia ka hoʻomanaʻo transactional e hana maʻalahi i ka polokalamu multi-threaded. Akā ʻo kēia ka mea i hoʻomaka ai e ʻike ʻia i ka makahiki 2000, i ka wā i laha nui ai. Ua hoʻolaha ʻia ma ke ʻano he ala e hoʻoponopono ai i ka pilikia o ka papahana parallel. Ua manaʻo ʻole kēia ala iaʻu. Hiki i ka hoʻomanaʻo hoʻololi ke maʻalahi ke kākau ʻana i nā hale ʻikepili like. ʻO kēia, me he mea lā iaʻu, ʻo ia kāna i hoʻokō ai. 

E pili ana i ka paʻakikī o ke kākau ʻana i nā code multi-threaded

Alexey: Hoihoi loa. Me he mea lā aia kahi pale ma waena o nā mea polokalamu maʻamau a me nā mea hiki ke kākau i nā code multi-threaded. I ka makahiki i hala aku nei, ua kamaʻilio pinepine au me nā poʻe e hoʻokō nei i kekahi ʻano algorithmic framework. No ka laʻana, me Martin Thomson, a me nā mea papahana e hana ana ma nā hale waihona puke multi-threaded. (Memo a ka Lunahooponopono: He mea hoʻomohala kaulana ʻo Martin Thompson, kākau ʻo ia Ka mea hoʻopau и Aeron. A ua loaʻa iā ia ka loio ma kā mākou ʻaha Joker 2015, hoʻopaʻa wikiō loaʻa ma YouTube. Ua like ia wehe ʻia keia ahaolelo hoʻopaʻa kī kī loaʻa pū kekahi). ʻO ka paʻakikī nui, ʻōlelo lākou, ʻo ka hana wikiwiki a maʻalahi hoʻi e hoʻohana i nā algorithm. ʻO ia hoʻi, ke hoʻāʻo nei lākou e lanakila i kēia pale a huki i nā poʻe he nui i hiki i kēia wahi. Pehea kou manao no ia mea?

ʻO Michael: ʻO kēia ka pilikia nui o ka multithreading: pehea e hoʻokō ai i ka hana kiʻekiʻe me ka hoʻonui ʻole i ka paʻakikī o ka ʻōnaehana. 

Alexey: No ka mea, ke ho'āʻo lākou e pale i ka paʻakikī, e emi ana ka algorithm i ke ao holoʻokoʻa.

ʻO Michael: ʻO ke kī ma ʻaneʻi ua hoʻolālā pono ʻia nā abstractions. Me he mea lā ʻo kēia ka mea nui no nā ʻōnaehana kamepiula ma ke ʻano he kahua. Makemake ʻo Butler Lampson e hoʻohana i kēia huaʻōlelo, a kapa ʻo ia iā mākou he "mea kālepa o abstractions." ʻAʻole loaʻa nā ʻenehana maʻalahi i kēia lā. ʻO nā kaʻina hana a mākou e hoʻohana ai he 10 biliona transistors - ʻaʻole maʻalahi ka maʻalahi. Ma ka manawa like, ʻoi aku ka maʻalahi o ka ISA ma mua o ke kaʻina hana, no ka mea ua hana mākou no ka manawa lōʻihi e hāʻawi iā ia me ka hana kiʻekiʻe a me kahi maʻalahi maʻalahi. Akā ʻaʻole maʻalahi nā mea a pau me ia. ʻO ka pilikia like me nā accelerators e kū nei ma ka mākeke. Piʻi mai nā nīnau - pehea e hana ai i ka interface kūpono no ka GPU, kahi ʻano hoʻopunipuni, ka hoʻopili ʻana, kahi ʻano transcoding, kahi mīkini algebra linear, a i ʻole kahi FPGA maʻalahi. Pehea e hana ai i kahi interface e maʻalahi ai ka hoʻohana a hūnā i ka paʻakikī? ʻAʻole ia e hoʻopau iā ia, akā e hūnā iā ia mai kahi polokalamu maʻalahi. 

Alexey: I koʻu hoʻomaopopo ʻana, aia nō ke keʻakeʻa i ka hoʻomaopopo ʻana i nā abstractions. E lawe kākou i ka hoʻohālike hoʻomanaʻo; ma kā mākou pae o ka hoʻomohala ʻana i ka ʻepekema a me ka ʻenehana, ʻo ia kekahi o nā abstractions nui. Mahalo iā ia, ua māhele ʻia nā mea papahana a pau i ʻelua pūʻulu: ʻo ka hapa nui ka poʻe i maopopo ʻole, a ʻo ka hapa liʻiliʻi ka poʻe i hoʻomaopopo, a i ʻole manaʻo ua maopopo lākou. 

ʻO Michael: He nīnau maikaʻi kēlā - maopopo maoli kekahi o mākou i ke ʻano hoʻomanaʻo?

Vitali: Nui loa ma C++.

ʻO Michael: E kamaʻilio me Hans Boehm i kekahi manawa. ʻO ia kekahi o ka poʻe akamai loa aʻu i ʻike ai, he loea alakaʻi i nā hiʻohiʻona hoʻomanaʻo. E haʻi koke ʻo ia iā ʻoe he nui nā mea i maopopo ʻole iā ia. Akā inā e hoʻi mākou i ka pilikia o abstractions, a laila, i koʻu manaʻo, ua hōʻike ʻia ka manaʻo koʻikoʻi ma ke kahua o nā hiʻohiʻona hoʻomanaʻo i nā makahiki he 30 i hala. ma ka palapala a Sarita Adve. (Meka a ka mea hoʻoponopono: loaʻa kahi papa inoa piha o nā puke loulou).

Alexey: ʻO kaʻu nīnau: mai ke ʻano maoli o ka manaʻo kēia pale? 

ʻO Michael: ʻAʻole. Ua hōʻea ʻo Sarita i ka hopena me ke ala kūpono, hiki iā ʻoe ke hūnā pono i nā paʻakikī āpau, loaʻa ka hana kiʻekiʻe a hāʻawi i ka mea polokalamu i kahi API maʻalahi. A inā ʻoe e hahai i kēia API, hiki iā ʻoe ke hoʻokō i ka kūlike mau. Manaʻo wau he kumu hoʻohālike kūpono kēia. Kākau i ke code me ka ʻole o nā lāhui ʻikepili a loaʻa ke ʻano kūlike. ʻOiaʻiʻo, i mea e hōʻemi ai i ka hiki o ka heihei, pono nā mea hana kūikawā, akā he mea ʻē aʻe. 

Владимир: Aia kekahi mau manawa i kāu ʻoihana i hoʻololi koke ʻia kahi pilikia i manaʻo ʻia he pōʻino, a i ʻole he mea hiki ʻole ke hoʻoponopono ʻia kēia pilikia? No ka laʻana, ma ke kumumanaʻo hiki iā ʻoe ke helu i kekahi helu a i ʻole e hoʻoholo inā he prime kekahi helu. Akā ma ka hoʻomaʻamaʻa hiki ke paʻakikī ke hana; me ka lako o kēia manawa he paʻakikī ke helu helu. Ua loaʻa kekahi mea like iā ʻoe?

ʻO Michael: ʻAʻole wau e hoʻomanaʻo koke i kekahi mea e like me ia. Aia kekahi mau manawa i koʻu manaʻo ʻaʻohe mea i koe e hana ai ma kekahi wahi, akā aia kekahi mea hou a hoihoi i laila. No ka laʻana, ua manaʻo wau ua hiki i ka wahi o ka laina palena ʻole i ke kūlana makua. Ma hope o kekahi mau hoʻomaikaʻi ʻana i ka pila MNS, ʻaʻohe mea i hana hou. A laila hoʻokumu ʻo Morrison (Adam Morrison) a me Afek (Yehuda Afek). LCRQ laina. Ua ʻike maopopo ʻia ka hiki ʻana o kahi laina laina ʻole palena ʻole, kahi i ka hapa nui o ka manawa aia kahi aʻo kiʻi a hoʻonui i ke ala koʻikoʻi. A ʻo kēia ka mea i hiki ai ke hoʻokō i kahi kauoha o ka nui o ka hana ʻoi aku ka maikaʻi. ʻAʻole ia no ka ʻike ʻole ʻana he mea pono loa ke kiʻi a me ka hoʻonui. Ua kākau ʻo Eric Freudenthal e pili ana i kēia ma kāna hana ma ka Ultracomputer me Allan Gottlieb i ka hopena o 1980s, akā pili ia i nā queues liʻiliʻi. Ua hiki iā Morrison lāua ʻo Afek ke hoʻohana i ka fetch-and-increment ma kahi laina palena ʻole.

Nā hale hana hou. Ua kokoke anei ka lanakila o ka hoʻomanaʻo transactional?

Владимир: Ke ʻimi nei ʻoe i nā hoʻonā hale kūkulu hou i hiki ke hoʻohana i nā algorithms? 

ʻO Michael: ʻOiaʻiʻo, nui nā mea aʻu e makemake ai e ʻike i ka hoʻokō ʻia. 

Владимир: He aha ke ʻano, no ka laʻana?

ʻO Michael: ʻO ka mea mua, he mau mea hoʻonui maʻalahi i kā mākou hoʻomanaʻo hoʻomanaʻo hoʻokele waiwai ma nā kaʻina hana Intel a me IBM. ʻO ka mea nui, makemake wau i ka ukana a me ka hale kūʻai kūʻai ʻole i loaʻa koke i loko o nā kālepa. Alakaʻi koke lākou i nā puka lou i ka hanana-ma mua o ke kaʻina, no laila hiki ke paʻakikī. Akā inā mālama ʻoe i nā ʻāpana o ka abstraction, nui nā mea hoihoi loa hiki iā ʻoe ke hana ma waho o ke kālepa ʻoiai e hana ana. ʻAʻole maopopo iaʻu ka paʻakikī o ka hoʻokō ʻana, akā he mea maikaʻi loa ia. 

ʻO kekahi mea maikaʻi ʻo ka hoʻouka ʻana i ka cache mai ka hoʻomanaʻo mamao. Manaʻo wau e hana koke ʻia kēia. Hiki i kēia ʻenehana ke hana i nā ʻōnaehana me ka hoʻomanaʻo disaggregated. Hiki ke mālama, e ʻōlelo, 100 terabytes o ka hoʻomanaʻo nonvolatile i loko o kahi pahu, a ʻo ka ʻōnaehana hana ponoʻī e hoʻoholo pono i nā ʻāpana o ia hoʻomanaʻo e kūpono i ka wahi kikoʻī o nā kaʻina hana. He mea maikaʻi loa kēia no ka hoʻopili ʻana i ke ao, no ka mea e hāʻawi ʻia ka nui o ka hoʻomanaʻo i nā hana e pono ai. Manaʻo wau e hana kekahi.

Vitali: No ka hoʻopau ʻana i ke kamaʻilio ʻana e pili ana i ka hoʻomanaʻo transactional, he nīnau hou aʻe kaʻu e pili ana i kēia kumuhana. E hoʻololi paha ka hoʻomanaʻo transactional i nā hale ʻikepili maʻamau?

ʻO Michael: ʻAʻole. ʻO nā pānaʻi he ʻano manaʻo kuhi. Ma ka papahana papahana he mau loka atomic kēia, akā i loko he mau manaʻo kuhi. E hana ana ia wānana inā pololei ka hapa nui o nā kuhi. No laila, hana maikaʻi ka hoʻomanaʻo transactional inā ʻaʻole pili nā kaula i kekahi i kekahi, a pono ʻoe e hōʻoia i ka ʻole o nā pilina. Akā inā hoʻomaka kahi memo ma waena o nā kaula, ʻaʻole pono nā hana. E wehewehe wau, ke kamaʻilio nei mākou e pili ana i ka hihia ke hoʻopili ʻia nā kālepa a puni ka hana atomic holoʻokoʻa. Hiki iā lākou ke hoʻohana maikaʻi ʻia ma ke ʻano he ʻāpana no nā hoʻolālā ʻikepili multi-threaded. Eia kekahi laʻana, inā makemakeʻoe iʻekolu hua'ōlelo CAS, a ponoʻoe e hoʻonui iʻekolu mau mea liʻiliʻi i waenakonu o kahi algorithm multithreaded maoli e hana ana me nā kaula he iwakālua i ka manawa like. Ma keʻano laulā, hiki ke hoʻohana pono nā kālepa, akā,ʻaʻole lākou e hoʻopau i ka pono e hoʻolālā pono i nā hananaʻikepili multi-threaded. 

Hoʻomanaʻo non-volatile, Optane DIMM, nā mea wikiwiki loa.

Vitali: ʻO ka mea hope aʻu e makemake ai e kamaʻilio e pili ana i ke kumuhana o kāu noiʻi o kēia manawa: ka hoʻomanaʻo non-volatile. He aha kā mākou e manaʻo ai ma kēia wahi i ka wā e hiki mai ana? Ua ʻike paha ʻoe i kekahi mau hoʻokō kūpono e kū nei? 

ʻO Michael: ʻAʻole wau he loea lako, ʻike wale wau i kaʻu mea i heluhelu ai ma ka nūhou a me ka mea a koʻu mau hoa hana e haʻi mai iaʻu. Ua lohe mua nā mea a pau ke kūʻai aku nei ʻo Intel Optane DIMM, aia ma kahi o 3 mau manawa o ka latency heluhelu a me 10 mau manawa o ka latency kākau ma mua o ka RAM dynamic. E loaʻa koke iā lākou ma nā mana leo nui loa. He mea ʻakaʻaka ke noʻonoʻo hiki iā ʻoe ke loaʻa i kahi pona me nā terabytes o ka byte-addressable RAM. Malia paha i loko o 10 mau makahiki e hoʻoholo mākou e hoʻohana i kēia ʻenehana hou, ʻoiai ke hoʻohana nei mākou i DRAM - hoʻonui wale i ka leo. Akā, mahalo i ke kūʻokoʻa ikehu, ua wehe ʻia nā manawa hou no mākou. Hiki iā mākou ke hoʻololi maoli i ka waihona waihona i ʻole ka hoʻokaʻawale ʻana ma waena o ka hoʻomanaʻo hana byte-addressable a me ka hoʻomanaʻo hoʻomau i kūkulu ʻia. No laila, ʻaʻole pono mākou e hoʻokaʻawale i nā mea āpau e pono e hoʻololi ʻia mai kahi papahana e holo ai i kekahi i loko o nā faila block-structured. Mai kēia hiki iā mākou ke loaʻa i nā loina koʻikoʻi e pili ana i nā ʻōnaehana hana, nā kaiapuni runtime, a me nā hale kūʻai ʻikepili puʻupuʻu. He mea hoihoi loa keia wahi e hana ai. ʻO wau iho, paʻakikī iaʻu e wānana i ka mea e alakaʻi ai kēia, akā ʻo nā pilikia ma aneʻi he mea leʻaleʻa loa. Loaʻa paha nā hoʻololi kipi ma ʻaneʻi, a hahai maoli lākou mai ka hana ma ka multithreading, no ka mea, ʻo ka hoʻihoʻi ʻole ʻana he hana "multithreading" kokoke i ka hana maʻamau o ka ʻōnaehana. 

ʻO ke kumuhana nui ʻelua aʻu e hana nei i kēia manawa, ʻo ia ka hoʻokele ʻana i nā polokalamu ultra-wikiwiki a hoʻopaʻa i ka loaʻa ʻana i nā polokalamu mai ka mea hoʻohana me ka mana kulekele ʻōnaehana. I nā makahiki i hala iho nei, aia kahi ʻano e neʻe ai i ke komo i ka hāmeʻa i ka mea hoʻohana. Hana ʻia kēia no ka mea ʻaʻole hiki i ka TCP-IP kernel stack ke hana ma luna o kahi kikowaena pūnaewele e pono ai i kahi ʻeke hou i kēlā me kēia 5 microseconds; ʻaʻole ia e hoʻomau. No laila, hāʻawi nā mea hana i ke komo pololei i nā mea hana. Akā, ʻo ia ke ʻano o ka nalo ʻana o ka ʻōnaehana hana i ke kaʻina hana a ʻaʻole hiki ke hāʻawi i ke komo kūpono i ka hāmeʻa no nā noi hoʻokūkū. Manaʻo kā mākou hui noiʻi hiki ke pale ʻia kēia hemahema. E loaʻa iā mākou kahi ʻatikala e pili ana i kēia ma USENIX ATC i kēia mahina. Pili ia i ka hana ma ka hoʻomau ʻana, no ka mea, ʻo ka hoʻomanaʻo hoʻomau ʻana byte-addressable hoʻomanaʻo lōʻihi, ʻo ia hoʻi, he mea me ka ultra-wikiwiki I/O e pono ke komo i ka mea hoʻohana. Hiki i kēia noiʻi ke ala hou aku i nā microkernels, exokernels, a me nā hoʻāʻo kuʻuna ʻē aʻe e hoʻoneʻe palekana i ka hana mai ka kernel OS i ka mea hoʻohana. 

Владимир: He mea nui ka hoʻomanaʻo Byte-addressable, akā aia kahi palena kino - ka wikiwiki o ka māmā. ʻO ia ke ʻano he hiki ʻole ke lohi i ka wā e launa pū ai me ka hāmeʻa. 

ʻO Michael: Pololei loa.

Владимир: E lawa anei ka hiki ke hoʻokō i nā ukana hou?

ʻO Michael: He nīnau maikaʻi loa kēia, akā paʻakikī iaʻu ke pane. ʻO ka manaʻo o ka hoʻoponopono ʻana i ka hoʻomanaʻo ua puni no kekahi manawa, he mea hoihoi loa ia, akā paʻakikī loa. ʻAʻole wau i hana ma kēia wahi, akā maikaʻi inā loaʻa kekahi mau ʻike ma laila. Makaʻu wau ʻaʻohe mea hou aʻe e hoʻohui. 

Владимир: Aia kekahi pilikia. ʻAʻole hiki ke hoʻokomo ʻia ka nui o ka RAM hou i ka CPU. No laila, ma muli o nā palena kino, pono e hoʻokaʻawale ʻia kēia RAM. 

ʻO Michael: Aia nā mea a pau i ka nui o nā hemahema i ka hana ʻana o nā kaʻa kaʻa. Inā hiki ke hana i nā wafers semiconductor me ka ʻole o nā hemahema, a laila hiki ke hana i kahi microcircuit holoʻokoʻa mai ia mea. Akā i kēia manawa ʻaʻole mākou i ʻike pehea e hana ai i nā microcircuits ʻoi aku ka nui ma mua o nā peʻa leka. 

Владимир: Akā ke kamaʻilio nei mākou e pili ana i nā nui nui, e pili ana i ke kenimika. He hopena kēia i ka latency. 

ʻO Michael: ʻAe. ʻAʻohe mea hiki iā ʻoe ke hana no ka wikiwiki o ka māmā. 

Владимир: Minamina. 

ʻO ke au nui e hiki mai ana. Nā hale ʻikepili pālua. Hydra.

Vitali: I koʻu hoʻomaopopo ʻana, hopu koke ʻoe i nā ʻano hou. ʻO ʻoe kekahi o ka mea mua i hana i ka hoʻomanaʻo transactional, a ʻo kekahi o ka mea mua i hana i ka hoʻomanaʻo non-volatile. He aha kāu e manaʻo ai ke ʻano nui e hiki mai ana? A i ʻole he mea huna paha?

ʻO Michael: No ka oiaio, aole au i ike. Manaʻolana e hiki iaʻu ke ʻike i ka wā e puka mai ai kahi mea hou. ʻAʻole wau i laki i ka hana ʻana i kekahi kahua hou ma oʻu iho, akā ua loaʻa iaʻu kahi laki a ua hiki iaʻu ke hoʻomaka i ka hana ʻana i nā hana hou i hana ʻia e nā poʻe ʻē aʻe. Manaʻo wau e hiki iaʻu ke hana i kēia i ka wā e hiki mai ana.

Alexey: ʻO ka nīnau hope loa ma kēia nīnauele e pili ana i kāu hana ma Hydra a me kāu mau hana ma ke kula. Inā maopopo iaʻu, e pili ana ka hōʻike ma ke kula e pili ana i nā algorithms blocking-free, a ma ka ʻaha kūkā e pili ana i nā hale ʻikepili pālua. Hiki iā ʻoe ke ʻōlelo i kekahi mau ʻōlelo e pili ana i kēia mau hōʻike?

ʻO Michael: Ma kahi hapa, ua hoʻopā mua mākou i kēia mau kumuhana me ʻoe i kēia nīnauele. E pili ana i kaʻu hana me kaʻu haumāna ʻo Bill Scherer. Ua kākau ʻo ia i kahi thesis ma luna o ia mea, a ua hāʻawi pū ʻo Doug Lee iā ia, a ua lilo ia i ʻāpana o nā queues synchronous multi-threaded ma ka waihona Java. E noʻonoʻo kākou ua heluhelu ʻia a kākau ʻia ka ʻikepili me ka ʻole o ka pāpā ʻana, ʻo ia hoʻi, ʻo kēlā me kēia hana he helu palena o nā kuhikuhi ma ke ala koʻikoʻi. Inā ʻoe e hoʻāʻo e wehe i ka ʻikepili mai kahi pahu hakahaka, a i ʻole e hoʻāʻo e wehe i kekahi mau ʻikepili ʻaʻole i loko o kēia pahu, e ʻike koke ʻia ʻoe ʻaʻole hiki ke hana ʻia. Akā, ʻaʻole hiki ke ʻae ʻia kēia ʻano inā makemake maoli ke kaula i kēia ʻikepili. A laila ʻo ka mea mua i hiki i ka noʻonoʻo ke hana i kahi loop e nīnau mau inā ua ʻike ʻia ka ʻikepili pono. Akā, aia ke keʻakeʻa no nā mea ʻē aʻe. Eia kekahi, me kēia ala, hiki iā ʻoe ke kali i 10 mau minuke, a laila e hele mai kekahi kaula ʻē aʻe, a e loaʻa mua iā ia ka ʻikepili pono. ʻAʻole loaʻa nā paʻa i nā hale ʻikepili pālua, akā ʻae lākou i nā kaula e kali pono. ʻO ka huaʻōlelo "pālua" ʻo ia ka mea i loaʻa i ka hale ka ʻikepili a i ʻole nā ​​noi no ka ʻikepili, e kapa mākou iā lākou anti-data. No laila, inā ʻoe e hoʻāʻo e kiʻi i kahi mea mai kahi pahu ʻole, e hoʻokomo ʻia kahi noi i loko o ka ipu. I kēia manawa hiki i ke kaula ke kali i kahi noi me ka hoʻopilikia ʻole i kekahi. Hoʻohui ʻia, hāʻawi ka ʻikepili ʻikepili i nā mea nui i nā noi a i ka wā e loaʻa ai, hāʻawi ia iā lākou i ke kanaka kūpono. ʻO ka hopena he mīkini paʻa ʻole i loaʻa kahi kikoʻī maʻamau a me ka hana maikaʻi i ka hana. 

Alexey: He aha kāu mau manaʻo mai kēia ʻano ʻikepili? E hoʻomaikaʻi paha ia i ka hana ma nā hihia maʻamau, a i ʻole kūpono paha ia no kekahi mau kūlana? 

ʻO Michael: He mea pono inā, ʻo ka mea mua, pono ʻoe i kahi pahu me ka laka ʻole, a, ʻo ka lua, pono ʻoe e kali i kahi kūlana āu e pono ai e kiʻi i ka ʻikepili mai ka ipu ʻaʻole i loko. I koʻu ʻike maikaʻi loa, hāʻawi kā mākou anga i ka hana maikaʻi loa ke hoʻokō ʻia kēia mau kūlana ʻelua. No laila, i kēia mau hihia ke paipai nei au e hoʻohana. ʻO ka pōmaikaʻi nui o nā hoʻolālā data lockless ʻo ia ka pale ʻana i nā pilikia hana. A he mea koʻikoʻi ke kali ʻana i nā algorithms he nui inā hoʻoili ʻia ka ʻikepili mai kahi kaula i kekahi.

Vitali: E wehewehe au: e kamaʻilio anei ʻoe i ka mea like ma ke kula a ma ka ʻaha kūkā?

ʻO Michael: Ma ke kula E ʻōlelo wau ma keʻano laulā e pili ana i nā hoʻonohonoho ʻikepili multi-threaded, me nā kumu kumu i wehewehe ʻia ma ka hoʻomaka o ka haʻawina. Ke manaʻo nei au ua ʻike ka poʻe ʻike i ke ʻano o nā kaula a ua kamaʻāina i nā loka. Ma muli o kēia ʻike kumu, e kamaʻilio wau e pili ana i nā hale ʻikepili laka ʻole. E hāʻawi wau i kahi ʻike o nā pilikia koʻikoʻi ma kēia wahi, e pili ana i nā kumuhana e like me ka hoʻokele hoʻomanaʻo. ʻAʻole wau e manaʻo e ʻoi aku ka paʻakikī ma mua o ka queue MS.

Alexey: Ke hoʻolālā nei ʻoe e aʻo e pili ana i nā ʻano ʻikepili ʻelua ma ka hopena o kāu papa ma ke kula?

ʻO Michael: E haʻi wau iā lākou, akā ʻaʻole wau e hoʻolilo i ka manawa nui ma luna o lākou. E hoʻolaʻa ʻia ka hōʻike Hydra iā lākou. E uhi ia i ka papahana i hoʻokomo ʻia i Java, a me ka hana pū ʻana me Joe Israelevich e hana i kahi ʻano ʻano ʻelua o ka queue LCRQ, a me ka hoʻokumu ʻana i kahi hoʻolālā kokoke i ke ao holoʻokoʻa no nā hale ʻikepili ʻelua.

Alexey: No laila, hiki ke paipai 'ia ka haʻi'ōlelo ma ke kula no beginners, a me ka haʻi'ōlelo ma papalua ikepili hale ma Hydra - no ka poʻe i loaʻa i kekahi 'ike?

ʻO Michael: E hoʻoponopono iaʻu inā hewa wau, akā ʻokoʻa ka lehulehu ma Hydra, me ka nui o nā loea Java, a me ka poʻe maʻamau ʻaʻole i pili pono i ka papahana multi-threaded. 

Vitali: Ae, he oiaio.

Alexey: Ke manaʻolana nei mākou pēlā.

ʻO Michael: Ma keia hihia, e halawai ana au me ka pilikia like a makou i hoomaka ai i keia ninaninau: pehea e hana ai i ka hoike i lawa pono i na kikoo kikoo a hiki i ka poe hoolohe.

Vitali: E hāʻawi anei ʻoe i kahi hōʻike e like me kāu hāʻawi ʻana i nā haʻiʻōlelo? ʻO ia hoʻi, e kamaʻilio me ka lehulehu a hoʻololi i ke kūlana?

ʻO Michael: Makaʻu wau ʻaʻole e hana pēlā, no ka mea, e loaʻa ana i ka hōʻike nā paheʻe. He mea nui ka paheʻe ke ʻōlelo mua ka poʻe hoʻolohe i nā ʻōlelo like ʻole. Nui ka poʻe e paʻakikī ke hoʻomaopopo iaʻu ma ka ʻōlelo Pelekania, ʻoi aku ka wikiwiki inā ʻōlelo wikiwiki wau. Ua koho au i kēia mau kumuhana no ka mea Peter Kuznetsov ua noi mai iaʻu e kamaʻilio e pili ana i nā hale ʻikepili laka ʻole ma ke kula SPTDC; a laila makemake wau i kahi hōʻike no ka hālāwai kūkā o ka hui mea hoʻohana Java, a makemake wau e koho i kahi mea e makemake nui ai i nā mea polokalamu Java. ʻO ke ala maʻalahi ke kamaʻilio e pili ana i kēlā mau mea i loko o ka waihona Java i loaʻa iaʻu ka lima ma kekahi ala a i ʻole. 

Alexey: Manaʻo mākou ua ʻike mua ka poʻe ma Hydra i kekahi mea e pili ana i ka hoʻolālā kī ʻole a loaʻa paha kekahi ʻike ma kēia wahi. Akā, he manaʻo wale nō kēia; e ʻoi aku ka maopopo o ke kūlana ma ka ʻaha kūkā ponoʻī. Eia naʻe, mahalo no kou manawa. Manaʻo wau he mea hoihoi loa ka nīnauele no kā mākou poʻe heluhelu. Mahalo nui loa!

Vitali: Mahalo iā ʻoe. 

ʻO Michael: E hauʻoli wau e hālāwai me ʻoe ma St. Petersburg. 

Alexey: ʻO mākou pū kekahi, he kūlanakauhale nani ko mākou. Ua hele anei ʻoe ma ʻaneʻi?

ʻO Michael: ʻAʻole, ʻaʻole au i hele i Rusia. Akā, aia mau ʻo St. Petersburg ma ka papa inoa o nā wahi aʻu i hele ʻole ai, akā ma kahi aʻu i makemake nui ai e hele, no laila ua hauʻoli nui wau i ke kono. 

Alexey: Ma ke ala, e loaʻa iā mākou kahi papahana huakaʻi no nā mea haʻiʻōlelo. Mahalo nui iā ʻoe no ka nīnauele, a he lā maikaʻi!

Hiki iā ʻoe ke hoʻomau i kāu kamaʻilio ʻana me Michael ma ka hui ʻo Hydra 2019, e mālama ʻia ma Iulai 11-12, 2019 ma St. E hele mai ʻo ia me kahi hōʻike "Nā hana ʻikepili pālua". Hiki ke kūʻai ʻia nā tiketi ma ka pūnaewele mau.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka