"Ni rahisi kujibu kuliko kukaa kimya" - mahojiano mazuri na baba wa kumbukumbu ya shughuli, Maurice Herlihy

Maurice Herlihy - mmiliki wa wawili Zawadi za Dijkstra. Ya kwanza ni ya kufanyia kazi "Usawazishaji Usiosubiri" (Chuo Kikuu cha Brown) na cha pili, cha hivi karibuni zaidi, - "Kumbukumbu ya Shughuli: Usaidizi wa Usanifu kwa Miundo ya Data Isiyofungiwa" (Virginia Tech University). Tuzo ya Dijkstra inatolewa kwa kazi ambayo umuhimu na ushawishi wake umeonekana kwa angalau miaka kumi na Maurice bila shaka ni mmoja wa wataalam maarufu katika uwanja huo. Hivi sasa anafanya kazi kama profesa katika Chuo Kikuu cha Brown na ana mafanikio mengi ambayo ni aya ndefu. Hivi sasa anatafiti blockchain katika muktadha wa kompyuta ya kawaida iliyosambazwa.

Hapo awali, Maurice alikuwa tayari amekuja Urusi kwa SPTCC (mkanda wa video) na kufanya mkutano bora wa jumuiya ya wasanidi programu wa JUG.ru Java huko St.mkanda wa video).

Habrapost hii ni mahojiano mazuri na Maurice Herlihy. Inajadili mada zifuatazo:

  • Mwingiliano kati ya wasomi na tasnia;
  • Msingi wa Utafiti wa Blockchain;
  • Mawazo ya mafanikio yanatoka wapi? Ushawishi wa umaarufu;
  • PhD chini ya usimamizi wa Barbara Liskov;
  • Ulimwengu unangojea vitu vingi vya msingi;
  • Ulimwengu mpya huleta matatizo mapya. NVM, NUMA na udukuzi wa usanifu;
  • Wakusanyaji dhidi ya wasindikaji, RISC dhidi ya CISC, kumbukumbu ya pamoja dhidi ya kupitisha ujumbe;
  • Sanaa ya kuandika msimbo dhaifu wa nyuzi nyingi;
  • Jinsi ya kufundisha wanafunzi kuandika msimbo changamano wa nyuzi nyingi;
  • Toleo jipya la kitabu "Sanaa ya Multiprocessor Programming";
  • Jinsi kumbukumbu ya shughuli ilivumbuliwa;   
  • Kwa nini inafaa kufanya utafiti katika uwanja wa kompyuta iliyosambazwa;
  • Je, maendeleo ya algorithms yamesimama, na jinsi ya kuendelea;
  • Hufanya kazi Brown University;
  • Tofauti kati ya utafiti katika chuo kikuu na ndani ya shirika;
  • Hydra na SPTDC.

Mahojiano hayo yanafanywa na:

Vitaly Aksenov - kwa sasa, post-doc katika IST Austria na mfanyakazi wa Idara ya Kompyuta Technologies katika ITMO Chuo Kikuu. Inafanya utafiti katika uwanja wa nadharia na mazoezi ya miundo ya data ya ushindani. Kabla ya kufanya kazi katika IST, alipata PhD yake kutoka Chuo Kikuu cha Paris Diderot na Chuo Kikuu cha ITMO chini ya usimamizi wa Profesa Peter Kuznetsov.

Alexey Fedorov - Mtayarishaji katika Kikundi cha JUG Ru, kampuni ya Kirusi inayoandaa mikutano ya watengenezaji. Alexey alishiriki katika utayarishaji wa mikutano zaidi ya 50, na wasifu wake unajumuisha kila kitu kutoka kwa nafasi ya mhandisi wa maendeleo huko Oracle (JCK, Java Platform Group) hadi nafasi ya msanidi programu huko Odnoklassniki.

Vladimir Sitnikov - Mhandisi katika Netcracker. Miaka kumi ya kazi juu ya utendaji na upunguzaji wa NetCracker OS, programu inayotumiwa na waendeshaji wa mawasiliano ya simu ili kuotosha michakato ya usimamizi wa vifaa vya mtandao na mtandao. Ninavutiwa na masuala ya utendaji wa Java na Oracle Database. Mwandishi wa zaidi ya maboresho dazeni ya utendakazi katika kiendeshi rasmi cha PostgreSQL JDBC.

Mwingiliano kati ya wasomi na tasnia

Alexey: Maurice, umefanya kazi katika mazingira ya kitaaluma kwa muda mrefu sana na swali la kwanza ni mwingiliano kati ya nyanja za kitaaluma na viwanda. Unaweza kuzungumza juu ya jinsi mwingiliano kati yao umebadilika hivi karibuni? Ni nini kilitokea miaka 20-30 iliyopita na nini kinatokea sasa? 

Maurice: Sikuzote nimejaribu kufanya kazi kwa karibu na makampuni ya kibiashara kwa sababu yana matatizo ya kuvutia. Wao, kama sheria, hawapendi sana kuchapisha matokeo yao au maelezo ya kina ya shida zao kwa jamii ya ulimwengu. Wana nia tu ya kutatua matatizo haya. Nilifanya kazi kwa kampuni kama hizo kwa muda. Nilitumia miaka mitano nikifanya kazi kwa muda wote katika maabara ya utafiti katika Shirika la Vifaa vya Dijiti, ambalo zamani lilikuwa kampuni kubwa ya kompyuta. Nilifanya kazi siku moja kwa wiki huko Sun, Microsoft, Oracle, na nilifanya kazi kidogo kwenye Facebook. Sasa nitaenda likizo ya sabato (profesa katika chuo kikuu cha Amerika anaruhusiwa kuchukua likizo kama hiyo kwa mwaka kama mara moja kila miaka sita) na kufanya kazi katika Algorand, hii ni kampuni ya cryptocurrency huko Boston. Kufanya kazi kwa karibu na makampuni kumekuwa raha kwa sababu ndivyo unavyojifunza kuhusu mambo mapya na ya kuvutia. Unaweza hata kuwa mtu wa kwanza au wa pili kuchapisha makala kuhusu mada uliyochagua, badala ya kufanyia kazi katika kuboresha masuluhisho ya matatizo ambayo kila mtu tayari anayafanyia kazi.

Alexey: Unaweza kutuambia kwa undani zaidi jinsi hii inavyotokea?

Maurice: Bila shaka. Unajua, nilipokuwa nikifanya kazi katika Shirika la Vifaa vya Dijiti, mimi na Elliot Moss, tulivumbua kumbukumbu ya shughuli. Ilikuwa kipindi cha matunda sana wakati kila mtu alianza kupendezwa na teknolojia ya habari. Usambamba, ikijumuisha, ingawa mifumo mingi ya msingi haikuwepo. Wakati wa siku za Jua na Oracle, nilifanya kazi sana kwenye miundo ya data sambamba. Katika Facebook nilifanya kazi kwenye mradi wao wa blockchain, ambao siwezi kuuzungumzia, lakini natumai utaonekana hadharani hivi karibuni. Mwaka ujao, huko Algorand, nitafanya kazi katika kikundi cha watafiti nikisoma kandarasi za busara.

Alexey: Blockchain imekuwa mada maarufu sana katika miaka michache iliyopita. Je, hii itasaidia utafiti wako? Labda itafanya iwe rahisi kupata ruzuku au kutoa ufikiaji wa rasilimali kutoka kwa kampuni zinazofanya kazi kwenye tasnia?

Maurice: Tayari nilipokea ruzuku ndogo kutoka kwa Wakfu wa Ethereum. Umaarufu wa blockchain husaidia sana katika kuhamasisha wanafunzi kufanya kazi katika uwanja huu. Wanapendezwa nayo sana na wanafurahia kujihusisha, lakini wakati mwingine hawatambui kwamba utafiti unaosikika kuwa wa kusisimua kwa nje unageuka kuwa unahusisha kazi ngumu sana. Walakini, ninafurahi sana kutumia fumbo hili karibu na blockchain kusaidia kuvutia wanafunzi. 

Lakini si hayo tu. Niko kwenye bodi ya ushauri ya waanzishaji kadhaa wa blockchain. Baadhi yao wanaweza kufanikiwa, baadhi yao hawawezi, lakini daima ni ya kuvutia sana kuona mawazo yao, kujifunza na kushauri watu. Jambo la kufurahisha zaidi ni pale unapowaonya watu wasifanye jambo fulani. Mambo mengi yanaonekana kama wazo zuri mwanzoni, lakini je!

Msingi wa Utafiti wa Blockchain

Vitaly: Watu wengine wanafikiri kwamba siku zijazo ziko kwenye blockchain na algorithms yake. Na watu wengine wanasema ni kiputo kingine. Je, unaweza kushiriki maoni yako kuhusu jambo hili?

Maurice: Mengi yanayoendelea kwenye ulimwengu wa blockchain sio sawa, mengine ni utapeli tu, mengi yamekithiri. Walakini, nadhani kuna msingi thabiti wa kisayansi wa masomo haya. Ukweli kwamba ulimwengu wa blockchain umejaa tofauti za kiitikadi unaonyesha kiwango cha msisimko na kujitolea. Kwa upande mwingine, hii sio manufaa hasa kwa utafiti wa kisayansi. Sasa, ikiwa unachapisha makala ambayo inazungumzia juu ya mapungufu ya algorithm fulani, majibu yanayotokana sio ya kisayansi kikamilifu. Mara nyingi watu hutupa hisia zao. Nadhani aina hii ya msisimko katika eneo hili inaweza kuonekana kuvutia kwa wengine, lakini mwisho wa siku, kuna masuala ya kweli ya kisayansi na uhandisi ambayo yanahitaji kushughulikiwa. Kuna mengi ya Sayansi ya Kompyuta hapa.

