"Hè più faciule di risponde chì di stà in silenziu" - una grande entrevista cù u babbu di a memoria transazionale, Maurice Herlihy

Maurice Herlihy - pruprietariu di dui Premii Dijkstra. U primu hè per travaglià "Sincronizazione senza attesa" (Università Brown) è a seconda, più recente, - "Memoria Transazionale: Supportu Architetturale per Strutture di Dati Senza Lock" (Università Tecnica di Virginia). U Premiu Dijkstra hè datu per u travagliu chì a so significazione è influenza sò visibili per almenu deci anni è Maurice hè ovviamente unu di i specialisti più famosi in u campu. Attualmente travaglia cum'è prufessore in l'Università Brown è hà numerosi rializazioni chì sò un paràgrafu longu. Hè attualmente a ricerca di blockchain in u cuntestu di l'informatica distribuita classica.

Nanzu, Maurice era digià venutu in Russia per SPTCC (videocassetta) è hà fattu una reunione eccellente di a cumunità di sviluppatori JUG.ru Java in San Petruburgu (videocassetta).

Questu habrapost hè una grande entrevista cù Maurice Herlihy. Discute i seguenti temi:

  • Interazione trà l'accademia è l'industria;
  • Fundazione per a Ricerca Blockchain;
  • Da induve venenu l'idee rivoluzionarie? influenza di pupularità;
  • PhD sottu a tutela di Barbara Liskov;
  • U mondu aspetta multi-core;
  • Un novu mondu porta novi prublemi. NVM, NUMA è pirate di l'architettura;
  • Compilers vs processori, RISC vs CISC, memoria sparta versus passaghju di messagi;
  • L'arti di scrive codice fragile multi-threaded;
  • Cumu insignà i studienti à scrive un codice cumplessu multi-threaded;
  • A nova edizione di u libru "L'Arte di a Prugrammazione Multiprocessore";
  • Cumu hè stata inventata a memoria transazionale;   
  • Perchè vale a pena di fà ricerche in u campu di l'informatica distribuita;
  • Hà u sviluppu di l'algoritmi fermatu, è cumu si move;
  • U travagliu in l'Università Brown;
  • A diffarenza trà a ricerca in una università è in una corporazione;
  • Hydra è SPTDC.

L'intervista hè fatta da:

Vitali Aksenov - attualmente, post-doctorale in IST Austria è impiegatu di u Dipartimentu di Tecnologie Informatiche in l'Università ITMO. Cunduce a ricerca in u campu di a teoria è a pratica di strutture di dati cumpetitive. Prima di travaglià in IST, hà ricevutu u so PhD da l'Università Diderot di Parigi è l'Università ITMO sottu a tutela di u prufessore Peter Kuznetsov.

Alexey Fedorov - Produttore in JUG Ru Group, una cumpagnia russa chì urganizeghja cunferenze per i sviluppatori. Alexey hà participatu à a preparazione di più di 50 cunferenze, è u so curriculum vitae include tuttu da a pusizione di un ingegnere di sviluppu in Oracle (JCK, Java Platform Group) à a pusizione di sviluppatore in Odnoklassniki.

Vladimir Sitnikov - Ingegnere à Netcracker. Dece anni di travagliu nantu à u rendiment è a scalabilità di NetCracker OS, software utilizatu da l'operatori di telecomunicazioni per automatizà i prucessi di gestione di l'equipaggiu di rete è di rete. Interessatu in i prublemi di rendiment di Java è Oracle Database. Autore di più di una decina di migliuramentu di rendiment in u driver ufficiale PostgreSQL JDBC.

Interazione trà l'accademia è l'industria

Alexey: Maurice, avete travagliatu in un ambiente accademicu per un tempu assai longu è a prima quistione hè l'interazzione trà l'esfera accademica è industriale. Puderia parlà di cumu l'interazzione trà elli anu cambiatu recentemente? Chì hè accadutu 20-30 anni fà è chì succede avà ? 

Maurice : Aghju sempre pruvatu à travaglià strettamente cù cumpagnie cummerciale perchè anu prublemi interessanti. Iddi, in regula, ùn sò micca assai interessatu nè in pubblicà i so risultati o in spiegazioni detallati di i so prublemi à a cumunità mundiale. Sò solu interessate à risolve questi prublemi. Aghju travagliatu per tali cumpagnie per qualchì tempu. Aghju passatu cinque anni à travaglià à tempu pienu in un laboratoriu di ricerca in Digital Equipment Corporation, chì era una grande cumpagnia di computer. Aghju travagliatu un ghjornu à settimana in Sun, in Microsoft, in Oracle, è aghju fattu un pocu travagliu in Facebook. Avà andaraghju in un permessu sabbaticu (un prufessore in una università americana hè permessu di piglià un tali permessu per un annu circa una volta ogni sei anni) è travaglià in Algorand, Questa hè una cumpagnia di criptocurrency in Boston. U travagliu strettu cù l'imprese hè sempre statu un piacè perchè hè cusì chì amparate cose novi è interessanti. Puderete ancu esse a prima o a seconda persona per pubblicà un articulu nantu à un tema sceltu, piuttostu cà di travaglià per migliurà gradualmente e soluzioni à i prublemi chì tutti l'altri sò digià travagliatu.

Alexey: Ci pò dì più in dettagliu cumu succede questu?

Maurice: Di sicuru. Sapete, quandu travagliava à a Digital Equipment Corporation, mè è Elliot Moss, avemu inventatu a memoria transazionale. Era un periodu assai fruttu quandu tutti cuminciaru à interessà à a tecnulugia di l'infurmazione. Parallelismu, cumpresu, ancu s'ellu ùn esiste micca sistemi multi-core. Duranti i ghjorni Sun è Oracle, aghju travagliatu assai nantu à strutture di dati paralleli. In Facebook aghju travagliatu nantu à u so prughjettu di blockchain, chì ùn possu micca parlà, ma spergu chì sia prestu publicu. L'annu dopu, in Algorand, aghju da travaglià in un gruppu di ricerca chì studia i cuntratti intelligenti.

Alexey: Blockchain hè diventatu un tema assai populari in l'ultimi anni. Questu aiutarà a vostra ricerca? Forse serà più faciule d'ottene cuncessioni o furnisce l'accessu à e risorse da e cumpagnie chì operanu in l'industria?

Maurice: Aghju digià ricevutu una piccula cuncessione da a Fundazione Ethereu. A pupularità di blockchain hè assai utile per inspirà i studienti à travaglià in questu campu. Sò assai interessate in questu è sò entusiasmati di participà, ma qualchì volta ùn si capiscenu micca chì a ricerca chì sona eccitante à l'esternu risulta implica un travagliu veramente duru. Tuttavia, sò veramente entusiasmu d'utilizà tutta questa mistica intornu à blockchain per aiutà à attruverà i studienti. 

Ma questu hè micca tuttu. Sò in u cunsigliu di cunsigliu di parechje startups blockchain. Qualchidunu di elli puderanu riesce, alcuni ùn ponu micca, ma hè sempre assai interessante per vede e so idee, studià è cunsiglià e persone. A cosa più eccitante hè quandu avete avvistu a ghjente di ùn fà micca qualcosa. Parechje cose parenu una bona idea in prima, ma sò veramente?

Fundazione per a Ricerca Blockchain

Vitaly: Certi pirsuni pensanu chì u futuru si trova cù u blockchain è i so algoritmi. È l'altri dicenu chì hè solu una altra bolla. Pudete sparte a vostra opinione nantu à sta materia?

Maurice: Un saccu di ciò chì succede in u mondu blockchain hè sbagliatu, alcuni hè solu una scam, assai hè sopravvalutatu. Tuttavia, pensu chì ci hè una basa scientifica solida per questi studii. U fattu chì u mondu bluccatu hè pienu di differenzi ideologichi mostra u livellu di eccitazione è dedicazione. Per d 'altra banda, questu ùn hè micca particularmente benefica per a ricerca scientifica. Avà, se pubblicà un articulu chì parla di i difetti di un algoritmu particulari, a reazione resultanti ùn hè micca sempre cumplettamente scientifica. Spessu a ghjente scaccià e so emozioni. Pensu chì stu tipu di eccitazione in questa zona pò parè attrattiva à certi, ma à a fine di u ghjornu, ci sò veri prublemi scientifichi è ingegneria chì deve esse trattatu. Ci hè assai di l'informatica quì.

