ā€œAtbildēt ir vieglāk nekā klusētā€ ā€“ lieliska intervija ar transakciju atmiņas tēvu Morisu Herlihi

Moriss Herlihijs - divu Ä«paÅ”nieks Dijkstra balvas. Pirmais ir paredzēts darbam "Sinhronizācija bez gaidÄ«Å”anas" (Brauna universitāte) un otrā, jaunākā, - "Transakciju atmiņa: arhitektÅ«ras atbalsts bezbloķētām datu struktÅ«rām" (Virdžīnijas Tehniskā universitāte). Dijkstras balva tiek pieŔķirta par darbiem, kuru nozÄ«me un ietekme ir manāma jau vismaz desmit gadus un, acÄ«mredzot, Moriss ir viens no slavenākajiem nozares speciālistiem. PaÅ”laik viņŔ ir Brauna universitātes profesors, un viņam ir rindkopu gari sasniegumi. Tagad viņŔ nodarbojas ar blokķēdes izpēti klasiskās izplatÄ«tās skaitļoÅ”anas kontekstā.

IepriekÅ” Moriss jau bija ieradies Krievijā uz SPTCC (videokasete) un sarÄ«koja lielisku tikÅ”anos ar JUG.ru Java izstrādātāju kopienu Sanktpēterburgā (videokasete).

Å is habraposts ir lieliska intervija ar Morisu Herlihiju. Tajā tiek apspriestas Ŕādas tēmas:

  • MijiedarbÄ«ba starp akadēmiskajām aprindām un rÅ«pniecÄ«bu;
  • Pamats blokķēdes izpētei;
  • No kurienes rodas revolucionāras idejas? Popularitātes ietekme;
  • PhD Barbaras Liskovas vadÄ«bā;
  • Pasaule gaida daudzkodolu;
  • Jauna pasaule, jaunas problēmas. NVM, NUMA un arhitektÅ«ras uzlauÅ”ana;
  • Kompilatori pret centrālajiem procesoriem, RISC vs CISC, koplietojamā atmiņa pret ziņojumu pārsÅ«tÄ«Å”anu;
  • Trausla daudzpavedienu koda rakstÄ«Å”anas māksla;
  • Kā iemācÄ«t studentiem rakstÄ«t sarežģītu daudzpavedienu kodu;
  • Grāmatas "The Art of Multiprocessor Programming" jauns izdevums;
  • Kā tika izgudrota transakciju atmiņa?   
  • Kāpēc ir vērts veikt pētÄ«jumus izplatÄ«tās skaitļoÅ”anas jomā;
  • Vai algoritmu izstrāde ir apstājusies, un kā dzÄ«vot tālāk;
  • Darbs Brauna universitātē;
  • AtŔķirÄ«ba starp universitātes un korporatÄ«vo pētniecÄ«bu;
  • Hidra un SPTDC.

Intervijas veic:

Vitālijs Aksenovs ā€” Å”obrÄ«d IST Austrijas doktorantÅ«ra un ITMO universitātes DatortehnoloÄ£iju nodaļas darbinieks. ViņŔ nodarbojas ar pētÄ«jumiem konkurētspējÄ«gu datu struktÅ«ru teorijas un prakses jomā. Pirms pievienoÅ”anās IST viņŔ ieguva doktora grādu ParÄ«zes Didro universitātē un ITMO universitātē pie prof. Petra Kuzņecova.

Aleksejs Fjodorovs ir producents Krievijas uzņēmumā JUG Ru Group, kas organizē konferences izstrādātājiem. Aleksejs piedalÄ«jās vairāk nekā 50 konferenču sagatavoÅ”anā, un viņa CV ir viss, sākot no izstrādes inženiera amata Oracle (JCK, Java Platform Group) lÄ«dz izstrādātāja amatam uzņēmumā Odnoklassniki.

Vladimirs Sitņikovs ir Netcracker inženieris. Desmit gadus viņŔ ir strādājis pie NetCracker OS veiktspējas un mērogojamÄ«bas ā€” programmatÅ«ras, ko telekomunikāciju operatori izmanto tÄ«kla un tÄ«kla iekārtu pārvaldÄ«bas procesu automatizÄ“Å”anai. Interesē Java un Oracle Database veiktspējas problēmas. Autors vairāk nekā duci veiktspējas uzlabojumu oficiālajā PostgreSQL JDBC draiverÄ«.

Mijiedarbība starp akadēmiskajām aprindām un rūpniecību

Aleksejs: Moris, jÅ«s jau ļoti ilgu laiku strādājat akadēmiskajā vidē, un pirmais jautājums ir par akadēmisko aprindu un rÅ«pniecÄ«bas mijiedarbÄ«bu. Vai jÅ«s varētu mums pastāstÄ«t, kā pēdējā laikā ir mainÄ«jusies viņu savstarpējā mijiedarbÄ«ba? Kas bija pirms 20-30 gadiem un kas notiek tagad? 

Moriss: Vienmēr esmu centies cieÅ”i sadarboties ar komercuzņēmumiem, jo ā€‹ā€‹tiem ir interesanti izaicinājumi. Parasti viņi nav Ä«paÅ”i ieinteresēti publicēt savus rezultātus vai detalizēti izskaidrot savas problēmas pasaules sabiedrÄ«bai. Viņus interesē tikai Å”o problēmu risināŔana. Es kādu laiku strādāju dažos no Å”iem uzņēmumiem. Es pavadÄ«ju piecus gadus, strādājot pilnas slodzes pētÄ«jumu laboratorijā Digital Equipment Corporation, kas agrāk bija liels datoru uzņēmums. Es strādāju vienu dienu nedēļā Sun, Microsoft, Oracle, nedaudz strādāju Facebook. Tagad doÅ”os atvaļinājumā (kādas Amerikas universitātes profesoram ir atļauts paņemt Ŕādu atvaļinājumu uz gadu apmēram reizi seÅ”os gados) un strādāŔu Algorands, tas ir tāds kriptovalÅ«tas uzņēmums Bostonā. CieÅ”a sadarbÄ«ba ar uzņēmumiem vienmēr ir bijusi prieks, jo tā tu uzzini par jaunām un interesantām lietām. Parasti jÅ«s varat bÅ«t pirmais vai otrais, kurÅ” publicē rakstu par izvēlēto tēmu, nevis pakāpeniski uzlabojat risinājumus problēmām, pie kurām jau strādā visi citi.

Aleksejs: Vai varat pastāstīt vairāk par to, kā tas notiek?

Moriss: Protams. JÅ«s zināt, kad es strādāju Digital Equipment Corporation, es un Eliots Moss, mēs izgudrojām transakciju atmiņu. Tas bija ļoti auglÄ«gs periods, kad visi sāka interesēties par informācijas tehnoloÄ£ijām. Iekļauts vienlaicÄ«gums, lai gan daudzkodolu sistēmas vēl nepastāvēja. Sun un Oracle laikā es daudz strādāju pie paralēlām datu struktÅ«rām. Facebook es biju iesaistÄ«ts viņu blokķēdes projektā, par kuru es nevaru runāt, bet, cerams, drÄ«z tas tiks atklāts. Nākamajā gadā Algorandā es strādāŔu pie pētniecÄ«bas grupas, kas pētÄ«s viedos lÄ«gumus.

Aleksejs: Pēdējos gados blokķēde ir kļuvusi par ļoti populāru tēmu. Vai tas palÄ«dzēs jÅ«su pētÄ«jumiem? VarbÅ«t tas atvieglos grantu saņemÅ”anu vai ļaus piekļūt nozarē strādājoÅ”o uzņēmumu resursiem?

Moriss: Es jau esmu saņēmis nelielu stipendiju no Ethereum fonda. Blokķēdes popularitāte ir ļoti noderÄ«ga, lai iedvesmotu studentus darboties Å”ajā jomā. Viņus tas ļoti interesē un viņi labprāt iesaistās, taču dažreiz viņi neapzinās, ka pētÄ«jumi, kas no malas izklausās vilinoÅ”i, ir saistÄ«ti ar patieŔām smagu darbu. Tomēr es ļoti priecājos izmantot visu Å”o mistiku ap blokķēdi, tas palÄ«dz piesaistÄ«t studentus. 

Bet tas vēl nav viss. Esmu vairāku blokķēdes jaunuzņēmumu konsultatÄ«vajā padomē. Dažiem no viņiem var izdoties, dažiem ne, taču vienmēr ir ļoti interesanti redzēt viņu idejas, izpētÄ«t tās un sniegt padomus cilvēkiem. Pats aizraujoŔākais ir tad, kad tu brÄ«dini cilvēkus kaut ko nedarÄ«t. Sākumā daudzas lietas Ŕķiet laba ideja, bet vai tās tieŔām ir?

Pamats blokķēdes izpētei

Vitālijs: Daži cilvēki domā, ka blokķēde un tās algoritmi ir nākotne. Un citi cilvēki saka, ka tas ir tikai kārtējais burbulis. Vai varat padalÄ«ties ar savu viedokli par Å”o lietu?

Moriss: Daudz kas no tā, kas notiek blokķēdes pasaulē, nedarbojas pareizi, daži ir tikai krāpnieki, daudzas lietas ir pārvērtētas. Tomēr es domāju, ka Å”iem pētÄ«jumiem ir stabils zinātnisks pamatojums. Fakts, ka blokķēdes pasaule ir pilna ar ideoloÄ£isku ŔķelÅ”anos, liecina par sajÅ«smas un atdeves lÄ«meni. No otras puses, tas nav Ä«paÅ”i izdevÄ«gi zinātniskiem pētÄ«jumiem. Tagad, ja publicējat rakstu, kurā runāts par konkrēta algoritma trÅ«kumiem, saņemtā reakcija ne vienmēr ir pilnÄ«bā zinātniska. Bieži cilvēki pauž savas emocijas. Domāju, ka kādam Ŕāda ažiotāža Å”ajā jomā var Ŕķist pievilcÄ«ga, taču galu galā ir reāli zinātniski un inženiertehniskie jautājumi, kas vēl ir jārisina. Å eit ir daudz datorzinātņu.

Vitālijs: Tātad jūs mēģināt likt pamatus blokķēdes izpētei, vai ne?

