"Zviri nyore kupindura pane kuramba wakanyarara" - kubvunzurudza kukuru nababa vetransactional memory, Maurice Herlihy

Maurice Herlihy - muridzi wevaviri Dijkstra Prizes. Yekutanga ndeyebasa "Mirira-Yemahara Synchronization" (Brown University) uye yechipiri, ichangopfuura, - "Transactional Memory: Rutsigiro Rwekuvaka rweKukiya-Yemahara Data Zvimiro" (Virginia Tech University). Mubairo weDijkstra unopihwa kumabasa ane kukosha uye pesvedzero zvave zvichionekwa kwemakore angangoita gumi uye, sezviri pachena, Maurice mumwe wenyanzvi dzine mukurumbira mumunda. Parizvino ari purofesa paBrown University uye ane zvaakaita kwenguva refu. Iye zvino ari kuita tsvakiridzo ye blockchain mumamiriro eiyo classical yakagoverwa komputa.

Pakutanga, Maurice akatouya kuRussia kuSPTCC (vhidhiyo tepi) uye akaita musangano wakanaka kwazvo weJUG.ru Java developer community muSt.vhidhiyo tepi).

Iyi habrapost hurukuro huru naMaurice Herlihy. Inokurukura misoro inotevera:

  • Kudyidzana pakati peacademia neindasitiri;
  • Nheyo yekutsvaga blockchain;
  • Mazano ebudiriro anobvepi? Pesvedzero yemukurumbira;
  • PhD pasi pekutungamirirwa naBarbara Liskov;
  • Nyika yakamirira multi-core;
  • Nyika itsva, matambudziko matsva. NVM, NUMA uye kuvaka kwekuvaka;
  • Compilers vs CPUs, RISC vs CISC, yakagovaniswa ndangariro vs meseji kupfuura;
  • Hunyanzvi hwekunyora kodhi ine tambo dzakawanda dzisina kusimba;
  • Maitiro ekudzidzisa vadzidzi manyorero akaomesesa akawanda-treaded kodhi;
  • Shanduro itsva yebhuku "The Art of Multiprocessor Programming";
  • Kuyeuka kwekutengeserana kwakagadzirwa sei?   
  • Sei zvakakosha kuita tsvakiridzo mumunda wekugoverwa komputa;
  • Iko kuvandudzwa kwealgorithms kwakamira, uye mararamiro ehupenyu;
  • Shanda paBrown University;
  • Musiyano pakati peyunivhesiti uye yemakambani tsvakurudzo;
  • Hydra uye SPTDC.

Hurukuro dzinoitwa ne:

Vitaly Aksenov - parizvino ari post-doc kuIST Austria uye mushandi weComputer Technologies Dhipatimendi paITMO University. Ari kuita tsvakurudzo mumunda wedzidziso uye maitiro emakwikwi e data data. Asati ajoina IST, akawana PhD yake kubva kuParis Diderot University uye ITMO University pasi paProf. Petr Kuznetsov.

Alexey Fedorov mugadziri paJUG Ru Group, kambani yeRussia inoronga misangano yevagadziri. Alexey akatora chikamu mukugadzirira kwemisangano inodarika makumi mashanu, uye tangidzo yake ine zvese kubva pachinzvimbo cheinjiniya weOracle (JCK, Java Platform Group) kusvika pachinzvimbo chemugadziri paOdnoklassniki.

Vladimir Sitnikov ndiinjiniya kuNetcracker. Kwemakore gumi anga achishanda pakuita uye scalability yeNetCracker OS, software inoshandiswa nevatyairi venhare kuita otomatiki network uye network michina manejimendi maitiro. Kufarira Java uye Oracle Database kuita nyaya. Munyori weanopfuura gumi nemaviri ekuita ekuvandudza mune yepamutemo PostgreSQL JDBC mutyairi.

Kudyidzana pakati peacademia neindasitiri

Alexey: Maurice, wanga uchishanda muacademia kwenguva yakareba uye mubvunzo wekutanga uri pamusoro pekudyidzana pakati peacademia neindasitiri. Unogona here kutiudza kuti kudyidzana pakati pavo kwakachinja sei mazuva ano? Chii chaiva makore 20-30 apfuura uye chii chiri kuitika iye zvino? 

Maurice: Ndagara ndichiedza kushanda pamwe chete nemakambani ezvokutengeserana nokuti ane matambudziko anonakidza. Sezvo mutemo, ivo havafariri zvakanyanya kana kuburitsa mhedzisiro yavo kana kutsanangudza kwakadzama kwematambudziko avo kunharaunda yenyika. Vanongofarira kugadzirisa matambudziko aya. Ndakamboshanda kune mamwe emakambani aya. Ndakapedza makore mashanu ndichishanda nguva yakazara murabhu yekutsvagisa paDigital Equipment Corporation, yaimbova kambani huru yemakombuta. Ndakashanda zuva rimwe pasvondo kuSun, kuMicrosoft, kuOracle, ndakashanda zvishoma paFacebook. Iye zvino ndichaenda kuzororo resabata (mumwe purofesa payunivhesiti yeAmerica anobvumirwa kutora zororo rakadaro kwegore rinenge kamwe chete makore matanhatu oga oga) uye kushanda mukati. Algorand, iyi yakadaro cryptocurrency kambani muBoston. Kushanda padhuze nemakambani kwagara kuchinakidza, nekuti ndiyo nzira yaunodzidza nezvezvinhu zvitsva uye zvinonakidza. Iwe unogona kazhinji kuva munhu wekutanga kana wechipiri kubudisa chinyorwa pamusoro pehurukuro yakasarudzwa, panzvimbo yekuvandudza zvishoma nezvishoma mhinduro dzezvinetso izvo munhu wose ari kutoshanda pazviri.

Alexey: Unogona here kutiudza zvimwe nezve kuti izvi zvinoitika sei?

Maurice: Hongu. Munoziva, pandakanga ndiri kuDigital Equipment Corporation, ini naElliot Moss, takagadzira ndangariro yekutengeserana. Yakanga iri nguva ine zvibereko zvakanyanya apo munhu wese akatanga kufarira tekinoroji yeruzivo. Concurrency inosanganisirwa, kunyangwe akawanda-musimboti masisitimu akange asati avepo. Mumazuva eZuva neOracle, ndakaita basa rakawanda pane zvakafanana data zvimiro. PaFacebook, ndakabatanidzwa muchirongwa chavo che blockchain, chandisingakwanise kutaura nezvacho asi ndinovimba chichaenda pachena munguva pfupi. Gore rinouya, kuAlgorand, ndichange ndichishanda pachikwata chekutsvagisa chiri kudzidza makondirakiti akangwara.

Alexey: Mumakore mashoma apfuura, blockchain yave yakakurumbira musoro wenyaya. Zvichabatsira tsvagiridzo yako here? Pamwe zvinozoita kuti zvive nyore kuwana magrants kana kupa mukana kune zviwanikwa zvemakambani anoshanda muindasitiri iyi?

Maurice: Ndakatowana rubatsiro rudiki kubva kuEthereum Foundation. Kuzivikanwa kwe blockchain kunobatsira kwazvo kukurudzira vadzidzi kuti vashande mundima iyi. Vanorifarira zvikuru uye vanofara kubatanidzwa, asi dzimwe nguva havazivi kuti kunzvera kunonzwika kunoedza nechokunze kunozova kunobatanidza kushanda nesimba chaiko. Nekudaro, ini ndinofara zvikuru kushandisa iyi yese mystique yakatenderedza blockchain, inobatsira kukwezva vadzidzi. 

Asi handizvo zvoga. Ini ndiri pabhodhi rekupa mazano kune akati wandei blockchain kutanga. Vamwe vavo vanogona kubudirira, vamwe vacho vangasadaro, asi zvinogara zvichinakidza kuona mazano avo, kudzidza uye kupa vanhu mazano. Chinhu chinonyanya kufadza ndechekuti iwe unoyambira vanhu kuti vasaite chimwe chinhu. Zvinhu zvakawanda zvinoita senge zano rakanaka pakutanga, asi ndizvo chaizvo?

Nheyo yekutsvaga blockchain

Vitaly: Vamwe vanhu vanofunga kuti blockchain uye algorithms ayo inguva yemberi. Uye vamwe vanhu vanoti rinongova rimwe furo. Unogona here kugovera maonero ako panyaya iyi?

Maurice: Zvizhinji zviri kuitika munyika yeblockchain hazvisi kushanda nemazvo, zvimwe zvingori zvehutsotsi, zvinhu zvakawanda zvakawandirwa. Zvisinei, ndinofunga kuti pane hwaro hwakasimba hwesainzi hwezvidzidzo izvi. Icho chokwadi chekuti nyika ye blockchain izere nemapoka epfungwa inoratidza mwero wekunakidzwa uye kuzvipira. Kune rumwe rutivi, hazvina kunyanya kubatsira pakutsvakurudza kwesayenzi. Zvino, kana iwe ukaburitsa chinyorwa chinotaura nezve kutadza kweimwe algorithm, maitiro akagamuchirwa haagare akazara nesainzi. Kazhinji vanhu vanotaura manzwiro avo. Ndinofunga kuti hype yakadaro munzvimbo ino inogona kutaridzika kune vamwe, asi pakupedzisira, kune nyaya dzesainzi uye dzeinjiniya chaidzo dzisati dzagadziriswa. Kune yakawanda yeComputer Science pano.