Vitaly: Allora stai pruvatu à mette a basa per a ricerca di blockchain, nò?

Maurice : Cercu di mette a basa di una disciplina solida, scientificamente è matematica. È una parte di u prublema hè chì qualchì volta avete à cuntradisce alcune di e pusizioni troppu duru di l'altri populi è ignurà. Calchì volta a ghjente dumanda perchè u travagliu in una zona induve solu i terroristi è i trafficanti di droga sò interessati. Una tale reazione hè senza significatu cum'è u cumpurtamentu di i seguitori chì ripetenu a cieca e vostre parolle. Pensu chì a verità hè in qualchì locu à mezu. Blockchain avarà un impattu prufondu nantu à a società è l'ecunumia glubale. Ma questu probabilmente ùn succede micca grazia à a tecnulugia muderna. I tecnulugii muderni si sviluppanu è ciò chì serà chjamatu blockchain in u futuru diventerà assai impurtante. Puderà ancu micca cum'è blockchains muderni, hè una quistione aperta.

Se a ghjente inventa e tecnulugia novi, cuntinueghjanu à chjamà blockchain. Vogliu dì, cum'è u Fortran d'oghje ùn hà nunda à fà cù a lingua Fortran di l'anni 1960, ma tutti si chjamanu Fortran. Idem per UNIX. Ciò chì hè chjamatu "blockchain" farà sempre a so rivoluzione. Ma dubitu chì sta nova blockchain serà qualcosa cum'è ciò chì tutti piacenu aduprà oghje.

Da induve venenu l'idee rivoluzionarie? Impattu di pupularità

Alexey: A popularità di blockchain hà purtatu à novi risultati da un puntu di vista scientificu? Più interazione, più studienti, più cumpagnie in a zona. Ci hè digià qualchì risultatu da questa crescita di pupularità?

Maurice: Mi interessa à questu quandu qualchissia m'hà datu un volante ufficiale per una sucietà chì avia appena cullucatu assai soldi. Hà scrittu annantu compitu di i generali bizantini, cù quale sò più chè familiarizatu. Ciò chì era scrittu in u fogliu era chjaramente tecnicumente incorrectu. A ghjente chì hà scrittu tuttu questu ùn hà micca veramente capitu u mudellu daretu à u prublema... è ancu sta cumpagnia hà riunitu assai soldi. In seguitu, a cumpagnia hà rimpiazzatu tranquillamente stu fogliu cù una versione assai più curretta - è ùn diceraghju micca quale era u nome di sta cumpagnia. Sò sempre intornu è facenu assai bè. Questu incidente m'hà cunvintu chì, prima, bluccatu hè solu una forma di computing distribuitu. Siconda, u limitu di entrata (almenu allora, quattru anni fà) era abbastanza bassu. E persone chì travaglianu in questu campu eranu assai energii è intelligenti, ma ùn anu micca leghje articuli scientifichi. Pruvavanu di reinventà e cose cunnisciute è l'anu fattu male. Oghje u dramma hè diminuitu.

Alexey: Questu hè assai interessante, perchè uni pochi anni fà avemu avutu una tendenza diversa. Hè un pocu cum'è u sviluppu di front-end, quandu i sviluppatori di front-end basati in navigatore reinventavanu tecnulugia intere chì eranu digià populari in u back-end: custruì sistemi, integrazione cuntinua, cose cusì. 

Maurice: Sò d'accordu. Ma questu ùn hè micca surprisante, perchè l'idee veramente rivoluzionarie venenu sempre da fora di a cumunità stabilita. I circadori stabiliti, in particulare i accademichi stabiliti, sò improbabile di fà qualcosa veramente rivoluzionariu. Hè facilitu di scrive un documentu per a prossima cunferenza nantu à cumu avete migliuratu ligeramente i risultati di u vostru travagliu passatu. Andate à una cunferenza, riunite cù l'amichi, parlate di e stesse cose. È e persone chì sbuchjavanu cù idee rivoluzionarie venenu quasi sempre da fora. Ùn cunnosci micca e regule, ùn cunnosci micca a lingua, ma quantunque... Sè vo site in una cumunità stabilita, vi cunsigliu di attentu à e cose novi, à qualcosa chì ùn si mette micca in u quadru generale. In un certu sensu, un tentativu pò esse fattu di cumminà sviluppi esterni, più fluidi cù metudi chì avemu digià capitu. Cum'è un primu passu, pruvate à stabilisce una basa scientifica, è poi cambià in modu chì pò esse appiicata à idee novi sfondate. Pensu chì u blockchain hè grande per esse una idea fresca è disruptiva.

Alexey: Perchè pensate chì succede? Perchè e persone "fora" ùn anu micca alcuna barriera specifica inherente à a cumunità?

Maurice: Ci hè un mudellu chì passa quì. Se leghjite a storia di l'impressionisti in a pittura è l'arti in generale, allora in un tempu artisti famosi rifiutanu l'impressionismu. Dicenu chì era un tipu di zitellu. Una generazione dopu, sta forma d'arte prima rifiutata diventò u standard. Ciò chì vecu in u mo campu: l'invintori di blockchain ùn anu micca interessatu in u putere, in l'aumentu di publicazioni è l'indice di citazione, vulianu solu fà qualcosa di bonu. È cusì si pusonu è cuminciaru à fà. Li mancava una certa prufundità tecnica, ma questu hè riparabile. Hè assai più difficiuli di vene cun idee creativi novi chì di curregà è rinfurzà quelli chì ùn sò micca abbastanza maturi. Grazie à questi inventori, aghju avà qualcosa à fà !

Alexey: Questu hè simile à a diffarenza trà startups è prughjetti legati. Eriditemu assai limitazioni di pensamentu, barriere, esigenze speciali, etc.

Maurice: Una bona analogia hè l'informatica distribuita. Pensate à a blockchain cum'è s'ellu era una startup è una computing distribuita cum'è una grande cumpagnia stabilita. L'informatica distribuita hè in u prucessu di esse acquistatu è fusionatu cù blockchain.

PhD sottu a tutela di Barbara Liskov

Vitali : Avemu sempre parechje dumande ! Avemu cercatu in u vostru sfondate è truvamu un fattu interessante nantu à u vostru dutturatu. Iè, questu era assai tempu fà, ma pare esse un tema impurtante. Avete ricevutu u vostru PhD sottu a guida di sè stessu Barbara Liskov! Barbara hè assai cunnisciuta in a cumunità di lingua di prugrammazione, è una persona assai cunnisciuta in generale. Hè logicu chì a vostra ricerca era in u campu di i linguaggi di prugrammazione. Cumu si passa à l'informatica parallela? Perchè avete decisu di cambià u tema ?

Maurice: À l'epica, Barbara è u so gruppu eranu solu à circà l'informatica distribuita, chì era una idea assai nova. Ci era ancu quelli chì dicianu chì l'informatica distribuita era una sciocchezza è chì l'urdinatori chì cumunicanu cù l'altri era inutile. Unu di i prublemi affrontati in l'informatica distribuita chì a distingue da l'informatica centralizzata hè a tolleranza di difetti. Dopu assai ricerca, avemu decisu chì una lingua di prugrammazione di l'informatica distribuita hà bisognu à avè qualcosa cum'è transazzione atomica perchè ùn pudete mai esse sicuru chì una chjama remota riesce. Una volta avete transazzione, u prublema di a gestione di cuncurrenza sorge. Allora ci hè statu assai travagliu per ottene strutture di dati transazzione altamente paralleli. Dopu, quandu mi sò graduatu, sò andatu Carnegie Mellon è hà cuminciatu à circà un tema per travaglià. Mi hè accadutu chì l'informatica hè passata da l'urdinatori individuali à e rete di l'urdinatori. I multiprocessori seranu una continuazione naturali di u prugressu - a parolla "multi-core" ùn esiste micca. Pensu: chì hè l'equivalente di transazzione atomica per un sistema multi-core? Definitivamente micca transacciones regularmente perchè sò troppu grande è pisanti. È hè cusì chì aghju avutu l'idea linearizzabilità è hè cusì chì aghju ghjuntu cù tutta a sincronizazione senza attesa. Questu era un tentativu di risponde à a quistione di ciò chì hè l'analogicu di e transazzione atomica per un sistema multiprocessore cù memoria sparta. À u primu sguardu, stu travagliu pò vede cumplitamenti sfarente, ma in fattu hè una continuazione di u listessu tema.