Moriss: Es cenÅ”os likt pamatus stabilai, zinātniski un matemātiski pamatotai disciplÄ«nai. Un daļa no problēmas ir tā, ka dažkārt nākas nonākt pretrunā ar kādu citu cilvēku pārlieku skarbu nostāju, tās ignorēt. Dažkārt cilvēki jautā, kāpēc es strādāju jomā, kas interesē tikai teroristus un narkotiku tirgotājus. Šāda reakcija ir tikpat bezjēdzÄ«ga kā sekotāju uzvedÄ«ba, kas akli atkārto jÅ«su vārdus. Es domāju, ka patiesÄ«ba ir kaut kur pa vidu. Blokķēdei vēl nav bÅ«tiskas ietekmes uz sabiedrÄ«bu un pasaules ekonomiku. Bet, iespējams, tas nenotiks, pateicoties mÅ«sdienu tehnoloÄ£ijām. AttÄ«stÄ«sies modernās tehnoloÄ£ijas un ļoti nozÄ«mÄ«gs kļūs tas, kas nākotnē tiks saukts par blokķēdi. VarbÅ«t tas pat neizskatÄ«sies pēc modernām blokķēdēm, tas ir atklāts jautājums.

Ja cilvēki izgudros jaunas tehnoloÄ£ijas, viņi to turpinās saukt par blokķēdi. Es domāju, tāpat kā mÅ«sdienu Fortran nav nekāda sakara ar Fortran valodu no 1960. gadiem, bet visi to sauc par Fortran. Tas pats attiecas uz UNIX. Tas, ko sauc par ā€œblokķēdiā€, vēl tikai veic savu revolÅ«ciju. Bet es Å”aubos, vai Ŕī jaunā blokķēde bÅ«s tāda, kādu Å”odien visi mÄ«l izmantot.

No kurienes rodas revolucionāras idejas? Popularitātes ietekme

Aleksejs: Vai blokķēdes popularitāte ir radÄ«jusi jaunus rezultātus no zinātniskā viedokļa? Vairāk mijiedarbÄ«bas, vairāk studentu, vairāk uzņēmumu Å”ajā reÄ£ionā. Vai Å”im popularitātes pieaugumam jau ir kādi rezultāti?

Moriss: Mani tas ieinteresēja, kad kāds man iedeva oficiālu skrejlapu uzņēmumam, kurÅ” tikko bija savācis diezgan daudz naudas. Viņa rakstÄ«ja par Bizantijas Ä£enerāļu uzdevumsar kuru esmu vairāk nekā pazÄ«stams. Bukletā rakstÄ«ts bija nepārprotami tehniski nepareizi. Cilvēki, kas to rakstÄ«ja, Ä«sti nesaprata problēmas modeli... un tomēr Å”is uzņēmums savāca daudz naudas. Pēc tam uzņēmums klusi nomainÄ«ja Å”o bukletu ar daudz pareizāku versiju - un es neteikÅ”u, kā saucās Ŕī kompānija. Viņi joprojām pastāv un viņiem klājas ļoti labi. Å is gadÄ«jums mani pārliecināja, ka, pirmkārt, blokķēde ir tikai izplatÄ«tas skaitļoÅ”anas veids. Otrkārt, iestāŔanās slieksnis (toreiz, pirms četriem gadiem) bija diezgan zems. Cilvēki, kas strādāja Å”ajā jomā, bija ļoti enerÄ£iski un gudri, taču viņi nelasÄ«ja zinātniskus rakstus. Viņi mēģināja no jauna izgudrot zināmas lietas, un viņi to darÄ«ja nepareizi. Å odien drāma ir samazināta.

Aleksejs: Tas ir ļoti interesanti, jo pirms dažiem gadiem mums bija cita tendence. Tas ir nedaudz lÄ«dzÄ«gs priekÅ”gala izstrādei, kad pārlÅ«kprogrammas saskarnes izstrādātāji no jauna izgudroja visas tehnoloÄ£ijas, kas jau tajā laikā bija populāras aizmugurējā daļā: sistēmu veidoÅ”ana, nepārtraukta integrācija un tamlÄ«dzÄ«gi. 

Moriss: PiekrÄ«tu. Bet tas nav pārsteidzoÅ”i, jo patiesi revolucionāras idejas vienmēr nāk no ārpuses izveidotās kopienas. Ievērojami pētnieki, Ä«paÅ”i akadēmiskās aprindas, diez vai paveiks kaut ko patiesi revolucionāru. Ir viegli uzrakstÄ«t ziņojumu nākamajai konferencei par to, kā jÅ«s nedaudz uzlabojāt sava iepriekŔējā darba rezultātus. Dodieties uz konferenci, sapulcējieties ar draugiem, runājiet par tām paŔām lietām. Un cilvēki, kas ielaužas ar izrāvienu idejām, gandrÄ«z vienmēr nāk no ārpuses. Viņi nezina noteikumus, nezina valodu, bet tomēr... Ja esi iekŔā kādā nodibinātā kopienā, iesaku pievērst uzmanÄ«bu jaunām lietām, kaut kam, kas neiederas lielajā bilde. Savā ziņā var mēģināt apvienot ārēju, plÅ«stoŔāku attÄ«stÄ«bu ar mums jau saprotamiem paņēmieniem. Vispirms mēģiniet izveidot zinātnisku bāzi un pēc tam modificēt to, lai to varētu izmantot jaunām izrāvienu idejām. Es domāju, ka blokķēde ir lieliski piemērota jaunas idejas lomai.

Aleksejs: Kāpēc, jÅ«suprāt, tas notiek? Tāpēc, ka cilvēkiem "ārpus" nav nekādu Ä«paÅ”u barjeru, kas raksturÄ«ga sabiedrÄ«bai?

Moriss: Å eit ir paraugs. Ja lasāt impresionistu vēsturi glezniecÄ«bā un mākslā kopumā, tad savulaik slaveni mākslinieki noraidÄ«ja impresionismu. Viņi teica, ka tas ir sava veida bērniŔķīgums. Paaudzi vēlāk Ŕī iepriekÅ” noraidÄ«tā mākslas forma kļuva par standartu. Ko es redzu savā jomā: blokķēdes izgudrotājus neinteresēja jauda, ā€‹ā€‹publikāciju likvidÄ“Å”ana un citÄ“Å”anas indekss, viņi vienkārÅ”i gribēja izdarÄ«t kaut ko labu. Un tā viņi apsēdās un sāka to darÄ«t. Viņiem trÅ«ka zināma tehniskā dziļuma, bet tas ir labojams. Ir daudz grÅ«tāk smelties jaunas radoÅ”as idejas, nekā koriģēt un pastiprināt nepietiekami nobrieduÅ”as. Pateicoties Å”iem izgudrotājiem, man tagad ir ko darÄ«t!

Aleksejs: Tas ir lÄ«dzÄ«gs atŔķirÄ«bai starp jaunuzņēmumiem un mantotajiem projektiem. Mēs pārmantojam daudz domāŔanas ierobežojumu, ŔķērŔļu, Ä«paÅ”u prasÄ«bu utt.

Moriss: Laba lÄ«dzÄ«ba ir sadalÄ«tā skaitļoÅ”ana. Padomājiet par blokķēdi tā, it kā tas bÅ«tu jaunizveidots uzņēmums un izplatÄ«ta skaitļoÅ”ana kā liels reÄ£istrēts uzņēmums. Izkliedētā skaitļoÅ”ana tiek pirkta un apvienota ar blokķēdi.

Doktora grāds Barbaras Liskovas vadībā

Vitālijs: Mums vēl ir daudz jautājumu! Mēs esam pētÄ«juÅ”i jÅ«su biogrāfiju un atklājām interesantu faktu par jÅ«su doktora grādu. Jā, tas bija sen, bet tēma Ŕķiet svarÄ«ga. JÅ«s ieguvāt doktora grādu uzraudzÄ«bā Barbara Liskova! Barbara ir ļoti labi pazÄ«stama programmÄ“Å”anas valodu izstrādes aprindās un vispār ļoti slavena persona. LoÄ£iski, ka jÅ«su pētÄ«jums bija programmÄ“Å”anas valodu jomā. Kā jÅ«s pārgājāt uz paralēlo skaitļoÅ”anu? Kāpēc nolēmāt mainÄ«t tēmu?

Moriss: Tajā laikā Barbara un viņas grupa tikai aplÅ«koja izplatÄ«to skaitļoÅ”anu, kas bija ļoti jauna ideja. Bija arÄ« tādi, kas teica, ka sadalÄ«tā skaitļoÅ”ana ir muļķības, komunikācija starp datoriem ir bezjēdzÄ«ga. Viens no izplatÄ«tajiem skaitļoÅ”anas jautājumiem, kas tos atŔķir no centralizētās skaitļoÅ”anas, ir kļūdu tolerance. Pēc ilgas izpētes mēs nolēmām, ka programmÄ“Å”anas valodā dalÄ«tajai skaitļoÅ”anai jums ir jābÅ«t tādam kā atomu transakcijām, jo ā€‹ā€‹jÅ«s nekad nevarat bÅ«t pārliecināti, ka attālināts zvans izdosies. Kad ir veikti darÄ«jumi, rodas vienlaicÄ«bas kontroles problēma. Pēc tam bija daudz darba, lai iegÅ«tu ļoti paralēlas darÄ«jumu datu struktÅ«ras. Tad, kad es beidzu, es devos uz Kārnegijs Melons un sāka meklēt tēmu darbam. Man ienāca prātā, ka skaitļoÅ”ana no atseviŔķiem datoriem ir pārgājusi uz datoru tÄ«kliem. Dabisks progresa turpinājums bÅ«tu daudzprocesori ā€“ vārda "daudzkodolu" toreiz nebija. Es domāju: kas ir ekvivalents atomu darÄ«jumiem daudzkodolu sistēmai? Noteikti nav parasti darÄ«jumi, jo tie ir pārāk lieli un smagi. Un tā man radās ideja linearizējamÄ«ba un tā es izdomāju visu bezgaidÄ«Å”anas sinhronizāciju. Tas bija mēģinājums atbildēt uz jautājumu, kas ir atomu transakciju analogs daudzprocesoru sistēmai ar koplietojamo atmiņu. No pirmā acu uzmetiena Å”is darbs var izskatÄ«ties pavisam savādāk, bet patiesÄ«bā tas ir vienas un tās paÅ”as tēmas turpinājums.