Vitaliy: Saka uri kuyedza kuisa hwaro hwekutsvagisa blockchain, handiti?

Maurice: Ndiri kuedza kuisa hwaro hwechirango chakasimba, chesainzi uye nemasvomhu. Uye chikamu chedambudziko ndechekuti dzimwe nguva unofanirwa kupokana zvimwe zvezvinzvimbo zvakakasharara zvevamwe vanhu, kuti uzviregerere. Dzimwe nguva vanhu vanobvunza kuti sei ndichishanda mumunda unongofarirwa nemagandanga nevatengesi vezvinodhaka. Kuita kwakadaro hakuna zvakunoreva semaitiro evateveri vanodzokorora mazwi ako bofu. Ndinofunga kuti chokwadi chiri pane imwe nzvimbo pakati. Blockchain haisati yave nekukanganisa kwakadzama munharaunda uye hupfumi hwenyika. Asi, zvichida, izvi hazvizoitiki nekuda kwekombiyuta yemazuva ano. Tekinoroji dzemazuva ano dzichavandudza uye izvo zvichanzi blockchain mune ramangwana zvichave zvakakosha. Pamwe hazvizoite sema blockchains emazuva ano, iwo mubvunzo wakavhurika.

Kana vanhu vakagadzira matekinoroji matsva, vanoramba vachizvidaidza kuti blockchain. Ndinoreva, seFortran yanhasi haina chekuita nemutauro weFortran kubva kuma1960, asi munhu wese anoramba achiidaidza kuti Fortran. Zvimwe chete zveUNIX. Izvo zvinonzi "blockchain" ichiri kuita shanduko yayo. Asi ini ndinokahadzika kuti iyi blockchain nyowani ichaita seizvo munhu wese anoda kushandisa nhasi.

Mazano ebudiriro anobvepi? Pesvedzero yemukurumbira

Alexey: Kuzivikanwa kwe blockchain kwakatungamira kune mitsva mitsva kubva pakuona kwesainzi? Kudyidzana kwakawanda, vadzidzi vakawanda, makambani akawanda munzvimbo. Pane miuyo ipi neipi yokukura uku mukukurumbira kare here?

Maurice: Ndakafarira izvi mumwe munhu paakandigamuchidza pepa repamutemo rekambani yakanga ichangobva kuunganidza mari yakawanda. Akanyora nezve basa revakuru vemauto eByzantineizvo zvandinopfuura kujairana nazvo. Zvakanyorwa mupepa racho zvakanga zvisina kururama. Vanhu vakanyora izvi havana kunyatsonzwisisa muenzaniso wedambudziko ... uye zvakadaro kambani iyi yakasimudza mari yakawanda. Mushure mezvo, kambani yakatsiva chinyararire pepa iri neshanduro yakanyatsorongeka - uye handisi kuzotaura kuti zita rekambani iyi raive ripi. Ivo vachiripo uye vari kuita zvakanaka kwazvo. Iyi nyaya yakandipwisa kuti, chekutanga, blockchain ingori nzira yekombuta yakagoverwa. Chechipiri, chikumbaridzo chekupinda (panguva iyoyo, makore mana apfuura) chaive chakaderera. Vanhu vanoshanda munzvimbo iyi vaive nesimba uye vakangwara, asi vaisaverenga mapepa esainzi. Vakaedza kuvandudza zvinhu zvinozivikanwa uye vakazviita zvisiri izvo. Nhasi drama rakaderedzwa.

Alexey: Zvinonakidza chaizvo, nekuti makore mashoma apfuura takanga tine maitiro akasiyana. Zvakaita senge kumberi-yekupedzisira kusimudzira, uko browser interface vagadziri vakadzoreredza matekinoroji akange atove akakurumbira kumashure-kumagumo nenguva iyoyo: kuvaka masisitimu, kuenderera kusanganisa, uye zvinhu zvakadaro. 

Maurice: Ndinobvuma. Asi izvi hazvishamise, nekuti zvechokwadi budiriro mazano anogara achiuya kubva kunze kwenharaunda yakasimbiswa. Vatsvakurudzi vakasimbiswa, kunyanya zviremera muzvidzidzo, havakwanisi kuita chero chinhu chinotyisa. Zviri nyore kunyora mushumo wemusangano unotevera pamusoro pekuti wakavandudza sei zvishoma mhedzisiro yebasa rako rekare. Enda kumusangano, ungana neshamwari, taura nezvezvinhu zvakafanana. Uye vanhu vanopaza nemazano ebudiriro vanenge vanogara vachibva kunze. Havazivi mitemo, havazivi mutauro, asi zvakadaro ... Kana iwe uri mukati memunharaunda yakasimbiswa, ndinokurayira kuti uteerere zvinhu zvitsva, kune chimwe chinhu chisingakodzeri muhukuru. mufananidzo. Neimwe nzira, kuedza kunogona kuitwa kubatanidza kubuda kwekunze, kwemvura zhinji nehunyanzvi hwatinotonzwisisa. Sedanho rekutanga, edza kugadzira hwaro hwesainzi, wozoigadzirisa kuti ishandiswe kune mitsva yebudiriro mazano. Ini ndinofunga iyo blockchain yakanakira basa reiyo nyowani yekuvandudza pfungwa.

Alexei: Sei uchifunga kuti izvi zviri kuitika? Nekuti vanhu "kunze" havana chero zvipingamupinyi zvemukati munharaunda?

Maurice: Pane patani apa. Kana iwe ukaverenga nhoroondo yeImpressionists mukupenda uye unyanzvi mune zvese, ipapo pane imwe nguva maartist akakurumbira akaramba kufungidzira. Vaiti hwaive hudiki. Chizvarwa chakazotevera, iyi art yaimborambwa yakava chiyero. Zvandinoona mumunda wangu: vagadziri ve blockchain vaisafarira simba, mukupedzisa zvinyorwa uye indekisi yekududza, vaingoda kuita chimwe chinhu chakanaka. Saka vakagara pasi vakatanga kuzviita. Vakashaya humwe hudzamu hwekudzika kwehunyanzvi, asi izvo zvinogadziriswa. Zvakanyanya kuoma kuunza mazano matsva ekugadzira pane kururamisa uye kukudza vasina kukura zvakakwana. Nekuda kwevagadziri ava, ikozvino ndine chimwe chinhu chekuita!

Alexey: Izvi zvakafanana nemusiyano pakati pekutanga uye mapurojekiti enhaka. Isu tinogara nhaka yakawanda yekufunga miganhu, zvipingamupinyi, zvakakosha zvinodiwa, zvichingodaro.

Maurice: Enzaniso yakanaka inogoverwa komputa. Funga nezve blockchain sekunge yaive yekutanga uye yakagovaniswa komputa sekambani huru yakagadzwa. Distributed computing iri munzira yekutengwa uye kusanganiswa ne blockchain.

PhD pasi peBarbara Liskov

Vitaliy: Tichiri nemibvunzo yakawanda! Isu tanga tichitsvaga bio yako uye tikawana inonakidza chokwadi nezve PhD yako. Hongu, yakanga iri nguva refu yapfuura, asi musoro wacho unoratidzika kuva wakakosha. Wakagamuchira PhD yako pasi pekutariswa kwe Barbara Liskov! Barbara anozivikanwa zvakanyanya munharaunda yekuvandudza mutauro, uye munhu ane mukurumbira zvakanyanya. Zvine musoro kuti tsvagiridzo yako yaive mumunda wemitauro yekuronga. Wakashandura sei kuparallel computing? Sei wakasarudza kuchinja nyaya?

Maurice: Panguva iyoyo, Barbara neboka rake vakanga vachingoona nezvekombiyuta yakanga yagoverwa, iro rakanga riri pfungwa itsva zvikuru. Kwaivewo nevaiti kupatsanurwa komputa hakuna maturo, kutaurirana pakati pemakombiyuta hakuna zvakunoreva. Imwe yenyaya dzinotariswa mukugovaniswa komputa, iyo inovasiyanisa kubva pakati pemakomputa, ndeyekutadza kushivirira. Mushure mekutsvakurudza kwakawanda, takasarudza kuti mumutauro wepurogiramu yekombiyuta yakagoverwa, unoda kuva nechimwe chinhu chakafanana neatomic transactions, nokuti haungambove nechokwadi chokuti kudana kure kuchabudirira. Kana uchinge waita matransaction, pane dambudziko re concurrency control. Ipapo pakanga paine basa rakawanda pakuwana zvakanyanya parallel transactional data zvimiro. Ndakazoti ndapedza ndakaenda Carnegie Mellon ndokutanga kutsvaga musoro webasa. Zvakaitika kwandiri kuti komputa yakanga yatama kubva kumakomputa ega ega kuenda kune network yemakomputa. Kuenderera kwechisikigo kwekufambira mberi kwaizove multiprocessors - izwi rekuti "multi-core" rakanga risipo panguva iyoyo. Ndakafunga: chii chakaenzana neatomic transactions kune akawanda-core system? Zvechokwadi kwete kutengeserana, nokuti yakakura uye inorema. Ndomaziviro andakaita pfungwa iyi linearizability uye ndiwo maitiro andakauya nawo nese kumirira-yemahara sync. Kwaive kuedza kupindura mubvunzo wekuti chii chinonzi analogue yeatomic transactions yemultiprocessor system ine memory yakagovaniswa. Pakutanga kuona, basa iri rinogona kutaridzika rakasiyana, asi kutaura zvazviri kuenderera mberi kwedingindira rimwe chete.