Vitaly: Kwa hivyo unajaribu kuweka msingi wa utafiti wa blockchain, sivyo?

Maurice: Ninajaribu kuweka msingi wa nidhamu thabiti, kisayansi na kihisabati. Na sehemu ya tatizo ni kwamba wakati mwingine unapaswa kupinga baadhi ya misimamo mikali ya watu wengine na kuipuuza. Wakati fulani watu huuliza kwa nini ninafanya kazi katika eneo ambalo ni magaidi na walanguzi wa dawa za kulevya pekee wanaopendezwa. Mwitikio kama huo hauna maana sawa na tabia ya wafuasi ambao hurudia maneno yako kwa upofu. Nadhani ukweli uko mahali fulani katikati. Blockchain itakuwa na athari kubwa kwa jamii na uchumi wa dunia. Lakini hii labda haitatokea shukrani kwa teknolojia ya kisasa. Teknolojia za kisasa zitakua na kile kitakachoitwa blockchain katika siku zijazo kitakuwa muhimu sana. Inaweza hata isionekane kama blockchains za kisasa, hilo ni swali wazi.

Ikiwa watu watavumbua teknolojia mpya, wataendelea kuiita blockchain. Ninamaanisha, kama vile Fortran ya leo haina uhusiano wowote na lugha ya Fortran kutoka miaka ya 1960, lakini kila mtu anaendelea kuiita Fortran. Vivyo hivyo kwa UNIX. Kile kinachoitwa "blockchain" bado kitafanya mapinduzi yake. Lakini nina shaka hii blockchain mpya itakuwa kitu kama kile kila mtu anafurahia kutumia leo.

Mawazo ya mafanikio yanatoka wapi? Athari ya umaarufu

Alexey: Je, umaarufu wa blockchain umesababisha matokeo mapya kutoka kwa mtazamo wa kisayansi? Mwingiliano zaidi, wanafunzi zaidi, makampuni zaidi katika eneo hilo. Je, tayari kuna matokeo yoyote kutokana na ongezeko hili la umaarufu?

Maurice: Nilipendezwa na hilo wakati mtu fulani alinipa kipeperushi rasmi cha kampuni ambayo ilikuwa imechangisha pesa nyingi sana. Iliandika kuhusu kazi ya majenerali wa Byzantine, ambayo ninaifahamu zaidi. Kilichoandikwa kwenye kijikaratasi kilikuwa si sahihi kitaalam. Watu walioandika haya yote hawakuelewa kabisa mfano wa shida ... na bado kampuni hii ilikusanya pesa nyingi. Baadaye, kampuni ilibadilisha kipeperushi hiki kimya kimya na toleo sahihi zaidi - na sitasema jina la kampuni hii lilikuwa nini. Bado wako karibu na wanaendelea vizuri sana. Tukio hili lilinishawishi kuwa, kwanza, blockchain ni aina ya kompyuta iliyosambazwa. Pili, kizingiti cha kuingia (angalau wakati huo, miaka minne iliyopita) kilikuwa cha chini kabisa. Watu wanaofanya kazi katika uwanja huu walikuwa na nguvu sana na wenye akili, lakini hawakusoma karatasi za kisayansi. Walijaribu kuunda tena vitu vilivyojulikana na wakafanya vibaya. Leo tamthilia imepungua.

Alexey: Hii inavutia sana, kwa sababu miaka michache iliyopita tulikuwa na mwelekeo tofauti. Ni sawa na ukuzaji wa mbele, wakati watengenezaji wa mbele-msingi wa kivinjari waligundua tena teknolojia nzima ambazo tayari zilikuwa maarufu nyuma: mifumo ya ujenzi, ujumuishaji unaoendelea, vitu kama hivyo. 

Maurice: Ninakubali. Lakini hii haishangazi, kwa sababu mawazo ya mafanikio daima hutoka nje ya jumuiya iliyoanzishwa. Watafiti walioimarishwa, haswa wasomi waliobobea, hawana uwezekano wa kufanya chochote cha kuvunja msingi. Ni rahisi kuandika karatasi kwa ajili ya mkutano ujao kuhusu jinsi ulivyoboresha kidogo matokeo ya kazi yako ya awali. Nenda kwenye mkutano, pata pamoja na marafiki, zungumza juu ya mambo sawa. Na watu ambao waliingia na mawazo ya mafanikio karibu kila mara hutoka nje. Hawajui sheria, hawajui lugha, lakini hata hivyo ... Ikiwa wewe ni ndani ya jumuiya iliyoanzishwa, mimi kukushauri kuzingatia mambo mapya, kwa kitu ambacho haifai katika picha ya jumla. Kwa namna fulani, jaribio linaweza kufanywa kuchanganya maendeleo ya nje, maji zaidi na mbinu ambazo tayari tunaelewa. Kama hatua ya kwanza, jaribu kuanzisha msingi wa kisayansi, na kisha ubadilishe ili uweze kutumika kwa mawazo mapya ya mafanikio. Nadhani blockchain ni nzuri kwa kuwa wazo safi, la usumbufu.

Alexey: Unafikiri kwa nini hii inatokea? Kwa sababu watu "nje" hawana vizuizi vyovyote maalum katika jamii?

Maurice: Kuna mfano unaoendelea hapa. Ikiwa unasoma historia ya wahusika katika uchoraji na sanaa kwa ujumla, basi wakati mmoja wasanii maarufu walikataa hisia. Walisema ni aina ya kitoto. Kizazi baadaye, aina hii ya sanaa iliyokataliwa hapo awali ikawa ndio kiwango. Ninachokiona katika uwanja wangu: wavumbuzi wa blockchain hawakupendezwa na nguvu, katika kuongeza machapisho na index ya nukuu, walitaka tu kufanya kitu kizuri. Na hivyo wakaketi na kuanza kufanya hivyo. Walikosa kiasi fulani cha kina cha kiufundi, lakini hiyo inaweza kurekebishwa. Ni ngumu zaidi kupata maoni mapya ya ubunifu kuliko kusahihisha na kuimarisha yale ambayo hayajakomaa vya kutosha. Shukrani kwa wavumbuzi hawa, sasa nina kitu cha kufanya!

Alexey: Hii ni sawa na tofauti kati ya wanaoanza na miradi ya urithi. Tunarithi mapungufu mengi ya kufikiri, vikwazo, mahitaji maalum, na kadhalika.

Maurice: Mfano mzuri ni kompyuta iliyosambazwa. Fikiria blockchain kana kwamba ni kompyuta inayoanza na kusambazwa kama kampuni kubwa iliyoanzishwa. Kompyuta iliyosambazwa iko katika mchakato wa kupatikana na kuunganishwa na blockchain.

PhD chini ya usimamizi wa Barbara Liskov

Vitaly: Bado tuna maswali mengi! Tulikuwa tukichunguza historia yako na tukapata ukweli wa kuvutia kuhusu udaktari wako. Ndiyo, hii ilikuwa muda mrefu uliopita, lakini inaonekana kuwa mada muhimu. Umepokea PhD yako chini ya mwongozo wako mwenyewe Barbara Liskov! Barbara anajulikana sana katika jumuiya ya lugha ya programu, na mtu anayejulikana sana kwa ujumla. Ni sawa kwamba utafiti wako ulikuwa katika uwanja wa lugha za programu. Ulibadilishaje hadi kompyuta sambamba? Kwa nini umeamua kubadili mada?

Maurice: Wakati huo, Barbara na kikundi chake walikuwa wakitazama tu kompyuta iliyosambazwa, ambalo lilikuwa wazo jipya sana. Pia wapo waliosema kuwa kompyuta iliyosambazwa ni upuuzi na kwamba mawasiliano ya kompyuta hayana maana. Mojawapo ya maswala yanayoshughulikiwa katika kompyuta iliyosambazwa ambayo inaitofautisha na kompyuta kuu ni uvumilivu wa makosa. Baada ya utafiti mwingi, tuliamua kwamba lugha ya programu ya kompyuta iliyosambazwa inahitajika kuwa na kitu kama miamala ya atomiki kwa sababu huwezi kuwa na uhakika kwamba simu ya mbali itafaulu. Mara tu unapofanya miamala, shida ya usimamizi wa upatanishi hutokea. Kisha kulikuwa na kazi nyingi katika kupata miundo ya data ya shughuli inayolingana sana. Kisha, nilipohitimu, nilienda Carnegie Mellon na kuanza kutafuta mada ya kufanyia kazi. Ilinijia kuwa kompyuta imehama kutoka kwa kompyuta binafsi hadi mitandao ya kompyuta. Multiprocessors itakuwa mwendelezo wa asili wa maendeleo - neno "multi-core" halikuwepo. Nilifikiria: ni nini sawa na shughuli za atomiki kwa mfumo wa msingi mwingi? Hakika si shughuli za kawaida kwa sababu ni kubwa sana na nzito. Na hivyo ndivyo nilivyopata wazo linearizability na hivyo ndivyo nilivyokuja na maingiliano yote ya bila kusubiri. Hili lilikuwa jaribio la kujibu swali la nini analog ya shughuli za atomiki kwa mfumo wa multiprocessor na kumbukumbu iliyoshirikiwa. Kwa mtazamo wa kwanza, kazi hii inaweza kuonekana tofauti kabisa, lakini kwa kweli ni kuendelea kwa mandhari sawa.