Pasaule gaida daudzkodolu

Vitālijs: Jūs minējāt, ka tajā laikā daudzkodolu datoru bija ļoti maz, vai ne?

Moriss: Viņi vienkārÅ”i neeksistēja. Bija vairāki tā sauktie simetriski daudzprocesori, kas bÅ«tÄ«bā bija savienoti ar vienu un to paÅ”u kopni. Tas nedarbojās Ä«paÅ”i labi, jo katru reizi, kad jauns uzņēmums radÄ«ja kaut ko lÄ«dzÄ«gu, Intel izlaida vienu procesoru, kas pārspēja daudzprocesoru.

Aleksejs: Vai tas nenozīmē, ka tajos senajos laikos tas vairāk bija teorētisks pētījums?

Moriss: Tas nebija teorētisks, bet gan spekulatÄ«vs pētÄ«jums. Tas viss nebija saistÄ«ts ar darbu ar daudzām teorēmām, drÄ«zāk mēs izvirzÄ«jām hipotēzes par arhitektÅ«ru, kas tajā laikā nepastāvēja. Tam domāti pētÄ«jumi! Neviens uzņēmums to nebÅ«tu darÄ«jis, tas viss bija kaut kas no tālās nākotnes. Faktiski tas bija lÄ«dz 2004. gadam, kad parādÄ«jās Ä«sti daudzkodolu procesori. Sakarā ar to, ka procesori pārkarst, jÅ«s varat padarÄ«t procesoru vēl mazāku, bet jÅ«s nevarat padarÄ«t to ātrāku. Å Ä« iemesla dēļ notika pāreja uz daudzkodolu arhitektÅ«rām. Un tad tas nozÄ«mēja, ka pēkŔņi visi jēdzieni, ko mēs esam izstrādājuÅ”i pagātnē, tika izmantoti.

Aleksejs: Kāpēc, jūsuprāt, daudzkodolu procesori parādījās tikai XNUMX. gados? Tad kāpēc tik vēlu?

Moriss: Tas ir saistÄ«ts ar aparatÅ«ras ierobežojumiem. Intel, AMD un citi uzņēmumi ļoti labi spēj palielināt procesora ātrumu. Kad kādā brÄ«dÄ« procesori kļuva pietiekami mazi, ka tie vairs nevarēja palielināt takts ātrumu, jo procesori sāks izdegt. JÅ«s varat tos padarÄ«t mazākus, bet ne ātrākus. Kas ir viņu spēkos - pavisam maza procesora vietā vienā korpusa tilpumā ietilpiniet astoņus, seÅ”padsmit vai trÄ«sdesmit divus procesorus, kur agrāk ietilpa tikai viens. Tagad jums ir daudzpavedienu un ātra saziņa starp tām, jo ā€‹ā€‹viņiem ir kopÄ«ga keÅ”atmiņa. Bet jÅ«s nevarat likt viņiem skriet ātrāk - ir ļoti konkrēts ātruma ierobežojums. Tie turpina pamazām uzlaboties, bet ne tik ļoti. Fizikas likumi traucēja.

Jauna pasaule, jaunas problēmas. NUMA, NVM un arhitektÅ«ras uzlauÅ”ana

Aleksejs: Izklausās ļoti saprātÄ«gi. Ar jauniem daudzkodolu procesoriem radās jaunas problēmas. Vai jÅ«s un jÅ«su kolēģi gaidÄ«jāt Ŕīs problēmas? VarbÅ«t esat tos iepriekÅ” izpētÄ«jis? Teorētiskajos pētÄ«jumos Ŕādas lietas bieži vien nav Ä«paÅ”i viegli paredzēt. Kad radās problēmas, cik lielā mērā tās atbilda jÅ«su un jÅ«su kolēģu cerÄ«bām? Vai arÄ« tās bija pavisam jaunas, un jums un jÅ«su kolēģiem bija jāpavada daudz laika, risinot problēmas, tiklÄ«dz tās radās?

Vitālijs: PapildināŔu Alekseja jautājumu: vai, studējot teoriju, jÅ«s pareizi paredzējāt procesoru arhitektÅ«ru?

Moriss: Ne visi 100%. Bet es domāju, ka mani kolēģi un es paveicām labu darbu, prognozējot koplietoÅ”anas atmiņu daudzkodolu. Es domāju, ka mēs pareizi prognozējām grÅ«tÄ«bas, izstrādājot paralēlas datu struktÅ«ras, kas darbojas bez slēdzenēm. Šādas datu struktÅ«ras ir bijuÅ”as svarÄ«gas daudzām lietojumprogrammām, lai gan ne visām, taču bieži vien jums patieŔām ir nepiecieÅ”ama datu struktÅ«ra bez bloÄ·Ä“Å”anas. Kad mēs tās izgudrojām, daudzi iebilda, ka tas ir muļķības, ka ar slēdzenēm viss darbojas labi. Mēs diezgan labi paredzējām, ka daudzām programmÄ“Å”anas problēmām un datu struktÅ«ras problēmām bÅ«s gatavi risinājumi. Bija arÄ« sarežģītākas problēmas, piemēram NUMA ā€“ NevienmērÄ«ga piekļuve atmiņai. PatiesÄ«bā tie pat netika apsvērti lÄ«dz vairāku kodolu procesoru izgudroÅ”anai, jo tie bija pārāk specifiski. Pētnieku kopiena strādāja pie jautājumiem, kas kopumā bija paredzami. Dažām aparatÅ«ras problēmām, kas saistÄ«tas ar konkrētām arhitektÅ«rām, bija jāgaida spārnos ā€“ patiesÄ«bā Å”o arhitektÅ«ru parādÄ«Å”anās. Piemēram, neviens Ä«sti nestrādāja pie GPU specifiskām datu struktÅ«rām, jo ā€‹ā€‹toreiz GPU neeksistēja. Lai gan daudz darba ir paveikts SIMD, Å”ie algoritmi bija gatavi lietoÅ”anai, tiklÄ«dz parādÄ«jās pareizā aparatÅ«ra. Tomēr visu paredzēt nav iespējams.

Aleksejs: Ja es pareizi saprotu, NUMA ir sava veida kompromiss starp izmaksām, veiktspēju un dažām citām lietām. Vai jums ir ne jausmas, kāpēc NUMA parādījās tik vēlu?

Moriss: Es domāju, ka NUMA pastāv atmiņas veidoÅ”anai izmantotās aparatÅ«ras problēmas dēļ: jo tālāk komponenti atrodas, jo lēnāk tiem tiek piekļūts. No otras puses, Ŕīs abstrakcijas otrā vērtÄ«ba ir atmiņas vienveidÄ«ba. Tāpēc viena no paralēlās skaitļoÅ”anas Ä«paŔībām ir tā, ka visas abstrakcijas ir nedaudz sadalÄ«tas. Ja piekļuve bÅ«tu pilnÄ«gi vienāda, visa atmiņa bÅ«tu vienādā attālumā, taču tas ir ekonomiski un varbÅ«t pat fiziski neiespējami. Tātad Å”is konflikts rodas. Ja jÅ«s rakstāt savu programmu tā, it kā atmiņa bÅ«tu vienota, tad visticamāk tā bÅ«s pareiza. Tādā ziņā, ka tas nedos nepareizas atbildes. Bet viņas zvaigžņu sniegums no debesÄ«m nesagrābs. LÄ«dzÄ«gi, ja rakstāt spinlocks nesaprotot keÅ”atmiņu hierarhiju, pati bloÄ·Ä“Å”ana bÅ«s pareiza, bet jÅ«s varat aizmirst par veiktspēju. Savā ziņā jums ir jāraksta programmas, kas darbojas uz ļoti vienkārÅ”as abstrakcijas, bet jums ir jāpārspēj cilvēki, kas jums ir devuÅ”i Å”o abstrakciju: jums jāzina, ka zem abstrakcijas ir zināma atmiņas hierarhija, ka pastāv autobuss starp jums un Å”o atmiņu utt. Tādējādi pastāv zināms konflikts starp abstrakcijām, kas ir noderÄ«gas paÅ”as par sevi, kas noved mÅ«s pie ļoti specifiskām un pragmatiskām problēmām.

Vitālijs: Kā ar nākotni? Vai varat paredzēt, kā procesori attÄ«stÄ«sies tālāk? Pastāv doma, ka viena no atbildēm ir transakciju atmiņa. Jums droÅ”i vien ir kaut kas cits noliktavā.

Moriss: PriekŔā ir daži lieli izaicinājumi. Viens no tiem ir tas, ka saskaņotā atmiņa ir brÄ«niŔķīga abstrakcija, bet Ä«paÅ”os gadÄ«jumos tā sāk sabojāties. Tā, piemēram, NUMA ir dzÄ«vs piemērs tam, kur jÅ«s varat turpināt izlikties, ka pastāv vienota atmiņa. ÄŖstenÄ«bā ā€“ nē, priekÅ”nesums liks raudāt. Kādā brÄ«dÄ« arhitektiem bÅ«s jāatsakās no idejas par vienotu atmiņas arhitektÅ«ru, jÅ«s nevarat izlikties mūžīgi. BÅ«s nepiecieÅ”ami jauni programmÄ“Å”anas modeļi, kas ir pietiekami viegli lietojami un pietiekami jaudÄ«gi, lai padarÄ«tu pamata aparatÅ«ru efektÄ«vu. Tas ir ļoti grÅ«ts kompromiss, jo, parādot programmētājiem arhitektÅ«ru, kas faktiski tiek izmantota aparatÅ«rā, viņi kļūs traki. Tas ir pārāk sarežģīts un nav pārnēsājams. Ja piedāvājat pārāk vienkārÅ”u saskarni, veiktspēja bÅ«s slikta. Tādējādi, lai nodroÅ”inātu noderÄ«gus programmÄ“Å”anas modeļus, kas piemērojami patieŔām lieliem daudzkodolu procesoriem, bÅ«s jāpieņem daudzi ļoti sarežģīti kompromisi. Es neesmu pārliecināts, ka kāds cits, izņemot Å”auru speciālistu, ir spējÄ«gs programmēt uz 2000 kodolu datora. Un, ja vien jÅ«s nenodarbojaties ar ļoti specializētu vai zinātnisku skaitļoÅ”anu, kriptogrāfiju vai jebko citu, joprojām nav skaidrs, kā to izdarÄ«t pareizi. 