U mondu aspetta multi-core

Vitaly: Avete mintuatu chì à quellu tempu ci era assai pochi computer multi-core, nò?

Maurice : Ùn ci eranu solu. Ci era parechji multiprocessori simmetrici chjamati, chì sò basamente cunnessi à u stessu bus. Questu ùn hà micca travagliatu assai bè perchè ogni volta chì una nova cumpagnia creava qualcosa di simile, Intel hà liberatu un solu processore chì era superiore à u multiprocessore.

Alexey: Questu ùn significa micca chì in quelli tempi antichi era più un studiu teoricu?

Maurice : Ùn era micca un studiu teoricu, ma un studiu speculativu. Tuttu chistu ùn era micca di travaglià cù parechji teoremi; piuttostu, avemu fattu ipotesi nantu à una architettura chì ùn esiste micca à quellu tempu. Hè per quessa a ricerca! Nisuna cumpagnia avissi fattu qualcosa cusì; era tuttu qualcosa di u futuru luntanu. In fatti, questu era u casu finu à u 2004, quandu i veri prucessori multi-core apparsu. Perchè i processori surriscaldanu, pudete fà u processatore ancu più chjucu, ma ùn pudete micca fà più veloce. Per quessa, ci hè stata una transizione à l'architetture multi-core. E allora chì significava chì di colpu ci era un usu per tutti i cuncetti chì avemu avutu sviluppatu in u passatu.

Alexey: Perchè pensate chì i processori multi-core apparsu solu in l'anni XNUMX? Allora perchè hè cusì tardi ?

Maurice: Questu hè dovutu à limitazioni hardware. Intel, AMD è altre cumpagnie sò assai boni per aumentà a velocità di u processatore. Quandu in un certu puntu i prucessori sò diventati abbastanza chjuchi chì ùn puderanu più aumentà a velocità di u clock perchè i prucessori cumincianu à brusgià. Pudete fà più chjucu, ma micca più veloce. Ciò chì hè in u so putere - invece di un prucessore assai chjucu, ponu mette ottu, sedici o trenta-dui prucessori in u stessu voluminu di u casu, induve prima solu unu puderia adattà. Avà avete multithreading è cumunicazione veloce trà elli perchè sparte cache. Ma ùn pudete micca furzà à corre più veloce - ci hè un limitu di velocità assai specificu. Cuntinueghjanu à migliurà pocu à pocu, ma micca tantu più. E liggi di a fisica stavanu in modu di migliurà.

Un novu mondu porta novi prublemi. NUMA, NVM è pirateria di l'architettura

Alexey: Sona assai ragiunate. Cù novi processori multi-core sò ghjunti novi prublemi. Avete è i vostri culleghi aspittàvanu sti prublemi ? Forse li avete studiatu in anticipu? In i studii teorichi ùn hè spessu micca assai faciule di predichendu tali cose. Quandu i prublemi sò accaduti, cumu si sò scontri à e vostre aspettative è di i vostri culleghi? O eranu completamente novi, è voi è i vostri culleghi avianu da passà assai tempu à risolve i prublemi cum'è apparsu?

Vitaly: Aghju aghjustatu à a quistione di Alexey: avete predettu currettamente l'architettura di u processatore mentre studiava a teoria?

Maurice: Ùn 100%. Ma pensu chì i mo culleghi è aghju fattu un bonu travagliu predichendu multi-core cù memoria sparta. Pensu chì avemu preditu currettamente e difficultà à sviluppà strutture di dati paralleli chì operanu senza serratura. Tali strutturi di dati sò stati impurtanti per parechje applicazioni, ancu s'ellu ùn sò micca tutti, ma spessu ciò chì avete bisognu hè una struttura di dati non-locking. Quandu l'avemu inventatu, assai sustinienu chì questu era un scioccu, chì tuttu hà travagliatu bè cù chjusi. Avemu preditu abbastanza bè chì ci seranu suluzioni pronti per parechji prublemi di prugrammazione è prublemi di struttura di dati. Ci era ancu prublemi più cumplessi, cum'è Numa - accessu irregolare à a memoria. In fatti, ùn eranu ancu cunsiderate finu à chì i processori multi-core sò stati inventati perchè eranu troppu specifichi. A cumunità di ricerca hà travagliatu nantu à e dumande chì sò generalmente prevedibili. Certi prublemi di hardware assuciati cù architetture specifiche anu da aspittà in l'ale - in fattu, l'apparizione di sti architetture. Per esempiu, nimu hà veramente travagliatu nantu à strutture di dati specifichi di GPU perchè e GPU ùn esistenu micca allora. Ancu s'ellu hè statu fattu assai travagliu SIMD, sti algoritmi eranu pronti per l'usu appena u hardware adattatu hè diventatu dispunibule. Tuttavia, hè impussibile di prevede tuttu.

Alexey: Se capiscu bè, NUMA hè una spezia di cumprumissu trà u costu, u rendiment è altre cose. Qualche idea perchè NUMA hè ghjunta cusì tardi?

Maurice: Pensu chì NUMA esiste per via di prublemi cù l'hardware utilizatu per pruduce a memoria: più i cumpunenti sò alluntanati, più lento hè per accede à elli. Per d 'altra banda, u sicondu valore di questa astrazione hè l'uniformità di memoria. Allora una di e caratteristiche di l'informatica parallela hè chì tutte l'astrazioni sò pocu rotte. Se l'accessu era perfettamente uniforme, tutta a memoria seria equidistante, ma questu hè economicamente, è forse ancu fisicu, impussibile. Dunque stu cunflittu nasce. Sè vo scrivite u vostru prugrammu cum'è s'è a memoria era uniforme, allura sarà più prubabile esse currettu. In u sensu chì ùn darà micca risposte sbagliate. Ma u so spettaculu ùn catturà ancu e stelle da u celu. Cume, si scrive spinlocks Senza capisce a ghjerarchia di cache, u bloccu stessu serà currettu, ma pudete scurdà di u rendiment. In un certu sensu, ci vole à scrive prugrammi chì campanu in cima à una astrazione assai simplice, ma avete da sbattà a ghjente chì vi hà datu quella astrazione: avete da sapè chì sottu à l'astrazione ci hè una certa gerarchia di memoria, chì ci hè. un autobus trà voi è sta memoria, è cetara. Cusì, ci hè qualchì cunflittu trà l'astrazioni utili individualmente, chì ci porta à prublemi assai cuncreti è pragmatici.

Vitaly : E l'avvene ? Pudete predichendu cumu si svilupparanu i prucessori dopu? Ci hè una idea chì una di e risposte hè a memoria transazionale. Probabilmente avete qualcosa d'altru in stock.

Maurice: Ci hè un paru di sfide maiò davanti. Unu hè chì a memoria coherente hè una maravigliosa astrazione, ma cumencia à scumpressà in casi speciali. Cusì, per esempiu, NUMA hè un esempiu vivu di qualcosa induve pudete cuntinuà à finta chì a memoria uniforme esiste. In verità no, a produtividade vi farà pienghje. À un certu puntu, l'architetti anu da abbandunà l'idea di una sola architettura di memoria; ùn pudete micca finta per sempre. Seranu necessarii novi mudelli di prugrammazione chì sò abbastanza faciuli d'utilizà è abbastanza putenti per rende l'hardware sottostante efficiente. Questu hè un cumprumissu assai difficiuli, perchè se mostra à i programatori l'architettura chì hè veramente utilizata in u hardware, andaranu in pazzi. Hè troppu cumplicatu è micca portable. Se presentate una interfaccia chì hè troppu simplice, u rendiment serà poviru. Cusì, parechji scambii assai difficiuli duveranu esse fatti per furnisce mudelli di prugrammazione utili applicabili à i prucessori multi-core veramente grandi. Ùn sò micca sicuru chì qualchissia altru ch'è un specialista hè capace di prugrammazione in un computer 2000-core. È salvu chì ùn fate micca una informatica assai specializata o scientifica o una criptografia o qualcosa cusì - ùn hè ancu micca chjaru cumu fà bè. 