Dunia inasubiri multi-core

Vitaly: Ulisema kwamba wakati huo kulikuwa na kompyuta chache sana za msingi, sivyo?

Maurice: Hawakuwepo. Kulikuwa na kinachojulikana kama multiprocessors za ulinganifu, ambazo kimsingi ziliunganishwa kwenye basi moja. Hii haikufanya kazi vizuri sana kwa sababu kila wakati kampuni mpya ilipounda kitu kama hicho, Intel ingetoa kichakataji kimoja ambacho kilikuwa bora kuliko kichakataji anuwai.

Alexey: Je, hii haimaanishi kwamba katika nyakati hizo za kale ilikuwa zaidi ya utafiti wa kinadharia?

Maurice: Haukuwa utafiti wa kinadharia, bali ni utafiti wa kubahatisha. Haya yote hayakuwa juu ya kufanya kazi na nadharia nyingi; badala yake, tuliweka dhana juu ya usanifu ambao haukuwepo wakati huo. Huu ndio utafiti! Hakuna kampuni ambayo ingefanya kitu kama hiki; yote yalikuwa kitu kutoka siku zijazo za mbali. Kwa kweli, hii ilikuwa kesi hadi 2004, wakati wasindikaji halisi wa msingi mbalimbali walionekana. Kwa sababu vichakataji vinazidi joto, unaweza kufanya kichakataji kuwa kidogo zaidi, lakini huwezi kuifanya haraka. Kwa sababu ya hili, kulikuwa na mpito kwa usanifu wa msingi mbalimbali. Na kisha hiyo ilimaanisha kwamba ghafla kulikuwa na matumizi kwa dhana zote ambazo tulikuwa tumeanzisha hapo awali.

Alexey: Kwa nini unafikiri wasindikaji wa aina nyingi walionekana tu katika miaka ya XNUMX? Kwa hivyo kwa nini imechelewa sana?

Maurice: Hii ni kutokana na mapungufu ya maunzi. Intel, AMD na makampuni mengine ni nzuri sana katika kuongeza kasi ya processor. Wakati fulani wasindikaji walikua wadogo kiasi kwamba hawakuweza tena kuongeza kasi ya saa kwa sababu wasindikaji wangeanza kuwaka. Unaweza kuwafanya kuwa ndogo, lakini si kwa kasi. Ni nini kilicho katika uwezo wao - badala ya processor ndogo sana, wanaweza kuingiza wasindikaji nane, kumi na sita au thelathini na mbili katika kiasi sawa cha kesi, ambapo hapo awali moja tu inaweza kutoshea. Sasa una mawasiliano mengi na ya haraka kati yao kwa sababu wanashiriki akiba. Lakini huwezi kuwalazimisha kukimbia haraka - kuna kikomo maalum cha kasi. Wanaendelea kuboreka kidogo kidogo, lakini sio tena sana. Sheria za fizikia zilisimama katika njia ya uboreshaji.

Ulimwengu mpya huleta matatizo mapya. NUMA, NVM na udukuzi wa usanifu

Alexey: Inaonekana busara sana. Na wasindikaji mpya wa msingi-nyingi walikuja shida mpya. Je, wewe na wenzako mlitarajia matatizo haya? Labda umejifunza nao mapema? Katika masomo ya kinadharia mara nyingi si rahisi sana kutabiri mambo kama hayo. Matatizo yalipotokea, yalikidhi vipi matarajio yako na ya wenzako? Au walikuwa wapya kabisa, na wewe na wenzako mlilazimika kutumia muda mwingi kutatua matatizo jinsi yalivyoonekana?

Vitaly: Nitaongeza kwa swali la Alexey: ulitabiri kwa usahihi usanifu wa processor wakati unasoma nadharia?

Maurice: Sio 100%. Lakini nadhani wenzangu na mimi tumefanya kazi nzuri kutabiri cores nyingi na kumbukumbu iliyoshirikiwa. Nadhani tulitabiri kwa usahihi ugumu wa kuunda miundo ya data inayofanana ambayo hufanya kazi bila kufuli. Miundo kama hii ya data imekuwa muhimu kwa programu nyingi, ingawa sio zote, lakini mara nyingi unachohitaji sana ni muundo wa data usiofunga. Tulipoziunda, wengi walibishana kuwa huu ni upuuzi, kwamba kila kitu kilifanya kazi vizuri na kufuli. Tulitabiri vyema kabisa kwamba kutakuwa na suluhu zilizotengenezwa tayari kwa matatizo mengi ya programu na matatizo ya muundo wa data. Pia kulikuwa na matatizo magumu zaidi, kama vile NUMA - ufikiaji usio sawa wa kumbukumbu. Kwa kweli, hazikuzingatiwa hadi wasindikaji wa msingi-nyingi waligunduliwa kwa sababu walikuwa maalum sana. Jumuiya ya watafiti ilikuwa ikifanyia kazi maswali ambayo kwa ujumla yalikuwa yanatabirika. Baadhi ya matatizo ya vifaa yanayohusiana na usanifu maalum ilibidi kusubiri katika mbawa - kwa kweli, kuonekana kwa usanifu huu. Kwa mfano, hakuna mtu aliyefanya kazi kwenye miundo ya data mahususi ya GPU kwa sababu GPU hazikuwepo wakati huo. Ingawa kazi nyingi zimefanywa SIMD, kanuni hizi zilikuwa tayari kutumika punde tu maunzi yanayofaa yalipopatikana. Walakini, haiwezekani kutabiri kila kitu.

Alexey: Ikiwa ninaelewa kwa usahihi, NUMA ni aina ya maelewano kati ya gharama, utendaji na mambo mengine. Mawazo yoyote kwa nini NUMA ilichelewa kutoka?

Maurice: Nadhani NUMA ipo kwa sababu ya matatizo na maunzi yanayotumika kutengeneza kumbukumbu: kadiri vipengele viko mbali zaidi, ndivyo inavyokuwa polepole kuvipata. Kwa upande mwingine, thamani ya pili ya uondoaji huu ni usawa wa kumbukumbu. Kwa hivyo moja ya sifa za kompyuta sambamba ni kwamba vifupisho vyote vimevunjwa kidogo. Ikiwa ufikiaji ulikuwa sawa kabisa, kumbukumbu zote zingekuwa sawa, lakini hii ni kiuchumi, na labda hata kimwili, haiwezekani. Kwa hivyo mzozo huu hutokea. Ikiwa utaandika programu yako kana kwamba kumbukumbu ni sawa, basi itakuwa sahihi zaidi. Kwa maana kwamba haitatoa majibu yasiyo sahihi. Lakini utendaji wake hautashika nyota kutoka angani pia. Vivyo hivyo, ikiwa unaandika spinlocks Bila kuelewa uongozi wa cache, kuzuia yenyewe itakuwa sahihi, lakini unaweza kusahau kuhusu utendaji. Kwa maana fulani, lazima uandike programu ambazo zinaishi juu ya uondoaji rahisi sana, lakini lazima uzidi kuwashinda watu ambao walikupa uondoaji huo: lazima ujue kuwa chini ya uondoaji kuna safu fulani ya kumbukumbu, kwamba kuna. basi kati yako na kumbukumbu hii, na kadhalika. Kwa hivyo, kuna mgongano kati ya vifupisho muhimu vya kibinafsi, ambayo hutupeleka kwenye shida thabiti na za kisayansi.

Vitaly: Vipi kuhusu wakati ujao? Je, unaweza kutabiri jinsi wasindikaji watakavyokua baadaye? Kuna wazo kwamba moja ya majibu ni kumbukumbu ya shughuli. Pengine una kitu kingine katika hisa.

Maurice: Kuna changamoto kadhaa kubwa mbeleni. Moja ni kwamba kumbukumbu madhubuti ni uondoaji mzuri, lakini huanza kuvunjika katika hali maalum. Kwa hivyo, kwa mfano, NUMA ni mfano hai wa kitu ambacho unaweza kuendelea kujifanya kuwa kumbukumbu sawa ipo. Kweli hapana, tija itakufanya ulie. Wakati fulani, wasanifu watalazimika kuachana na wazo la usanifu mmoja wa kumbukumbu; huwezi kujifanya milele. Miundo mipya ya programu itahitajika ambayo ni rahisi kutosha kutumia na yenye nguvu ya kutosha kufanya maunzi ya msingi yawe na ufanisi. Hii ni maelewano magumu sana, kwa sababu ikiwa unaonyesha waandaaji wa programu usanifu ambao hutumiwa kweli katika vifaa, wataenda wazimu. Ni ngumu sana na haibebiki. Ukiwasilisha kiolesura ambacho ni rahisi sana, utendakazi utakuwa duni. Kwa hivyo, usuluhishi mwingi mgumu sana utahitaji kufanywa ili kutoa miundo muhimu ya programu inayotumika kwa vichakataji vikubwa vya msingi vingi. Sina hakika kuwa mtu yeyote isipokuwa mtaalamu ana uwezo wa kupanga kwenye kompyuta ya msingi 2000. Na isipokuwa unafanya kompyuta maalum sana au kisayansi au cryptography au kitu kama hicho - bado haijulikani wazi jinsi ya kuifanya kwa usahihi. 

