ProHoster > Blogs > AdministrÄcija > āAtbildÄt ir vieglÄk nekÄ klusÄtā ā lieliska intervija ar transakciju atmiÅas tÄvu Morisu Herlihi
ā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;
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?
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.
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.
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!