Un altru spaziu simili hè l'architettura specializata. L'acceleratori grafici sò stati per un bellu pezzu, ma sò diventati qualcosa di un esempiu classicu di cumu pudete piglià un tipu specializatu di computing è eseguite nantu à un chip dedicatu. Questu aghjunghje i so propri sfide: cumu cumunicà cù un tali dispositivu, cumu u prugramma. Recentemente aghju travagliatu nantu à i prublemi in a zona vicinu à l'informatica di memoria. Pigliate un picculu processore è incollallu à un grande pezzu di memoria per chì a memoria corre à a velocità di cache L1 è dopu cumunicà cù un dispositivu cum'è TPU - u processore hè occupatu à carricà novi travaglii in u vostru core di memoria. Cuncepisce strutture di dati è protokolli di cumunicazione per stu tipu di cose hè un altru esempiu interessante. Allora i prucessori persunalizati è l'hardware cuntinueghjanu à vede miglioramenti per un bellu pezzu.

Alexey: E a memoria non volatile (memoria non volatile)?

Maurice : Oh, hè un altru esempiu bellu ! NVM cambierà assai a manera di vede e cose cum'è strutture di dati. A memoria non volatile, in un certu sensu, prumetti di veramente accelerà e cose. Ma ùn farà micca a vita più faciule perchè a maiò parte di i processori, cache è registri sò sempre volatili. Quandu avete principiatu dopu à un crash, u vostru statu è u statu di a vostra memoria ùn serà micca esattamente u listessu cum'è prima di u crash. Sò assai grati à e persone chì travaglianu nantu à NVM - ci sarà assai per i circadori da fà per un bellu pezzu per pruvà à capisce e cundizioni di currezzione. I calculi sò curretti si ponu sopravvive à un crash in quale u cuntenutu di cache è registri sò persi, ma a memoria principale resta intacta.

Cumpilatori vs processori, RISC vs CISC, memoria sparta versus passaghju di messagiu

Vladimir: Chì pensate di u dilema "compilatori versus processori" da un puntu di vista di l'istruzzioni? Lasciami spiegà per quelli chì ùn sò micca in a cunniscenza: se andemu à a memoria distorta o qualcosa simili, pudemu usà un inseme assai simplice di cumandamenti è dumandà à u compilatore per generà codice cumplessu chì pò prufittà di i novi vantaghji. O pudemu andà in l'altru modu: implementà struzzioni cumplessi è dumandate à u processatore per reordene l'istruzzioni è fà altre manipulazioni cun elli. Chì ne pensate ?

Maurice : Ùn aghju micca veramente una risposta à sta quistione. Stu dibattitu dura dapoi quattru decennii. Ci era un tempu quandu trà abbreviatu un inseme di cumandamenti è difficiule guerri civili sò stati cummattiti da un inseme di cumandamenti. Per un tempu, u populu RISC hà vintu, ma allora Intel hà ricustruitu i so mutori in modu chì un settore ridottu di struzzioni hè stata utilizata internamente, è u settore sanu hè statu esportatu esternamente. Questu hè probabilmente un tema in quale ogni nova generazione deve truvà i so cumprumessi è piglià e so decisioni. Hè assai difficiuli di predichendu quale di queste cose serà megliu. Allora ogni prediczione ch'e facciu serà vera per un certu tempu, è dopu falza di novu per un tempu, è dopu vera di novu.

Alexey: Quantu hè cumunu per l'industria chì alcune idee vincenu per parechji decennii è perde in u prossimu? Ci sò altri esempi di tali cambiamenti periodichi?

Maurice: In u tema di l'informatica distribuita, ci sò persone chì credenu memoria spartuta è ghjente chì crede in messaggistica. Inizialmente, in l'informatica distribuita, l'informatica parallela significa u passaghju di messagiu. Allora qualchissia hà scupertu chì era assai più faciule di prugrammà cù memoria sparta. U latu oppostu hà dettu chì a memoria cumuna hè troppu cumplicata, perchè esige serrature è simili, per quessa, vale a pena passà in lingue induve ùn esiste nunda, ma u passaghju di missaghju. Qualchissia hà guardatu ciò chì hè surtitu da questu è hà dettu: "Wow, sta implementazione di messageria s'assumiglia assai à a memoria spartuta, perchè create assai è assai di sti moduli, mandanu messagi à l'altri, è tutti. interlock"Femu una megliu basa di dati di memoria spartuta!" Tuttu chistu hè ripetutu una volta è una volta, è hè impussibile di dì chì unu di i partiti hè certamente ghjustu. Unu di i lati duminerà sempre perchè quandu unu di elli guasi vince, a ghjente una volta è una volta inventa modi per migliurà l'altru.

L'arte di scrive un codice multithreaded fragile

Alexey: Questu hè assai interessante. Per esempiu, quandu scrivimu codice, ùn importa ciò chì lingua di prugrammazione, avemu di solitu à creà astrazioni cum'è cellule chì ponu esse leghjite è scritte. Ma in fattu, à un certu livellu fisicu, questu pò esse cum'è l'inviu di un missaghju nantu à un bus hardware trà e diverse computer è altri dispositi. Risulta chì u travagliu accade à i dui livelli di astrazione à una volta.

Maurice: Hè assolutamente veru chì a memoria sparta hè custruita nantu à u passaghju di messagi - autobus, cache, etc. Ma hè difficiule di scrive prugrammi cù u passaghju di messagiu, cusì u hardware si trova deliberatamente, fintendu chì avete un tipu di memoria uniforme. Questu hà da fà più faciule per voi di scrive prugrammi simplici è curretti prima chì u rendiment cumencia à deteriorate. Allora vi dicerete: pare chì hè ora di fà amici cù u cache. E poi cuminciate à preoccupassi di u locu di u cache, è da quì si va. In un certu sensu, pirate l'astrazione: sapete chì ùn hè micca solu una memoria piatta è uniforme, è avete da aduprà sta cunniscenza per scrive prugrammi cache-friendly. Questu hè ciò chì avete da fà in i prublemi veri. Stu cunflittu trà l'astrazione dolce, simplice è bella chì vi hè stata data è l'implementazione orribilmente cumplessa di u hardware sottostante hè induve ognunu farà u so propiu cumprumissu. Aghju un libru nantu à i multiprocessori è a sincronizazione, è in un puntu aghju da scrive un capitulu nantu à e strutture di dati in java.util.concurrent. Se li guardate, cose cum'è liste cù omissioni Quessi sò opere d'arte maravigghiusu. (Nota di l'editore: Quelli familiarizati cù a lingua Java duveranu almenu piglià un ochju à l'implementazione ConcurrentSkipListMap, pudete guardà i ligami à API и codice fonte). Ma da u mo puntu di vista, saria irresponsibile di mustralli à i studienti, perchè una tale struttura di dati hè una sorta di un tippu in un circu chì corre nantu à una corda stretta sopra una fossa di l'orsu. Se cambiate ancu un picculu dettagliu, tutta a struttura colapserà. Stu codice hè assai viloci è eleganti solu perchè hè scrittu perfettamenti, ma u minimu cambiamentu porta à un fallimentu cumpletu. S'ellu dugnu stu codice cum'è un esempiu à i studienti, subitu diceranu : possu ancu fà ! È tandu un aviò si sbatterà o un reattore nucleare sploderà, è seraghju culpèvule di dà troppu infurmazione à u mumentu sbagliatu.

Alexey: Quandu era un pocu più ghjovanu, parechje volte aghju pruvatu à studià u codice fonte di Doug Lee, per esempiu, java.util.concurrent, perchè hè open source, hè assai faciule di truvà è pruvà à capisce ciò chì succede quì. Ùn hè micca fattu assai bè: spessu, ùn hè micca chjaru perchè Doug hà decisu di fà qualcosa in questu modu quandu tutti l'altri facenu in modu diversu. Cumu spiegà queste cose à i vostri studienti? Ci hè un modu particulari currettu per discrive dettagli specifichi di un algoritmu hardcore, per esempiu? Cumu fà questu?