Eneo lingine linalofanana ni usanifu maalum. Viongeza kasi vya picha vimekuwepo kwa muda mrefu, lakini vimekuwa mfano mzuri wa jinsi unavyoweza kuchukua aina maalum ya kompyuta na kuiendesha kwenye chip maalum. Hii inaongeza changamoto zake: jinsi unavyowasiliana na kifaa kama hicho, jinsi unavyokipanga. Hivi majuzi nimekuwa nikishughulikia shida katika eneo hilo karibu na kumbukumbu ya kompyuta. Unachukua kichakataji kidogo na kukibandika kwenye sehemu kubwa ya kumbukumbu ili kumbukumbu iendeshe kwa kasi ya kache ya L1 na kisha kuwasiliana na kifaa kama hicho. TPU - kichakataji kinashughulika kupakia kazi mpya kwenye msingi wa kumbukumbu yako. Kubuni miundo ya data na itifaki za mawasiliano kwa aina hii ya kitu ni mfano mwingine wa kuvutia. Kwa hivyo vichakataji na maunzi maalum vitaendelea kuona maboresho kwa muda mrefu.

Alexey: Vipi kuhusu kumbukumbu isiyo na tete (kumbukumbu isiyo na tete)?

Maurice: Lo, huo ni mfano mwingine mzuri! NVM itabadilisha sana jinsi tunavyoangalia vitu kama miundo ya data. Kumbukumbu isiyo na tete, kwa maana, inaahidi kuharakisha mambo. Lakini haitafanya maisha kuwa rahisi kwa sababu vichakataji, kache na rejista nyingi bado ni tete. Unapoanza baada ya ajali, hali yako na hali ya kumbukumbu yako haitakuwa sawa kabisa na kabla ya ajali. Ninashukuru sana watu wanaofanya kazi kwenye NVM - kutakuwa na mengi kwa watafiti kufanya kwa muda mrefu kujaribu kujua hali ya usahihi. Mahesabu ni sahihi ikiwa yanaweza kunusurika kwenye ajali ambapo yaliyomo kwenye akiba na rejista hupotea, lakini kumbukumbu kuu inabakia sawa.

Vikusanyaji dhidi ya vichakataji, RISC dhidi ya CISC, kumbukumbu iliyoshirikiwa dhidi ya upitishaji wa ujumbe

Vladimir: Unafikiria nini kuhusu mtanziko wa "wakusanyaji dhidi ya wasindikaji" kutoka kwa mtazamo wa seti ya maagizo? Acha nielezee kwa wale ambao hawajui: ikiwa tutaenda kwenye kumbukumbu iliyopotoshwa au kitu kama hicho, tunaweza kutumia seti rahisi sana ya amri na kuuliza mkusanyaji kutoa nambari ngumu ambayo inaweza kuchukua faida ya faida mpya. Au tunaweza kwenda kwa njia nyingine: kutekeleza maagizo magumu na uulize processor kupanga upya maagizo na kufanya ghiliba zingine nazo. Unafikiri nini kuhusu hilo?

Maurice: Kwa kweli sina jibu la swali hilo. Mjadala huu umekuwa ukiendelea kwa miongo minne. Kulikuwa na wakati ambapo kati kifupi seti ya amri na magumu vita vya wenyewe kwa wenyewe vilipiganwa kwa seti ya amri. Kwa muda, watu wa RISC walishinda, lakini kisha Intel ilijenga tena injini zao ili seti iliyopunguzwa ya maagizo ilitumiwa ndani, na kuweka kamili ilisafirishwa nje. Labda hii ni mada ambayo kila kizazi kipya lazima kitafute maelewano yake na kufanya maamuzi yake. Ni vigumu sana kutabiri ni mambo gani kati ya haya yatakuwa bora zaidi. Kwa hivyo utabiri wowote nitakaoutoa utakuwa wa kweli kwa wakati fulani, na kisha uwongo tena kwa muda, na kisha ukweli tena.

Alexey: Je, ni kawaida kwa tasnia kwamba maoni kadhaa hushinda kwa miongo kadhaa na kupoteza katika ijayo? Je, kuna mifano mingine ya mabadiliko hayo ya mara kwa mara?

Maurice: Kwenye mada ya kompyuta iliyosambazwa, kuna watu wanaoamini kumbukumbu iliyoshirikiwa na watu wanaoamini ujumbe. Hapo awali, katika kompyuta iliyosambazwa, kompyuta sambamba inamaanisha kupitisha ujumbe. Kisha mtu aligundua kuwa ilikuwa rahisi zaidi kupanga na kumbukumbu iliyoshirikiwa. Upande wa pili ulisema kwamba kumbukumbu iliyoshirikiwa ni ngumu sana, kwa sababu inahitaji kufuli na kadhalika, kwa hivyo inafaa kuhamia kwa lugha ambazo hakuna chochote isipokuwa kupitisha ujumbe. Mtu aliangalia kilichotoka kwa hii na kusema, "wow, utekelezaji huu wa ujumbe unaonekana kama kumbukumbu iliyoshirikiwa, kwa sababu unaunda moduli nyingi na nyingi, hutuma ujumbe kwa kila mmoja, na zote. kuingiliana"Wacha tutengeneze hifadhidata bora zaidi ya kumbukumbu iliyoshirikiwa!" Yote hii inarudiwa mara kwa mara, na haiwezekani kusema kwamba moja ya vyama ni hakika sahihi. Moja ya pande itatawala kila wakati kwa sababu mara tu mmoja wao anakaribia kushinda, watu tena na tena huvumbua njia za kuboresha nyingine.

Sanaa ya Kuandika Msimbo wa Brittle Multithreaded

Alexey: Hii inavutia sana. Kwa mfano, tunapoandika msimbo, bila kujali ni lugha gani ya programu, kwa kawaida tunalazimika kuunda vifupisho kama vile seli zinazoweza kusomwa na kuandikwa. Lakini kwa kweli, katika kiwango fulani cha kimwili, hii inaweza kuonekana kama kutuma ujumbe kupitia basi ya maunzi kati ya kompyuta tofauti na vifaa vingine. Inabadilika kuwa kazi inafanyika katika viwango vyote viwili vya kujiondoa mara moja.

Maurice: Ni kweli kabisa kwamba kumbukumbu iliyoshirikiwa imejengwa kwenye upitishaji wa ujumbe - mabasi, akiba, na kadhalika. Lakini ni vigumu kuandika programu kwa kutumia ujumbe kupita, hivyo vifaa kwa makusudi uongo, kujifanya kuwa una aina fulani ya kumbukumbu sare. Hii itafanya iwe rahisi kwako kuandika programu rahisi, sahihi kabla ya utendaji kuanza kuzorota. Kisha utasema: inaonekana ni wakati wa kufanya marafiki na cache. Na kisha unaanza kuwa na wasiwasi juu ya eneo la cache, na kutoka huko huenda. Kwa maana fulani, unadukua uondoaji: unajua sio tu kumbukumbu bapa, sare, na utatumia ujuzi huo kuandika programu zinazohifadhi akiba. Hivi ndivyo utalazimika kufanya katika shida za kweli. Mgogoro huu kati ya utamu, rahisi, uondoaji mzuri ambao umepewa na utekelezaji mgumu sana wa vifaa vya msingi ni pale kila mtu atafanya maelewano yake mwenyewe. Nina kitabu kuhusu wasindikaji wengi na maingiliano, na wakati mmoja nilikuwa naenda kuandika sura juu ya miundo ya data katika java.util.pamoja. Ukiwaangalia, mambo kama orodha zilizoachwa Hizi ni kazi za ajabu za sanaa. (Dokezo la Mhariri: Wale wanaofahamu lugha ya Java wanapaswa angalau kuangalia utekelezaji ConcurrentSkipListMap, unaweza kuangalia viungo API и msimbo wa chanzo) Lakini kwa maoni yangu, itakuwa kutowajibika kuwaonyesha wanafunzi, kwa sababu muundo kama huo wa data ni kama mvulana kwenye sarakasi anayeendesha kwenye kamba juu ya shimo la dubu. Ukibadilisha hata maelezo madogo, muundo wote utaanguka. Nambari hii ni ya haraka sana na ya kifahari kwa sababu tu imeandikwa kikamilifu, lakini mabadiliko kidogo yatasababisha kushindwa kabisa. Nikitoa kanuni hii kama mfano kwa wanafunzi, mara moja watasema: Naweza kufanya hivyo pia! Na kisha ndege fulani itaanguka au kinu cha nyuklia kitalipuka, na nitakuwa na hatia ya kuwapa habari nyingi kwa wakati usiofaa.

Alexey: Nilipokuwa mdogo, mara nyingi nilijaribu kusoma msimbo wa chanzo wa Doug Lee, kwa mfano, java.util.pamoja, kwa sababu ni chanzo wazi, ni rahisi sana kupata na kujaribu kuelewa nini kinaendelea huko. Haikutokea vizuri sana: mara nyingi, haijulikani kabisa kwa nini Doug aliamua kufanya kitu kwa njia hii wakati kila mtu anafanya tofauti. Je, unaelezaje mambo haya kwa wanafunzi wako? Kuna njia sahihi ya kuelezea maelezo maalum ya algorithm ngumu, kwa mfano? Je, unafanyaje hili?