Vēl viens lÄ«dzÄ«gs virziens ir specializētās arhitektÅ«ras. Grafikas paātrinātāji pastāv jau ilgu laiku, taču tie jau ir kļuvuÅ”i par klasisku piemēru tam, kā varat izmantot specializētu skaitļoÅ”anas veidu un palaist to Ä«paŔā mikroshēmā. Tas rada savus izaicinājumus: kā sazināties ar Ŕādu ierÄ«ci, kā to ieprogrammēt. Nesen strādāju pie uzdevumiem Å”ajā jomā atmiņas skaitļoÅ”anas tuvumā. JÅ«s paņemat nelielu procesoru un pielÄ«mējat to lielai atmiņas daļai, lai atmiņa darbotos ar L1 keÅ”atmiņas ātrumu, un pēc tam tā sazinās ar tādu ierÄ«ci kā TPU - procesors ir aizņemts ar jaunu uzdevumu ielādi jÅ«su atmiņas kodolā. Vēl viens interesants piemērs ir datu struktÅ«ru un sakaru protokolu izstrāde Ŕāda veida lietām. Tādējādi specializētie procesori un aparatÅ«ra vēl kādu laiku tiks uzlaboti.

Aleksejs: Kā ar pastāvīgo atmiņu (nepastāvīgā atmiņa)?

Moriss: Ak, tas ir vēl viens lielisks piemērs! NVM ievērojami mainÄ«s veidu, kā mēs skatāmies uz tādām lietām kā datu struktÅ«ras. NegaistoŔā atmiņa savā ziņā sola patieŔām paātrināt lietas. Taču tas dzÄ«vi nepadarÄ«s vieglāku, jo lielākā daļa procesoru, keÅ”atmiņu un reÄ£istru joprojām ir nepastāvÄ«gi. Kad startējat pēc avārijas, jÅ«su stāvoklis un atmiņas stāvoklis nebÅ«s tieÅ”i tāds pats kā pirms avārijas. Esmu ļoti pateicÄ«gs NVM iesaistÄ«tajiem cilvēkiem - vēl ilgi pētniekiem bÅ«s ko darÄ«t, mēģinot izdomāt pareizÄ«bas nosacÄ«jumus. Aprēķini ir pareizi, ja tie var izdzÄ«vot avārijā, kurā tiek zaudēts keÅ”atmiņu un reÄ£istru saturs, bet galvenā atmiņa paliek neskarta.

Kompilatori pret centrālajiem procesoriem, RISC vs CISC, koplietojamā atmiņa pret ziņojumu pārsÅ«tÄ«Å”anu

Vladimirs: Ko jÅ«s domājat par kompilatoru un procesoru dilemmu attiecÄ«bā uz instrukciju kopu? Lai paskaidrotu tiem, kas nav Å”ajā tēmā: ja mēs ejam uz nevienmērÄ«gu atmiņu vai kaut ko tamlÄ«dzÄ«gu, mēs varētu izmantot ļoti vienkārÅ”u instrukciju kopu un lÅ«gt kompilatoram Ä£enerēt sarežģītu kodu, kas var izmantot atklātās priekÅ”rocÄ«bas. Vai arÄ« mēs varam iet citu ceļu: ieviest sarežģītas instrukcijas un lÅ«gt procesoram pārkārtot instrukcijas un veikt citas manipulācijas ar tām. Ko jÅ«s domājat par to?

Moriss: Man Ä«sti nav atbildes uz Å”o jautājumu. Å Ä«s debates ir notikuÅ”as četrus gadu desmitus. Bija laiks starp saÄ«sināti komandu kopa un sarežģīti pilsoņu karus vadÄ«ja komandu kopums. Kādu laiku uzvarēja RISC cilvēki, bet pēc tam Intel pārbÅ«vēja viņu dzinējus tā, ka iekŔā tika izmantots samazināts instrukciju komplekts, bet pilns tika eksportēts ārā. VarbÅ«t Ŕī ir tēma, kurā katrai jaunajai paaudzei ir jāatrod savi kompromisi un jāpieņem savi lēmumi. Ir ļoti grÅ«ti paredzēt, kura no Ŕīm lietām izdosies labāk. Tātad jebkura mana prognoze noteiktu laiku bÅ«s patiesa un pēc tam atkal kādu laiku kļūs nepatiesa un pēc tam atkal bÅ«s patiesa.

Aleksejs: Cik bieži nozarei kopumā ir situācija, ka dažas idejas uzvar vairāku gadu desmitu laikā un zaudē nākamajās? Vai ir citi Ŕādu periodisku izmaiņu piemēri?

Moriss: Izkliedētās skaitļoÅ”anas jomā ir cilvēki, kas tic koplietojamo atmiņu un cilvēki, kas tic ziņapmaiņa. Sākotnēji izplatÄ«tajā skaitļoÅ”anā paralēlā skaitļoÅ”ana nozÄ«mē ziņojuma nodoÅ”anu. Tad kāds atklāja, ka koplietojamā atmiņa ievērojami atvieglo programmÄ“Å”anu. Otra puse teica, ka koplietojamā atmiņa ir pārāk sarežģīta, jo tām ir vajadzÄ«gas slēdzenes un tamlÄ«dzÄ«gi, tāpēc ir vērts pāriet uz valodām, kurās nekas cits kā tikai ziņojumu pārsÅ«tÄ«Å”ana vienkārÅ”i nepastāv. Kāds paskatÄ«jās, kas no tā izriet, un teica: ā€œOho, Ŕī ziņojumapmaiņas ievieÅ”ana izskatās ļoti lÄ«dzÄ«ga koplietojamai atmiņai, jo jÅ«s izveidojat daudzus, daudzus no Å”iem mazajiem moduļiem, tie sÅ«ta viens otram ziņojumus, un viņi visi strupceļŔ, - uzlabosim koplietoÅ”anas atmiņas datu bāzi!". Tas viss atkārtojas atkal un atkal, un nevar teikt, ka kādai no pusēm viennozÄ«mÄ«gi ir taisnÄ«ba. Viena puse vienmēr dominēs, jo, tiklÄ«dz viena no tām gandrÄ«z uzvarēs, cilvēki atkal un atkal izdomā veidus, kā uzlabot otru.

Trausla daudzpavedienu koda rakstīŔanas māksla

Aleksejs: Tas ir ļoti interesanti. Piemēram, rakstot kodu, neatkarÄ«gi no programmÄ“Å”anas valodas, mums parasti ir jāizveido abstrakcijas, piemēram, Ŕūnas, kuras var lasÄ«t un rakstÄ«t. Bet patiesÄ«bā kaut kādā fiziskā lÄ«menÄ« tas var izskatÄ«ties kā ziņojuma nosÅ«tÄ«Å”ana aparatÅ«ras kopnē starp dažādiem datoriem un citām ierÄ«cēm. Izrādās, ka ir darbs abos abstrakcijas lÄ«meņos uzreiz.

Moriss: Tā ir pilnÄ«ga taisnÄ«ba, ka koplietojamā atmiņa ir balstÄ«ta uz ziņojumu pārsÅ«tÄ«Å”anu ā€” autobusiem, keÅ”atmiņām utt. Bet ir grÅ«ti rakstÄ«t programmas, izmantojot ziņojumu pārsÅ«tÄ«Å”anu, tāpēc aparatÅ«ra apzināti melo, izliekoties, ka jums ir kaut kāda vienota atmiņa. Tādējādi jums bÅ«s vieglāk rakstÄ«t vienkārÅ”as, pareizas programmas, pirms sāk samazināties veiktspēja. Tad jÅ«s sakāt: izskatās, ka ir pienācis laiks sadraudzēties ar keÅ”atmiņu. Un tad jÅ«s sākat uztraukties par keÅ”atmiņas atraÅ”anās vietu, un tad mēs ejam. Savā ziņā jÅ«s pārtraucat abstrakciju: jÅ«s zināt, ka tā nav tikai plakana, vienveidÄ«ga atmiņa, un jÅ«s izmantosit Ŕīs zināŔanas, lai rakstÄ«tu keÅ”atmiņai draudzÄ«gas programmas. Tas ir jādara reālos uzdevumos. Å is konflikts starp jauko vienkārÅ”o abstrakciju, kas jums tika dota, un Å”ausmÄ«gi sarežģīto pamatā esoŔās aparatÅ«ras ievieÅ”anu ir vieta, kur katrs izdara savu kompromisu. Man ir grāmata par daudzprocesoriem un sinhronizāciju, un kādu dienu es grasÄ«jos uzrakstÄ«t nodaļu par datu struktÅ«rām java.util.concurrent. Ja paskatās uz tiem, tādas lietas kā izlaist sarakstus Tie ir pārsteidzoÅ”i mākslas darbi. (Redaktora piezÄ«me: tiem, kas pārzina Java valodu, vajadzētu vismaz apskatÄ«t ievieÅ”anu ConcurrentSkipListMap, JÅ«s varat apskatÄ«t saites uz API Šø avota kods). Bet no mana viedokļa bÅ«tu bezatbildÄ«gi tos rādÄ«t skolēniem, jo ā€‹ā€‹Å”āda datu struktÅ«ra ir tāds čalis cirkā, kas skrien pa virvi pāri lāču bedrei. Ja mainÄ«siet kaut vienu mazu detaļu, visa struktÅ«ra sabruks. Å is kods ir ļoti ātrs un elegants tikai tāpēc, ka tas ir perfekti uzrakstÄ«ts, taču mazākās izmaiņas novedÄ«s pie pilnÄ«gas neveiksmes. Ja es doÅ”u Å”o kodu kā piemēru studentiem, viņi uzreiz teiks: es arÄ« to varu! Un tad avarēs kāda lidmaŔīna vai uzsprāgs kodolreaktors, un tā bÅ«s mana vaina, ka Ä«stajā laikā neiedevu viņiem pārāk daudz informācijas.