Maurice: I prufessori di disegnu anu un cliché chì si ricordanu prima: sè vo vulete disegnà cum'è Picasso, avete prima bisognu di amparà à disegnà stampi realistichi simplici, è solu quandu cunnosci e regule, pudete cumincià à rompe. Sè vo cuminciate à rompe e regule subitu, finiscinu in un mess. Prima, insegnu à i studienti cumu scrive un codice simplice è currettu senza preoccupari di u rendiment. Ciò chì dicu hè chì ci sò prublemi di timing cumplessi chì stanu quì, dunque ùn vi preoccupate micca di cache, ùn vi preoccupate micca di mudelli di memoria, assicuratevi solu chì tuttu funziona bè. Questu hè digià abbastanza difficiule: a prugrammazione muderna ùn hè micca faciule in sè stessu, soprattuttu per i novi studienti. È quandu anu una intuizione di cumu scrive i prugrammi ghjusti, dicu: fighjate à sti dui implementazioni di spinlock: unu hè assai lento, è u sicondu hè ancu micca assai, ma megliu. Tuttavia, matematicamente i dui algoritmi sò listessi. In fatti, unu di elli usa cache locu. Unu di elli funziona nantu à e dati in cache locale, è l'altru esegue ripetutamente operazioni in u busu. Ùn pudete micca scrive un codice efficae sè ùn avete micca capitu ciò chì hè, è ùn sapete micca cumu rompe l'astrazione è fighjate a struttura sottostante. Ma ùn puderete micca cumincià à fà questu subitu. Ci sò persone chì cumincianu à fà questu subitu è ​​crede in u so propiu geniu, di solitu finisci male perchè ùn capiscenu micca i principii. Nimu disegna cum'è Picasso o scrive prugrammi cum'è Doug Lee appena fora di l'università in a so prima settimana. Ci vole anni per ghjunghje à stu livellu di cunniscenza.

Alexey: Risulta chì dividite u prublema in dui parti: u primu hè a correzione, u sicondu hè u rendiment?

Maurice: Esattamente. È, esattamente in questu ordine. A parte di u prublema hè chì i novi studienti ùn capiscenu micca chì a correzione hè difficiule di ottene. À u primu sguardu dicenu: questu hè ovviamente currettu, tuttu ciò chì resta hè di accelerà. Allora qualchì volta li dicu di un algoritmu inizialmente incorrectu cum'è s'ellu era currettu.

Cumu insignà à i studienti à scrive codice cumplessu multithreaded

Alexey: Solu per vede s'ellu si sentenu a cattura?

Maurice : Aghju sempre avvistu in anticipu chì qualchì volta prupunaraghju algoritmi sbagliati. Ùn duvete micca ingannà a ghjente. Suggerenu chì piglianu l'infurmazioni cù un granu di salinu. Se dicu qualcosa è dicu: "guardate, questu hè ovviamente currettu" - questu hè un signalu chì in un locu si prova à ingannà, è avete da principià à dumandà dumande. In seguitu, pruvate d'incuragisce i studienti à cuntinuà à fà dumande, è dopu suggeriu: "Chì succede se lasciamu e cose cume sò?" È immediatamente vedenu l'errore. Ma cunvince i studienti chì anu bisognu di preoccupassi di a correzione hè assai più difficiule di ciò chì pare à prima vista. Parechji di questi studienti venenu cù l'esperienza di prugrammazione in u liceu, alcuni anu avutu un impiegu è anu fattu prugrammazione quì, è sò tutti ricchi di cunfidenza. Questu hè qualcosa cum'è l'esercitu: prima avete da cambià u so umore per cunvince di cunvince cù pacienza à risolve i prublemi chì si presentanu. O forse hè cum'è i monaci buddisti: prima imparanu à ragiunà nantu à a correttezza, è una volta chì capiscenu i modi di ragiunà nantu à a correttezza, sò permessi di passà à u prossimu livellu è cumincianu à preoccupassi di u rendiment.

Alexey: Questu hè, qualchì volta vi mostra à i studienti esempii chì ùn funzionanu, grazia à quale avete un feedback chì mostra s'ellu capiscenu l'essenza di u prublema, s'ellu ponu truvà u codice sbagliatu è u risultatu sbagliatu. Allora, i studienti di solitu vi facenu felici o tristi?

Maurice: I studienti quasi sempre trovanu l'errore eventualmente. S'elli cercanu troppu pianu, aghju dumandatu e dumande principali, è quì hè impurtante di capiscenu chì, s'ellu ùn l'avete mai ingannatu, cumincianu à percepisce senza mente e vostre parolle cum'è l'ultima verità. Allora s'annoiaranu è cumincianu à dorme mentre leghje Facebook nant'à u so laptop durante a classe. Ma quandu li dite in anticipu chì saranu ingannati, è pareranu stupidi s'ellu ùn sentenu micca un truccu, diventanu assai più vigilanti. Questu hè bonu in diversi modi. Vogliu chì i studienti ùn solu interrogà a so cunniscenza di u prublema, ma ancu mette in discussione l'autorità di u maestru. L'idea hè chì un studiente pò alzà a manu in ogni mumentu è dì: Pensu chì ciò chì avete dettu hè sbagliatu. Hè un strumentu d'apprendimentu impurtante. Ùn vogliu micca chì alcunu di i studienti si sentenu è pensanu in silenziu à sè stessu: tuttu questu pare una sciocchezza cumpleta, ma alzà a manu hè troppu spaventosa, è in ogni modu, hè un prufissore, cusì tuttu ciò chì dice hè a verità. Per quessa, s'ellu sò avvirtati in anticipu chì micca tuttu ciò chì hè dettu hè necessariamente veru, anu un incitamentu per pagà più attente à u materiale. Aghju fattu chjaru chì hè bè di alzà a manu è di dumandà dumande. A vostra dumanda pò sona stupidu o ingenu, ma questu hè spessu cumu nascenu e migliori dumande.

Alexey: Moltu interessante. Di solitu, a ghjente hà una sorta di barriera psicologica chì ùn li permette micca di dumandà à un prufessore. Soprattuttu s'ellu ci hè parechje persone in a stanza, è tutti anu a paura chì a discussione di a vostra dumanda stupida pigliarà tuttu u tempu di queste persone. Ci hè qualchì truccu per trattà questu?

Maurice : Mi fermu à spessu à fà dumande classiche. Sia una dichjarazione seria curretta, o cumu si risolve u prublema chì hè discutitu. Questa hè una azzione chjave, soprattuttu à u principiu di una lezziò quandu a ghjente si vargogna di dì ancu a più chjuca. Fate una dumanda à i studienti è ùn dì nunda più. Ci hè u silenziu, ognunu diventa un pocu tensu, a tensione cresce, poi di colpu qualchissia ùn pò micca suppurtà, si rompe è dice a risposta. Hè cusì chì turnate a situazione : cuntinuà à stà in silenziu diventa più difficiuli è sconvenienti chè risponde ! Questu hè un truccu pedagogicu standard. Ogni maestru in u mondu deve sapè cumu fà questu.

Alexey: Avà avemu un tìtulu eccellente per questa entrevista: "Hè più faciule di risponde chì di stà in silenziu".

Vitali: Lasciami dumandà di novu. Avete travagliatu nantu à e prove topologiche. Cumu avete ancu implicatu in questu, perchè l'informatica distribuita è a topologia sò cose completamente diverse!