Maurice: Walimu wa kuchora wana maneno ambayo wanakumbuka kwanza: ikiwa unataka kuchora kama Picasso, kwanza unahitaji kujifunza jinsi ya kuchora picha rahisi za kweli, na tu unapojua sheria unaweza kuanza kuzivunja. Ukianza kwa kuvunja sheria mara moja, unaishia kwenye fujo. Kwanza, ninawafundisha wanafunzi jinsi ya kuandika msimbo rahisi, sahihi bila kuwa na wasiwasi juu ya utendaji. Ninachosema ni kwamba, kuna maswala changamano ya wakati yanayojificha hapa, kwa hivyo usijali kuhusu kache, usijali kuhusu mifano ya kumbukumbu, hakikisha kila kitu kinafanya kazi kwa usahihi. Hii tayari ni ngumu ya kutosha: programu ya kisasa sio rahisi yenyewe, haswa kwa wanafunzi wapya. Na wakati wana intuition kuhusu jinsi ya kuandika mipango sahihi, nasema: angalia utekelezaji huu wa spinlock mbili: moja ni polepole sana, na ya pili pia sio sana, lakini ni bora zaidi. Walakini, kihesabu algorithms mbili ni sawa. Kwa kweli, mmoja wao hutumia eneo la kache. Mojawapo hutumia data iliyoakibishwa ndani, na nyingine mara kwa mara hufanya shughuli kwenye basi. Huwezi kuandika msimbo mzuri ikiwa hauelewi ni nini, na haujui jinsi ya kuvunja uondoaji na kuangalia muundo wa msingi. Lakini hutaweza kuanza kufanya hivi mara moja. Kuna watu wanaanza kufanya hivi mara moja na kuamini katika fikra zao wenyewe, kwa kawaida huwa mwisho wake ni mbaya kwa sababu hawaelewi kanuni. Hakuna mtu anayechora kama Picasso au anayeandika programu kama Doug Lee akiwa ametoka chuo kikuu katika wiki yake ya kwanza. Inachukua miaka kufikia kiwango hiki cha maarifa.

Alexey: Inageuka kuwa unagawanya shida katika sehemu mbili: ya kwanza ni usahihi, ya pili ni utendaji?

Maurice: Kweli. Na, haswa kwa mpangilio huo. Sehemu ya tatizo ni kwamba wanafunzi wapya hawaelewi kwamba usahihi ni vigumu kufikia. Kwa mtazamo wa kwanza wanasema: hii ni wazi kabisa, kilichobaki ni kuharakisha. Kwa hivyo wakati mwingine mimi huwaambia juu ya algorithm isiyo sahihi hapo awali kana kwamba ni sahihi.

Jinsi ya kufundisha wanafunzi kuandika msimbo tata wenye nyuzi nyingi

Alexey: Ili tu kuona kama wanaweza kuhisi kunaswa?

Maurice: Kila mara mimi huonya mapema kwamba wakati mwingine nitapendekeza algoriti zisizo sahihi. Hupaswi kudanganya watu. Ninashauri wachukue habari kwa punje ya chumvi. Ikiwa nitakuambia kitu na kusema: "angalia, hii ni sawa" - hii ni ishara kwamba mahali fulani wanajaribu kukudanganya, na unapaswa kuanza kuuliza maswali. Kisha, ninajaribu kuwahimiza wanafunzi kuendelea kuuliza maswali, na kisha ninapendekeza, “Ni nini kitatokea ikiwa tutaacha mambo jinsi yalivyo?” Na mara moja wanaona kosa. Lakini kuwashawishi wanafunzi kuwa wanahitaji kuwa na wasiwasi juu ya usahihi ni ngumu zaidi kuliko inavyoonekana mwanzoni. Wengi wa wanafunzi hawa huja na uzoefu wa programu katika shule ya upili, wengine wamepata kazi na wamefanya programu huko, na wote wanajaa ujasiri. Hili ni jambo kama jeshi: kwanza lazima ubadilishe hisia zao ili kuwashawishi kukaribia kwa subira kutatua shida zinazotokea. Au labda ni kama watawa wa Kibuddha: kwanza wanajifunza kusababu kuhusu usahihi, na mara tu wanapoelewa njia za kufikiri juu ya usahihi, wanaruhusiwa kuhamia ngazi inayofuata na kuanza kuwa na wasiwasi kuhusu utendaji.

Alexey: Hiyo ni, wakati mwingine unaonyesha wanafunzi mifano isiyo ya kazi, shukrani ambayo unapata maoni yanayoonyesha ikiwa wanaelewa kiini cha tatizo, ikiwa wanaweza kupata msimbo usio sahihi na matokeo mabaya. Kwa hivyo, je, wanafunzi huwa wanakufurahisha au kukuhuzunisha?

Maurice: Wanafunzi karibu kila mara hupata kosa hatimaye. Ikiwa wanatafuta polepole sana, ninauliza maswali ya kuongoza, na hapa ni muhimu kuelewa kwamba ikiwa hautawahi kuwadanganya, wataanza kutambua maneno yako kama ukweli wa mwisho. Kisha watachoka na kuanza kusinzia huku wakisoma Facebook kwenye kompyuta ndogo wakati wa darasa. Lakini unapowaambia mapema kwamba watadanganywa, na wataonekana wajinga ikiwa hawaoni hila, wanakuwa macho zaidi. Hii ni nzuri kwa njia tofauti. Ningependa wanafunzi sio tu kuhoji uelewa wao wa suala hilo, bali pia kuhoji mamlaka ya mwalimu. Wazo ni kwamba mwanafunzi anaweza kuinua mkono wake wakati wowote na kusema: Nadhani ulichosema si sahihi. Ni chombo muhimu cha kujifunza. Sitaki mwanafunzi yeyote kukaa na kujifikiria kimya kimya: yote haya yanaonekana kuwa ya upuuzi kabisa, lakini kuinua mkono wako ni ya kutisha sana, na hata hivyo, yeye ni profesa, kwa hivyo kila kitu anachosema ni ukweli. Kwa hivyo, ikiwa wameonywa mapema kwamba sio kila kitu kinachosemwa ni kweli, wana motisha ya kulipa kipaumbele zaidi kwa nyenzo. Ninaweka wazi kuwa ni sawa kuinua mkono wako na kuuliza maswali. Swali lako linaweza kuonekana kuwa la kijinga au la ujinga, lakini mara nyingi hivi ndivyo maswali bora zaidi huibuka.

Alexey: Inavutia sana. Kawaida watu wana aina fulani ya kizuizi cha kisaikolojia ambacho hairuhusu kuuliza swali kwa profesa. Hasa ikiwa kuna watu wengi katika chumba, na kila mtu anaogopa kwamba kujadili swali lako la kijinga itachukua muda wa watu hawa wote. Je, kuna mbinu zozote za kukabiliana na hili?

Maurice: Mara nyingi mimi husimama na kuuliza maswali ya kawaida. Ikiwa taarifa itakuwa sahihi, au jinsi wangesuluhisha shida inayojadiliwa. Hiki ni kitendo cha msingi, hasa mwanzoni mwa somo wakati watu wanaona aibu kusema hata jambo dogo. Unawauliza wanafunzi swali na usiseme chochote zaidi. Kuna ukimya, kila mtu anapata mkazo kidogo, mvutano unakua, basi ghafla mtu hawezi kusimama, huvunja na kusema jibu. Hivi ndivyo unavyogeuza hali hiyo: kuendelea kukaa kimya inakuwa ngumu zaidi na haifai kuliko kujibu! Huu ni ujanja wa kawaida wa ufundishaji. Kila mwalimu ulimwenguni anapaswa kujua jinsi ya kufanya hivi.

Alexey: Sasa tuna kichwa kizuri cha mahojiano haya: "ni rahisi kujibu kuliko kukaa kimya."

Vitaly: Hebu niulize tena. Unafanyia kazi uthibitisho wa topolojia. Ulihusikaje katika hili, kwa sababu kompyuta iliyosambazwa na topolojia ni vitu tofauti kabisa!

Maurice: Kuna muunganisho uliofichwa hapo. Nilipokuwa mwanafunzi ninasoma hisabati, nilisoma hisabati safi. Sikuwa na hamu ya kweli ya kompyuta hadi masomo yangu yalipofikia mwisho na nikajikuta nikikabiliwa na hitaji kubwa la kutafuta kazi. Kama mwanafunzi nilisoma topolojia ya aljebra. Miaka mingi baadaye, wakati wa kufanya kazi juu ya tatizo kuitwa "K-Kuweka Tatizo la Makubaliano", nilitumia grafu kuiga tatizo na, kama ilivyoonekana wakati huo, nilikuwa nimepata suluhisho. Ilibidi tu ukae chini na kuzunguka hesabu. Jaribu kupata jibu linalofaa kwenye grafu hii. Lakini algorithm yangu haikufanya kazi: ikawa kwamba angeweza kukimbia kwenye miduara milele. Kwa bahati mbaya, haya yote hayakuweza kuelezewa katika lugha rasmi ya nadharia ya graph - moja ambayo wanasayansi wote wa kompyuta wanajua. Na kisha nikakumbuka kwamba miaka mingi iliyopita, nyuma katika madarasa ya topolojia, tulitumia dhana "changamano rahisi", ambayo ni ujumuishaji wa grafu kwa vipimo vya juu. Kisha nikajiuliza: nini kitatokea ikiwa tungerekebisha shida katika suala la muundo rahisi? Huu ukawa wakati muhimu. Kwa kutumia urasmi wenye nguvu zaidi, tatizo huwa rahisi ghafla. Watu walipigana dhidi yake kwa muda mrefu, kwa kutumia grafu, lakini hawakuweza kufanya chochote. Na hata sasa hawawezi - jibu sahihi liligeuka kuwa sio algorithm, lakini dhibitisho la kutowezekana kwa kutatua shida. Hiyo ni, algorithm kama hiyo haipo. Lakini kila uthibitisho wa kutowezekana kulingana na muundo rahisi au juu ya vitu ambavyo watu walijifanya kutozingatia muundo rahisi. Kwa sababu tu unaita kitu jina jipya, haipotezi asili yake.