Nyika yakamirira multi-core

Vitaly: Wakataura kuti pakanga paine mashoma akawanda-epakati makomputa panguva iyoyo, handiti?

Maurice: Vakanga vasipo. Paive neakati wandei anonzi symmetrical multiprocessors, ayo aive akabatana nebhazi rimwe chete. Izvo hazvina kunyatsoshanda, nekuti pese paigadzirwa kambani nyowani seizvi, Intel yaiburitsa imwechete processor yakapfuura iyo yakawanda.

Alexei: Izvi hazvireve here kuti munguva idzodzo dzekare, kwainyanya kudzidza dzidziso?

Maurice: Yakanga isiri dzidziso, asi ongororo yekufungidzira. Zvese izvi zvaive zvisiri zvekushanda neakawanda theorems, asi, isu tinoisa pamberi fungidziro pamusoro pezvivakwa izvo zvisipo panguva iyoyo. Ndizvo zvinoita tsvakurudzo! Hapana kambani ingadai yakaita izvi, zvese zvaive chimwe chinhu kubva kure ramangwana. Muchokwadi, izvi zvaive kusvika 2004, pakaonekwa ma-multi-core processors. Nekuda kwekuti ma processor anopisa, unogona kuita kuti processor iite diki, asi haugone kuzviita nekukurumidza. Nekuda kweizvi, pakanga paine shanduko kune akawanda-musimboti architectures. Uye zvadaro zvaireva kuti kamwe kamwe paive nekushandiswa kwese pfungwa dzatakanga tagadzira munguva yakapfuura.

Alexey: Sei uchifunga kuti ma-multi-core processors akaonekwa chete mumaXNUMXs? Saka sei kunonoka?

Maurice: Imhaka yekuganhurwa kwehardware. Intel, AMD, uye mamwe makambani akanaka kwazvo pakuwedzera processor kumhanya. Pane imwe nguva ma processor aita madiki zvekuti aisakwanisa kuwedzera kumhanya kwewachi zvakare nekuti ma processor anotanga kupisa. Iwe unogona kuita kuti zvive zviduku, asi kwete nekukurumidza. Chii chiri musimba ravo - pachinzvimbo chediki processor, inokodzera sere, gumi nematanhatu kana makumi matatu nembiri processors mune imwechete vhoriyamu yekesi, apo imwe chete yaishandiswa kukwana. Iye zvino une kuwanda uye nekukurumidza kutaurirana pakati pavo nekuti ivo vanogovana cache. Asi haugone kuvaita kuti vamhanye nekukurumidza - pane chaiyo yekumhanyisa muganho. Vanoramba vachivandudza zvishoma nezvishoma, asi kwete zvakanyanya. Mitemo yefizikisi yakapinda munzira.

Nyika itsva, matambudziko matsva. NUMA, NVM uye yekubira kwekuvaka

Alexei: Zvinonzwika zvine musoro. Nemapurosesa matsva e-multi-core kwakauya matambudziko matsva. Iwe nevamwe vako makatarisira matambudziko aya here? Zvichida wakambodzidzidza here? Muzvidzidzo zvedzidziso kazhinji hazvisi nyore kufanotaura zvinhu zvakadaro. Pakaitika matambudziko, kusvika pamwero wakadii akazadzisa tarisiro yako neyevamwe vako? Kana kuti dzaive nyowani uye iwe nevamwe vako maifanira kupedza nguva yakawanda muchigadzirisa matambudziko sezvaaimuka?

Vitaliy: Ini ndichawedzera kumubvunzo waAlexey: wakanyatsofanotaura zvivakwa zvevagadziri paunenge uchidzidza dzidziso?

Maurice: Kwete zvese 100%. Asi ini ndinofunga vandaishanda navo neni takaita basa rakanaka rekufanotaura yakagovaniswa-yeuko yakawanda-yakakosha. Ini ndinofunga isu takafanotaura nemazvo matambudziko ekugadzira parallel data zvimiro zvinoshanda zvisina kukiya. Aya ma data maumbirwo anga akakosha kune akawanda maapplication, kunyangwe asiri evose, asi kazhinji unotoda kukiya-yemahara data chimiro. Patakadzigadzira, vazhinji vaipokana kuti izvi hazvina musoro, kuti zvese zvinoshanda nemakiyi. Isu takafanoona zvakanaka kuti pachave neyakagadzirira-yakagadzirwa mhinduro kumatambudziko mazhinji ehurongwa uye matambudziko ekugadzirisa data. Paivawo nematambudziko akaoma kunzwisisa, akadai NUMA -Kusaenzana ndangariro kuwana. Muchokwadi, ivo havana kana kutariswa kusvika pakugadzirwa kweakawanda-musimboti processors nekuti ivo vaive vakanyanya kutaura. Nharaunda yetsvakurudzo yakashanda pamibvunzo yaiwanzofanotaurwa. Mamwe matambudziko ehardware akabatana nemagadzirirwo chaiwo aifanira kumirira mumapapiro - kutaura zvazviri, kutaridzika kwezvivakwa izvi. Semuenzaniso, hapana akanyatsoshanda paGPU-chaiyo data zvimiro nekuti iyo GPU yakanga isipo kare ikako. Kunyangwe basa rakawanda rakaitwa SIMD, aya algorithms akagadzirira kushandiswa nekukurumidza pakaonekwa hardware chaiyo. Zvisinei, hazvibviri kufanotaura zvose.

Alexey: Kana ndikanzwisisa nemazvo, NUMA imhando yekukanganisa pakati pemutengo, kuita uye zvimwe zvinhu. Pane pfungwa yekuti sei NUMA yanonoka kusvika?

Maurice: Ini ndinofunga NUMA iripo nekuda kwedambudziko nehardware inoshandiswa kugadzira ndangariro: kure kure izvo zvikamu zviri, zvinononoka kuwanikwa. Nekune rumwe rutivi, kukosha kwechipiri kweichi chidimbu ndiko kufanana kwendangariro. Naizvozvo, chimwe chehunhu hweparallel computing ndechekuti zvese zvinobatika zvakatyoka zvishoma. Dai kupinda kwaive kwakafanana, ndangariro dzese dzaizove dzakaenzana, asi izvi zvine hupfumi, uye pamwe hazvigoneke mumuviri. Saka kunetsana uku kunomuka. Kana iwe ukanyora chirongwa chako sekunge chiyeuchidzo chaive yunifomu, saka kazhinji ichave yakarurama. Mupfungwa yokuti hazvizopi mhinduro dzisina kururama. Asi kuita kwenyeredzi dzaro kubva kudenga hakuzobatiki. Saizvozvowo, kana iwe ukanyora spinlocks pasina kunzwisisa hutongi hwema cache, iyo yekuvhara pachayo ichave yakarurama, asi iwe unogona kukanganwa nezvekuita. Neimwe nzira, iwe unofanirwa kunyora zvirongwa zvinogara pamusoro peiyo yakareruka yekubvisa, asi iwe unofanirwa kupfuura vanhu vakakupa iyo yekubvisa: iwe unofanirwa kuziva kuti pasi pekubvisa pane humwe hutongi hwendangariro, kuti pane. bhazi pakati pako nendangariro iyi, zvichingodaro. Nekudaro, pane kumwe kupokana pakati pezvinyorwa zvinobatsira pachezvazvo, izvo zvinotitungamira kumatambudziko chaiwo uye epragmatic.

Vitaliy: Zvakadini neramangwana? Unogona here kufanotaura kuti ma processors achawedzera sei? Pane pfungwa yekuti imwe yemhinduro ndeye transactional memory. Pamwe une chimwe chinhu mustock.

Maurice: Pane matambudziko makuru maviri ari mberi. Imwe ndeyekuti ndangariro dzakabatana chinhu chinoshamisa chekubvisa, asi chinotanga kuparara mune dzakakosha zviitiko. Saka, semuenzaniso, NUMA muenzaniso mupenyu wechimwe chinhu kwaunogona kuramba uchinyepedzera kuti ndangariro dzakafanana dziripo. Chaizvoizvo - kwete, kuita kunoita kuti ucheme. Pane imwe nguva, vagadziri vanozofanira kusiya zano rekubatana ndangariro yekuvaka, haugone kunyepedzera zvachose. Mamodheru matsva ehurongwa anozodiwa ari nyore kushandisa uye ane simba rakakwana kuita kuti iyo yepasi hardware ishande. Uku kukanganisa kwakaoma kwazvo, nekuti kana ukaratidza vanogadzira zvirongwa izvo zvinonyatso shandiswa muhardware, vanopenga. Zvakanyanya kuoma uye hazvitakurike. Kana iwe ukaratidza interface iri nyore kwazvo, kuita kunenge kwakashata. Nekudaro, dzakawanda dzakaomesesa dzakaomesesa dzinozoda kuitwa kuitira kuti upe anobatsira ehurongwa emhando anoshanda kune akakura chaizvo akawanda-musimboti processors. Handina chokwadi chekuti chero munhu kunze kwenyanzvi yakamanikana anokwanisa kuronga pa2000-core komputa. Uye kunze kwekunge iwe uri kuita yakanyanya hunyanzvi kana sainzi komputa, cryptography kana chero, hazvisati zvanyatsojeka maitiro ekuzviita nemazvo. 