Maurice : Ci hè una cunnessione nascosta quì. Quandu era un studiente chì studiava a matematica, aghju studiatu matematica pura. Ùn aghju avutu micca un veru interessu in l'urdinatore finu à chì i mo studii sò finiti è mi sò ritrovu di fronte à a necessità pressante di circà un travagliu. Cum'è un studiente, aghju studiatu a topologia algebrica. Parechji anni dopu, mentre travagliava nantu à un prublema chjamatu "K-Set Agreement Problem", Aghju utilizatu gràfiche per mudificà u prublema è, cum'è paria à l'epica, aghju trovu una suluzione. Bastava à pusà à pusà è girà u conte. Pruvate di truvà una risposta adattata nantu à stu graficu. Ma u mo algoritmu ùn hà micca travagliatu: hè risultatu chì ellu correrà in circuli per sempre. Sfurtunatamente, tuttu questu ùn puderia micca esse spiegatu in a lingua formale di a teoria di u graffiu - quellu chì tutti l'informatici cunnoscenu. E poi mi ricurdò chì parechji anni fà, torna in classi di topologia, avemu usatu u cuncettu "Cumplessu simplice", chì hè una generalizazione di i grafici à dimensioni più altu. Allora mi dumandu: chì succede se avemu riformulatu u prublema in termini di complexi simpliciali? Questu hè diventatu u mumentu chjave. Utilizendu un formalismu più putente, u prublema di colpu diventa assai più simplice. A ghjente hà battutu contru à questu per un bellu pezzu, utilizendu grafici, ma ùn pudianu fà nunda. È ancu avà ùn ponu micca - a risposta curretta ùn hè micca un algoritmu, ma una prova di l'impossibilità di risolve u prublema. Questu hè, un tali algoritmu ùn esiste micca solu. Ma ogni prova di impussibilità basatu sia nantu à i complexi simpliciali o nantu à e cose chì a ghjente pretendeva micca di cunsiderà complexi simpliciali. Solu perchè chjamate qualcosa un novu nome, ùn perde micca a so essenza.

Vitaly: Si scopre chì site solu furtunatu?

Maurice : In più di a furtuna, hè ancu vuluntà. Questu significa chì ùn deve micca scurdate di e cose "inutili" chì avete amparatu prima. Quantu più cose inùtuli amparate, più idee pudete sguassate quandu face un novu prublema. Stu tipu di currispundenza di mudelli intuitive hè impurtante perchè... Facemu questu, questu hè una catena: prima aghju scupertu chì i grafici ùn anu micca travagliatu o ùn anu micca travagliatu, mi hà ricurdatu qualcosa di l'eventi di ottu. anni fà è i mo anni studianti, quandu avemu studiatu tutti questi complexi simpliciali. Questu, à u turnu, m'hà permessu di truvà u mo vechju libru di testu di topologia è di ricaricallu in a mo testa. Ma s'ellu ùn era micca quella vechja cunniscenza, ùn avaria mai avutu prugressu à risolve u prublema originale.

Nova edizione di u libru "L'Arte di Programmazione Multiprocessore"

Alexey: Avete dettu uni pochi di parolle nantu à u vostru libru. Probabilmente ùn hè micca u peghju sicretu chì avete scrittu u libru più famosu di u mondu nantu à u multithreading, "L'arte di a prugrammazione multiprocessore". Hè digià circa 11 anni è da tandu hè stata liberata solu  ristampa rivista. Ci sarà una seconda edizione ?

Maurice : Hè bè chì avete dumandatu ! Sarà assai prestu, in trè mesi o più. Ci hè dui autori più, aghjustatu assai più materiale, migliuratu a seccione nantu à u parallelismu fork/join, hà scrittu una sezione nantu à MapReduce, aghjunghje assai cose novi è scacciò cose innecessarii - qualcosa chì era assai interessante à u mumentu di a scrittura. a prima edizione, ma ùn ci hè più oghje. U risultatu era un libru assai seriamente rivedutu.

Alexey: Tuttu hè digià fattu, tuttu ciò chì resta hè di liberà?

Maurice : Un paru di capituli anu sempre bisognu di travagliu. U nostru editore (chì pensu chì ci odia digià) hè sempre pruvatu à fà u messagiu chì duvemu travaglià più veloce. Semu assai in ritardu. Teoricamente, pudemu avè fattu stu libru un paru d'anni prima.

Alexey: Qualchese chance d'avè una nova versione di u libru prima di Natale?

Maurice : Questu hè u nostru scopu ! Ma aghju preditu a vittoria tante volte chì nimu ùn mi crede più. Probabilmente ùn duvete micca fiducia in mè troppu in questa materia.

Alexey: In ogni casu, questa hè una nova fantastica. Mi piacia assai a prima edizione di u libru. Pudete dì chì sò un fan.

Maurice : Spergu chì a nova edizione serà degna di u vostru fervore entusiasmu, grazie !

Cumu hè stata inventata a memoria transazionale

Vitaly: A prossima quistione hè nantu à a memoria transazionale. Per ciò ch'e aghju capitu, sì un pioniere in stu campu, l'avete inventatu in un tempu chì nimu pensava à tali cose. Perchè avete decisu di passà in questu campu? Perchè e transazzione vi parevanu impurtanti? Avete pensatu chì un ghjornu seranu implementati in hardware?

Maurice: Aghju cunnisciutu di e transazzione da i mo ghjorni di ricerca graduate.

Vitaly: Iè, ma queste sò transazzioni diffirenti!

Maurice: Aghju travagliatu cù Elliott Moss nantu à a cullezzione di basura senza bloccu. U nostru prublema era chì vulemu cambià atomicamente uni pochi di parolle in memoria è dopu l'algoritmi diventeranu assai simplici, è almenu alcuni di elli diventeranu più efficaci. Utilizendu paragunà è scambià di load-link/store-conditionalfurnitu da l'architettura parallela, hè pussibule di fà qualcosa, ma hè assai inefficient è bruttu perchè avete da trattà cù strati di indirettu. Vogliu cambià e parolle di memoria è aghju bisognu di cambià perchè ùn possu cambià solu un punteru, cusì anu bisognu à indicà un tipu di struttura di repertoriu. Avemu parlatu di quantu grande seria se pudemu cambià u hardware in modu chì puderia fà a registrazione simultanea. Elliott pare avè nutatu questu: se fighjate à i protokolli di coherenza di cache, furnianu digià a maiò parte di e funziunalità necessaria. In una transazzione ottimista, u protokollu di coerenza di cache hà da avvistà chì ci hè un cunflittu di timing è a cache diventerà. invalidu. Chì succede si speculativamente eseguite una transazzione nantu à u vostru cache è utilizate i meccanismi di protokollu di coerenza per detectà cunflitti? L'architettura hardware speculativa era faciule da cuncepisce. Allora avemu scrittu quellu a prima publicazione nantu à a memoria transazionale. À u listessu tempu, a cumpagnia per quale aghju travagliatu, Digital Equipment Corporation, creava un novu processore 64-bit chjamatu Alpha. Allora sò andatu è detti una presentazione à u gruppu di sviluppu Alpha nantu à a nostra maravigliosa memoria transazionale è anu dumandatu: Quantu ingressu supplementu avaristi a nostra cumpagnia se aghjunghjemu tuttu questu direttamente à u processatore? È ùn aghju avutu nunda di risposta à questu, perchè sò un tecnulugu, ùn sò micca un specialista di marketing. Ùn avia veramente nunda à risponde. Ùn sò micca stati assai impressionati chì ùn sapia nunda.

Vitali: miliardi! Basta dì miliardi!

Maurice : Iè, hè ciò chì duveria dì. Avà, in l'età di startups è tuttu, sò cumu scrive un pianu di cummerciale. Chì pudete minti un pocu nantu à a dimensione di u vostru prufittu potenziale. Ma in quelli ghjorni pareva ingenu, cusì aghju dettu solu: "Ùn sò micca sapè". Se fighjate à a storia di a publicazione nantu à a memoria transazionale, vi vede chì dopu à un annu ci era parechje referenze à questu, è dopu per una decina d'anni nimu hà citatu stu documentu. I quotes apparsu versu 2004, quandu i veri multi-cores apparsu. Quandu a ghjente hà scupertu chì a scrittura di codice parallelu puderia guadagnà soldi, una nova ricerca principia. Ravi Rajwar hà scrittu un articulu, chì in qualchì modu hà introduttu u cuncettu di memoria transazzione à u mainstream. (Nota di l'editore: Ci hè una seconda versione di questu articulu, liberata in u 2010 è dispunibule liberamente. cum'è PDF). Di colpu, a ghjente hà capitu esattamente cumu tuttu questu puderia esse usatu, cumu l'algoritmi tradiziunali cù chjusi puderanu esse accelerati. Un bon esempiu di qualcosa chì in u passatu pareva solu un prublema accademicu interessante. E iè, s'è vo m'avissi dumandatu à quellu tempu s'ellu pensava chì tuttu questu seria impurtante in u futuru, aghju dettu: sicuru, ma quandu esattamente ùn hè micca chjaru. Forse tra 50 anni? In a pratica, questu hè statu solu un decenniu. Hè assai bellu quandu fate qualcosa è dopu à solu dece anni a ghjente a nota.