Vitaly: Inageuka kuwa ulikuwa na bahati tu?

Maurice: Kando na bahati, pia utayari. Hii ina maana kwamba hupaswi kusahau mambo "isiyo na maana" uliyojifunza hapo awali. Kadiri unavyojifunza vitu visivyo na maana, ndivyo mawazo zaidi unavyoweza kutoa unapokabiliwa na tatizo jipya. Aina hii ya kulinganisha muundo wa angavu ni muhimu kwa sababu ... Wacha tufanye hivi, hii ni mlolongo: mwanzoni niligundua kuwa grafu hazifanyi kazi kabisa au hazifanyi kazi kabisa, ilinikumbusha kitu kutoka kwa matukio ya nane. miaka iliyopita na miaka ya mwanafunzi wangu, tuliposoma mambo haya yote rahisi. Hii iliniruhusu kupata kitabu changu cha zamani cha topolojia na kukipakia tena kichwani mwangu. Lakini kama isingekuwa maarifa hayo ya zamani, nisingeweza kamwe kufanya maendeleo yoyote katika kutatua tatizo la awali.

Toleo jipya la kitabu "Sanaa ya Multiprocessor Programming"

Alexey: Ulisema maneno machache kuhusu kitabu chako. Labda sio siri mbaya zaidi kwamba uliandika kitabu maarufu zaidi cha usomaji wa maandishi mengi, "Sanaa ya Utayarishaji wa Multiprocessor". Tayari ina umri wa miaka 11 na tangu wakati huo imetolewa tu  kuchapishwa upya. Je, kutakuwa na toleo la pili?

Maurice: Ni vizuri umeuliza! Itakuwa hivi karibuni, katika miezi mitatu au zaidi. Kuna waandishi wengine wawili, tumeongeza nyenzo nyingi zaidi, tukaboresha sehemu ya uma/join parallelism, tukaandika sehemu kwenye MapReduce, tukaongeza vitu vingi vipya na kutupa vitu visivyo vya lazima - kitu ambacho kilivutia sana wakati wa kuandika. toleo la kwanza, lakini halipo tena leo. Matokeo yake yalikuwa kitabu kilichorekebishwa kwa umakini sana.

Alexey: Kila kitu tayari kimefanywa, kilichobaki ni kuifungua tu?

Maurice: Sura kadhaa bado zinahitaji kazi fulani. Mchapishaji wetu (ambaye nadhani tayari anatuchukia) bado anajaribu kufikisha ujumbe kwamba tufanye kazi haraka. Tuko nyuma sana kwenye ratiba. Kinadharia, tungeweza kufanya kitabu hiki miaka michache mapema.

Alexey: Je, una nafasi ya kupata toleo jipya la kitabu kabla ya Krismasi?

Maurice: Hili ndilo lengo letu! Lakini nimetabiri ushindi mara nyingi sana kwamba hakuna mtu anayeniamini tena. Pengine hupaswi kuniamini sana katika jambo hili pia.

Alexey: Kwa hali yoyote, hii ni habari nzuri. Nilipenda sana toleo la kwanza la kitabu. Unaweza kusema mimi ni shabiki.

Maurice: Natumai toleo jipya litastahili shauku yako ya dhati, asante!

Jinsi Kumbukumbu ya Muamala Ilivyovumbuliwa

Vitaly: Swali linalofuata ni kuhusu kumbukumbu ya shughuli. Kwa jinsi ninavyoelewa, wewe ni mwanzilishi katika fani hii, uliivumbua wakati ambapo hakuna mtu aliyekuwa akifikiria kuhusu mambo kama hayo. Kwa nini uliamua kuhamia katika uwanja huu? Kwa nini miamala ilionekana kuwa muhimu kwako? Je, ulifikiri kwamba siku moja wangetekelezwa katika vifaa?

Maurice: Nimejua kuhusu shughuli za malipo tangu siku zangu za utafiti wa kuhitimu.

Vitaly: Ndiyo, lakini hizi ni shughuli tofauti!

Maurice: Nilifanya kazi na Elliott Moss kwenye ukusanyaji wa taka zisizozuia. Shida yetu ilikuwa kwamba tulitaka kubadilisha maneno machache kwenye kumbukumbu kiotomatiki na kisha kanuni zingekuwa rahisi sana, na angalau baadhi yao zingekuwa bora zaidi. Kutumia kulinganisha-na-kubadilishana kwa load-link/store-conditionalzinazotolewa na usanifu sambamba, inawezekana kufanya kitu, lakini haifai sana na ni mbaya kwa sababu ungepaswa kukabiliana na tabaka za mwelekeo. Ninataka kubadilisha maneno ya kumbukumbu na ninahitaji kubadili kwa sababu ninaweza kubadilisha pointer moja tu, kwa hivyo zinahitaji kuelekeza aina fulani ya muundo kama saraka. Tulizungumza juu ya jinsi ingekuwa nzuri ikiwa tunaweza kubadilisha maunzi ili iweze kurekodi wakati huo huo. Elliott inaonekana amegundua hii: ukiangalia itifaki za ushikamani wa kache, tayari hutoa utendaji mwingi unaohitajika. Katika shughuli ya matumaini, itifaki ya upatanishi wa kache itagundua kuwa kuna mzozo wa wakati na kache itakuwa. batili. Nini kitatokea ikiwa utaendesha shughuli kwa kubahatisha kwenye akiba yako na kutumia njia za itifaki za upatanishi kugundua mizozo? Usanifu wa vifaa vya kubahatisha ulikuwa rahisi kubuni. Kwa hivyo tuliandika hiyo uchapishaji wa kwanza kabisa kuhusu kumbukumbu ya shughuli. Wakati huo huo, kampuni niliyokuwa nafanyia kazi, Digital Equipment Corporation, ilikuwa ikiunda kichakataji kipya cha 64-bit kinachoitwa Alpha. Kwa hivyo nilienda na kutoa wasilisho kwa kikundi cha ukuzaji cha Alpha kuhusu kumbukumbu yetu ya ajabu ya muamala na wakauliza: Je, kampuni yetu ingepata mapato kiasi gani ya ziada ikiwa tutaongeza haya yote moja kwa moja kwenye kichakataji? Na sikuwa na jibu kabisa kwa hili, kwa sababu mimi ni mwanateknolojia, mimi si mtaalamu wa masoko. Kwa kweli sikuwa na la kujibu. Hawakufurahishwa sana kwamba sikujua chochote.

Vitaly: Mabilioni! Sema mabilioni tu!

Maurice: Ndiyo, ndivyo nilipaswa kusema. Sasa, katika umri wa kuanza na kila kitu, najua jinsi ya kuandika mpango wa biashara. Kwamba unaweza kusema uwongo kidogo juu ya saizi ya faida yako inayoweza kutokea. Lakini katika siku hizo ilionekana kuwa ni ujinga, kwa hiyo nilisema tu, “Sijui.” Ikiwa unatazama historia ya uchapishaji kwenye kumbukumbu ya shughuli, utaona kwamba baada ya mwaka kulikuwa na marejeleo kadhaa juu yake, na kisha kwa karibu miaka kumi hakuna mtu aliyetaja karatasi hii kabisa. Nukuu zilionekana karibu 2004, wakati aina nyingi za kweli zilionekana. Watu walipogundua kuwa kuandika msimbo sambamba kunaweza kutengeneza pesa, utafiti mpya ulianza. Ravi Rajwar aliandika makala, ambayo kwa namna fulani ilianzisha dhana ya kumbukumbu ya shughuli kwa njia kuu. (Maelezo ya mhariri: Kuna toleo la pili la makala hii, lililotolewa mwaka wa 2010 na linapatikana bila malipo. kama PDF) Ghafla watu waligundua haswa jinsi hii yote inaweza kutumika, jinsi algorithms ya jadi iliyo na kufuli inaweza kuharakishwa. Mfano mzuri wa kitu ambacho hapo awali kilionekana kuwa shida ya kielimu ya kupendeza. Na ndio, ikiwa ungeniuliza wakati huo ikiwa nilidhani kuwa haya yote yatakuwa muhimu katika siku zijazo, ningesema: bila shaka, lakini ni wakati gani haijulikani wazi. Labda katika miaka 50? Kwa mazoezi, hii iligeuka kuwa muongo mmoja tu. Inapendeza sana unapofanya jambo na baada ya miaka kumi tu watu wanaliona.