Aleksejs: Kad es biju nedaudz jaunāks, es daudzas reizes mēģināju izpētÄ«t, piemēram, Daga LÄ« pirmkodu, java.util.concurrent, jo tas ir atvērts avots, to ir ļoti viegli atrast un mēģināt saprast, kas tur notiek. Tas izrādÄ«jās ne pārāk labi: bieži vien ir pilnÄ«gi neskaidrs, kāpēc Dags nolēma kaut ko darÄ«t Ŕādā veidā, ja visi citi to dara savādāk. Kā jÅ«s Ŕīs lietas izskaidrojat saviem skolēniem? Vai ir kāds Ä«paÅ”s pareizs veids, kā aprakstÄ«t, piemēram, stingrā algoritma konkrētas detaļas? Kā tu to dari?

Moriss: ZÄ«mÄ“Å”anas skolotājiem ir kliÅ”eja, ko viņi atceras vispirms: ja vēlaties zÄ«mēt kā Pikaso, vispirms jāiemācās zÄ«mēt vienkārÅ”us reālistiskus attēlus, un tikai tad, kad zināt noteikumus, varat sākt tos pārkāpt. Ja jÅ«s nekavējoties sākat ar noteikumu pārkāpÅ”anu, jÅ«s saņemat haosu. Pirmkārt, es mācu studentiem, kā rakstÄ«t vienkārÅ”u, pareizu kodu, neuztraucoties par veiktspēju. Es saku, ka Å”eit slēpjas sarežģītas laika noteikÅ”anas problēmas, tāpēc neuztraucieties par keÅ”atmiņām, neuztraucieties par atmiņas modeļiem, vienkārÅ”i pārliecinieties, vai viss darbojas pareizi. Tas jau ir pietiekami grÅ«ti: mÅ«sdienu programmÄ“Å”ana pati par sevi nav viegla, Ä«paÅ”i jaunajiem studentiem. Un, kad viņiem ir intuÄ«cija, kā rakstÄ«t pareizas programmas, es saku: paskatieties uz Ŕīm divām spinlock implementācijām: viena ir ļoti lēna, un otrā arÄ« nav ļoti laba, bet jau labāka. Tomēr matemātiski Å”ie divi algoritmi ir vienādi. Faktiski viens no tiem izmanto keÅ”atmiņas atraÅ”anās vietu. Viens no tiem griežas uz lokāli keÅ”atmiņā saglabātajiem datiem, bet otrs atkārtoti veic darbÄ«bas, kas iet caur autobusu. JÅ«s nevarat uzrakstÄ«t efektÄ«vu kodu, ja jÅ«s to nesaprotat, ja jÅ«s nezināt, kā pārtraukt abstrakciju un apskatÄ«t pamatā esoÅ”o struktÅ«ru. Bet jÅ«s nevarēsit sākt to darÄ«t uzreiz. Ir cilvēki, kas to sāk darÄ«t uzreiz un tic savam ģēnijam, parasti tas slikti beidzas, jo viņi nesaprot principus. Neviens nezÄ«mē kā Pikaso un neraksta tādas programmas kā Dags LÄ«, tikko pabeidzis universitāti savā pirmajā nedēļā. Lai sasniegtu Å”o zināŔanu lÄ«meni, ir vajadzÄ«gi gadi.

Aleksejs: Izrādās, ka jūs sadalāt problēmu divās daļās: pirmā ir pareizība, otrā ir izpildījums?

Moriss: TieÅ”i tā. Un tādā secÄ«bā. Daļa no problēmas ir tā, ka jaunie studenti neapzinās, ka pareizÄ«bu ir grÅ«ti sasniegt. No pirmā acu uzmetiena viņi saka: tas ir acÄ«mredzami pareizi, atliek tikai to paātrināt. Tāpēc dažreiz es viņiem stāstu par bÅ«tÄ«bā nepareizu algoritmu, it kā tas bÅ«tu pareizs.

Kā iemācīt studentiem rakstīt sarežģītu daudzpavedienu kodu

Aleksejs: Lai redzētu, vai viņi var sajust viltību?

Moriss: Es jÅ«s vienmēr brÄ«dinu iepriekÅ”, ka dažreiz es izdomāŔu nepareizus algoritmus. Jums nevajadzētu maldināt cilvēkus. Es iesaku viņiem bÅ«t skeptiski pret informāciju. Ja es kaut ko saku un saku: "skaties, tas ir acÄ«mredzami pareizi" - tas ir signāls, ka kaut kur viņi mēģina jÅ«s maldināt, un jums vajadzētu sākt uzdot jautājumus. Tālāk es mēģinu mudināt skolēnus turpināt uzdot jautājumus un pēc tam pamudināt: ā€œKas notiks, ja mēs atstājam visu, kā tas ir?ā€. Un viņi uzreiz redz kļūdu. Bet pārliecināt studentus, ka viņiem ir jāuztraucas par pareizÄ«bu, ir grÅ«tāk, nekā Ŕķiet no pirmā acu uzmetiena. Daudzi no Å”iem studentiem nāk ar programmÄ“Å”anas pieredzi vidusskolā, daži jau ir ieguvuÅ”i darbu un tur programmējuÅ”i, un viņi visi ir paÅ”pārliecināti. Tas ir kaut kas militārs: vispirms ir jāmaina viņu domāŔana, lai pārliecinātu viņus pacietÄ«gi pieiet jaunu problēmu risinājumam. Vai varbÅ«t tas ir lÄ«dzÄ«gi budistu mÅ«kiem: vispirms viņi iemācās spriest par pareizÄ«bu, un, kad viņi saprot pareizÄ«bas sprieÅ”anas veidus, viņiem ir atļauts pāriet uz nākamo lÄ«meni un sākt uztraukties par sniegumu.

Aleksejs: Tas ir, dažreiz jÅ«s parādāt studentiem nestrādājoÅ”us piemērus, pateicoties kuriem jÅ«s saņemat atgriezenisko saiti, kas parāda, vai viņi saprot problēmas bÅ«tÄ«bu, vai viņi var atrast nepareizu kodu un nepareizu rezultātu. Nu, kā studenti parasti iepriecina vai sarÅ«gtina?

Moriss: GandrÄ«z vienmēr skolēni galu galā atrod kļūdu. Ja viņi meklē pārāk lēni, es uzdodu vadoÅ”us jautājumus, un Å”eit ir svarÄ«gi saprast, ka, ja viņi nekad netiks maldināti, viņi neapdomÄ«gi sāks uztvert jÅ«su vārdus kā galÄ«go patiesÄ«bu. Tad viņiem kļūst garlaicÄ«gi un viņi aizmieg, lasot Facebook savā klēpjdatorā stundas laikā. Bet, kad jÅ«s viņiem jau iepriekÅ” paziņojat, ka viņi tiks izkrāpti un ka viņi izskatÄ«sies stulbi, ja viņi nejutÄ«s triku, viņi kļūst daudz modrāki. Tas ir labi daudzos veidos. Es vēlētos, lai skolēni ne tikai apÅ”auba savu izpratni par Å”o jautājumu, bet arÄ« apÅ”auba skolotāja autoritāti. Ideja ir tāda, ka skolēns jebkurā brÄ«dÄ« var pacelt roku un pateikt: es domāju, ka tas, ko jÅ«s tikko teicāt, ir nepareizi. Tas ir svarÄ«gs mācÄ«bu lÄ«dzeklis. Es nevēlos, lai kāds no studentiem sēdētu un klusÄ«bā pie sevis domā: tas viss Ŕķiet pilnÄ«gas muļķības, taču ir pārāk biedējoÅ”i pacelt roku, un viņŔ patieŔām ir profesors, tāpēc viss, ko viņŔ saka, ir patiesÄ«ba. Tāpēc, ja viņus jau iepriekÅ” brÄ«dina, ka ne viss stāstÄ«tais obligāti atbilst patiesÄ«bai, viņiem ir stimuls pievērst lielāku uzmanÄ«bu materiālam. Es skaidri paziņoju, ka ir pareizi pacelt roku un uzdot jautājumus. JÅ«su jautājums var Ŕķist muļķīgs vai naivs, taču bieži vien tā rodas vislabākie jautājumi.

Aleksejs: Ä»oti interesanti. Parasti cilvēkiem ir kaut kāda psiholoÄ£iska barjera, kas traucē uzdot profesoram jautājumu. It Ä«paÅ”i, ja telpā ir daudz cilvēku, un visi baidās, ka jÅ«su stulbā jautājuma apsprieÅ”ana aizņems visu Å”o cilvēku laiku. Vai ir kādi triki, kā ar to tikt galā?

Moriss: Es bieži apstājos un uzdodu klasiskos jautājumus. Vai kāds apgalvojums bÅ«s pareizs, vai kā tie atrisinātu apspriežamo problēmu. Tas ir galvenais solis, it Ä«paÅ”i sesijas sākumā, kad cilvēki kautrējas pateikt pat vismazāko lietu. JÅ«s uzdodat studentiem jautājumu un neko vairāk nesakiet. Ir klusums, visi nedaudz saspringst, spriedze aug, tad pēkŔņi kāds salÅ«zt, salÅ«zt un pasaka atbildi. Tātad jÅ«s atklājat situāciju: klusēt kļūst grÅ«tāk un neērtāk nekā atbildēt! Tas ir standarta pedagoÄ£isks triks. Katram skolotājam pasaulē vajadzētu zināt, kā to izdarÄ«t.

Aleksejs: Tagad mums ir lielisks Ŕīs intervijas nosaukums: "vieglāk ir atbildēt nekā klusēt."

Vitālijs: Ä»aujiet man pajautāt vēl vienu lietu. JÅ«s strādājat ar topoloÄ£iskiem pierādÄ«jumiem. Kā jÅ«s vispār tajā iesaistÄ«jāties, jo sadalÄ«tā skaitļoÅ”ana un topoloÄ£ija ir pilnÄ«gi atŔķirÄ«gas lietas!