Perchè vale a pena di fà una ricerca in u campu di l'informatica distribuita

Vitaly: Se parlemu di una nova ricerca, chì cunsigliate à i lettori - informatica distribuita o multi-core è perchè? 

Maurice: In questi ghjorni, hè faciule d'acquistà un processore multi-core, ma hè più difficiule di stallà un veru sistema distribuitu. Aghju cuminciatu à travaglià nantu à elli perchè vulia fà qualcosa di sfarente da a mo tesi di PhD. Questu hè u cunsigliu chì sempre dà à i novi studienti: ùn scrivite micca una continuazione di a vostra dissertazione - pruvate à andà in una nova direzzione. È ancu, multithreading hè faciule. Puderaghju sperimentà cù a mo propria furchetta chì corre nantu à u mo laptop senza esce da u lettu. Ma s'ellu di colpu vulia creà un veru sistema distribuitu, avissi da fà assai travagliu, attrae studienti, etc. Sò una persona pigra è preferite travaglià in multi-core. Sperimentà in sistemi multi-core hè ancu più faciule ch'è fà esperimenti nantu à i sistemi distribuiti, perchè ancu in un sistema distribuitu stupidu ci sò troppu fattori chì deve esse cuntrullati.

Vitaly: Chì fate avà, a ricerca di blockchain? À quale articuli duvete prestu attente prima?

Maurice: Apparsu pocu fà articulu assai bonu, chì aghju scrittu inseme cù u mo studiente, Vikram Saraf, in particulare per una conversazione à Conferenza di Tokenomcs in Parigi trè settimane fà. Questu hè un articulu nantu à i sistemi distribuiti pratichi, in quale prupunemu di fà Ethereu multi-threaded. Attualmente, i cuntratti intelligenti (codice chì corre nantu à a blockchain) sò eseguiti sequentially. Avemu scrittu un articulu prima chì parlava di una manera di utilizà transazzioni speculative per accelerà u prucessu. Avemu pigliatu assai idee da a memoria transazionale di u software è hà dettu chì se fate queste idee parte di a macchina virtuale Etherium, allora tuttu hà da travaglià più veloce. Ma per questu hè necessariu chì ùn ci sò micca cunflitti di dati in i cuntratti. E poi assumemu chì in a vita reale ùn ci hè veramente micca tali cunflitti. Ma ùn aviamu manera di sapè. Allora ci hè accadutu chì avemu avutu quasi un decenniu di storia di cuntratti reale nantu à e nostre mani, cusì avemu scaricatu u blockchain Ethereum è ci dumandemu: chì succede si sti registri storichi sò eseguiti in parallelu? Avemu trovu un aumentu significativu di a velocità. In i primi tempi di l'Ethereu, a velocità aumentava assai, ma oghje tuttu hè un pocu più cumplicatu, perchè ci sò menu cuntratti è a probabilità di cunflitti nantu à e dati chì necessitanu serializazione hè diventata più alta. Ma tuttu questu hè un travagliu sperimentale cù dati storichi veri. A cosa bella di u blockchain hè chì si ricorda di tuttu per sempre, cusì pudemu retrocede in u tempu è studià ciò chì avissi accadutu s'è avemu avutu utilizatu diversi algoritmi per eseguisce u codice. Cumu a ghjente in u passatu hà piaciutu a nostra nova idea? Tali ricerca hè assai più faciule è più piacevule per fà, perchè ci hè una cosa chì monitoreghja tuttu è registra tuttu. Questu hè digià qualcosa più simili à a sociologia chì à u sviluppu di l'algoritmi.

U sviluppu di l'algoritmi hà firmatu è cumu si passa ?

Vitaly : U tempu di l'ultima quistione teorica ! Sente chì u prugressu in strutture di dati cumpetitive hè diminuitu ogni annu? Pensate chì avemu ghjuntu à un plateau in a nostra cunniscenza di e strutture di dati o ci saranu alcune migliorie maiò? Forse ci sò idee intelligenti chì ponu cambià tuttu?

Maurice: Pudemu avè righjuntu un plateau in strutture di dati per l'architettura tradiziunale. Ma e strutture di dati per e novi architetture sò sempre una zona assai promettente. Se vulete creà strutture di dati per, per esempiu, acceleratori di hardware, allora e strutture di dati per una GPU sò assai diffirenti da e strutture di dati per una CPU. Quandu sviluppate strutture di dati per i blockchains, avete bisognu di hash pezzi di dati è poi mette in qualcosa cum'è Merkle tree, per impedisce a falsificazione. Ci hè stata una crescita di l'attività in questa zona ultimamente, cù parechji chì facenu un travagliu assai bonu. Ma pensu chì ciò chì succede hè chì e novi architetture è e novi applicazioni portanu à novi strutture di dati. L'applicazioni legacy è l'architettura tradiziunale - ùn ci pò esse più spaziu per l'esplorazione. Ma s'è vo esce da a strada battuta è guardate oltre i bordi, vi vedete cose pazze chì u mainstream ùn piglia micca seriu - hè quì chì tutte e cose eccitanti succede veramente.

Vitaly: Dunque, per esse un ricercatore assai famosu, aghju avutu à inventà a mo propria architettura :)

Maurice : Pudete « arrubbari » a nova architettura di l'altru - pare assai più faciule !

U travagliu in l'Università Brown

Vitaly: Ci pò dì di più Università Browninduve travaglià? Ùn hè micca cunnisciutu assai di ellu in u cuntestu di a tecnulugia di l'infurmazione. Meno di circa MIT, per esempiu.

Maurice: Brown University hè una di e più antiche università in i Stati Uniti. Pensu chì solu Harvard hè un pocu più vechja. Brown hè parti di u cusì chjamatu Ivy League, chì hè una cullizzioni di ottu università più antiche. Harvard, Brown, Cornell, Yale, Columbia, Dartmouth, Pennsylvania, Princeton. Hè una sorta di una università vechja, chjuca è un pocu aristocratica. L'enfasi principale hè nantu à l'educazione di l'arti liberali. Ùn hè micca pruvatu à esse cum'è MIT, MIT hè assai specializatu è tecnicu. Brown hè un bellu locu per studià a Letteratura Russa o Greca Classica, è di sicuru, Informatica. Si focalizeghja nantu à l'educazione cumpleta. A maiò parte di i nostri studienti vanu à Facebook, Apple, Google - cusì pensu chì i nostri studienti ùn anu micca prublemi per truvà un travagliu in l'industria. Sò andatu à travaglià in Brown perchè avia prima travagliatu in Digital Equipment Corporation in Boston. Questa era una cumpagnia chì hà inventatu assai cose interessanti, ma nigatu l'impurtanza di l'urdinatore persunale. Una cumpagnia cù un destinu difficiule, chì i fundatori eranu una volta ghjovani rivoluzionarii, ùn anu amparatu nunda è ùn si scurdanu di nunda, è cusì si vultonu da i rivoluzionari à i reazionari in una decina d'anni. Li piacia à scherzà chì l'urdinatori persunali appartenenu à u garage - un garage abbandunatu, sicuru. Hè abbastanza ovvi chì sò stati distrutti da cumpagnie più flessibili. Quandu hè diventatu chjaru chì a cumpagnia era in prublemi, aghju chjamatu un amicu mio in Brown, chì hè circa una ora fora di Boston. Ùn vulia micca lascià Boston à quellu tempu perchè ùn ci era parechje aperture in altre università. Questu era un tempu quandu ùn ci era micca tanti impieghi in Informatica quant'è avà. È Brown hà avutu una apertura, ùn aghju micca avutu a mossa di a mo casa, ùn aghju micca avutu a mossa di a mo famiglia, è mi piace veramente vive in Boston ! Hè cusì chì aghju decisu di andà in Brown. Mi piace. I studienti sò meravigliosi, cusì ùn aghju mai ancu pruvatu à andà in un altru locu. Durante u mo sabbaticu, aghju travagliatu in Microsoft per un annu, andò à Technion in Haifa per un annu, è avà seraghju in Algorand. Aghju parechji culleghi in ogni locu è dunque u locu fisicu di e nostre classi ùn hè micca cusì impurtante. Ma u più impurtante hè i studienti, sò i migliori quì. Ùn aghju mai pruvatu à andà in un altru locu perchè sò abbastanza felice quì.