Kwa nini inafaa kufanya utafiti katika uwanja wa kompyuta iliyosambazwa

Vitaly: Ikiwa tutazungumza kuhusu utafiti mpya, ungewashauri nini wasomaji - kompyuta iliyosambazwa au ya msingi nyingi na kwa nini? 

Maurice: Siku hizi ni rahisi kupata kichakataji chenye msingi mwingi, lakini ni ngumu zaidi kusanidi mfumo wa kweli unaosambazwa. Nilianza kuzifanyia kazi kwa sababu nilitaka kufanya kitu tofauti na thesis yangu ya PhD. Huu ndio ushauri ninaoutoa kila mara kwa wanafunzi wapya: usiandike mwendelezo wa tasnifu yako—jaribu kwenda katika mwelekeo mpya. Na pia, multithreading ni rahisi. Ninaweza kujaribu uma yangu mwenyewe inayoendesha kwenye kompyuta yangu ndogo bila kuinuka kitandani. Lakini ikiwa ghafla nilitaka kuunda mfumo halisi uliosambazwa, ningelazimika kufanya kazi nyingi, kuvutia wanafunzi, na kadhalika. Mimi ni mtu mvivu na ningependelea kufanya kazi kwa msingi mwingi. Majaribio ya mifumo mingi ya msingi pia ni rahisi kuliko kufanya majaribio kwenye mifumo iliyosambazwa, kwa sababu hata katika mfumo wa kijinga uliosambazwa kuna mambo mengi sana ambayo yanahitaji kudhibitiwa.

Vitaly: Unafanya nini sasa, unatafiti blockchain? Ni makala gani unapaswa kuzingatia kwanza?

Maurice: Hivi majuzi alionekana makala nzuri sana, ambayo niliandika pamoja na mwanafunzi wangu, Vikram Saraf, hasa kwa ajili ya hotuba Mkutano wa Tokenomcs mjini Paris wiki tatu zilizopita. Hii ni makala kuhusu mifumo ya kusambazwa kwa vitendo, ambayo tunapendekeza kuifanya Ethereum iwe na nyuzi nyingi. Hivi sasa, mikataba mahiri (msimbo unaotumika kwenye blockchain) hutekelezwa kwa kufuatana. Tuliandika makala mapema ambayo ilizungumzia njia ya kutumia shughuli za kubahatisha ili kuharakisha mchakato. Tulichukua mawazo mengi kutoka kwa kumbukumbu ya shughuli za programu na tukasema kwamba ikiwa utafanya mawazo haya kuwa sehemu ya mashine ya Etherium virtual, basi kila kitu kitafanya kazi kwa kasi zaidi. Lakini kwa hili ni muhimu kwamba hakuna migogoro ya data katika mikataba. Na kisha tukadhani kuwa katika maisha halisi hakuna migogoro kama hiyo. Lakini hatukuwa na njia ya kujua. Kisha ilitokea kwetu kwamba tulikuwa na karibu miaka kumi ya historia ya kweli ya mkataba mikononi mwetu, kwa hiyo tulitupa blockchain ya Ethereum na tukajiuliza: nini kitatokea ikiwa rekodi hizi za kihistoria zilitekelezwa kwa sambamba? Tulipata ongezeko kubwa la kasi. Katika siku za mwanzo za Ethereum, kasi iliongezeka sana, lakini leo kila kitu ni ngumu zaidi, kwa sababu kuna mikataba machache na uwezekano wa migogoro juu ya data ambayo inahitaji ujumuishaji imekuwa juu. Lakini hii yote ni kazi ya majaribio na data halisi ya kihistoria. Jambo zuri kuhusu blockchain ni kwamba inakumbuka kila kitu milele, kwa hivyo tunaweza kurudi nyuma na kusoma kile ambacho kingetokea ikiwa tungetumia algoriti tofauti kuendesha nambari. Watu wa zamani wangependaje wazo letu jipya? Utafiti huo ni rahisi zaidi na wa kufurahisha zaidi kufanya, kwa sababu kuna jambo ambalo linafuatilia kila kitu na kurekodi kila kitu. Hiki tayari ni kitu kinachofanana zaidi na sosholojia kuliko ukuzaji wa algoriti.

Maendeleo ya algorithms yamesimama na jinsi ya kuendelea?

Vitaly: Wakati wa swali la mwisho la kinadharia! Je, inahisi kama maendeleo katika miundo shindani ya data yanapungua kila mwaka? Je, unafikiri tumefikia upeo katika uelewa wetu wa miundo ya data au kutakuwa na maboresho makubwa? Labda kuna mawazo ya wajanja ambayo yanaweza kubadilisha kabisa kila kitu?

Maurice: Huenda tumefikia uwanda katika miundo ya data kwa usanifu wa kitamaduni. Lakini miundo ya data kwa usanifu mpya bado ni eneo la kuahidi sana. Ikiwa ungependa kuunda miundo ya data ya, sema, vichapuzi vya maunzi, basi miundo ya data ya GPU ni tofauti sana na miundo ya data ya CPU. Unapotengeneza miundo ya data kwa blockchains, unahitaji kuharakisha vipande vya data na kisha uviweke kwenye kitu kama hicho Mti wa Merkle, kuzuia bidhaa bandia. Kumekuwa na ongezeko la shughuli katika eneo hili hivi majuzi, huku wengi wakifanya kazi nzuri sana. Lakini nadhani kitakachotokea ni kwamba usanifu mpya na programu mpya zitasababisha miundo mpya ya data. Utumizi wa urithi na usanifu wa kitamaduni - kunaweza kusiwe na nafasi kubwa ya uchunguzi tena. Lakini ukiondoka kwenye njia iliyopigwa na kuangalia ng'ambo ya kingo, utaona mambo ya kichaa ambayo jamii kuu haichukulii kwa uzito - hapo ndipo mambo yote ya kusisimua hutokea.

Vitaly: Kwa hivyo, ili kuwa mtafiti maarufu sana, ilibidi nivumbue usanifu wangu mwenyewe :)

Maurice: Unaweza "kuiba" usanifu mpya wa mtu mwingine - inaonekana rahisi zaidi!

Hufanya kazi Brown University

Vitaly: Unaweza kutuambia zaidi kuhusu Chuo Kikuu cha Brownunafanya kazi wapi? Hakuna mengi yanayojulikana juu yake katika muktadha wa teknolojia ya habari. Chini ya kuhusu MIT, kwa mfano.

Maurice: Chuo Kikuu cha Brown ni mojawapo ya vyuo vikuu vya kale zaidi nchini Marekani. Nadhani Harvard pekee ndiye mzee kidogo. Brown ni sehemu ya kinachojulikana Ligi ya Ivy, ambayo ni mkusanyiko wa vyuo vikuu nane vikongwe zaidi. Harvard, Brown, Cornell, Yale, Columbia, Dartmouth, Pennsylvania, Princeton. Ni aina ya chuo kikuu cha zamani, kidogo na cha kiungwana. Lengo kuu ni elimu ya sanaa huria. Haijaribu kuwa kama MIT, MIT ni maalum sana na ya kiufundi. Brown ni mahali pazuri pa kusoma Fasihi ya Kirusi au Kigiriki cha Kawaida, na bila shaka, Sayansi ya Kompyuta. Inazingatia elimu ya kina. Wanafunzi wetu wengi huenda kwa Facebook, Apple, Google - kwa hivyo nadhani wanafunzi wetu hawana shida kupata kazi katika tasnia. Nilienda kufanya kazi kwa Brown kwa sababu hapo awali nilikuwa nimefanya kazi katika Shirika la Vifaa vya Dijitali huko Boston. Hii ilikuwa kampuni ambayo iligundua vitu vingi vya kupendeza, lakini ilikanusha umuhimu wa kompyuta za kibinafsi. Kampuni iliyo na hatima ngumu, ambayo waanzilishi wake walikuwa wanamapinduzi wachanga, hawakujifunza chochote na hawakusahau chochote, na kwa hivyo waligeuka kutoka kwa wanamapinduzi na kuwa watetezi ndani ya miaka kumi na mbili. Walipenda kufanya mzaha kwamba kompyuta za kibinafsi zilikuwa katika karakana - gereji iliyoachwa, bila shaka. Ni dhahiri kabisa kwamba waliharibiwa na makampuni rahisi zaidi. Ilipobainika kuwa kampuni ilikuwa na matatizo, nilimpigia simu rafiki yangu huko Brown, ambayo ni karibu saa moja nje ya Boston. Sikutaka kuondoka Boston wakati huo kwa sababu hakukuwa na fursa nyingi katika vyuo vikuu vingine. Huu ulikuwa wakati ambapo hakukuwa na kazi nyingi katika Sayansi ya Kompyuta kama ilivyo sasa. Na Brown alikuwa na mwanya, sikulazimika kuhama nyumba yangu, sikulazimika kuhamisha familia yangu, na napenda sana kuishi Boston! Ndivyo nilivyoamua kwenda kwa Brown. Naipenda. Wanafunzi ni wa ajabu, kwa hivyo sikuwahi hata kujaribu kwenda mahali pengine. Wakati wa sabato yangu, nilifanya kazi katika Microsoft kwa mwaka mmoja, nikaenda Technion huko Haifa kwa mwaka mmoja, na sasa nitakuwa Algorand. Nina wenzangu wengi kila mahali na kwa hivyo eneo halisi la madarasa yetu sio muhimu sana. Lakini jambo muhimu zaidi ni wanafunzi, wao ni bora hapa. Sijawahi kujaribu kwenda mahali pengine kwa sababu nina furaha sana hapa.