Moriss: Tur ir slēptas attiecÄ«bas. Kad es biju students un mācÄ«jos matemātiku, es mācÄ«jos tÄ«ro matemātiku. LÄ«dz studiju beigām man nebija Ä«stas intereses par datoriem, un es atklāju, ka steidzami jāmeklē darbs. BÅ«dams students, es studēju algebrisko topoloÄ£iju. Daudzus gadus vēlāk, strādājot pie problēmas, ko sauc "k-Set lÄ«guma problēma", es izmantoju grafikus, lai modelētu problēmu un, kā toreiz likās, atradu risinājumu. Vajadzēja tikai apsēsties un iet apkārt grāfam. Mēģiniet atrast piemērotu atbildi Å”ajā diagrammā. Bet mans algoritms nedarbojās: izrādÄ«jās, ka viņŔ vienmēr skrēja pa apli. Diemžēl neko no tā nevarēja izskaidrot grafu teorijas formālajā valodā, valodā, ko zina visi datorzinātnieki. Un tad es atcerējos, ka pirms daudziem gadiem pat topoloÄ£ijas stundās mēs izmantojām Å”o jēdzienu "VienkārÅ”s komplekss", kas ir grafiku vispārinājums augstākām dimensijām. Tad es sev jautāju: kas notiks, ja mēs pārformulēsim problēmu vienkārÅ”os kompleksos? Tas kļuva par atslēgu. Izmantojot jaudÄ«gāku formālismu, problēma pēkŔņi kļūst daudz vienkārŔāka. Cilvēki ar to cÄ«nÄ«jās ilgu laiku, izmantojot grafikus, bet neko nevarēja izdarÄ«t. Un arÄ« tagad viņi nevar ā€“ pareizā atbilde bija nevis algoritms, bet gan problēmas risināŔanas neiespējamÄ«bas pierādÄ«jums. Tas ir, Ŕāds algoritms vienkārÅ”i nepastāv. Bet katrs neiespējamÄ«bas pierādÄ«jums ir balstÄ«ta vai nu uz vienkārÅ”iem kompleksiem, vai uz lietām, kuras cilvēki izliekas neuzskatām par vienkārÅ”iem kompleksiem. No tā, ka jÅ«s kaut ko nosaucāt jaunā vārdā, tas nezaudē savu bÅ«tÄ«bu.

Vitālijs: Izrādās, ka tev vienkārŔi paveicās?

Moriss: Papildus veiksmei tā arÄ« ir gatavÄ«ba. Tas nozÄ«mē, ka nevajadzētu aizmirst "bezjēdzÄ«gās" lietas, ko esat iemācÄ«juÅ”ies iepriekÅ”. Jo vairāk bezjēdzÄ«gu lietu uzzināsiet, jo vairāk atziņu varēsiet gÅ«t, saskaroties ar jaunu problēmu. Šāda intuitÄ«va modeļu saskaņoÅ”ana ir svarÄ«ga, jo... Teiksim tā, tā ir ķēde: sākumā es atklāju, ka grafiki nedarbojas gluži vai nedarbojas vispār, tas man atgādināja kaut ko no astoņiem gadiem. un studentu gadi, kad pētÄ«jām visus Å”os vienkārÅ”os kompleksus. Tas savukārt ļāva man atrast savu veco topoloÄ£ijas mācÄ«bu grāmatu un ielādēt to atpakaļ galvā. Bet, ja tās nebÅ«tu Å”o veco zināŔanu, es nekad nebÅ«tu guvis panākumus sākotnējās problēmas risināŔanā.

Jauns izdevums The Art of Multiprocessor Programming

Aleksejs: JÅ«s teicāt dažus vārdus par savu grāmatu. Tas, iespējams, nav lielākais noslēpums, ka esat uzrakstÄ«jis pasaulē slavenāko grāmatu par daudzpavedienu, "Daudzprocesoru programmÄ“Å”anas māksla". Viņai jau ir kādi 11 gadi un kopÅ” tā laika tikai iznāca  pārskatÄ«ts atkārtots izdevums. Vai bÅ«s otrais izdevums?

Moriss: Labi, ka pajautāji! Tas bÅ«s ļoti drÄ«z, apmēram pēc trim mēneÅ”iem. Ir vēl divi autori, mēs pievienojām daudz vairāk materiālu, uzlabojām sadaļu par fork / join paralēlismu, uzrakstÄ«jām sadaļu MapReduce, pievienojām daudz jaunu un izmetām nevajadzÄ«gās - kaut kas bija ļoti interesants rakstÄ«Å”anas laikā pirmais izdevums, bet Å”odien vairs nav. IzrādÄ«jās, ka tā ir ļoti nopietni pārstrādāta grāmata.

Aleksejs: Viss jau ir izdarīts, atliek tikai atbrīvot?

Moriss: Pie pāris nodaļām vēl jāpiestrādā. MÅ«su izdevējs (man Ŕķiet, ka viņŔ mÅ«s jau ienÄ«st) joprojām cenÅ”as pateikt, ka mums vajadzētu strādāt ātrāk. Mēs esam ļoti atpalikuÅ”i no grafika. Teorētiski Å”o grāmatu varējām sagatavot pāris gadus agrāk.

Aleksejs: Vai ir kāda iespēja iegūt jaunu grāmatas versiju pirms Ziemassvētkiem?

Moriss: Tas ir mÅ«su mērÄ·is! Taču uzvaru esmu prognozējis tik daudz reižu, ka neviens man vairs netic. DroÅ”i vien arÄ« Å”ajā jautājumā nevajadzētu man pārāk uzticēties.

Aleksejs: Jebkurā gadÄ«jumā Ŕīs ir fantastiskas ziņas. Man ļoti patika grāmatas pirmais izdevums. Varētu teikt, ka esmu fans.

Moriss: Es ceru, ka jaunais izdevums būs jūsu dedzīgā entuziasma cienīgs, paldies!

Kā tika izgudrota transakciju atmiņa

Vitālijs: Nākamais jautājums ir par transakciju atmiņu. Cik saprotu, tu esi pionieris Å”ajā jomā, tu to izdomāji laikā, kad neviens par tādām lietām nedomāja. Kāpēc jÅ«s nolēmāt pārcelties uz Å”o rajonu? Kāpēc darÄ«jumi jums bija svarÄ«gi? Vai domājāt, ka kādreiz viņi tiks iemiesoti dzelzē?

Moriss: Es zinu par darījumiem kopŔ studiju beigŔanas.

Vitālijs: Jā, bet tie ir dažādi darījumi!

Moriss: Es strādāju ar Eliotu Mosu pie nebloķējoÅ”as atkritumu savākÅ”anas. MÅ«su problēma bija tā, ka mēs vēlējāmies atomiski mainÄ«t dažus vārdus atmiņā, un tad algoritmi kļūtu ļoti vienkārÅ”i, un vismaz daži no tiem kļūtu efektÄ«vāki. Izmantojot salÄ«dzināt un apmainÄ«t par load-link/store-conditionalko nodroÅ”ina paralēlā arhitektÅ«ra, ir iespējams kaut ko darÄ«t, bet tas ir ļoti neefektÄ«vi un neglÄ«ti, jo nāktos saskarties ar netieÅ”as pakāpes. Es vēlos mainÄ«t atmiņas vārdus un man ir jāpārslēdzas, jo es varu mainÄ«t tikai vienu rādÄ«tāju, tāpēc tiem ir jānorāda uz kaut kādu direktorijai lÄ«dzÄ«gu struktÅ«ru. Mēs runājām par to, cik lieliski bÅ«tu, ja mēs varētu mainÄ«t aparatÅ«ru, lai tā varētu ierakstÄ«t vienlaikus. Å Ä·iet, ka Elliots to ir pamanÄ«jis: ja paskatās uz keÅ”atmiņas saskaņotÄ«bas protokoliem, tie jau nodroÅ”ina lielāko daļu nepiecieÅ”amās funkcionalitātes. Optimistiskā darÄ«jumā keÅ”atmiņas saskaņotÄ«bas protokols pamanÄ«s laika konflikta esamÄ«bu un keÅ”atmiņa kļūs nederÄ«gs. Kas notiek, ja spekulatÄ«vi sākat darÄ«jumu savā keÅ”atmiņā un izmantojat saskaņotÄ«bas protokola mehānismus, lai atklātu konfliktus? SpekulatÄ«vo aparatÅ«ras arhitektÅ«ru bija viegli izstrādāt. Tāpēc mēs to rakstÄ«jām pati pirmā publikācija par transakciju atmiņu. Tajā paŔā laikā uzņēmums, kurā es strādāju, Digital Equipment Corporation, veidoja jaunu 64 bitu procesoru ar nosaukumu Alpha. Un tā es devos un sniedzu prezentāciju Alpha izstrādes komandai par mÅ«su brÄ«niŔķīgo darÄ«jumu atmiņu, un viņi jautāja: kādus papildu ienākumus mÅ«su uzņēmums iegÅ«s, ja to visu ievietosim tieÅ”i procesorā? Un man nebija pilnÄ«gi nekādas atbildes uz to, jo es esmu tehnologs, es neesmu mārketinga speciālists. Man tieŔām nebija ko teikt. Viņus Ä«paÅ”i iespaidoja tas, ka es neko nezināju.

Vitālijs: Miljardi! VienkārŔi sakiet "miljardi"!

Moriss: Jā, tas man bija jāsaka. Tagad, jaunuzņēmumu un visa tā laikmetā, es zinu, kā uzrakstÄ«t biznesa plānu. Ka var nedaudz melot par potenciālās peļņas lielumu. Bet tajos laikos tas Ŕķita naivi, tāpēc es vienkārÅ”i teicu: "Es nezinu." Ieskatoties publikācijas par transakciju atmiņu vēsturē, pamanÄ«sit, ka pēc gada uz to bija vairākas atsauces, un tad kādus desmit gadus neviens Å”o rakstu nemaz necitēja. Citāti parādÄ«jās ap 2004. gadu, kad radās patiesi daudzkodolu modeļi. Kad cilvēki atklāja, ka paralēlā koda rakstÄ«Å”ana var pelnÄ«t naudu, sākās jauni pētÄ«jumi. Ravi Radžvars uzrakstÄ«ja rakstu, kas kaut kādā veidā ieviesa galveno virzienu transakciju atmiņas jēdzienā. (Redaktora piezÄ«me: Å”im rakstam ir otrā versija, kas tika izlaista 2010. gadā, un tā ir brÄ«vi pieejama kā PDF). PēkŔņi cilvēki saprata, kā tieÅ”i to visu var izmantot, kā ar slēdzenēm var paātrināt tradicionālos algoritmus. Labs piemērs tam, kas agrāk Ŕķita tikai interesanta akadēmiska problēma. Un jā, ja jÅ«s man toreiz bÅ«tu jautājuÅ”i, vai es domāju, ka tas viss bÅ«s svarÄ«gi nākotnē, es teiktu: protams, bet kad tieÅ”i, nav skaidrs. VarbÅ«t pēc 50 gadiem? Praksē izrādÄ«jās, ka tas ir tikai desmit gadi. Ir ļoti jauki, kad tu kaut ko dari, un jau pēc desmit gadiem cilvēki to pamana.