Eppuru, malgradu a fama di Brown in i Stati Uniti, hè sorprendentemente scunnisciutu à l'esteru. Comu pudete vede, aghju fattu tuttu ciò chì hè pussibule per correggerà stu statu di l'affari.

Differenza trà a ricerca in una università è in una corporazione

Vitaly: Va bè, a prossima quistione hè nantu à l'equipaggiu digitale. Eri quì cum'è un investigatore. Chì ghjè a diffarenza trà travaglià in u dipartimentu di R&D di una grande cumpagnia è travaglià in una università? Chì sò i vantaghji è i disadvantages?

Maurice: Per vint'anni aghju travagliatu in Microsoft, hà travagliatu strettamente cù l'impiegati di Sun Microsystems, Oracle, Facebook, è avà Algorand. Basatu annantu à tuttu questu, vogliu dì chì hè pussibule di fà una ricerca di prima classe sia in cumpagnie sia in università. A diferenza impurtante hè chì in una cumpagnia di travaglià cù i culleghi. Se di colpu aghju una idea per un prughjettu chì ùn esiste ancu, devi cunvince i mo pari chì questu hè una bona idea. S'ellu sò in Brown, possu dì à i mo studienti : travagliemu nantu à l'antigravità ! Lasceranu per un altru o piglianu un prughjettu. Iè, aghju bisognu di truvà finanziamentu, aghju bisognu di scrive una dumanda di cuncessione, è cusì. In ogni casu, ci saranu sempre assai studienti, è puderete piglià decisioni unilateralmente. Ma à l'università probabilmente ùn travaglià micca cù persone di u vostru livellu. In u mondu di a ricerca industriale, avete prima à cunvince tutti chì u vostru prughjettu vale a pena piglià. Ùn possu cumandà nunda à nimu. È i dui modi di travaglià sò preziosi, perchè sè vo site à travaglià in qualcosa di veramente pazza è i vostri culleghi sò difficiuli di cunvince, hè più faciule per cunvince i studienti graduate - soprattuttu s'ellu li paga. Sè vo site à travaglià nantu à qualcosa chì esige assai sperienza è sapè prufonda, allora avete bisognu di culleghi chì ponu dì "nè, succede solu chì capiscu in questu spaziu è a vostra idea hè male, ùn funziona micca". Questu hè assai utile in quantu à perde u tempu. Inoltre, se in i laboratorii industriali passate assai tempu à scrive rapporti, allora in una università passate stu tempu à pruvà à truvà soldi. Se vogliu chì i studienti puderanu andà in un locu, aghju da truvà i soldi per questu in un altru locu. E u più impurtante a vostra pusizioni à l'università, u più tempu avete da passà a cullizzioni di soldi. Allora avà sapete ciò chì travaglia - un mendicante prufessiunale! Cum'è unu di quelli monaci chì camminanu cù un piattu d'offerta. In generale, sti dui attività cumplementarii. Hè per quessa ch'e aghju pruvatu à campà è mantene i pedi in terra in i dui mondi.

Vitaly: Sembra chì cunvince una cumpagnia hè più difficiule di cunvince à l'altri scientisti.

Maurice: Più difficiule, è assai di più. Inoltre, in e diverse spazii hè diversu: alcuni facenu una ricerca à grande scala, mentre chì altri si cuncentranu nantu à u so tema. S'è andatu à Microsoft o Facebook è dissi : femu l'anti-gravità, ùn l'apprezzeranu pocu. Ma s'è aghju dettu esattamente a listessa cosa à i mo studienti graduate, più prubabilmente si metteranu à travaglià istantaneamente, ancu s'ellu avà avutu prublemi - dopu tuttu, aghju bisognu di truvà soldi per questu. Ma finu à chì vulete fà qualcosa chì allinea cù i scopi di a cumpagnia, quella cumpagnia pò esse un locu assai bonu per fà a ricerca.

Hydra è SPTDC

Vitaly: I mo dumande sò ghjunti à a fine, allora parlemu un pocu di u prossimu viaghju in Russia.

Maurice : Iè, aghju aspittatu di vultà in San Petruburgu.

Alexey: Sò onoratu di avè voi cun noi questu annu. Hè a vostra seconda volta in San Petruburgu, nò ?

Maurice : Dighjà u terzu !

Alexey: Capiscu, ma SPTDC - sicuramente u sicondu. L'ultima volta chì a scola hè stata chjamata SPTCC, Avemu avà cambiatu una lettera (C à D, Concurrent to Distributed) per enfatizà chì ci sò più zoni ligati specificamente à l'informatica distribuita questu annu. Pudete dì uni pochi di parolle nantu à i vostri rapporti à a Scola è Conferenza Hydra?

Maurice: À a Scola, vogliu parlà di i principii di u blockchain è ciò chì pudete fà cun ellu. Vogliu dimustrà chì i blockchains sò assai simili à a prugrammazione multi-threaded chì avemu familiarizatu, ma cù i so sfumature, è queste differenzi sò impurtanti per capiscenu. Se fate un sbagliu in una applicazione web regulare, hè solu fastidiosu. Se scrivite un codice buggy in una applicazione finanziaria, qualchissia vi arrubbarà definitivamente tutti i vostri soldi. Quessi sò livelli cumplettamente diffirenti di rispunsabilità è cunsequenze. Parlaraghju un pocu di prova di travagliu, di cuntratti intelligenti, di transazzione trà e diverse blockchains.

Ci saranu altri parlanti chì travaglianu accantu à mè chì anu ancu qualcosa à dì nantu à u blockchain, è avemu accunsentutu à coordinà cù l'altri in modu chì e nostre storie s'adattanu bè. Ma per u rapportu di l'ingegneria, vogliu dì à un vastu publicu una spiegazione comprensibile di perchè ùn devi micca crede tuttu ciò chì senti nantu à i blockchains, perchè i blockchains sò un grande campu, cumu si mette in l'altri idee cunnisciute, è perchè duvemu guardà audaci. à u futuru.

Alexey: Inoltre, vogliu dì chì questu ùn serà micca fattu in u formatu di un meetup o un gruppu d'utilizatori, cum'è era dui anni fà. Avemu decisu di fà una piccula cunferenza vicinu à a scola. U mutivu hè chì dopu avè cumunicatu cù Petru Kuznetsov, avemu capitu chì a scola hè limitata à solu centu, forsi 120 persone. À u listessu tempu, ci sò assai ingegneri chì volenu cumunicà cun voi, assistenu à presentazioni, è sò generalmente interessate in u tema. Per quessa, avemu creatu una nova cunferenza chjamatu Hydra. A propositu, alcune idee perchè Hydra?

Maurice : Perchè ci seranu sette parlanti ? E i so capi ponu esse tagliati, è i novi parlanti crescenu in u so locu?

Alexey: Grande idea per cresce i novi parlanti. Ma in fatti, ci hè una storia quì. Ricurdativi di a legenda di Ulisse, induve ellu avia da navigà trà Scilla è Caribde? Hydra hè qualcosa cum'è Charybdis. A storia hè chì una volta aghju parlatu in una cunferenza è parlava di multithreading. Ci era solu duie piste à sta cunferenza. À u principiu di u rapportu, aghju dettu à l'audienza in a sala chì avà anu una scelta trà Scylla è Charybdis. U mo spiritu animale hè Charybdis perchè Charybdis hà assai capi è u mo tema hè multi-threading. Hè cusì chì i nomi di cunferenze appariscenu.

In ogni casu, avemu scappatu di dumande è tempu. Allora, grazie, amichi, per una bella intervista, è à vede à SPTDC School è Hydra 2019!

Pudete cuntinuà a vostra conversazione cù Maurice à a cunferenza Hydra 2019, chì si terrà l'11-12 di lugliu 2019 in San Petruburgu. Ellu vene cun un rapportu "Blockchains è u futuru di l'informatica distribuita". I biglietti ponu esse acquistati nant'à u situ ufficiali.

Source: www.habr.com

Add a comment