Imwe nzira yakafanana inyanzvi yezvivakwa. Graphics accelerators ave aripo kwenguva yakareba, asi atove emhando yemhando yemuenzaniso wekuti iwe unogona sei kutora yakasarudzika rudzi rwemakomputa womhanyisa pane yakatsaurirwa chip. Izvi zvinowedzera matambudziko ayo: unotaurirana sei nemudziyo wakadaro, unouronga sei. Munguva pfupi yapfuura ndakashanda pamabasa munharaunda pedyo nememory computing. Iwe unotora diki processor woinamatira kune yakakura chunk yendangariro kuitira kuti ndangariro imhanye paL1 cache kumhanya, uye yobva yataurirana nemudziyo senge. TPU - processor iri kubatikana kurodha mabasa matsva mumusoro wako wekurangarira. Iko kuvandudza kwe data zvimiro uye kutaurirana mapuroteni emhando iyi yechinhu chimwe chinonakidza muenzaniso. Nekudaro, ma processor akasarudzika uye Hardware achave ari pasi pekuvandudzwa kwenguva yakati rebei.

Alexey: Zvakadini nekusagadzikana ndangariro (chiyeuchidzo chisingaiti)?

Maurice: Uyu mumwe muenzaniso wakanaka! NVM ichachinja zvakanyanya nzira yatinotarisa nayo zvinhu senge data data. Non-volatile memory, neimwe nzira, inovimbisa kukurumidza kuita zvinhu. Asi hazvizoite kuti hupenyu huve nyore, nekuti mazhinji ma processor, cache, uye marejista achiri kushanduka. Paunotanga mushure mekuparara, mamiriro ako uye ndangariro yako hazvizove zvakangofanana neasati aparara. Ndinotenda zvikuru kune vanhu vanobatanidzwa muNVM - kwenguva yakareba, vatsvakurudzi vachave nechimwe chinhu chekuita, vachiedza kuongorora mamiriro ekururama. Macomputing akarurama kana achigona kupona nekuparara umo zviri mukati mecache nemarejista zvinorasika, asi ndangariro huru inoramba yakasimba.

Compilers vs CPUs, RISC vs CISC, yakagovaniswa ndangariro vs meseji kupfuura

Vladimir: Iwe unofungei nezve ma compilers against processors dambudziko maererano nemirairo yakatarwa? Kutsanangurira avo vasiri muchidzidzo: kana tikaenda kundangariro dzisina kuenzana kana chimwe chinhu chakadaro, tinogona kushandisa yakapfava seti yemirairo uye kubvunza muunganidzi kuti abudise kodhi yakaoma iyo inogona kutora mukana wemabhenefiti. Kana isu tinogona kuenda neimwe nzira: shandisa mirairo yakaoma uye kumbira processor kuti idzore mirairo uye kuita mamwe manipulations nawo. Unofungei nezvazvo?

Maurice: Handina mhinduro yomubvunzo iwoyo. Gakava iri rave nemakore makumi mana richiitika. Paive nenguva pakati zvakapfupikiswa command set uye zvakaoma hondo dzevagari vemo dzakarwiwa neboka rezvikwata. Kwechinguva, vanhu veRISC vakakunda, asi Intel yakavakazve injini dzavo kuitira kuti yakaderedzwa yekuraira seti ishandiswe mukati, uye iyo yakazara yakatumirwa kunze. Zvichida iyi inyaya umo chizvarwa chitsva chega chega chinofanira kuwana chayo kubvumirana uye kuita sarudzo dzayo. Zvakaoma zvikuru kufanotaura kuti ndechipi chezvinhu izvi chichava nani. Saka chero kufanotaura kwandichaita kuchave kwechokwadi kwenguva yakati, uye ndozove nhema zvakare kwekanguva, uyezve ichokwadi zvakare.

Alexey: Zvakawanda sei kune indasitiri muhuwandu kuti mamwe mazano anokunda kwemakumi emakore akati wandei uye anorasikirwa mune inotevera? Pane mimwe mienzaniso yechinjo dzenguva nenguva dzakadaro here?

Maurice: Panyaya yekombiyuta yakaparadzirwa, pane vanhu vanotenda mazviri ndangariro dzakagoverwa uye vanhu vanotenda mazviri kuchinjana meseji. Pakutanga mucomputing yakagoverwa, parallel computing zvinoreva kupfuura meseji. Ipapo mumwe munhu akawana kuti ndangariro dzakagovaniswa dzakaita kuti kuronga kuve nyore. Rimwe divi rakati ndangariro dzakagovaniswa dzakanyanya kuomarara, nekuti dzinoda makiyi nezvimwe zvakadaro, saka zvakakodzera kutamira kumitauro uko pasina meseji inopfuura ichingovapo. Mumwe munhu akatarisa zvakabuda mazviri ndokuti: β€œWow, kuita meseji uku kunoratidzika kunge kwakafanana nendangariro yakagovaniswa, nekuti unogadzira akawanda, mazhinji emamodule madiki aya, anotumira mameseji kune mumwe nemumwe, uye iwo ese. deadlock, - ngatiite yakagovaniswa memory database zviri nani!". Zvose izvi zvinodzokororwa kakawanda, uye hazvibviri kutaura kuti rimwe remapato harina kujeka. Rimwe divi richagara richitonga, nekuti kana rimwe rawo rikapotsa rakunda, vanhu vanotangazve kugadzira nzira dzekuvandudza imwe.

Hunyanzvi hwekunyora brittle multi-threaded code

Alexei: Izvi zvinonakidza chaizvo. Semuenzaniso, kana isu tichinyora kodhi, zvisinei kuti ndeupi mutauro wechirongwa, isu tinowanzo gadzira zvipfupi semasero anogona kuverengwa nekunyorwa. Asi muchokwadi, pane imwe nhanho yemuviri, zvingaite sekutumira meseji pahadhi bhazi pakati pemakomputa akasiyana nemamwe madivayiri. Zvinoitika kuti pane basa pamatanho ese ekubvisa kamwechete.

Maurice: Ichokwadi chose kuti ndangariro dzakagovaniswa dzakavakirwa pane meseji inopfuura - mabhazi, cache, zvichingodaro. Asi zvakaoma kunyora zvirongwa uchishandisa meseji inopfuura, saka iyo Hardware inonyepa nemaune, ichiita kunge une imwe mhando yeunifomu ndangariro. Izvi zvinozoita kuti zvive nyore kwauri kunyora akareruka, echokwadi zvirongwa zvisati zvatanga kudonha. Wobva wati: zvinoita sekunge inguva yekuita hushamwari necache. Uye ndipo paunotanga kunetseka nezve nzvimbo ye cache, uye tobva taenda. Neimwe nzira, iwe uri kutyora iyo abstraction: iwe unoziva haingori flat, yunifomu ndangariro, uye iwe uchashandisa iyo ruzivo kunyora cache-inoshamwaridzika zvirongwa. Izvi ndizvo zvaunofanira kuita mumabasa chaiwo. Uku kukakavara pakati peiyo yakanaka yakapfava yakanaka yekubvisa iwe yawakapihwa uye kuomesesa kuomesesa kweiyo yepasi Hardware ndiko uko munhu wese anozviitira kubvumirana. Ndine bhuku pamusoro peakawanda uye kuwiriranisa, uye rimwe zuva ndaizonyora chitsauko pane data zvimiro mukati. java.util.concurrent. Kana ukavatarisa, zvinhu zvakadai skip lists Aya mabasa anoshamisa ehunyanzvi. (Chinyorwa chemupepeti: avo vanoziva mutauro weJava vanofanirwa kutarisa kuitisa ConcurrentSkipListMap, Unogona kutarisa zvinongedzo zve API ΠΈ source code) Asi kubva pakuona kwangu, zvingave zvisina basa kuvaratidza kuvadzidzi, nokuti chimiro che data chakadaro imhando yemukomana ari musekisi, anomhanya patambo yakakoswa pamusoro pegomba rebheya. Kana iwe ukashandura kunyange imwe diki diki, iyo yose chimiro ichadonha. Iyi kodhi inokurumidza uye inoyevedza nekuti yakanyatso kunyorwa, asi kudiki kudiki kunotungamira mukutadza zvachose. Kana ndikapa iyi kodhi semuenzaniso kuvadzidzi, ivo vanobva vangoti: Ini ndinogona kuita izvi zvakare! Uye ipapo imwe ndege ichadonha kana kuti nuclear reactor ichaputika, uye ichave mhosva yangu kuti handina kuvapa ruzivo rwakawandisa panguva chaiyo.

Alexey: Pandakanga ndichiri mudiki, kazhinji ndaiedza kudzidza kodhi yaDoug Lee, semuenzaniso, java.util.concurrent, nekuti yakavhurika sosi, zviri nyore kwazvo kuiwana uye edza kunzwisisa zviri kuitika ipapo. Izvo hazvina kunyatsobuda zvakanaka: kazhinji, hazvinyatso kujeka kuti sei Doug akasarudza kuita chimwe chinhu nenzira iyi, apo vamwe vese vanozviita zvakasiyana. Unotsanangura sei zvinhu izvi kuvadzidzi vako? Pane imwe nzira chaiyo yekutsanangura iwo chaiwo madhiri eiyo hardcore algorithm, semuenzaniso? Unozviita sei?