Kāpēc ir vērts veikt pētÄ«jumus izplatÄ«tās skaitļoÅ”anas jomā

Vitālijs: Ja runājam par jauniem pētÄ«jumiem, ko jÅ«s ieteiktu lasÄ«tājiem ā€“ izkliedēto skaitļoÅ”anu vai daudzkodolu un kāpēc? 

Moriss: MÅ«sdienās ir viegli iegÅ«t daudzkodolu procesoru, taču grÅ«tāk ir izveidot patiesu izplatÄ«tu sistēmu. Es sāku pie tiem strādāt, jo vēlējos darÄ«t kaut ko savādāku nekā doktora grāds. Å is ir padoms, ko vienmēr dodu iesācējiem: nerakstiet turpinājuma disertāciju ā€“ mēģiniet doties jaunā virzienā. Turklāt vairāku pavedienu izveidoÅ”ana ir vienkārÅ”a. Es varu eksperimentēt ar savu dakÅ”iņu, kas darbojas klēpjdatorā, neizkāpjot no gultas. Bet, ja es pēkŔņi gribētu izveidot Ä«stu sadalÄ«tu sistēmu, man bÅ«tu daudz jāstrādā, jāpiesaista studenti utt. Esmu slinks cilvēks un labprātāk strādātu pie daudzkodolu. Eksperimentēt ar daudzkodolu sistēmām ir arÄ« vieglāk, nekā eksperimentēt ar izplatÄ«tajām, jo ā€‹ā€‹pat stulbā sadalÄ«tajā sistēmā ir pārāk daudz faktoru, ko kontrolēt.

Vitālijs: Ko tu tagad dari, pēti blokķēdi? Kādiem rakstiem vispirms jāpievērÅ” uzmanÄ«ba?

Moriss: Nesen parādÄ«jās ļoti labs rakstskuru es uzrakstÄ«ju kopā ar savu studentu Vikramu Sarafu, Ä«paÅ”i Å”im nolÅ«kam Tokenomcs konferences ParÄ«zē pirms trim nedēļām. Å is ir raksts par noderÄ«gām izplatÄ«tajām sistēmām, kurās mēs ierosinām izveidot Ethereum daudzpavedienu. Tagad viedie lÄ«gumi (kods, kas darbojas blokķēdē) tiek izpildÄ«ti secÄ«gi. IepriekÅ” mēs rakstÄ«jām rakstu, kurā tika runāts par veidu, kā izmantot spekulatÄ«vus darÄ«jumus, lai paātrinātu procesu. Mēs ņēmām daudz ideju no programmatÅ«ras transakciju atmiņas un teicām, ka, ja jÅ«s padarÄ«sit Ŕīs idejas par daļu no Etherium virtuālās maŔīnas, tad viss darbosies ātrāk. Bet Å”im nolÅ«kam ir nepiecieÅ”ams, lai lÄ«gumos nebÅ«tu datu pretrunu. Un tad mēs pieņēmām, ka reālajā dzÄ«vē Ŕādu konfliktu tieŔām nav. Bet mums nav bijusi iespēja to uzzināt. Tad mums ienāca prātā, ka mÅ«su rokās ir gandrÄ«z desmit gadu reāla lÄ«gumu vēsture, tāpēc mēs izlādējām Etherium blokķēdi un prātojām: kas notiktu, ja Å”ie vēsturiskie ieraksti darbotos paralēli? Mēs konstatējām ievērojamu ātruma pieaugumu. Etherium pirmsākumos ātrums ļoti pieauga, taču mÅ«sdienās viss ir nedaudz sarežģītāk, jo ir mazāk lÄ«gumu un ir lielāka iespējamÄ«ba, ka varētu rasties konflikti par datiem, kuriem nepiecieÅ”ama serializācija. Bet tas viss ir eksperimentāls darbs ar reāliem vēsturiskiem datiem. Jaukā blokķēdē ir tā, ka tā visu atceras uz visiem laikiem, tāpēc varat atgriezties laikā un izpētÄ«t, kas notiktu, ja koda palaiÅ”anai izmantotu citus algoritmus. Kā cilvēkiem pagātnē bÅ«tu patikusi mÅ«su jaunā ideja. Ir daudz vieglāk un patÄ«kamāk veikt Ŕādu izpēti, jo ir lieta, kas visu uzrauga un visu fiksē. Tas jau ir kaut kas vairāk lÄ«dzÄ«gs socioloÄ£ijai, nevis algoritmu izstrādei.

Vai ir apstājusies algoritmu izstrāde un kā dzīvot tālāk

Vitālijs: Laiks pēdējam teorētiskajam jautājumam! Vai Ŕķiet, ka konkurētspējÄ«gu datu struktÅ«ru attÄ«stÄ«ba katru gadu samazinās? Vai, jÅ«suprāt, esam sasnieguÅ”i plato savā izpratnē par datu struktÅ«rām, vai arÄ« bÅ«s kādi bÅ«tiski uzlabojumi? VarbÅ«t ir kādas gudras idejas, kas var visu pilnÄ«bā mainÄ«t?

Moriss: Iespējams, esam sasnieguÅ”i tradicionālo arhitektÅ«ru datu struktÅ«ru plato. Taču datu struktÅ«ras jaunām arhitektÅ«rām joprojām ir ļoti daudzsoloÅ”a joma. Ja vēlaties izveidot datu struktÅ«ras, piemēram, aparatÅ«ras paātrinātājiem, tad GPU datu struktÅ«ras ļoti atŔķiras no CPU datu struktÅ«rām. Izstrādājot datu struktÅ«ras blokķēdēm, jums ir jāsajauc datu daļas un pēc tam jāievieto tā, piemēram, merkle koks, lai novērstu viltoÅ”anu. Pēdējā laikā Å”ajā jomā ir vērojams aktivitātes uzplaukums, daudzi dara ļoti labu darbu. Bet es domāju, ka notiks tas, ka jaunas arhitektÅ«ras un jaunas lietojumprogrammas radÄ«s jaunas datu struktÅ«ras. Vecāki pielietojumi un tradicionālā arhitektÅ«ra ā€“ varbÅ«t vairs nav daudz vietas pētniecÄ«bai. Bet, ja jÅ«s nokāpjat no sliekŔņa un paskatÄ«sities pāri malai, jÅ«s redzēsit trakas lietas, ko mainstream neuztver nopietni ā€” tur patiesÄ«bā notiek visas aizraujoŔās lietas.

Vitālijs: Tāpēc, lai bÅ«tu ļoti slavens pētnieks, man bija jāizgudro sava arhitektÅ«ra šŸ™‚

Moriss: Var ā€œnozagtā€ kāda cita jauno arhitektÅ«ru ā€“ tas Ŕķiet daudz vieglāk!

Darbs Brauna universitātē

Vitālijs: Vai jūs varētu mums pastāstīt vairāk par Brauna universitātekurā tu strādā? Informācijas tehnoloģiju kontekstā par viņu nav daudz zināms. Piemēram, mazāk nekā par MIT.

Moriss: Brauna universitāte ir viena no vecākajām universitātēm ASV. Es domāju, ka tikai Hārvarda ir nedaudz vecāka. BrÅ«ns ir daļa no t.s efejas lÄ«gas, kas ir astoņu vecāko universitāŔu kolekcija. Hārvarda, Brauna, Kornela, Jēla, Kolumbija, Dartmuta, Pensilvānija, Prinstona. Å Ä« ir sava veida veca, maza un mazliet aristokrātiska universitāte. Galvenā uzmanÄ«ba tiek pievērsta brÄ«vo mākslu izglÄ«tÄ«bai. Tas nemēģina bÅ«t kā MIT, MIT ir ļoti specializēts un tehnisks. Brauns ir lieliska vieta, kur studēt krievu literatÅ«ru vai klasisko grieÄ·u valodu un, protams, datorzinātnes. Tā koncentrējas uz visaptveroÅ”u izglÄ«tÄ«bu. Lielākā daļa mÅ«su studentu apmeklē Facebook, Apple, Google, tāpēc domāju, ka mÅ«su studentiem nav problēmu iegÅ«t darbu Å”ajā nozarē. Es devos strādāt pie Brauna, jo pirms tam strādāju Digital Equipment Corporation Bostonā. Tā bija kompānija, kas izgudroja daudz interesantu lietu, taču noliedza personālo datoru nozÄ«mi. Uzņēmums ar grÅ«tu likteni, kura dibinātāji savulaik bija jauni revolucionāri, viņi neko nemācēja un neaizmirsa, un tāpēc apmēram desmit gadu laikā no revolucionāriem kļuva par reakcionāriem. Viņiem patika jokot, ka personālie datori pieder garāžā ā€” protams, pamestā garāžā. Ir pilnÄ«gi skaidrs, ka tos iznÄ«cināja elastÄ«gāki uzņēmumi. Kad kļuva skaidrs, ka uzņēmumam ir problēmas, es piezvanÄ«ju savam draugam no Brauna, kurÅ” atrodas apmēram stundas attālumā no Bostonas. Es toreiz negribēju pamest Bostonu, jo citās augstskolās nebija tik daudz brÄ«vu vietu. Tas bija laiks, kad datorzinātņu jomā nebija tik daudz vakanču kā tagad. Un Braunam bija darbs, man nebija jāpārvietojas no mājas, man nebija jāpārvieto Ä£imene, un man ļoti patÄ«k dzÄ«vot Bostonā! Tāpēc es pieņēmu lēmumu doties pie Brauna. Man tas patÄ«k. Skolēni ir lieliski, tāpēc es nekad pat nemēģināju doties kaut kur citur. Sabata laikā es gadu strādāju Microsoft, gadu devos uz Technion Haifā, un tagad es bÅ«Å”u Algorandā. Man visur ir daudz kolēģu, un tāpēc mÅ«su mācÄ«bu telpu fiziskajai atraÅ”anās vietai nav tik lielas nozÄ«mes. Bet pats galvenais ir skolēni, viņi Å”eit ir labākie. Es nekad neesmu mēģinājis doties nekur citur, jo esmu Å”eit diezgan laimÄ«gs.