Hata hivyo, licha ya umaarufu wa Brown nchini Marekani, kwa kushangaza haijulikani nje ya nchi. Kama unavyoona, sasa ninafanya kila linalowezekana kurekebisha hali hii ya mambo.

Tofauti kati ya utafiti katika chuo kikuu na ndani ya shirika

Vitaly: Sawa, swali linalofuata ni kuhusu Vifaa vya Dijiti. Ulikuwepo kama mtafiti. Kuna tofauti gani kati ya kufanya kazi katika idara ya R&D ya kampuni kubwa na kufanya kazi katika chuo kikuu? Je, ni faida na hasara gani?

Maurice: Kwa miaka ishirini nilifanya kazi katika Microsoft, nilifanya kazi kwa karibu na wafanyakazi wa Sun Microsystems, Oracle, Facebook, na sasa Algorand. Kulingana na haya yote, nataka kusema kwamba inawezekana kufanya utafiti wa darasa la kwanza katika makampuni na vyuo vikuu. Tofauti muhimu ni kwamba katika kampuni unafanya kazi na wenzako. Ikiwa ghafla nina wazo la mradi ambao haupo, lazima niwashawishi wenzangu kuwa hili ni wazo zuri. Ikiwa niko Brown, basi ninaweza kuwaambia wanafunzi wangu: wacha tufanye kazi juu ya antigravity! Wataondoka kwa mtu mwingine au kuchukua mradi. Ndiyo, nitahitaji kupata ufadhili, nitahitaji kuandika maombi ya ruzuku, na kadhalika. Kwa hali yoyote, kutakuwa na wanafunzi wengi kila wakati, na utaweza kufanya maamuzi kwa upande mmoja. Lakini katika chuo kikuu kuna uwezekano mkubwa kuwa hautafanya kazi na watu wa kiwango chako. Katika ulimwengu wa utafiti wa kiviwanda, lazima kwanza ushawishi kila mtu kuwa mradi wako unastahili kuchukua. Siwezi kuagiza chochote kwa mtu yeyote. Na njia hizi zote mbili za kufanya kazi ni muhimu, kwa sababu ikiwa unafanya kazi kwenye kitu cha kichaa sana na wenzako ni ngumu kuwashawishi, ni rahisi kuwashawishi wanafunzi waliohitimu - haswa ikiwa unawalipa. Ikiwa unafanya kazi kwenye jambo ambalo linahitaji uzoefu mwingi na ujuzi wa kina, basi unahitaji wenzako ambao wanaweza kusema "hapana, hutokea tu kwamba ninaelewa katika eneo hili na wazo lako ni mbaya, haitafanya kazi." Hii ni muhimu sana katika suala la kupoteza muda. Pia, ikiwa katika maabara ya viwanda unatumia muda mwingi kuandika ripoti, basi katika chuo kikuu unatumia wakati huu kujaribu kupata pesa. Ikiwa ninataka wanafunzi waweze kwenda mahali fulani, lazima nitafute pesa mahali pengine. Na kadiri nafasi yako inavyokuwa muhimu katika chuo kikuu, ndivyo unavyotumia wakati mwingi kutafuta pesa. Kwa hivyo sasa unajua ninachofanyia kazi - ombaomba mtaalamu! Kama mmoja wa watawa wale wanaotembea na sahani ya sadaka. Kwa ujumla, shughuli hizi mbili hukamilishana. Ndio maana ninajaribu kuishi na kuweka miguu yangu ardhini katika ulimwengu wote.

Vitaly: Inaonekana kwamba kushawishi kampuni ni vigumu zaidi kuliko kushawishi wanasayansi wengine.

Maurice: Ngumu zaidi, na mengi zaidi. Aidha, katika maeneo tofauti ni tofauti: wengine hufanya utafiti kamili, wakati wengine wanazingatia mada yao. Ikiwa ningeenda kwa Microsoft au Facebook na kusema: wacha tufanye kupambana na mvuto, hawatathamini sana. Lakini ikiwa ningesema vivyo hivyo kwa wanafunzi wangu waliohitimu, wangeweza kufanya kazi mara moja, ingawa sasa ningekuwa na shida - baada ya yote, ninahitaji kupata pesa kwa hili. Lakini mradi tu unataka kufanya jambo linaloendana na malengo ya kampuni, kampuni hiyo inaweza kuwa mahali pazuri sana pa kufanyia utafiti.

Hydra na SPTDC

Vitaly: Maswali yangu yanakaribia mwisho, kwa hivyo wacha tuzungumze kidogo juu ya safari ijayo ya Urusi.

Maurice: Ndiyo, ninatazamia kwa hamu kurudi St.

Alexey: Nimefurahiya kuwa nawe mwaka huu. Hii ni mara yako ya pili huko St. Petersburg, sivyo?

Maurice: Tayari ya tatu!

Alexey: Ninaelewa, lakini SPTDC - hakika ya pili. Mara ya mwisho shule iliitwa SPTCC, sasa tumebadilisha herufi moja (C hadi D, Sanjari hadi Kusambazwa) ili kusisitiza kwamba kuna maeneo zaidi yanayohusiana hasa na kompyuta iliyosambazwa mwaka huu. Je, unaweza kusema maneno machache kuhusu ripoti zako katika Shule na Mkutano wa Hydra?

Maurice: Shuleni nataka kuzungumza juu ya misingi ya blockchain na nini unaweza kufanya nayo. Ningependa kuonyesha kwamba blockchains ni sawa na programu ya multi-threaded tunayofahamu, lakini kwa nuances yao wenyewe, na tofauti hizi ni muhimu kuelewa. Ikiwa utafanya makosa katika programu ya kawaida ya wavuti, inakera tu. Ikiwa utaandika msimbo wa buggy katika programu ya kifedha, mtu hakika ataiba pesa zako zote. Hizi ni viwango tofauti kabisa vya uwajibikaji na matokeo. Nitazungumza kidogo juu ya uthibitisho wa kazi, juu ya mikataba ya busara, juu ya shughuli kati ya blockchains tofauti.

Kutakuwa na wasemaji wengine wanaofanya kazi karibu nami ambao pia wana kitu cha kusema kuhusu blockchain, na tulikubaliana kuratibu na kila mmoja ili hadithi zetu ziendane vizuri. Lakini kwa ripoti ya uhandisi, ninataka kuwaambia hadhira pana maelezo yanayoeleweka ya kwa nini hupaswi kuamini kila kitu unachosikia kuhusu blockchains, kwa nini blockchains ni uwanja mzuri, jinsi inavyolingana na mawazo mengine yanayojulikana, na kwa nini tunapaswa kuangalia kwa ujasiri. kwa siku zijazo.

Alexey: Kwa kuongezea, nataka kusema kwamba hii haitafanyika katika muundo wa mkutano au kikundi cha watumiaji, kama ilivyokuwa miaka miwili iliyopita. Tuliamua kufanya mkutano mdogo karibu na shule. Sababu ni kwamba baada ya kuwasiliana na Peter Kuznetsov, tuligundua kuwa shule hiyo ni mdogo kwa mia tu, labda watu 120. Wakati huo huo, kuna wahandisi wengi ambao wanataka kuwasiliana na wewe, kuhudhuria mawasilisho, na kwa ujumla wanavutiwa na mada. Kwa sababu hii tumeunda mkutano mpya inayoitwa Hydra. Kwa njia, mawazo yoyote kwa nini Hydra?

Maurice: Kwa sababu kutakuwa na wasemaji saba? Na vichwa vyao vinaweza kukatwa, na wasemaji wapya watakua mahali pao?

Alexey: Wazo nzuri kwa kukuza wasemaji wapya. Lakini kwa kweli, kuna hadithi hapa. Kumbuka hadithi ya Odysseus, ambapo alilazimika kusafiri kati Scylla na Charybdis? Hydra ni kitu kama Charybdis. Hadithi ni kwamba mara moja nilizungumza kwenye mkutano na kuongea juu ya usomaji mwingi. Kulikuwa na nyimbo mbili tu katika mkutano huu. Mwanzoni mwa ripoti, niliwaambia wasikilizaji katika ukumbi kwamba sasa wana chaguo kati ya Scylla na Charybdis. Mnyama wangu wa roho ni Charybdis kwa sababu Charybdis ina vichwa vingi na mada yangu ni ya nyuzi nyingi. Hivi ndivyo majina ya makongamano yanaonekana.

Kwa vyovyote vile, tumeishiwa na maswali na wakati. Kwa hivyo, asante, marafiki, kwa mahojiano mazuri, na tuonane katika Shule ya SPTDC na Hydra 2019!

Unaweza kuendelea na mazungumzo yako na Maurice kwenye mkutano wa Hydra 2019, utakaofanyika Julai 11-12, 2019 huko St. Atakuja na ripoti "Blockchains na mustakabali wa kompyuta iliyosambazwa". Tikiti zinaweza kununuliwa kwenye wavuti rasmi.

Chanzo: mapenzi.com

Kuongeza maoni