Maurice: Vadzidzisi vekudhirowa vane clichΓ© yavanorangarira pekutanga: kana iwe uchida kudhirowa sePicasso, unofanira kutanga wadzidza kudhirowa mifananidzo yakapfava yechokwadi, uye kana waziva mitemo ndipo paunotanga kuityora. Kana iwe ukabva watanga nekutyora mitemo, iwe unowana tsvina. Chekutanga, ndinodzidzisa vadzidzi manyorero akareruka, akarurama kodhi pasina kunetseka nezvekuita. Ndiri kuti pane nyaya dzakaomarara dzenguva dzakavanda pano, saka usazvinetse nezve cache, usazvinetse nezve mamodheru endangariro, ingoita shuwa kuti zvese zvinoshanda nemazvo. Zvakatooma kare: Kuronga kwemazuva ano hakusi nyore pachezvako, kunyanya kuvadzidzi vatsva. Uye kana vane intuition pamusoro pekunyora zvirongwa zvakarurama, ndinoti: tarisa izvi zviviri zvinoshandiswa spinlock: imwe inononoka, uye yechipiri hainawo kunaka, asi yatove nani. Nekudaro, masvomhu aya maviri algorithms akafanana. Muchokwadi, mumwe wavo anoshandisa cache nzvimbo. Imwe yacho inotenderera data yakavharirwa munharaunda, uye imwe ichidzokorodza kuita maoparesheni achifamba nemubhazi. Iwe haugone kunyora kodhi inoshanda kana iwe usingainzwisisi, kana iwe usingazivi nzira yekutyora iyo abstraction uye tarisa pane iri pasi chimiro. Asi hauzokwanisi kutanga kuzviita pakarepo. Kune vanhu vanotanga kuita izvi ipapo ipapo uye vanotenda muhungwaru hwavo, kazhinji zvinopera zvakaipa nekuti havanzwisise misimboti. Hapana anodhirowa saPicasso kana kunyora zvirongwa zvakaita saDoug Lee, achangobva kuyunivhesiti, musvondo rake rekutanga. Zvinotora makore kuti usvike padanho iri rezivo.

Alexey: Zvinoitika kuti iwe unokamura dambudziko muzvikamu zviviri: yekutanga ndeyechokwadi, yechipiri kuita?

Maurice: Ndizvozvo. Uye, muhurongwa ihwohwo. Chikamu chedambudziko ndechekuti vadzidzi vatsva havazive kuti kurongeka kwakaoma kuwana. Vanoti pakutanga pakuona: izvi zviri pachena kuti ndizvozvo, zvinongosara kuti zvikurumidze. Saka dzimwe nguva ndinovaudza nezve algorithm isiriyo seyakanaka.

Maitiro ekudzidzisa vadzidzi manyorero akaomesesa akawanda-treaded kodhi

Alexei: Kungoona kana vachigona kuona hunyengeri?

Maurice: Ndinogara ndichikuyambirai kuti dzimwe nguva ndichauya nealgorithm isiriyo. Haufanire kunyengera vanhu. Ndinokurudzira kuti vasave nechokwadi nezveruzivo. Kana ndikaudza chimwe chinhu uye ndichiti: "tarira, izvi zviri pachena" - ichi chiratidzo chokuti pane imwe nzvimbo vari kuedza kukunyengera iwe, uye unofanira kutanga kubvunza mibvunzo. Zvadaro, ndinoedza kukurudzira vadzidzi kuti varambe vachibvunza mibvunzo, uye vobva vakurumidza: "chii chinoitika kana tikasiya zvose sezvazviri?". Uye vanobva vaona kukanganisa. Asi kunyengetedza vadzidzi kuti vanofanirwa kunetseka nezve kurongeka kwakaoma kupfuura zvazvinoita pakutanga. Vazhinji vevadzidzi ava vanouya neruzivo rwekuronga muchikoro chesekondari, vamwe vakatowana mabasa uye vakarongwa ipapo, uye vese vazere nekuzvivimba. Ichi chimwe chinhu chemauto: iwe unofanirwa kutanga wachinja mafungiro avo kuti uvanyengetedze kuti vasvike nemoyo murefu mhinduro yematambudziko ari kubuda. Kana kuti zvimwe zvakaita semamongi echiBhudha: kutanga vanodzidza kufunga nezve kurongeka, uye kana vangonzwisisa nzira dzekufunga nezve kurongeka, vanobvumidzwa kuenda kune inotevera nhanho uye kutanga kunetseka nezve kuita.

Alexey: Ndiko kuti, dzimwe nguva unoratidza vadzidzi vasiri kushanda mienzaniso, nekuda kwaunowana mhinduro inoratidza kana ivo vanonzwisisa musimboti wedambudziko, kana vachigona kuwana kodhi isiriyo uye mhedzisiro isiriyo. Zvakanaka, vadzidzi vanowanzofadza kana kugumbuka sei?

Maurice: Kanenge nguva dzose vadzidzi vanozowana mhosho. Kana vakatsvaga zvishoma nezvishoma, ndinobvunza mibvunzo inotungamira, uye pano zvakakosha kuti unzwisise kuti kana vasina kumbonyengerwa, vanozotanga kusafunga kuona mazwi ako sechokwadi chekupedzisira. Vanobva vabhowekana ndokurara vachiverenga Facebook palaptop yavo panguva yekirasi. Asi kana ukavazivisa pachine nguva kuti vachabiridzirwa uye vacharatidzika semapenzi kana vasinganzwisisi chitsotsi, vanova vakangwarira zvikuru. Izvi zvakanaka munzira dzakawanda. Ndinoda kuti vadzidzi vasangobvunza manzwisisiro avanoita nyaya, asi kuti vabvunzewo chiremera chemudzidzisi. Pfungwa ndeyokuti mudzidzi anogona kusimudza ruoko rwake chero nguva uye oti: Ndinofunga kuti zvawabva kutaura hazvina kunaka. Chinhu chakakosha pakudzidza. Handidi kuti mumwe wevadzidzi vagare uye vakanyarara vafunge ivo pachavo: zvose izvi zvinoratidzika sezvisina maturo zvakakwana, asi zvinotyisa kusimudza ruoko rwako, uye zvechokwadi, iye purofesa, saka zvose zvaanotaura ndezvechokwadi. Naizvozvo, kana vakanyeverwa pachine nguva mberi kuti hachisi chinhu chiri chose chataurwa chiri chechokwadi hacho, vane kurudziro yokupa ngwariro huru kumashoko acho. Ndinotaura pachena kuti kusimudza ruoko nekubvunza mibvunzo kwakanaka. Mubvunzo wako unogona kunzwika seupenzi kana kusaziva, asi kazhinji ndiyo nzira iyo mibvunzo yakanakisa inouya.

Alexei: Zvinonakidza chaizvo. Kazhinji vanhu vane rumwe rudzi rwepfungwa chipingamupinyi chinovatadzisa kubvunza purofesa mubvunzo. Kunyanya kana pane vanhu vakawanda muimba, uye munhu wose anotya kuti kukurukura mubvunzo wako weupenzi kunotora nguva yevanhu vose ava. Pane mazano ekugadzirisa izvi here?

Maurice: Ndinowanzomira ndobvunza mibvunzo yechinyakare. Chero chirevo chichave chechokwadi, kana kuti vangagadzirisa sei dambudziko ririkukurukurwa. Iri idanho rinokosha, kunyanya pakutanga kwechirongwa, apo vanhu vanonyara kutaura kunyange chinhu chidiki. Iwe unobvunza vadzidzi mubvunzo uye hapana chimwe chaunozotaura. Pane runyararo, munhu wese anosimudza zvishoma, kukakavara kunowedzera, zvino kamwe-kamwe mumwe anoputsika, anoputsa uye anotaura mhinduro. Saka iwe unoburitsa mamiriro acho ezvinhu: zvinova zvakanyanya kuoma uye kusagadzikana kuramba wakanyarara pane kupindura! Iyi ndiyo dhizaini yekudzidzisa. Mudzidzisi wese ari munyika anofanira kuziva maitiro ekuita izvi.

Alexey: Iye zvino tine zita rakanaka rehurukuro iyi: "zviri nyore kupindura pane kuramba wakanyarara."

Vitaly: Rega ndikubvunze chimwezve chinhu. Uri kushanda pahumbowo hwepamusoro. Iwe wakatopinda sei mune izvi, nekuti yakagoverwa komputa uye topology zvinhu zvakasiyana zvachose!