Tomēr, neskatoties uz Brauna slavu Amerikas Savienotajās ValstÄ«s, viņŔ ir pārsteidzoÅ”i nezināms ārzemēs. Kā redzat, tagad es daru visu iespējamo, lai Å”o lietu stāvokli labotu.

AtŔķirÄ«ba starp universitātes un korporatÄ«vo pētÄ«jumu

Vitālijs: Labi, nākamais jautājums ir par digitālo aprÄ«kojumu. JÅ«s tur bijāt pētnieks. Kāda ir atŔķirÄ«ba starp darbu liela uzņēmuma pētniecÄ«bas un attÄ«stÄ«bas nodaļā un darbu universitātē? Kādas ir priekÅ”rocÄ«bas un trÅ«kumi?

Moriss: Es strādāju uzņēmumā Microsoft divdesmit gadus, cieÅ”i sadarbojos ar Sun Microsystems, Oracle, Facebook un tagad arÄ« Algorand cilvēkiem. Pamatojoties uz to visu, gribu teikt, ka ir iespējams veikt pirmŔķirÄ«gus pētÄ«jumus gan uzņēmumos, gan augstskolā. BÅ«tiskā atŔķirÄ«ba ir tā, ka uzņēmumā tu strādā ar kolēģiem. Ja man pēkŔņi rodas ideja par projektu, kas vēl neeksistē, man jāpārliecina lÄ«dzcilvēki, ka tā ir laba ideja. Ja esmu Braunā, tad saviem studentiem varu teikt: strādāsim pie antigravitācijas! Viņi vai nu dosies pie kāda cita, vai uzņemsies projektu. Jā, man vajadzēs atrast finansējumu, man bÅ«s jāraksta granta pieteikums un tā tālāk. Jebkurā gadÄ«jumā studentu vienmēr bÅ«s daudz, un lēmumus varēsi pieņemt vienpusēji. Bet universitātē jÅ«s, visticamāk, nestrādāsit ar sava lÄ«meņa cilvēkiem. RÅ«pnieciskās pētniecÄ«bas pasaulē vispirms ir jāpārliecina ikviens, ka jÅ«su projekts ir tā vērts. Es nevienam neko nevaru pasÅ«tÄ«t. Un abi Å”ie darba veidi ir vērtÄ«gi, jo, ja strādājat pie kaut kā patieŔām traka un kolēģus ir grÅ«ti pārliecināt, ir vieglāk pārliecināt maÄ£istrantus ā€“ it Ä«paÅ”i, ja jÅ«s viņiem maksājat. Ja strādājat pie kaut kā, kas prasa lielu pieredzi un dziļas zināŔanas, tad jums ir nepiecieÅ”ami kolēģi, kas var pateikt "nē, tā ir sagadÄ«jies, ka es saprotu Å”o jomu un jÅ«su ideja ir slikta, nekas nesanāks." Tas ir ļoti noderÄ«gi laika tērÄ“Å”anas ziņā. Un arÄ«, ja rÅ«pnieciskajās laboratorijās jÅ«s pavadāt daudz laika, rakstot ziņojumus, tad universitātē jÅ«s pavadāt Å”o laiku naudas atraÅ”anai. Ja es gribu, lai studenti varētu kaut kur ceļot, man ir jāatrod tam nauda kaut kur citur. Un jo svarÄ«gāks ir jÅ«su amats universitātē, jo vairāk laika jums jāpavada naudas iekasÄ“Å”anai. Tātad, tagad jÅ«s zināt, par ko es strādāju - profesionāls ubags! Kā viens no tiem mÅ«kiem, kas staigā ar ziedojumu Ŕķīvi. Kopumā Ŕīs divas darbÄ«bas papildina viena otru. Tāpēc cenÅ”os dzÄ«vot un stingri nostāties abās pasaulēs.

Vitālijs: Šķiet, ka uzņēmumu pārliecināt ir grūtāk nekā citus zinātniekus.

Moriss: GrÅ«tāk un daudz vairāk. Turklāt dažādās jomās tas atŔķiras: kāds veic pilna mēroga pētÄ«jumus, un kāds koncentrējas uz savu tēmu. Ja es aizietu uz Microsoft vai Facebook un teiktu: taisÄ«sim antigravitāciju, viņi diez vai to novērtētu. Bet, ja es teiktu tieÅ”i to paÅ”u saviem maÄ£istrantÅ«ras studentiem, viņi, visticamāk, uzreiz Ä·ertos pie darba, lai gan tagad man jau bÅ«tu problēmas - jo jums ir jāatrod nauda Å”im nolÅ«kam. Bet, ja vien vēlaties darÄ«t kaut ko saskaņā ar uzņēmuma mērÄ·iem, Å”is uzņēmums var bÅ«t ļoti laba vieta, kur veikt pētÄ«jumus.

Hidra un SPTDC

Vitālijs: Mani jautājumi tuvojas beigām, tāpēc parunāsim nedaudz par gaidāmo braucienu uz Krieviju.

Moriss: Jā, es ar nepacietÄ«bu gaidu atgrieÅ”anos Pēterburgā.

Aleksejs: Man ir liels pagodinājums, ka Å”ogad esat kopā ar mums. Å Ä« ir jÅ«su otrā reize Sanktpēterburgā, vai ne?

Moriss: Jau treŔais!

Aleksejs: Sapratu, bet SPTDC - tieÅ”i otrā. Pēdējo reizi skola zvanÄ«ja SPTCC, tagad esam mainÄ«juÅ”i vienu burtu (C uz D, Concurrent to Distributed), lai uzsvērtu, ka Å”ogad ir vairāk jomu, kas saistÄ«tas ar izkliedēto skaitļoÅ”anu. Vai varat pateikt dažus vārdus par savām prezentācijām Skolā un Hidras konferences?

Moriss: Skolā es vēlos runāt par blokķēdes pamatiem un to, ko jÅ«s varat ar to darÄ«t. Es vēlētos parādÄ«t, ka blokķēdes ir ļoti lÄ«dzÄ«gas mums pazÄ«stamajai daudzpavedienu programmÄ“Å”anai, taču ar savām niansēm, un ir svarÄ«gi saprast Ŕīs atŔķirÄ«bas. Ja jÅ«s pieļaujat kļūdu parastā tÄ«mekļa lietojumprogrammā, tas vienkārÅ”i ir kaitinoÅ”i. Ja finanÅ”u lietotnē ierakstÄ«sit kļūdainu kodu, kāds noteikti nozags visu jÅ«su naudu. Tas ir pavisam cits atbildÄ«bas lÄ«menis un sekas. Es nedaudz pastāstÄ«Å”u par darba pierādÄ«Å”anu, viedajiem lÄ«gumiem, darÄ«jumiem starp dažādām blokķēdēm.

Blakus man strādās citi runātāji, kuriem arÄ« ir ko teikt par blokķēdi, un mēs vienojāmies savā starpā saskaņot, lai mÅ«su stāsti labi iederētos. Bet inženierzinātņu runai es vēlos sniegt skaidru skaidrojumu plaÅ”ai auditorijai, kāpēc nevajadzētu ticēt visam, ko dzirdat par blokķēdēm, kāpēc blokķēdes ir lieliska joma, kā tas saskan ar citām labi zināmām idejām un kāpēc mums vajadzētu drosmÄ«gi skaties nākotnē.

Aleksejs: Turklāt es gribu teikt, ka tas nenotiks tikÅ”anās vai lietotāju grupas formātā, kā tas bija pirms diviem gadiem. Nolēmām pie skolas uztaisÄ«t nelielu konferenci. Iemesls ir tāds, ka pēc sarunas ar Pēteri Kuzņecovu sapratām, ka skolā ir tikai simts, varbÅ«t 120 cilvēku. Tajā paŔā laikā ir daudz inženieru, kuri vēlas ar jums runāt, apmeklēt ziņojumus un kopumā interesējas par Å”o tēmu. Å im nolÅ«kam esam izveidojuÅ”i jaunu konferenci sauc Hidra. Starp citu, vai ir kāda ideja, kāpēc Hidra?

Moriss: Tāpēc, ka tajā būs septiņi skaļruņi? Un viņiem var nocirst galvu, un viņu vietā izaugs jauni skaļruņi?

Aleksejs: Lieliska ideja jaunu skaļruņu audzÄ“Å”anai. Bet patiesÄ«bā Å”eit ir stāsts. Atcerieties leÄ£endu par Odiseju, kur viņam bija jākuÄ£o starp Skilla un Haribda? Hidra ir kaut kas lÄ«dzÄ«gs Charybdis. Stāsts ir tāds, ka reiz es runāju konferencē un runāju par daudzpavedienu izmantoÅ”anu. Å ajā konferencē bija tikai divas dziesmas. Referāta sākumā es teicu auditorijai zālē, ka viņiem tagad ir izvēle starp Skilu un Haribdi. Mans garÄ«gais dzÄ«vnieks ir Haribdis, jo Haribdai ir daudz galvu, un mana tēma ir daudzpavedienu. Tā parādās konferenču nosaukumi.

Katrā ziņā esam pietrÅ«kuÅ”i gan jautājumu, gan laika. Tāpēc paldies draugiem par lielisko interviju un tiekamies SPTDC un Hydra 2019!

Komunikāciju ar Morisu bÅ«s iespējams turpināt konferencē Hydra 2019, kas notiks 11. gada 12.-2019.jÅ«lijā Sanktpēterburgā. ViņŔ nāks ar ziņojumu "Bloku ķēdes un izkliedētās skaitļoÅ”anas nākotne". Biļetes var iegādāties oficiālajā tÄ«mekļa vietnē.

Avots: www.habr.com

Pievieno komentāru