Maurice: Pane ukama hwakavanzika ikoko. Pandaiva mudzidzi uye ndichidzidza masvomhu, ndakadzidza masvomhu chaiwo. Ndakanga ndisingafariri zvemakombiyuta kusvika pakupera kwezvidzidzo zvangu uye ndakazviwana ndiri mukuda kwekukurumidzira kutsvaga basa. Somudzidzi, ndakadzidza algebraic topology. Makore mazhinji gare gare, ndichishanda pane dambudziko rakadanwa "K-Set Chibvumirano Dambudziko", ndakashandisa magirafu kuenzanisira dambudziko uye, sezvazvairatidzika panguva iyoyo, ndakawana mhinduro. Waingofanira kugara pasi wotenderera kuverenga. Edza kutsvaga mhinduro yakakodzera pagirafu iri. Asi algorithm yangu haina kushanda: zvakazoitika kuti aigara achimhanya mumadenderedzwa. Nehurombo, hapana chimwe cheizvi chaigona kutsanangurwa mumutauro wepamutemo weiyo graph theory, mutauro uyo wese masayendisiti ekombuta anoziva. Uye ipapo ndakarangarira kuti makore mazhinji apfuura, kunyangwe mumakirasi etopology, taishandisa pfungwa "Simplicial complex", inova mubatanidzwa wemagirafu kune hukuru hwepamusoro. Ipapo ndakazvibvunza kuti: chii chinoitika kana tikagadzirisa dambudziko maererano neakareruka akaomarara? Izvi zvakava kiyi. Nekushandisa chimiro chine simba, dambudziko rinoerekana rave nyore. Vanhu vakatambura nazvo kwenguva yakareba, vachishandisa magirafu, asi hapana chavakakwanisa kuita. Uye kunyange iye zvino havakwanisi - mhinduro yakarurama yakanga isiri iyo algorithm, asi uchapupu hwekusakwanisa kugadzirisa dambudziko. Ndiko kuti, algorithm yakadaro haipo. Asi humbowo hwese hwezvisingagoneki inobva pazviumbwa zviri nyore, kana kuti pazvinhu izvo vanhu vanonyepedzera kusarangarira zvinhu zviri nyore. Kubva pakuti iwe wakadana chimwe chinhu nezita idzva, haarasikirwi nechinhu chayo.

Vitaliy: Zvinoratidza kuti wakaita rombo rakanaka?

Maurice: Pamusoro perombo rakanaka chido. Zvinoreva, haufanirwe kukanganwa "zvisina basa" zvinhu zvawakadzidza kare. Kuwanda kwezvinhu zvisina basa zvaunodzidza, ndiko kuwedzera kweruzivo rwaunokwanisa kuburitsa kana watarisana nedambudziko idzva. Rudzi urwu rwemhando yekuenzanisa maitiro akakosha nekuti ... Ngatitii, iketani: pakutanga, ndakaona kuti magirafu haana kunyatsoshanda kana kusashanda zvachose, akandiyeuchidza chimwe chinhu kubva makore masere apfuura. uye makore evadzidzi patakadzidza zvese izvi zvivakwa zviri nyore . Nekudaro, izvi zvakandibvumidza kuwana bhuku rangu rekare retopology uye kuriisa mumusoro mangu. Asi dai kusiri kweruzivo rwekare, ndingadai ndisina kumbobvira ndaita chero nzira mukugadzirisa dambudziko rekutanga.

Shanduro itsva yeThe Art yeMultiprocessor Programming

Alexei: Wataura mazwi mashoma nezvebhuku rako. Zvichida hachisi chakavanzika chikuru chawakanyora bhuku rine mukurumbira pasi rose pamultithreading, "Iyo Art yeMultiprocessor Programming". Atova nemakore anenge 11 uye kubva ipapo akabuda chete  yakadzokororwa patsva. Pachava neshanduro yechipiri here?

Maurice: Zvakanaka kuti wabvunza! Zvichava munguva pfupi, mumwedzi mitatu kana zvakadaro. Kune vamwe vanyori vaviri, isu takawedzera zvimwe zvakawanda, takavandudza chikamu cheforogo / kujoina parallelism, takanyora chikamu paMepuReduce, takawedzera zvinhu zvitsva zvakawanda uye takarasa zvisina basa - chimwe chinhu chainakidza panguva yekunyora. yekutanga, asi haisisiri nhasi. Rakava bhuku rakadzokororwa zvakakomba.

Alexei: Zvese zvakatoitwa, zvinongosara kuburitsa?

Maurice: Zvitsauko zvishoma zvichiri kuda kuvandudzwa. Muparidzi wedu (ndinofunga kuti anotivenga kare) achiri kuedza kuratidza kuti tinofanira kushanda nokukurumidza. Isu tasara kumashure kwenguva. Sezvineiwo, tingadai takaita bhuku iri makore akati wandei apfuura.

Alexey: Pane mukana here wekuwana shanduro itsva yebhuku pamberi peKisimusi?

Maurice: Ndicho chinangwa chedu! Asi ndakafanotaura kukunda kakawanda zvekuti hapana anonditenda zvakare. Pamwe haufanire kundivimba zvakanyanya panyaya iyi futi.

Alexei: Chero zvazvingava, idzi inhau dzinonakidza. Ndakafarira chaizvo chinyorwa chekutanga chebhuku. Unogona kuti ndiri fani.

Maurice: Ndinovimba kuti chinyorwa chitsva ichi chinokodzera chido chako chakasimba, ndinokutendai!

Mashandisiro akaitwa ndangariro yekutengeserana

Vitaly: Mubvunzo unotevera ndewe transactional memory. Sekunzwisisa kwandinoita, uri piyona mundima iyi, wakaigadzira panguva iyo pasina aifunga nezvezvinhu zvakadaro. Sei wakasarudza kutamira munzvimbo iyi? Sei kutengeserana kwakakosha kwauri? Waifunga kuti rimwe zuva vachaiswa musimbi here?

Maurice: Ndakaziva nezvekutengeserana kubva pandakapedza kudzidza.

Vitaliy: Hongu, asi aya akasiyana kutengeserana!

Maurice: Ndakashanda naElliott Moss pakuunganidzwa kwemarara kusingavharike. Dambudziko redu raive rekuti isu taida kushandura mazwi mashoma mundangariro uyezve maalgorithms aibva aita nyore, uye mamwe acho aizonyanya kushanda. Kushandisa enzanisa-uye-chinjana nokuti load-link/store-conditionalyakapihwa neyakafanana architecture, zvinokwanisika kuita chimwe chinhu, asi haina kunyatso shanda uye yakashata nekuti iwe unofanirwa kutarisana nemazinga ekusatungamira. Ndinoda kushandura mazwi endangariro uye ndinofanira kushandura nekuti ini ndinogona kungochinja chinongedzo chimwe chete, saka vanofanirwa kunongedza kune imwe mhando yedhairekitori-yakafanana chimiro. Takataura pamusoro pekuti zvingave zvakanaka sei kana tikakwanisa kuchinja hardware kuitira kuti ikwanise kurekodha panguva imwe chete. Elliot anoita kunge aona izvi: kana iwe ukatarisa cache coherency protocol, ivo vanotopa akawanda emabasa anodiwa. Mukutengeserana kwetarisiro, iyo cache coherency protocol inozoona kuvepo kwekupokana kwenguva uye cache ichave. zvisizvo. Chii chinoitika kana iwe uchifungidzira uchitanga kutengeserana pane cache yako uye kushandisa maitiro eiyo coherence protocol kuona kusawirirana? Iyo yekufungidzira hardware architecture yaive nyore kugadzira. Saka takanyora izvozvo kutanga kudhindwa nezve transactional memory. Panguva imwe cheteyo, kambani yandaishandira, Digital Equipment Corporation, yakanga ichigadzira purosesa itsva ye64-bit inonzi Alpha. Uye saka ndakaenda ndokunopa mharidzo kuchikwata cheAlfa chekuvandudza nezve yedu inoshamisa yekushandura ndangariro, uye ivo vakabvunza: ndeipi imwe mari ichawana kambani yedu kana tikaisa zvese izvi zvakananga muprocessor? Uye ini ndakanga ndisina zvachose mhinduro kune izvozvo, nekuti ini ndiri tekinoroji, handisi munhu wekushambadzira. Ndakashaya chekutaura. Havana kunyanya kufadzwa kuti hapana chandaiziva.

Vitaly: Mabhirioni! Ingoti "mabhiriyoni"!

Maurice: Ehe, ndizvo zvandaifanira kutaura. Zvino, munguva yekutanga uye zvese izvo, ndinoziva kunyora bhizinesi chirongwa. Kuti iwe unogona kureva nhema zvishoma nezvehukuru hwekugona purofiti. Asi mazuva iwayo zvaiita sezvisina maturo, saka ndakangoti, "Handizivi." Kana iwe ukatarisa nhoroondo yekudhindwa pamusoro pekuyeuka kwekutengeserana, uchaona kuti mushure megore pakanga pane zvinyorwa zvakawanda, uye kwemakore anenge gumi hapana akataura nyaya iyi zvachose. Iwo makotesheni akaonekwa kutenderera 2004, apo chokwadi akawanda-musimboti akatanga. Vanhu pavakaona kuti kunyora kodhi yakafanana kunogona kuita mari, tsvakiridzo itsva yakatanga. Ravi Rajwar akanyora imwe nyaya, iyo neimwe nzira yakaunza mainstream kune pfungwa yetransactional memory. (Editor's Note: Ichi chinyorwa chine yechipiri vhezheni yakaburitswa muna 2010 uye inowanikwa mahara sePDF) Kamwe kamwe, vanhu vakaziva kuti zvese izvi zvinogona kushandiswa sei, kuti vanogona sei kukurumidzira maalgorithms echinyakare nemakiyi. Muenzaniso wakanaka wechimwe chinhu icho munguva yakapfuura chaiita sechinetso chedzidzo chinonakidza. Uye hongu, dai iwe wakandibvunza panguva iyoyo kana ndaifunga kuti izvi zvose zvaizova zvakakosha mune ramangwana, ndingadai ndakati: hongu, asi apo chaizvoizvo hazvisi pachena. Pamwe mumakore makumi mashanu? Mukuita, zvakazongove makore gumi chete. Zvakanaka chaizvo kana ukaita chimwe chinhu, uye mumakore gumi chete vanhu vanozviona.

Sei zvakakosha kuita tsvakiridzo mumunda wekugoverwa komputa

Vitaly: Kana tikataura nezve tsvagiridzo nyowani, chii chaungapa vaverengi - yakagoverwa komputa kana yakawanda-yakakosha uye nei? 

Maurice: Zviri nyore kuwana akawanda-musimboti processor mazuva ano, asi zvakanyanya kuoma kumisa yechokwadi yakagoverwa system. Ndakatanga kuzvishandira nekuti ndaida kuita zvakasiyana nePhD yangu. Iri ndiro zano randinogara ndichipa kune vanotanga: usanyore yekutevera dissertation - edza kuenda munzira nyowani. Uyezve, multithreading iri nyore. Ndinogona kuedza paforogo yangu ndichimhanya palaptop pasina kumuka pamubhedha. Asi kana ini kamwe-kamwe ndaida kuumba chaiyo yakagoverwa system, ndaizofanira kuita basa rakawanda, kukwezva vadzidzi, zvichingodaro. Ndiri munhu ane usimbe uye ndingade kushanda pane multi-core. Kuedza ne-multi-core systems zvakare nyore pane kuedza neakagoverwa, nokuti kunyange muupenzi hunoparadzirwa system kune zvinhu zvakawanda zvekutonga.

Vitaliy: Uri kuitei izvozvi, uchitsvaga blockchain? Ndezvipi zvinyorwa zvaunofanira kutanga wafunga nezvazvo?

Maurice: Ndichangobuda nyaya yakanaka kwazvoizvo zvandakanyora nemudzidzi wangu, Vikram Saraf, zvakanangana neiyo Tokenomcs conferences muParis masvondo matatu apfuura. Ichi chinyorwa chine nezve anobatsira akagoverwa masisitimu umo isu tinokurudzira kuita Ethereum yakawanda-shinda. Iye zvino zvibvumirano zvakangwara (kodhi inomhanya pa blockchain) inoitwa sequentially. Isu takanyora chinyorwa kare chakataura nezve nzira yekushandisa fungidziro kutengeserana kukurumidzira maitiro. Takatora mazano akawanda kubva kune software transactional memory uye takati kana iwe ukaita aya mazano chikamu cheEtherium virtual muchina, ipapo zvese zvichashanda nekukurumidza. Asi nekuda kweizvi zvinodikanwa kuti hapana kukakavara kwedata muzvibvumirano. Uye isu takafunga kuti muhupenyu chaihwo hapana kupesana kwakadaro. Asi isu hatina kuwana mukana wekuziva. Ipapo zvakazoitika kwatiri kuti takanga tine makore angangoita gumi enhoroondo yekontrakiti chaiyo pamaoko edu, saka takaburitsa Etherium blockchain uye tikashamisika: chii chaizoitika kana zvinyorwa zvenhoroondo izvi zvakamira zvakafanana? Takawana kuwedzera kukuru kwekumhanya. Mumazuva ekutanga eEtherium, kukurumidza kwakawedzera zvakanyanya, asi nhasi zvinhu zvose zvakatonyanya kuoma, nokuti pane zvibvumirano zvishomanana uye mukana wekupokana pamusoro pe data inoda serialization yave yakakwirira. Asi izvi zvese ibasa rekuyedza rine data chaiyo yenhoroondo. Chinhu chakanaka nezve blockchain ndechekuti inorangarira zvese nekusingaperi, saka unogona kudzokera kumashure nenguva uye kudzidza zvaizoitika kana tikashandisa mamwe maalgorithms kumhanyisa kodhi. Vanhu vekare vangadai vakafarira sei pfungwa yedu itsva. Zviri nyore uye zvinonakidza kuita tsvakiridzo yakadaro, nekuti pane chinhu chinotarisa zvese uye chinorekodha zvese. Ichi chatova chimwe chinhu chakafanana nesociology pane kuvandudzwa kwealgorithms.

Iko kuvandudzwa kwealgorithms kwakamira uye maitiro ekurarama

Vitaly: Nguva yemubvunzo wekupedzisira wedzidziso! Zvinonzwa sekunge kufambira mberi mumakwikwi e data zvimiro zviri kudzikira gore rega rega? Iwe unofunga isu tasvika pakakwirira mukunzwisisa kwedu kwe data zvimiro, kana pachava nekumwe kuvandudzwa kukuru? Zvichida pane mamwe mazano akachenjera anogona kuchinja zvachose zvinhu zvose?

Maurice: Tinogona kunge tasvika pakakwirira mune data zvimiro zvechinyakare zvivakwa. Asi zvimiro zvedata zvezvivakwa zvitsva zvichiri nzvimbo inovimbisa. Kana iwe uchida kugadzira data zvimiro zve, toti, hardware accelerators, ipapo GPU data zvimiro zvakasiyana kwazvo neCPU data zvimiro. Paunenge uchigadzira data zvimiro zve blockchains, iwe unofanirwa kuhashi zvidimbu zve data wobva wazviisa mune chimwe chinhu chakadai merkle tree, kudzivirira manyepo. Pakave nekuwanda kwebasa munzvimbo iyi nguva pfupi yadarika, vazhinji vari kuita basa rakanaka kwazvo. Asi ini ndinofunga zvichaitika ndezvekuti zvivakwa zvitsva uye maapplication matsva zvinotungamira kune nyowani data zvimiro. Zvishandiso zvekare uye zvechinyakare zvivakwa - pamwe hapasisina nzvimbo yakawanda yekutsvagisa zvakare. Asi kana ukabuda mugwara rakarohwa uye ukatarisa kumucheto, uchaona zvinhu zvinopenga izvo zvisingatarisirwe nevakawanda - ndipo panoitika zvinhu zvese zvinonakidza.

Vitaly: Naizvozvo, kuti ndive muongorori ane mukurumbira, ndaifanira kugadzira yangu yekuvakisa πŸ™‚

Maurice: Unogona "kuba" chivako chitsva chemumwe munhu - zvinoita sezviri nyore!

Shanda kuBrown University

Vitaliy: Ungatiudze zvimwe nezvazvo Brown Universitymauri kushanda? Hazvina zvakawanda zvinozivikanwa nezvake mumamiriro ehunyanzvi hweruzivo. Zvisingasviki nezveMIT, semuenzaniso.

Maurice: Brown University ndeimwe yemayunivhesiti ekare muUnited States. Ndinofunga kuti Harvard chete ndiye ati kurei. Brown chikamu chezvinonzi ivy leagues, inova muunganidzwa wemayunivhesiti ekare sere. Harvard, Brown, Cornell, Yale, Columbia, Dartmouth, Pennsylvania, Princeton. Iyi imhando yekare, diki uye diki yunivhesiti yearistocratic. Chinonyanya kukoshesa dzidzo yeunyanzvi. Haisi kuyedza kuita seMIT, MIT inonyanya hunyanzvi uye hunyanzvi. Brown inzvimbo yakanaka yekudzidza Russian Literature kana Classical Greek uye, hongu, Computer Science. Inotarisa padzidzo yakazara. Vazhinji vevadzidzi vedu vanoenda kuFacebook, Apple, Google, saka ndinofunga kuti vadzidzi vedu havana dambudziko rekuwana basa muindasitiri. Ndakaenda kunoshanda kuBrown nekuti ndisati ndamboshanda paDigital Equipment Corporation muBoston. Yakanga iri kambani yakagadzira zvinhu zvakawanda zvinonakidza, asi yakaramba kukosha kwemakomputa ega. Imwe kambani ine dambudziko rakaoma, ivo vatangi vaimbova vashanduri vechidiki, havana kudzidza chero chinhu uye havana kukanganwa chero chinhu, uye naizvozvo vakatendeuka kubva kune vashanduri kuenda kune vanogadzirisa mukati memakore gumi. Vaifarira kuseka kuti makomputa emunhu aive mugaraji - garaji rakasiiwa, hongu. Zviripachena kuti vakaparadzwa nemakambani anochinja-chinja. Pazvakava pachena kuti kambani yakanga iri mudambudziko, ndakafonera shamwari yangu yokuBrown, inenge awa imwe kubva kuBoston. Ndakanga ndisingadi kubva kuBoston panguva iyoyo, nekuti mamwe mayunivhesiti akange asina mabasa mazhinji. Yakanga iri nguva apo kwakanga kusina nzvimbo dzakawanda mumunda weComputer Science sezvazviri ikozvino. Uye Brown aive nebasa, ndaisafanira kubva pamba pangu, ndaisafanira kutamisa mhuri yangu, uye ndinonakidzwa chaizvo nekugara muBoston! Saka ndakasarudza kuenda kuBrown. Ndinoifarira. Vadzidzi vakanaka, saka handina kana kumboedza kuenda kumwewo. Pasabata, ndakashanda kuMicrosoft kwegore, ndakaenda kuTechnion muHaifa kwegore, uye zvino ndichave kuAlgorand. Ndine vazhinji vandinoshanda navo kwese kwese uye saka nzvimbo yemuviri yemakirasi edu haina kukosha zvakanyanya. Asi chinonyanya kukosha vadzidzi, ndivo vakanaka pano. Handina kumbobvira ndaedza kuenda kumwe, nekuti ndiri kufara pano.

Asi kunyangwe nemukurumbira waBrown muUnited States, zvinoshamisa zvisingazivikanwe mhiri kwemakungwa. Sezvauri kuona, iye zvino ndiri kuita zvandinogona kuti ndigadzirise mamiriro ezvinhu aya.

Musiyano uripo pakati peyunivhesiti nekutsvaga kwemakambani

Vitaliy: Zvakanaka, mubvunzo unotevera ndewe Digital Equipment. Wakanga uri mutsvakurudzi ipapo. Ndeupi musiyano uripo pakati pekushanda mudhipatimendi reR&D rekambani hombe nekushanda kuyunivhesiti? Ndezvipi zvakanakira uye zvakaipira?

Maurice: Ndanga ndiri paMicrosoft kwemakore makumi maviri, ndichishanda pamwe chete nevanhu veSun Microsystems, Oracle, Facebook, uye zvino Algorand. Kubva pane izvi zvese, ndinoda kutaura kuti zvinokwanisika kuita yekutanga-kirasi tsvakiridzo mumakambani uye kuyunivhesiti. Musiyano wakakosha ndewekuti mukambani unoshanda nevaunoshanda navo. Kana ndikaerekana ndave nepfungwa yepurojekiti isati yavapo, ndinofanira kupwisa vezera rangu kuti iyi ipfungwa yakanaka. Kana ndiri kuBrown, saka ndinogona kuti kuvadzidzi vangu: ngatishandei pane antigravity! Vachaenda kune mumwe munhu kana kutora purojekiti. Hongu, ini ndichada kutsvaga mari, ini ndichada kunyora chikumbiro cherubatsiro nezvimwe zvakadaro. Chero zvazvingava, pachagara paine vadzidzi vakawanda, uye iwe uchakwanisa kuita sarudzo unilaterally. Asi kuyunivhesiti, iwe kazhinji haungashande nevanhu vedanho rako. Munyika yekutsvagisa maindasitiri, iwe unofanirwa kutanga wagonesa munhu wese kuti chirongwa chako chakakodzera kutora. Handikwanise kuhodha chero chinhu kubva kune chero munhu. Uye nzira mbiri idzi dzekushanda dzakakosha, nekuti kana uri kushanda pane chimwe chinhu chinopenga uye vaunoshanda navo zvakaoma kugutsikana, zviri nyore kunyengetedza vadzidzi vakapedza kudzidza - kunyanya kana ukavabhadhara. Kana iwe uri kushanda pane chimwe chinhu chinoda ruzivo rwakawanda uye hunyanzvi hwakadzama, saka iwe unoda vaunoshanda navo vanogona kuti "kwete, zvinongoitika kuti ndinonzwisisa nzvimbo iyi uye zano rako rakaipa, hapana chinobuda." Izvi zvinobatsira zvikuru maererano nekupedza nguva. Uye zvakare, kana mumaindasitiri marabhoritari iwe uchipedza nguva yakawanda uchinyora mishumo, saka kuyunivhesiti unopedza nguva ino uchitsvaga mari. Kana ndichida kuti vadzidzi vakwanise kufamba kune imwe nzvimbo, ndinofanira kutsvaga mari yacho kune imwe nzvimbo. Uye iyo inonyanya kukosha chinzvimbo chako kuyunivhesiti, iyo yakawanda nguva yaunoshandisa kuunganidza mari. Saka, zvino iwe unoziva zvandinoshanda se - nyanzvi inopemha! Semumwe wemamongi anofamba nendiro yezvipo. Kazhinji, mabasa maviri aya anopindirana. Ndicho chikonzero ndinoedza kurarama uye kumira zvakasimba munyika dzose dziri mbiri.

Vitaliy: Zvinoita sekuti kuita kuti kambani ionekwe kwakaoma pane kunyengetedza mamwe masayendisiti.

Maurice: Zvakaoma, nezvimwe zvakadaro. Uyezve, munzvimbo dzakasiyana zvakasiyana: mumwe munhu anoita tsvakiridzo yakazara, uye mumwe munhu anotarisa pane yavo nyaya. Kana ndikaenda kuMicrosoft kana Facebook ndikati, ngatiitei anti-gravity, havangambozvifarira. Asi kana ndikataura chinhu chimwe chete kuvadzidzi vangu vakapedza kudzidza, vangangosvika pakushanda ipapo, kunyangwe iye zvino ndingadai ndatova nematambudziko - nekuti iwe unofanirwa kutsvaga mari yeizvi. Asi chero iwe uchida kuita chimwe chinhu zvinoenderana nezvinangwa zvekambani, iyo kambani inogona kuva nzvimbo yakanaka kwazvo yekutsvagisa.

Hydra uye SPTDC

Vitaliy: Mibvunzo yangu yava kupera, saka ngatimbotaura zvishoma nezverwendo rwekuRussia rwuri kuuya.

Maurice: Ehe, ndiri kutarisira kudzoka kuPetersburg.

Alexey: Kukudzwa kukuru kwandiri kuti unesu gore rino. Iyi inguva yako yechipiri muSt. Petersburg, handiti?

Maurice: Atova wechitatu!

Alexei: Ndazvinzwa, asi SPTDC - chaiyo yechipiri. Nguva yekupedzisira yakadanwa chikoro SPTCC, ikozvino takashandura tsamba imwe (C kusvika kuD, Concurrent to Distributed) kusimbisa kuti kune dzimwe nzvimbo dzine chokuita nekombiyuta yakagoverwa gore rino. Unogona here kutaura mazwi mashoma nezve mharidzo dzako paChikoro uye Hydra conferences?

Maurice: Kuchikoro ndinoda kutaura nezvekutanga zve blockchain uye zvaungaite nazvo. Ndinoda kuratidza kuti ma blockchains akafanana chaizvo neakawanda-tambo dhizaini chirongwa chatinoziva, asi neavo nuances, uye zvakakosha kuti tinzwisise kusiyana uku. Kana iwe ukakanganisa mune yakajairwa pawebhu application, zvinongotsamwisa. Kana iwe ukanyora buggy kodhi mune yezvemari app, mumwe munhu anozobira mari yako yese. Iyi idanho rakasiyana zvachose remutoro nemhedzisiro. Ini ndichataura zvishoma nezve humbowo-hwe-basa, smart zvibvumirano, kutengeserana pakati peakasiyana blockchains.

Vamwe vatauri vachashanda padivi pangu, avo vanewo zvekutaura nezve blockchain, uye takabvumirana kurongedza pakati pedu kuitira kuti nyaya dzedu dzikwane. Asi yehurukuro yeinjiniya, ndinoda kupa tsananguro yakajeka kune vateereri vakawanda kuti sei usingafaniri kutenda zvese zvaunonzwa nezve blockchains, nei blockchains iri munda wakanaka, unoenderana sei nemamwe mazano anozivikanwa, uye nei tichifanira. tarira mberi noushingi.

Alexey: Pamusoro pezvo, ndinoda kutaura kuti izvi hazvizoitike muchimiro chemusangano kana boka revashandisi, sezvazvaive makore maviri apfuura. Takasarudza kuita kamusangano kadiki pedyo nechikoro. Chikonzero ndechokuti mushure mekutaura naPeter Kuznetsov, takaona kuti chikoro chacho chinongogumira kune zana chete, zvichida vanhu 120. Panguva imwecheteyo, kune akawanda mainjiniya anoda kutaura newe, kupinda mishumo, uye anowanzo kufarira musoro wenyaya. Nokuda kweizvi takagadzira musangano mutsva inonzi Hydra. Nenzira, chero zano nei Hydra?

Maurice: Nokuti ichange iine vatauri vanomwe? Uye vanogona kugurwa misoro yavo, uye vatauri vatsva vachakura munzvimbo yavo?

Alexey: Pfungwa huru yekukura vatauri vatsva. Asi chokwadi, pane nyaya pano. Rangarira ngano yeOdysseus, kwaaifanira kufamba nechikepe pakati Scylla uye Charybdis? Hydra chinhu chakafanana neCharybdis. Nyaya iripo ndeyekuti ndakambotaura pamusangano ndikataura nezve multithreading. Paive nenzimbo mbiri chete pamusangano uyu. Pakutanga kwemushumo, ndakaudza vateereri muhoro kuti zvino vane sarudzo pakati peScylla naCharybdis. Mhuka yangu yemweya ndiCharybdis, nekuti Charybdis ine misoro mizhinji, uye dingindira rangu rinoverengeka. Aya ndiwo maitiro anoita mazita emisangano.

Chero zvazvingava, isu tapererwa nemibvunzo nenguva. Saka ndinokutendai shamwari nekubvunzurudza kukuru uye tokuona pa SPTDC uye Hydra 2019!

Zvichave zvichibvira kuenderera mberi nekukurukurirana naMaurice pamusangano weHydra 2019, uchaitwa muna July 11-12, 2019 muSt. Achauya nereport "Blockchains uye ramangwana rekuparadzirwa komputa". Matikiti anogona kutengwa pane webhusaiti yepamutemo.

Source: www.habr.com

Voeg