- cum'è prufissore di Scienze Informatiche à l'Università di Rochester, è in a so Università di Wisconsin-Madison era decanu per cinque anni. Studia è insegna à i studienti nantu à a prugrammazione parallela è distribuita è u disignu di lingua.
U mondu sapi Michael da u libru di testu , chì di u travagliu hà ricevutu u Premiu Dijkstra cum'è unu di i più famosi in u campu di l'informatica distribuita. Pudete ancu cunnosce ellu cum'è l'autore di quellu algoritmu .
Inseme cù Doug Lee, hà sviluppatu l'algoritmi senza bloccu è e file sincrone chì alimentanu e librerie Java. Implementazione in JavaSE 6 hà migliuratu u rendiment di 10 volte ThreadPoolExecutor.
Contenuti:
- Prima carriera, Università di Rochester. Prughjettu Charlotte, lingua Lynx;
- Interfaccia coerente scalabile IEEE, bloccu MCS;
- Survival in un mondu sempre cambiante;
- I studienti diventanu più stupidi? Tendenze glubale, internaziunale;
- travagliu efficace cù i studienti;
- Cumu seguità cù a preparazione di novi corsi è libri;
- Ligami trà l'affari è l'accademia;
- Implementazione pratica di idee. MCS, MS, CLH, JSR 166, travagliendu cù Doug Lee è più;
- memoria transazionale;
- Novi architetture. A vittoria di a memoria transazionale hè vicinu;
- Memoria non volatile, Optane DIMM, dispositivi ultra-rapidi;
- A prossima grande tendenza. Strutture di dati duali. Hydra.
L'intervista hè fatta da:
Vitali Aksenov - attualmente un postdoc in IST Austria è un membru di u Dipartimentu di Tecnulugia Informatica in ITMO University. 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.
Prima carriera, Università di Rochester. Prughjettu Charlotte, lingua Lynx.
Алексей: Per principià, aghju vulsutu dì à voi chì in Russia tutti amamu veramente Computer Science, Data Science è algoritmi. Hè francamente obscenu. Avemu lettu tuttu . Dunque, a prossima cunferenza, a scola è sta intervista stessu deve esse assai populari. Avemu ricevutu parechje dumande per questa entrevista da studienti, programatori è membri di a cumunità, cusì simu assai grati per questa opportunità. L'informatica riceve u listessu amore in i Stati Uniti?
Michael: U nostru campu hè cusì diversu, hà tante direzzione, è affetta a sucetà in tanti modi diffirenti chì mi hè difficiule di dà una risposta definitiva. Ma u fattu hè chì hà purtatu cambiamenti tremendi in l'affari, l'industria, l'arti è a sucetà in generale in l'ultimi 30 anni.
Vitali: Cuminciamu cù qualcosa distanti. In parechje università ci hè qualcosa cum'è specializazione in una zona particulare. Per l'Università Carnegie Mellon, questu hè l'informatica parallela, per u MIT hè criptografia, robots è multithreading. Ci hè una tale specializazione à l'Università di Rochester?
Michael: Per esse onestu, diceraghju chì CMU è MIT sò spicializati in tutti i duminii. U nostru dipartimentu hà sempre pagatu a più attenzione à l'intelligenza artificiale. A mità di e persone chì travaglianu per noi sò impegnati in l'IA o l'interazzione umanu-urdinatore - sta parte hè più altu ch'è in altri dipartimenti, è hè sempre stata cusì. Ma quandu eru à l'università, ùn aghju micca avutu corsi in AI, è ùn aghju mai travagliatu in questu campu. Allora u mo dipartimentu hè specializatu in un prublema chì ùn aghju nunda à fà. A cunsulazione hè chì u sicondu prublema più impurtante per u nostru dipartimentu hè a prugrammazione parallela è multi-threaded, vale à dì a mo specializazione.
Vitali: Avete cuminciatu à travaglià in l'informatica quandu u campu di a prugrammazione multi-threaded era appena emergente. A lista di e vostre publicazioni mostra chì i vostri primi travaglii anu trattatu una varietà abbastanza larga di tematiche: gestione di memoria in sistemi multi-threaded, sistemi di fugliale distribuiti, sistemi operativi. Perchè una tale versatilità? Avete pruvatu à truvà u vostru postu in a cumunità di ricerca ?
Michael: Cum'è un studiente, aghju participatu à l'Università di Wisconsin, induve unu di i primi sistemi operativi distribuiti hè statu sviluppatu. Quì aghju travagliatu cù Rafael Finkel () è Marvin Solomon (). A mo dissertazione hè stata dedicata à u sviluppu di una lingua per u software di sistema per i sistemi distribuiti - avà tutti l'anu scurdatu, è ringraziu à Diu. Aghju creatu u linguaghju di prugrammazione Lynx, chì era destinatu à fà più faciule per creà servitori per un sistema operatore distribuitu pocu accoppiatu. Siccomu à quellu tempu era principarmenti implicatu in i sistemi operativi, aghju assumatu chì a mo carriera seria principalmente cunnessa cun elli. Ma Rochester era una università assai chjuca, è per quessa, i diversi gruppi anu interazzione assai strettamente cù l'altri. Ùn ci era micca una decina di altri sistemi operativi per mè per parlà, cusì tutti i mo cuntatti eranu cù e persone chì travagliavanu in spazii completamente differenti. Aghju veramente piaciutu, esse un all-rounder hè un grande vantaghju per mè. Se parlemu specificamente di strutture di dati multi-threaded è algoritmi di sincronizazione, allora aghju cuminciatu à travaglià nantu à elli cumpletamente per accidente.
Interfaccia coerente scalabile IEEE, blocco MCS.
Vitali: Ci pò dì un pocu di più nantu à questu ?
Michael: Questa hè una storia divertente chì ùn mi stanca mai di cuntà à tutti. Hè accadutu in una cunferenza in Boston - questu era à a fini di l'anni 80 o à l'iniziu di l'anni 90. John Mellor-Crummey (), un graduatu di a nostra facultà. L'aghju cunnisciutu, ma ùn aviamu micca realizatu una ricerca cumuna prima. Maria Vernon () da Wisconsin hà datu una discussione nantu à un sistema multiprocessore chì anu sviluppatu in Wisconsin: . Stu Multicube hà avutu un mecanismu di sincronizazione à u nivellu di hardware chjamatu Q on Sync Bit, è più tardi hè statu rinominatu Q on Lock Bit perchè sonava cum'è u furmagliu Colby, chì era un pun. Sè site interessatu à i meccanismi multithreading, probabilmente sapete chì Colby hè diventatu u mutore di sincronizazione per u standard IEEE Scalable Coherent Interface. Il s'agissait d'un mécanisme de blocage qui créait des pointeurs d'un cache à l'autre à l'échelle du matériel, de sorte que chaque détenteur de blocage savait à qui était tourné. Quandu Ghjuvanni è aghju intesu parlà di questu, avemu guardatu l'altru è dicemu: perchè fà questu à u livellu di hardware? Ùn si pò micca fà a listessa cosa aduprendu compare-and-swap? Avemu pigliatu unu di i quaderni chjinatu in l'aula è scribbled nantu à ellu , mentri Maria cuntinuò u so rapportu. In seguitu, l'avemu implementatu, spirimintatu, l'idea hè stata riescita, è avemu publicatu l'articulu. À quellu tempu, per mè, stu tema mi pareva solu una distrazione divertente, dopu avè pensatu di vultà à i sistemi operativi. Ma dopu un altru prublema in a listessa linea hè ghjuntu, è eventualmente a sincronizazione, multithreading è strutture di dati sò diventate a mo specialità. Comu pudete vede, tuttu hè accadutu per accidente.
Vitali: Sò cunnisciuta cù u bloccu MCS per un bellu pezzu, ma finu à avà ùn sapia micca chì era u vostru travagliu, è ùn hà micca capitu chì era un acronimu per i vostri cognomi.
Cumu sopravvive in un mondu sempre cambiante?
Алексей: Aghju una quistione nantu à un tema cunnessu. 30 o 40 anni fà ci era più libertà in e diverse spicialità. Sè vo vulete principià una carriera in sistemi multithreading o distribuiti, site benvenutu, se vulete entre in sistemi operativi, senza prublema. In ogni zona ci era parechje dumande aperte è pochi esperti. Specializzazioni strette sò avà emerse: ùn sò micca solu esperti in sistemi operativi in generale, ci sò specialisti in sistemi individuali. Hè u listessu cù sistemi multithreading è distribuiti. Ma u prublema hè chì a nostra vita ùn hè micca interminabile chì ognunu pò dedicà solu uni pochi decennii à a ricerca. Cumu sopravvive in stu novu mondu?
Michael: Ùn simu micca spiciali in questu sensu a listessa cosa hè accaduta una volta in altri spazii. Eru furtunatu chì aghju cuminciatu à travaglià in Informatica quandu u campu era in i so anni "adulescenti". Certi fundamenti eranu digià stati posti, ma tuttu era sempre assai immature. Questa opportunità ùn vene micca spessu. L'ingegneria elettrica hè stata per un tempu assai longu, a fisica ancu più longu, a matematica quasi da u principiu di u tempu. Ma questu ùn significa micca chì nimu ùn faci più scuperte interessanti in matematica. Ci sò sempre assai prublemi aperti, ma à u listessu tempu, ci vole à amparà di più. Avete ragiò à nutà chì avà ci sò assai più spicializazioni chè c'era prima, ma questu significa solu chì ci truvamu in a listessa situazione cum'è a maiò parte di l'altri spazii di l'attività umana.
Алексей: Sò interessatu à l'aspettu più praticu di u prublema quì. Aghju una storia di matematica, è durante i mo studii aghju spessu assistitu à cunferenze è travagliatu nantu à diversi temi scientifichi. Aghju scupertu chì nimu in l'audienza hà capitu i mo rapporti, è in a listessa manera, i rapporti di l'altri populi eranu capisci solu per elli stessi. Questu ùn hè micca u casu in temi d'altu livellu, ma quandu avete principiatu à sfondà in qualcosa, l'audienza ùn pò più mantene cun voi. Cumu trattà cun questu?
Michael: Ùn sempre successu. Recentemente aghju preparatu un rapportu in quale aghju andatu troppu in i dettagli tecnichi. Quandu u discorsu avanzava, hè diventatu chjaru chì a maiò parte di l'audienza ùn m'hà micca capitu, cusì aghju avutu à adattà à a situazione nantu à a mosca. I diapositive ùn pudianu esse cambiatu, perchè ùn hè micca fattu assai bè - cusì, in generale, pruvate micca di utilizà slides. In generale, u mo cunsigliu hè di cunsiderà u vostru audience. Avete bisognu di sapè à quale parlate, quale hè u so livellu di cunniscenza è ciò chì anu bisognu à sente per apprezzà u vostru travagliu.
Vitali: Puderesti dà un suggerimentu di ciò chì sta cunferenza hè stata?
Michael: Per esse onestu, preferimu micca stenderà stu tema per lascià l'anonimati di e persone in quistione. U puntu hè chì spessu avemu troppu prufonda in l'intricacies di u prublema chì avemu travagliatu, cusì diventa difficiule per noi di spiegà à l'iniziu di a discussione perchè u prublema hè interessante è impurtante è cumu si tratta di prublemi chì u u publicu sapi digià. Sicondu i mo osservazioni, i studienti anu u tempu più duru à amparà sta capacità. È questu era ancu u puntu debule di u mo rapportu recente. Un rapportu strutturatu currettamente deve, da u principiu, truvà u cuntattu cù l'audienza, spiegà à elli ciò chì hè esattamente u prublema è cumu si tratta di temi digià cunnisciuti. Quantu tecnica hè sta introduzione dipende da l'audienza. S'ellu hè cumplitamenti variu, allura u rapportu pò esse multi-stadi. L'intruduzioni deve esse accessibile per tutti, è à a fine u pezzu ùn pò micca esse capace di mantene cun voi, ma a ghjente relativamente familiarizata cù u vostru campu puderà capisce.
I studienti diventanu più stupidi? Tendenze globale, internaziunale.
Алексей: Avete osservatu i studienti per parechji decennii. I studienti diventanu più stupidi o più intelligenti da decenniu à decenniu o annu à annu? In Russia, i prufessori si lamentanu constantemente chì i studienti diventanu più stupidi ogni annu, è ùn hè micca veramente chjaru ciò chì deve fà.
Michael: Pudete veramente sente assai negatività da noi vechji. Inconsciente, avemu a tendenza à aspittà chì i studienti assorbanu tutti i 30 anni di sperienza chì avemu digià. S'è aghju una cunniscenza più prufonda ch'e aghju fattu in u 1985, perchè i studienti ùn l'anu micca? Probabilmente perchè anu 20 anni, chì ne pensate ? Pensu chì i cambiamenti più significativi in l'ultimi decennii sò stati in a cumpusizioni demugrafica: avemu avà significativamente più studienti internaziunali, cù l'eccezzioni di i Canadiani. Ci era un saccu di Canadiani perchè simu assai vicinu à u cunfini canadianu è i studienti da quì ponu viaghjà in casa in u weekend. Ma avà ci sò parechje università boni in Canada, è i Canadiani preferiscenu studià quì significativamente menu di elli venenu in i Stati Uniti.
Алексей: Pensate chì questu hè una tendenza lucale o glubale ?
Michael: Ùn mi ricordu esattamente quale, ma qualchissia hà dettu chì u mondu hè pianu. U nostru campu hè diventatu assai più internaziunale. Prima, sò stati tenuti solu in i Stati Uniti, dopu decisu di mantene una volta ogni 4 anni in altri paesi, è avà sò tenuti in tuttu u mondu. Questi cambiamenti anu affettatu ancu più , cum'è hè sempre stata una urganizazione più internaziunale chè ACM. È ci sò sedie di prugramma da a Cina, l'India, a Russia, a Germania è parechji altri paesi, perchè ci hè assai in ogni locu avà.
Алексей: Ma, prubabilmente, ci sò qualchi aspetti negativi di tali internaziunale ?
Michael: Diciaraghju chì tutti l'aspetti negativi ùn anu micca in a tecnulugia, ma à a pulitica. Una volta, u prublema principali era u fattu chì i Stati Uniti arrubbavanu e persone più intelligenti è talentu di i paesi di u mondu. È avà u prublema principali sò i ghjochi pulitichi trà i diversi paesi intornu à visa è immigrazione.
Алексей: Hè, barriere è cose cusì. Hè chjaru.
Владимир: In modu persunale, sò interessatu à quale approcciu pigliate quandu insignà un novu sughjettu à i studienti. Ci sò diverse opzioni: pudete pruvà prima di tuttu per inspirà à pruvà qualcosa di novu, o pudete pagà più attente à i dettagli di cumu funziona una certa tecnulugia. Chì preferite ?
U travagliu efficace cù i studienti
Алексей: È cumu truvà l'equilibriu maledetta trà u primu è u sicondu ?
Michael: U prublema hè chì e classi ùn vanu micca sempre cumu mi piacerebbe. Di solitu dà à i studienti materiale di lettura in anticipu per ch'elli sfondanu, capiscenu à u megliu di e so capacità, è furmulà dumande nantu à quelli parti chì ùn puderanu micca capiscenu. Allora in a classe pudete fucalizza nantu à i mumenti più difficiuli è scopre inseme. Hè cusì chì mi piace più à insignà e classi. Ma datu a carica chì avà si trova nantu à i studienti, ùn sò micca sempre capaci di assicurà chì si preparanu in anticipu. In u risultatu, avete da dedicà assai più tempu à a retazione generale di u materiale di ciò chì vulete. Malgradu questu, pruvate à mantene e nostre classi interattive. Altrimenti, hè più faciule per registrà un video una volta chì i studienti ponu fighjà in casa. U puntu di e classi in diretta hè l'interazzione umana. In a classa, preferite usà u gesso è una lavagna piuttostu cà diapositive, salvu in certi casi quandu un diagramma hè troppu cumplessu per rapprisintà nantu à a tavula. Grazie à questu, ùn aghju micca bisognu à un pianu di lezioni rigidu. Siccomu ùn ci hè micca un ordine strettu in quale aghju datu u materiale, questu mi permette di adattà à l'audienza secondu e dumande chì riceve. In generale, pruvate à fà e classi interattivu quant'è pussibule, perchè u materiale ch'e aghju prisentatu dipende da e dumande chì mi sò dumandatu.
Владимир: Hè bellu. In a mo spirimintà, hè abbastanza difficiuli di ottene l'ascultori per dumandà dumande. Ancu s'è vo dumandate in anticipu per dumandà qualsiasi dumande, ùn importa micca quantu stupidu o intelligente, sò sempre silenziu. Cumu trattà cun questu?
Michael: Riderete, ma s’è tù stai in silenziu abbastanza longu, prima o poi tutti s’incomoderanu è qualchissia vi farà una dumanda. O pudete dumandà una quistione tecnica simplice cù una risposta sì o micca per stabilisce se a ghjente capisce ciò chì hè statu dettu. Per esempiu, ci hè una razza di dati in l'esempiu sopra? Quale pensa cusì ? Quale pensa micca? Quale hè chì ùn capisce nunda, perchè in tuttu solu a mità di e mani sò cullate ?
Vitali: È s'è vo avete rispostu sbagliatu, vi sò cacciati fora di a classe :)
Michael: Se ùn avete micca rispostu nunda, allora duvete dumandà una dumanda. Aghju bisognu di capisce ciò chì esattamente u studiente hà bisognu di sapè per risponde à a quistione ch'e aghju dumandatu. Aghju bisognu chì mi aiutanu à aiutà. Sò prontu à adattà à elli per ch'elli capiscenu u prublema. Ma s'ellu ùn sò micca ciò chì passa in u so capu, ùn possu micca fà. È s'ellu ùn dà micca à i studienti a pace per un tempu abbastanza longu, qualchì volta à a fine facenu e dumande ghjustu, vale à dì, quelli chì mi permettenu di vede esattamente ciò chì succede in i capi di i studienti.
Алексей: Sti dumande portanu qualchì volta à idee chì tù stessu ùn avia micca pensatu prima ? Sò inaspettati ? Permettenu di vede un prublema in una nova luce?
Michael: Ci sò dumande chì apre una nova manera di prisentà materiale. Ci sò spessu dumande chì portanu à prublemi interessanti chì ùn aghju micca pensatu di parlà. I studienti spessu mi dicenu chì aghju una tendenza à andà fora di u tema quandu questu succede. E, sicondu elli, assai spessu questu hè a parte più interessante di a lezziò. Moltu raramente, solu uni pochi di volte, i studienti anu dumandatu dumande chì incitavanu una nova direzzione in a ricerca è si sò sviluppati in un articulu. Questu succede assai più spessu in conversazioni cù i studienti invece di durante e classi, ma in ocasioni hè accadutu durante e classi.
Алексей: Allora i studienti vi facianu dumande nantu à a basa di quale era tandu pussibule di publicà un articulu ?
Michael: Iè.
Vitali: Quantu spessu avete ste conversazioni cù i studienti ? Quandu volenu amparà più di ciò chì era cupartu durante a lezziò?
Michael: Cù i mo studienti graduate - tuttu u tempu. Aghju circa 5 o 6 di elli, è discutemu qualcosa cun elli tuttu u tempu. E conversazioni di stu tipu cù i studienti chì frequentanu i mo classi ùn sò micca assai cumuni. Ancu s'ellu vogliu chì questu hè accadutu più spessu. Sospettate ch'elli anu solu paura di vene à a facultà durante l'ora di l'uffiziu. Ogni semestru, certi studienti riescenu à superà sta barriera psicologica, è hè sempre assai interessante di parlà cun elli dopu a classe. True, se tutti i studienti eranu cum'è valenti, ùn aghju micca abbastanza tempu. Allora forsi tuttu funziona cumu si deve.
Vitali: Cumu riesce à truvà tempu per cumunicà cù i studienti ? Per ciò ch'e so, in i Stati Uniti i prufessori anu assai travagliu - dumandà à cuncessione è simili.
Michael: Onestamente, travaglià cù i studienti hè l'aspettu di u mo travagliu chì mi piace più. Allora aghju abbastanza motivazione per questu. A maiò parte di u tempu chì passanu in u mo uffiziu hè spesu in riunioni di ogni tipu. Avà hè veranu, cusì u mo prugramma hè menu occupatu, ma durante l'annu scolasticu, ogni ghjornu da 9 à 17 aghju tuttu imballatu. U travagliu di ricerca, recensioni, cuncessioni - per tuttu questu, ci sò solu serate è weekend.
Cumu seguità a preparazione di novi corsi è libri.
Алексей: Attualmente cuntinueghja à insignà qualcunu corsu chì avete dapoi assai tempu ? Qualcosa cum'è una introduzione à l'informatica.
Michael: A prima cosa chì vene in mente quì hè un corsu in linguaggi di prugrammazione.
Алексей: Quantu hè differente a versione d'oghje di stu cursu da ciò chì era 10, 20, 30 anni fà ? Forsi ciò chì hè più interessante quì ùn sò micca i dettagli di un cursu particulari, ma i tendenzi generali.
Michael: U mo cursu nantu à e lingue di prugrammazione era un pocu inusual à u mumentu chì l'aghju creatu. Aghju cuminciatu à leghje à a fini di l'anni 1980, rimpiazzendu u mo cullegu, Doug Baldwin (). U tema di u corsu era solu tangentially ligata à a mo specialità, ma quandu ellu partì, eru u megliu candidatu per insignà u corsu. Ùn mi piaceva nimu di i libri di testu chì esistevanu à l’epica, cusì aghju finitu à scrive u libru di testu di stu corsu stessu. (Nota di l'editore: si parla di u libru) Avà hè adupratu in più di 200 università in u mondu. U mo approcciu hè inusual in quantu mischjà deliberatamente i prublemi di u disignu è l'implementazione di a lingua, è presta una grande attenzione à l'interazzione trà questi aspetti in tutti i spazii pussibuli. L'approcciu di basa ùn hè micca cambiatu, cum'è parechji cuncetti basi: astrazioni, spazii di nomi, modularità, tipi. Ma l'inseme di lingue cù quale sti cuncetti sò dimustrati hè cambiatu sanu. Quandu u corsu hè statu creatu prima, ci era parechje esempi in Pascal, ma oghje parechji di i mo studienti ùn anu mancu intesu parlà di sta lingua. Ma cunnosci Swift, Go, Rust, cusì aghju da parlà di e lingue chì sò in usu oghje. Inoltre, i studienti sò avà versatu bè in lingue di scrittura, ma quandu aghju cuminciatu à insignà stu cursu, era tutta di lingue compilate. Avà avemu bisognu di assai materiale nantu à Python, Ruby è ancu Perl, perchè questu hè u codice chì hè scrittu in questi ghjorni, è ci sò assai cose interessanti chì succedenu in queste lingue, ancu in u campu di u disignu di lingua.
Vitali: Allora a mo prossima dumanda serà ligata à a precedente. Cumu mantene in questa zona? Sospettate chì l'aghjurnamentu di un cursu cum'è questu richiede assai travagliu - avete bisognu di capiscenu e lingue novi, capisce l'idee principali. Cumu fà questu?
Michael: Ùn possu micca vantà chì aghju sempre successu à 100%. Ma a maiò parte di u tempu fate solu ciò chì tutti l'altri facenu - leghje Internet. Se vogliu capisce Rust, aghju Google, andate à a pagina di Mozilla è leghje u manuale publicatu quì. Questu hè una parte di e cose chì succede in u sviluppu cummerciale. Se parlemu di scienza, allora avete bisognu di seguità i rapporti à e cunferenze principali.
Ligame trà l'affari è l'accademia
Vitali: Parlemu di a cunnessione trà l'affari è a ricerca scientifica. In a vostra lista d'opere, aghju trovu parechji articuli nantu à a coherenza di cache. Aghju capitu chì l'algoritmi di cunsistenza di cache eranu inestabile à u mumentu chì anu publicatu? O micca abbastanza diffusa. Quantu eranu cumuni e vostre idee in pratica?
Michael: Ùn sò esattamente sicuru di quali publicazioni parli. Aghju fattu un pocu di travagliu cù i mo studienti Bill Bolosky () è Leonidas Kontotanassis () à l'iniziu di l'anni 1990 nantu à a gestione di memoria di e macchine Neumann. À quellu tempu, l'affari ùn anu micca capitu cumu fà bè un sistema multiprocessore: vale a pena creà supportu per accede à a memoria remota à u livellu di hardware, vale a pena di fà a memoria distribuita, hè pussibule di carricà a cache da memoria remota, o hè necessariu di spustà e pagine in u sistema operatore? Bill è Leonidas travagliavanu tramindui in questa zona è anu esploratu avvicinamenti senza caricamentu di cache remoto. Questu ùn era micca direttamente ligatu à a coherenza di a cache, ma era sempre un travagliu nantu à a gestione di a memoria NUMA, è in seguitu l'approcciu mudernu à u piazzamentu di e pagine in i sistemi operativi muderni cresce da questu. In generale, Bill è Leonidas anu fattu un travagliu impurtante, ancu s'ellu ùn era micca u più influente in questu spaziu - ci era parechje altre persone chì travagliavanu nantu à a listessa cosa à u mumentu. In seguitu, aghju travagliatu nantu à un tema ligatu à a coherenza di cache in u cuntestu di a memoria transazionale di hardware. U gruppu cù quale aghju travagliatu annantu à questu prublema hà finitu per riceve parechje patenti. Ci sò idee abbastanza interessanti daretu à elli, ma ùn pensu micca chì finiscinu per esse implementati in pratica. Un modu o un altru, hè difficiule per mè di ghjudicà a so prufittuità.
Алексей: In questu sensu, una quistione più persunale : quantu hè impurtante per voi chì e vostre idee sò messe in pratica ? O ùn pensate micca ?
Michael: Mi piace à dumandà sta quistione in entrevista cù altre persone, candidati o candidati chì vulianu unisce à a facultà. Ùn pensu micca chì ci hè una risposta curretta à sta quistione. E persone chì facenu cose cool ponu avè motivazioni assai diverse. Sò attrattu da i prublemi perchè personalmente li trovu interessanti, micca per i so benefici pratichi. Ma d'altra parte, quandu qualchì cosa interessante trova sempre applicazione, mi piace assai. Allora ùn hè micca faciule quì. Ma à u principiu di u mo travagliu, ùn sò sempre guidatu micca da l'idea di un usu finale in u mondu, ma da l'armunia di l'idea è u desideriu di scopra è vede ciò chì vene da ellu. Se à a fine dà risultati pratichi, grande.
Алексей: Per via di a vostra educazione è di a vostra sperienza, site megliu cà a maiò parte di ghjudicà u valore di l'idee di l'altri. Pudete paragunà elli è stabilisce quale funziona megliu cù quale. Sò sicuru chì avete una opinione nantu à e cose chì sò attualmente aduprate in pratica da i grandi fabricatori cum'è Intel. Da u vostru puntu di vista, quantu currettu hè u cursu chì sti cumpagnie piglianu ?
Michael: A pratica gira sempre intornu à ciò chì pò esse successu cummerciale, vale à dì, creà prufitti, è megliu dumandà à qualchissia altru. U mo travagliu in più risultati in publicazioni, è in u campu di i sistemi operativi sò valutati in basa di indicatori di rendiment: velocità, cunsumu d'energia, dimensione di codice. Ma mi pare sempre chì sti risultati empirichi sò aghjuntu à l'articuli solu per ch'elli ponu esse publicati, è i mutivi veri di a ghjente per u travagliu sò estetichi. I ricercatori valutanu e soluzioni da una perspettiva artistica, si preoccupanu di quantu eleganti l'idee sò, è pruvate à creà qualcosa di megliu cà l'approcciu esistenti. I ricercatori sò guidati da motivi persunali, subjectivi, estetici. Ma ùn pudete micca scrive nantu à questu in l'articulu stessu, queste cose ùn sò micca argumenti per u cumitatu di u prugramma. Fortunatamente, e suluzioni eleganti sò spessu ancu veloci è boni. Una decina di i mo culleghi è aghju discututu stu tema circa 15 anni fà è finisci per scrive un articulu annantu à questu. Pensu chì pudete ancu truvà avà, hè chjamatu o qualcosa cusì, hà più di una decina d'autori. Questu hè l'unicu articulu in quale sò l'autore inseme , Allora si fate una ricerca per u so nome in a mo lista di publicazioni, truverete ciò chì avete bisognu. Parla di valutà a ricerca di sistemi è quantu hè impurtante l'eleganza.
Алексей: Allora ci hè una diffarenza trà u standard di ciò chì hè cunsideratu bè in a scienza è in l'affari. A scienza valuta u rendiment, u cunsumu di energia, TDP, facilità di implementazione, è assai di più. Avete l'uppurtunità di fà stu tipu di ricerca in l'università? Avete un laboratoriu cù diverse macchine è diverse architetture in quale puderebbe fà esperimenti?
Michael: Iè, u nostru dipartimentu hà assai diversi machini interessanti. A maiò spessu sò chjuchi, avemu un picculu cluster è parechji sistemi multiprocessori cù diversi acceleratori. Inoltre, u campusu hà un enorme centru di calculu chì serve i scientisti di parechje decine di discipline diverse. Hà circa mille nodi è vinti mila core, tutti in Linux. Se u bisognu, pudete sempre cumprà qualchì AWS. Dunque ùn avemu micca restrizioni significative cù hardware.
Алексей: Com’era trent’anni fà ? Ci sò stati prublemi allora ?
Michael: Era un pocu sfarente allora. In a mità à a fine di l'anni 1980, a scienza hè stata cunsiderata cum'è corta di risorse informatiche. Per rimedià sta situazione, a National Science Foundation ) hà creatu un prugramma di ricerca spirimintali coordinata (Coordinated Experimental Research, CER). A missione di u prugramma era di furnisce l'infrastruttura informatica per i dipartimenti di l'informatica, è hà ottenutu un cambiamentu significativu. Cù i soldi chì hà furnitu, noi à l'Università di Rochester compru una farfalla BBN di 1984 nodi in 128, questu era un annu prima ch'e aghju arrivatu. À quellu tempu era u sistema multiprocessore più grande di u mondu cù memoria sparta. Avia 128 processori, ognunu nantu à una scheda madre separata, è occupava quattru rack. Ogni processore avia un megabyte di memoria, 128 megabytes di RAM era una quantità inimaginable à quellu tempu. In questa macchina avemu implementatu u bloccu MCS per a prima volta.
Алексей: Allora, se vi capisce bè, allora u prublema cù u hardware hè stata risolta?
Michael: In generale, sì. Ci hè uni pochi caveats: prima, sè vo fate l'architettura di l'informatica à u livellu di u chip, hè difficiule di fà in un ambiente accademicu perchè ci sò strumenti assai megliu per fà in l'affari. Sè avete bisognu di qualcosa più chjuca di 10 nanometri, avete da urdinà da qualcunu altru. In questu spaziu hè assai più faciule per esse un investigatore à Intel. Sè vo avete travagliatu nantu à cumunicazioni otticu nantu à chips o in memoria di u statu solidu, truverete tecnulugii in l'affari chì ùn sò micca ancu in a scienza, cusì avete da creà alleanze. Per esempiu, Stephen Swanson () criatu per i novi tecnulugia di memoria. Sta forma ùn hè micca sempre travagliatu, ma in certi casi pò esse abbastanza successu. Inoltre, in a scienza, u sviluppu di i sistemi di computing più putenti hè più difficiule. I più grandi prughjetti di supercomputer attualmente in i Stati Uniti, u Giappone è a Cina sò tutti cuncentrati in l'affari.
Implementazione pratica di idee. MCS, MS, CLH, JSR 166, travagliendu cù Doug Lee è più.
Vitali: Avete digià parlatu di cumu avete cuminciatu à travaglià in l'algoritmi di sincronizazione. Avete dui articuli assai famosi circa и , chì in un sensu sò stati implementati in Java. (Nota di l'editore: tutte e publicazioni ponu esse viste ). Quì stu bloccu hè statu implementatu cù qualchi cambiamenti è si n'andò , è a fila hè stata implementata cum'è prevista. Ma parechji anni passanu trà a publicazione di i vostri articuli è a so applicazione pratica.
Алексей: Pare circa 10 anni in u casu di a fila.
Michael: Prima di sti funziunalità apparsu in a biblioteca standard Java?
Vitali: Iè. Chì avete fattu per fà questu succede? O ùn anu fattu nunda ?
Michael: Vi possu dì cumu MS Queue hè ghjuntu in Java 5. Uni pochi anni prima di esce, aghju travagliatu cù u gruppu di Mark Moyers in Sun Microsystems in u so labburatoriu vicinu à Boston. Hà urganizatu un attellu per e persone chì sapia chì travagliavanu nantu à prublemi interessanti in multithreading perchè vulia truvà temi chì puderia vende à a so cumpagnia. Hè quì chì aghju scontru prima Doug Lea. Doug è eiu è circa 25 altre persone di Sun eranu inseme discutendu a presentazione di Doug , chì dopu diventò java.util.concurrent. In u caminu, Doug hà dettu chì vulete usà a cola MS, ma per questu hà bisognu di un contatore per u numeru di elementi in a fila per l'interfaccia. Questu hè, questu duveria esse fattu da un metudu separatu, atomicu, precisu è veloce. Aghju suggeritu solu di aghjunghje numeri di serie à i nodi, pigliendu u numeru di u primu nodu è l'ultimu è sottrattendu unu da l'altru. Doug si graffiò a testa, disse "perchè micca", è hà finitu per fà cusì. Avemu discututu di implementà stu approcciu in a biblioteca, ma Doug hà fattu a maiò parte di u travagliu stessu. In u risultatu, hà sappiutu stabilisce un eccellente supportu multithreading in Java.
Алексей: Allora, se capiscu bè, u metudu .size() duveria esse parti di l'interfaccia standard di fila, è duverebbe avè una cumplessità algoritmica di O (1) ?
Michael: Iè, è in più di questu, un contatore separatu hè necessariu.
Алексей: Perchè se chjamate u metudu .size() in Java, u risultatu hè previstu per esse dispunibule immediatamente è micca basatu nantu à a dimensione attuale di a cullezzione. Vecu, grazie.
Michael: Uni pochi anni dopu stava travagliatu nantu à strutture di dati duali cù u mo studiente Bill Scherer - in fatti, questu hè ciò chì parleraghju. . Doug hè ghjuntu à noi è hà dettu chì puderia usà in u framework Java Executor. Inseme cù Bill, anu creatu duie implementazioni, i cosiddetti fili ghjusti è inghjusti. Aghju cunsigliatu per questu prughjettu, ancu s'ellu ùn aghju micca participatu à scrive u codice propiu. In u risultatu, a vitezza di l'esecutori hè aumentata significativamente.
Владимир: Avete scontru implementazioni sbagliate di i vostri algoritmi o dumande per aghjunghje novi funziunalità? In generale, a pratica duveria coincide cù a teoria, ma abbastanza spessu sò diffirenti. Suppone chì avete scrittu un algoritmu, è nantu à a carta funziona, ma e persone chì sò implicati in l'implementazione cuminciaru à dumandà più funziunalità o qualchì tipu di tweaking di l'algoritmu. Avete mai avutu tali situazioni?
Michael: L'unicu esempiu in quale qualcunu ghjunse à mè è dumandò "cumu implementà" era a quistione di Doug, chì aghju digià parlatu. Ma ci sò stati uni pochi di casi induve cambiamenti interessanti sò stati fatti per adattà à i bisogni pratichi. Per esempiu, a squadra K42 à IBM hà cunvertitu u serratura MCS è l'hà fattu una interfaccia standard, per quessa, ùn ci era micca bisognu di passà u node di fila avanti è avanti à l'acquistu è a rutina di liberazione. Grazie à questa interfaccia standard, una idea chì era bella in teoria hà cuminciatu à travaglià in pratica. Hè surprisante chì ùn anu mai publicatu un articulu nantu à questu, è ancu s'ellu anu ricevutu una patente, dopu l'abbandunonu. L'idea era maravigliosa, è pruvate à parlà di questu sempre chì hè pussibule.
Ci sò stati altri casi induve a ghjente hà fattu migliure à l'algoritmi chì aghju publicatu. Per esempiu, a fila MS hà un mecanismu di stallazione di dui passi, chì significava chì ci era dui CAS in u percorsu criticu di a fila. Nant'à e vitture più vechje, i CAS eranu abbastanza caru. Intel è altri fabricatori l'hanu ottimizatu abbastanza bè recentemente, ma una volta sò stati struzzioni di 30 cicli, cusì avè più di unu in u percorsu criticu ùn era micca desideratu. In u risultatu, hè stata sviluppata una fila distinta chì era simile à a fila MS, ma chì avia solu una operazione atomica nantu à a strada critica. Questu hè stata ottenuta per u fattu chì durante un certu periodu di tempu l'operazione puderia piglià O(n) tempu, invece di O (1). Era improbabile, ma pussibule. Questu hè accadutu per u fattu chì in certi mumenti l'algoritmu hà attraversatu a fila da u principiu à a pusizione attuale in questa fila. In generale, l'algoritmu hè statu assai successu. Quantu sò, ùn hè micca assai utilizatu, in parte perchè l'operazioni atomiche necessitanu assai menu risorse chè prima. Ma l'idea era grande. Mi piace ancu assai u travagliu di Dave Dice da Oracle. Tuttu ciò chì face hè assai praticu è usa u ferru assai intelligente. Hà avutu una manu in a maiò parte di l'algoritmi di sincronizazione NUMA-aware è strutture di dati multi-threaded.
Владимир: Quandu scrivite algoritmi o insegni à i studienti, u risultatu di u vostru travagliu ùn hè micca visibile immediatamente. A cumunità hà bisognu di qualchì tempu per familiarizà cun, per dì, un novu articulu. U novu algoritmu ùn trova micca immediatamente l'applicazione.
Michael: Hè luntanu da immediatamente chjaru se l'articulu serà significativu o micca. Pensu chì saria interessante di fà un studiu di documenti chì anu vintu premii in cunferenze. Vale à dì, fighjate à l'articuli chì e persone in i cumitati di u prugramma in un tempu anu cunsideratu u megliu. Avete bisognu di pruvà à calculà per u numeru di ligami è l'impattu nantu à l'affari quantu influenti sti articuli sò veramente in 10, 20, 25 anni. Dubitu chì ci saria una forte correlazione trà i dui. Ùn serà micca zero, ma assai prubabilmente serà assai più debule di ciò chì vuleriamu. Parechje idee restanu micca reclamate per un bellu pezzu prima ch'elli si sparghjenu. Per esempiu, pigliemu a memoria transazionale. Più di 10 anni sò passati da u tempu chì l'articulu originale hè statu publicatu à u tempu chì a ghjente hà iniziatu à custruisce macchine cun ellu. È prima di l'apparizione di sta memoria in i prudutti cummerciale - è tutti i 20. Per un tempu assai longu, nimu ùn hà micca attentatu à l'articulu, è dopu u nùmeru di ligami à questu aumentava assai. Saria difficiule di predichendu questu in anticipu. Per d 'altra banda, qualchì volta l'idee trovanu implementazione immediatamente. Uni pochi anni fà, aghju scrittu un documentu cù Joe Izraelevitz per DISC chì prupone una nova definizione formale di validità per e strutture di dati persistenti chì puderanu esse aduprate dopu chì l'urdinatore chì li eseguiva s'hè lampatu. Mi piacia l'articulu da u principiu, ma hè diventatu assai più populari di ciò chì m'aspittava. Hè stata utilizata da parechji gruppi diffirenti è eventualmente diventenu a definizione standard di strutture di persistenza. Chì, sicuru, hè bellu.
Владимир: Ci sò tecniche chì utilizate per a valutazione? Pruvate ancu di valutà i vostri articuli è i vostri studienti? In quantu à se a persona chì avete insignatu và in a direzione ghjusta.
Michael: Cum'è tutti l'altri, aghju più attente à ciò ch'e aghju fattu in u mumentu. Di novu, cum'è tutti l'altri, verificate in ocasioni Google Scholar per vede se i mo documenti passati sò citati, ma questu hè più per curiosità. Soprattuttu sò assorbutu in ciò chì i mo studienti facenu avà. Quandu si tratta di evaluà u travagliu attuale, parte di questu hè cunsiderazione estetica, ciò chì hè eleganti è ciò chì ùn hè micca. È à u livellu di ogni ghjornu, e dumande aperte ghjucanu un rolu maiò. Per esempiu, un studiente vene à mè cun un gràficu di qualchi risultati, è avemu da pruvà à capisce da induve un cumpurtamentu stranu di u graficu hè vinutu. In generale, in u nostru travagliu avemu sempre à pruvà à capisce e cose chì ùn avemu micca capitu.
Memoria transazionale
Vitali: Forse pudemu parlà un pocu di memoria transazionale ?
Michael: Pensu chì vale a pena dì almenu un pocu perchè aghju fattu assai sforzu. Questu hè un tema nantu à quale aghju più publicazioni chè qualsiasi altru. Ma à u listessu tempu, stranamente, era sempre assai scetticu nantu à a memoria transazionale. Secondu mè, (M. Herlihy, J. E. B. Moss) hè statu publicatu prima di u so tempu. À l'iniziu di l'anni 1990, suggerenu chì a memoria transazionale puderia aiutà i programatori talentu à travaglià nantu à strutture di dati multi-threaded, perchè sti strutture puderanu esse aduprate cum'è biblioteche da i programatori ordinali. Questu hè, seria un aiutu per Doug Lee chì facia u so JSR 166. Ma a memoria transazzione ùn era micca pensata per fà a prugrammazione multi-threaded faciule. Ma questu hè esattamente cumu hà cuminciatu à esse percepitu in u principiu di l'anni 2000, quandu hè diventatu generalizatu. Hè stata annunziata cum'è una manera di risolve u prublema di prugrammazione parallela. Stu approcciu mi hè sempre parsu senza speranza. A memoria transazionale puderia solu fà più faciule per scrive strutture di dati paralleli. Questu, mi pare, hè ciò chì hà ottenutu.
Circa a difficultà di scrive codice multi-threaded
Алексей: Moltu interessante. Sembra esse una certa barriera trà i programatori regulari è quelli chì ponu scrive codice multi-threaded. L'annu passatu, aghju parlatu parechje volte cù e persone chì anu implementatu un framework algoritmicu. Per esempiu, cù Martin Thomson, è ancu cù i programatori chì travaglianu in biblioteche multi-threaded. (Nota di l'editore: Martin Thompson hè un sviluppatore assai famosu, hà scrittu и . È hà ancu à a nostra cunferenza Joker 2015, registrazione video . Hè u listessu sta cunferenza dispunibule ancu). A sfida principale, dicenu, hè di fà l'algoritmi à tempu veloci è faciule d'utilizà. Vale à dì, cercanu di superà sta barriera è attrae quant'è più persone pussibule in questa zona. Chì ne pensate ?
Michael: Questu hè u prublema principali di multithreading: cumu ottene un altu rendimentu senza aumentà a cumplessità di u sistema.
Алексей: Perchè quandu pruvate d'evità a cumplessità, l'algoritmu diventa menu universale.
Michael: A chjave quì hè l'astrazioni cuncepite currettamente. Mi pari chì questu hè in generale u principale per i sistemi di l'informatica cum'è un campu. Butler Lampson li piace à utilizà stu terminu, è ci chjama "mercanti di astrazioni". Tecnulugia simplici ùn esiste micca oghje. I prucessori chì usemu anu 10 billion transistors - a simplicità hè fora di quistione. À u stessu tempu, l'ISA hè assai più simplice di u processatore, postu chì avemu travagliatu per un tempu assai longu per furnisce un altu rendiment è una interfaccia relativamente simplice. Ma micca tuttu hè liscia ancu cun ella. U listessu prublema hè cù l'acceleratori chì sò avà apparsu nantu à u mercatu. Quistioni sorgenu - cumu fà l'interfaccia ghjusta per a GPU, un mecanismu di criptografia, compressione, un mecanismu di transcodificazione, un mecanismu di algebra lineale, o ancu un FPGA più flexible. Cumu creà una interfaccia chì rende l'uttellu faciule d'utilizà è oculta a cumplessità? Ùn sguasserà micca, ma piuttostu ammuccià da un programatore simplice.
Алексей: Cum'è l'aghju capitu, avemu sempre una barriera per capiscenu l'astrazioni. Pigliemu u mudellu di memoria in u nostru stadiu di sviluppu di a scienza è a tecnulugia, questu hè unu di l'astrazioni principali. Grazie à questu, tutti i programatori sò spartuti in dui gruppi: a parte più grande sò quelli chì ùn capiscenu micca, è a parte più chjuca sò quelli chì capiscenu, o pensanu chì capiscenu.
Michael: Hè una bona dumanda - qualcunu di noi capisce veramente u mudellu di memoria ?
Vitali: In particulare in C++.
Michael: Parlate à Hans Boehm qualchì volta. Hè una di e persone più intelligenti chì cunnoscu, un espertu di punta in mudelli di memoria. Vi dirà subitu chì ci hè assai ch'ellu ùn capisce micca. Ma si vultemu à u prublema di l'astrazioni, allora, in u mo parè, l'idea più impurtante in u campu di i mudelli di memoria in l'ultimi 30 anni hè stata espressa. . (Nota di l'editore: una lista cumpleta di publicazioni hè dispunibule ).
Алексей: A mo quistione hè: sta barriera vene da a natura stessa di u cuncettu ?
Michael: Innò. Sarita hè ghjuntu à a cunclusione chì cù l'approcciu ghjustu, pudete ammuccià cù successu tutta a cumplessità, ottene un rendimentu altu è dà à u programatore un API simplice. È se seguite sta API, pudete ottene una coerenza coherente. Pensu chì questu hè u mudellu ghjustu. Scrivite u codice senza corse di dati è ottene una coerenza sequenziale. Di sicuru, per riduce a probabilità di corsa, sò necessarii strumenti speciali, ma hè una altra materia.
Владимир: Ci sò stati tempi in a vostra carriera quandu un prublema chì pareva risolta si trasformò di colpu in una catastrofa, o si sviluppò chì stu prublema ùn era solu solu ? Per esempiu, in teoria, pudete factorà qualsiasi numeru o stabilisce se un numeru hè primu. Ma in pratica, questu pò esse difficiule di fà cù l'hardware attuale, hè difficiule di fà numeri. Hè accadutu qualcosa di simile ?
Michael: Ùn mi ricordu subitu nunda cusì. Ci sò stati tempi chì mi paria chì ùn ci era nunda di fà in una certa zona, ma allora qualcosa di novu è interessante hè accadutu quì. Per esempiu, pensu chì l'area di fila illimitata avia digià ghjuntu à a maturità. Dopu parechje migliure à a fila MNS, nunda hè accadutu più. E dopu Morrison (Adam Morrison) è Afek (Yehuda Afek) anu inventatu . Hè diventatu chjaru chì una fila multi-threaded illimitata era pussibule, induve a maiò parte di u tempu ci era solu una struzzione di fetch-and-increment in a strada critica. È questu hà permessu di ottene un rendimentu megliu d'ordine di grandezza. Ùn hè micca chì ùn sapemu chì fetch-and-increment hè una cosa assai utile. Eric Freudenthal hà scrittu annantu à questu in u so travagliu nantu à l'Ultracomputer cù Allan Gottlieb à a fini di l'anni 1980, ma si trattava di fila limitata. Morrison è Afek anu pussutu aduprà fetch-and-increment in una fila illimitata.
Novi architetture. Hè a vittoria di a memoria transazionale vicinu?
Владимир: Circate novi suluzioni architettoniche chì puderanu esse utili per l'algoritmi ?
Michael: Di sicuru, ci sò parechje cose chì mi piacerebbe vede implementate.
Владимир: Chì tipu, per esempiu ?
Michael: Prima di tuttu, uni pochi di estensioni simplici à a nostra memoria transazionale à livellu di hardware in i prucessori Intel è IBM. In particulare, mi piacerebbe chì a carica è u magazinu non transazionale chì hè accadutu per esse immediatamente dispunibule in transazzione. Immediatamente portanu à i loops in a sequenza di succede prima, perchè ponu esse difficili. Ma se mantene strati di astrazione, ci sò parechje cose assai interessanti chì pudete fà fora di a transazzione mentre succede. Ùn sò micca sapè quantu hè difficiule di implementà questu, ma seria assai utile.
Un'altra cosa utile hè a carica di cache da a memoria remota. Pensu chì prima o dopu questu serà fattu. Sta tecnulugia permetterà a creazione di sistemi cù memoria disaggregata. Saria pussibule di mantene, per dì, 100 terabytes di memoria non volatile in un rack, è u sistema operatore stessu deciderà dinamicamente quale sezioni di quella memoria duveranu currisponde à u spaziu fisicu di l'indirizzu di i processori. Questu seria estremamente utile per l'informatica in nuvola, postu chì permetterebbe una grande quantità di memoria per esse furnita à e tarei chì ne necessitanu. Pensu chì qualchissia hà da fà.
Vitali: Per finisce di parlà di a memoria transazionale, aghju una altra quistione nantu à questu tema. A memoria transazionale eventualmente rimpiazzarà strutture di dati multi-threaded standard?
Michael: Innò. E transacciones sò un mecanismu speculativu. À u livellu di prugrammazione, sò chjusi atomichi, ma in l'internu sò speculazioni. Tali previsioni funziona se a maiò parte di l'ipotesi sò currette. Dunque, a memoria di transazzione funziona bè quandu i fili interagiscenu pocu cù l'altri, è basta à assicurà chì ùn ci hè micca interazzione. Ma se un missaghju principia trà i fili, e transazzione sò di pocu utilità. Lasciami spiegà, parlemu di u casu quandu e transazzione sò impannillati intornu à tutta l'operazione atomica. Puderanu ancu esse utilizati cum'è cumpunenti per strutture di dati multi-threaded. Per esempiu, sè vo avete bisognu di un CAS di trè parolle, è avete bisognu di multithread trè picculi cose à mezu à un algoritmu veramente multithreaded chì travaglia cù vinti fili à u stessu tempu. In generale, e transazzione ponu esse utili, ma ùn eliminanu micca a necessità di cuncepisce bè strutture di dati multi-threaded.
Memoria non volatile, Optane DIMM, dispositivi ultra-rapidi.
Vitali: L'ultima cosa chì vogliu parlà hè u tema di a vostra ricerca attuale : a memoria non volatile. Chì pudemu aspittà in questu spaziu in un futuru vicinu? Forse sapete qualsiasi implementazioni efficaci chì esistenu digià?
Michael: Ùn sò micca un espertu di hardware, sò solu ciò chì leghje in a nutizia è ciò chì mi dicenu i mo culleghi. Tutti anu digià intesu chì Intel vende , chì anu circa 3 volte a latenza di lettura è 10 volte a latenza di scrittura cà a RAM dinamica. Seranu prestu dispunibili in versioni di volumi assai grande. Hè curiosu di pensà chì pudete avè un laptop cù parechji terabyte di RAM indirizzabile per byte. Hè prubabile chì in 10 anni decideremu di utilizà sta nova tecnulugia, postu chì usemu DRAM - solu aumentà u voluminu. Ma grazia à l'indipendenza energetica, opportunità completamente novi si apre per noi. Pudemu fundamentalmente cambià a pila di almacenamiento in modu chì ùn ci hè micca una separazione trà a memoria di travagliu indirizzabile per byte è a memoria persistente strutturata in bloccu. Cusì, ùn avemu micca bisognu di serializà tuttu ciò chì deve esse trasferitu da un prugramma à l'altru in i schedari strutturati in blocchi. Da questu pudemu derivà parechji principii impurtanti chì afectanu i sistemi operativi, l'ambienti di runtime è i magazzini di dati distribuiti. Questa zona hè assai interessante per travaglià. In modu persunale, hè difficiule per mè di predichendu ciò chì portarà tuttu, ma i prublemi quì sò assai divertenti. Ci ponu esse cambiamenti rivoluzionarii quì, è seguitanu assai naturali da u travagliu nantu à u multithreading, postu chì a ricuperazione di fallimentu hè un prucessu "multithreading" vicinu à u funziunamentu normale di u sistema.
U sicondu tema principale chì aghju travagliatu hè a gestione di i dispositi ultra-veloci è l'accessu sicuru à i dispositi da u spaziu di l'utilizatori cù u cuntrollu di pulitica sistemica. Nta l'ultimi anni, ci hè stata una tendenza à spustà l'accessu à u dispusitivu in u spaziu di l'utilizatori. Questu hè fattu perchè a pila di u kernel TCP-IP ùn pò micca funziunà nantu à una interfaccia di rete chì hà bisognu di un novu pacchettu ogni 5 microsecondi, solu ùn mantene micca. Dunque, i pruduttori furniscenu accessu direttu à i dispositi. Ma questu significa chì u sistema operatore perde u cuntrollu di u prucessu è ùn pò micca furnisce l'accessu propiu à u dispusitivu per l'applicazioni cuncurrenti. U nostru squadra di ricerca crede chì sta mancanza pò esse evitata. Averemu un articulu nantu à questu in USENIX ATC stu mese. Hè ligatu à u travagliu nantu à a persistenza, postu chì a memoria persistente di l'indirizzu di byte longu hè, in esencia, un dispositivu cù I / O ultra-rapidu chì deve esse accessu in u spaziu di l'utilizatori. Questa ricerca rende pussibuli novi approcci à i microkernels, exokernels, è altri tentativi tradiziunali di trasfurmà in modu sicuru a funziunalità da u kernel OS à u spaziu di l'utilizatori.
Владимир: A memoria di l'indirizzu di Byte hè grande, ma ci hè una limitazione fisica - a velocità di a luce. Questu significa chì ci sarà inevitabbilità un ritardu quandu interagisce cù u dispusitivu.
Michael: Assolutamente ghjustu.
Владимир: Ci sarà abbastanza capacità per affruntà i novi carichi ?
Michael: Questa hè una quistione eccellente, ma serà difficiule per mè di risponde. L'idea di trasfurmà in memoria hè stata per un bellu pezzu, hè assai interessante, ma ancu assai cumplessu. Ùn aghju micca travagliatu in questa zona, ma saria bella se ci sò stati scuperti. Aghju paura chì ùn aghju più nunda à aghjunghje.
Владимир: Ci hè un altru prublema. Una quantità nova, significativamente più grande di RAM serà impussibile di inserisce in u CPU. Dunque, per via di limitazioni fisiche, sta RAM deve esse isolata.
Michael: Tuttu dipende di u numeru di difetti in a produzzione di circuiti integrati. S'ellu era pussibule di creà wafers di semiconductor interamente senza difetti, allora saria pussibule di fà un microcircuit sanu fora di questu. Ma avà ùn sapemu micca cumu fà i microcircuiti più grande di i francobolli.
Владимир: Ma si parla sempre di grandezza tamanta, di centimetri. Questu hà inevitabbilmente un impattu nantu à a latenza.
Michael: Iè. Ùn ci hè nunda chì pudete fà per a velocità di a luce.
Владимир: Sfurtunatamente.
A prossima grande tendenza. Strutture di dati duali. Hydra.
Vitali: Per ciò chì aghju capitu, chjappà e novi tendenzi assai rapidamente. Avete statu unu di i primi à travaglià in memoria transazionale, è unu di i primi à travaglià in memoria non volatile. Chì pensate chì serà a prossima grande tendenza? O forse hè un sicretu?
Michael: Per esse onestu, ùn sò micca. Spergu chì puderaghju avvistà quandu qualcosa di novu vene. Ùn aghju micca avutu a furtuna di inventà ogni novu campu nantu à u mo propiu, ma aghju avutu uni pochi di furtuna è aghju pussutu cumincià à travaglià abbastanza prestu in novi campi creati da altri. Spergu chì puderaghju fà questu in u futuru.
Алексей: L'ultima quistione in questa intervista serà nantu à a vostra prestazione in Hydra è e vostre attività à a scola. Se capiscu bè, u rapportu à a scola serà nantu à l'algoritmi senza bloccu, è à a cunferenza nantu à e strutture di dati doppiu. Pudete dì uni pochi di parolle nantu à sti rapporti ?
Michael: In parte, avemu digià toccu sti temi cun voi in questa entrevista. Si tratta di u travagliu chì aghju fattu cù u mo studiente Bill Scherer. Hà scrittu una tesi nantu à questu, è Doug Lee hà ancu cuntribuitu à questu, è hè diventatu eventualmente parte di e file sincrone multi-threaded in a biblioteca Java. Assumimu chì a struttura di dati hè letta è scritta senza bluccà, vale à dì, ogni operazione hà un numeru limitatu di struzzioni nantu à a strada critica. Sè vo pruvate à caccià dati da un cuntinuu viotu, o pruvà à caccià certi dati chì ùn hè micca in stu cuntinuu, vi sò subitu infurmatu chì questu ùn pò micca esse fattu. Ma stu cumpurtamentu pò esse micca accettatu se u filu hà veramente bisognu di sti dati. Allora a prima cosa chì vene in mente hè di creà un ciclu chì dumandarà constantemente se i dati necessarii sò apparsu. Ma dopu ci hè interferenza per tutti l'altri. Inoltre, cù questu approcciu, pudete aspittà 10 minuti, è dopu vinarà qualchì altru filu, è riceverà accidentalmente i dati necessarii prima. E strutture di dati duali ùn anu micca sempre serratura, ma permettenu à i fili di aspittà bè. U terminu "doppiu" significa chì a struttura cuntene o dati o richieste di dati, chjamemu anti-data. Allora s'è vo pruvate di ricuperà qualcosa da un containeru viotu, una dumanda serà messa in u cuntinuu invece. Avà u filu pò aspittà una dumanda senza disturbà nimu. Inoltre, a struttura di dati attribuisce priorità à e dumande in modu chì quandu riceve, li trasmette à a persona ghjusta. U risultatu hè un miccanisimu senza bloccu chì hà sempre una specificazione formale è un bonu rendimentu in pratica.
Алексей: Chì sò e vostre aspettative da questa struttura di dati ? Migliurà u rendiment in tutti i casi cumuni, o hè megliu adattatu per certe situazioni?
Michael: Hè utile si, prima, avete bisognu di un cuntinuu senza chjosu, è, in segundu, avete bisognu à aspittà in una situazione induve avete bisognu di ricuperà e dati da u cuntinuu chì ùn hè micca in questu. À u megliu di a mo cunniscenza, u nostru quadru furnisce un cumpurtamentu ottimale quandu sti dui cundizioni sò scontri. Dunque, in questi casi, ricumandemu di utilizà. U vantaghju principali di e strutture di dati lockless hè chì evitanu prublemi di rendiment. È l'aspittà hè assai impurtante in parechji algoritmi se i dati sò trasferiti da un filu à l'altru.
Vitali: Lasciami chjarificà : parlerai di listessa cosa sia à a scola sia à a cunferenza ?
Michael: À a scola in generale nantu à strutture di dati multi-threaded, cù i principii basi delineati à u principiu di a lezziò. Pensu chì l'audienza sapi ciò chì i fili sò è hè familiarizatu cù i chjusi. Basatu nantu à sta cunniscenza basica, parleraghju di strutture di dati senza serratura. Daraghju una panoramica di i prublemi più impurtanti in questa zona, toccu temi cum'è a gestione di a memoria. Pensu chì ùn ci sarà nunda di più cumplicatu chè a fila di MS.
Алексей: Avete pensatu à insignà nantu à e strutture di dati duali à a fine di a vostra classe in a scola?
Michael: Li mencioneraghju, ma ùn spenderaghju assai tempu nantu à elli. U rapportu Hydra serà dedicatu à elli. Coprerà u prugettu chì eventualmente hà fattu in Java, è ancu di travaglià cù Joe Israelevich per creà una variante duale di a fila LCRQ, è creà un disignu quasi universale per strutture di dati duali.
Алексей: Allora a cunferenza à a scola pò esse cunsigliata per i principianti, è a cunferenza nantu à e strutture di dati doppiu nantu à Hydra - per e persone chì anu digià una certa sperienza?
Michael: Correggimi s'ellu mi sbagliu, ma l'audienza à Hydra serà assai diversa, cumpresi parechji esperti Java, è in generale persone chì ùn sò micca specificamente implicati in a prugrammazione multi-threaded.
Vitali: Iè, hè vera.
Алексей: Almenu speramu cusì.
Michael: In stu casu, seraghju affruntatu cù u listessu prublema cù quale avemu principiatu sta intervista : cumu fà un rapportu à tempu abbastanza riccu di ditaglii tecnichi è accessibile à tutti l'ascultori.
Vitali: Darete un rapportu di listessa manera chì fate e lezioni ? Questu hè, parlà à l'audienza è adattà à a situazione?
Michael: Aghju a paura ch'ellu ùn sia micca cusì, perchè u rapportu averà diapositive. I slides sò impurtanti quandu l'ascultori parlanu inizialmente lingue diverse. Parechje persone trovanu difficiule di capiscenu in inglese, soprattuttu s'ellu parlu troppu prestu. Aghju sceltu questi temi perchè m'hà dumandatu di parlà di strutture di dati senza serratura in SPTDC School; è dopu avè bisognu di un rapportu per una cunferenza di u gruppu d'utilizatori Java, è vulia sceglie qualcosa chì seria d'interessu specificamente per i programatori Java. A manera più faciule era di parlà di quelli cose in a biblioteca Java chì aghju avutu una manu in un modu o un altru.
Алексей: Assumimu chì l'audienza nantu à Hydra sà digià qualcosa nantu à a prugrammazione senza serratura è forse hà una certa sperienza in questa zona. Ma questu hè solu una supposizione chì a situazione diventerà più chjaru in a cunferenza stessa. In ogni casu, grazie per u vostru tempu. Sò sicuru chì l'intervista serà assai interessante per i nostri lettori. Grazie tante!
Vitali: Grazie.
Michael: Seraghju piacè di scuntràvi in San Petruburgu.
Алексей: Ancu noi, avemu una bella cità. Avete mai statu quì ?
Michael: Innò, ùn sò mai statu in Russia. Ma San Petruburgu hè sempre statu nantu à a lista di i lochi induve ùn aghju micca statu ancu, ma induve vogliu veramente andà, cusì era assai cuntentu di l'invitu.
Алексей: Per via, averemu un prugramma d'escursioni per i parlanti. Grazie mille per l'entrevista, è bona ghjurnata!
Pudete cuntinuà a vostra conversazione cù Michael à a cunferenza Hydra 2019, chì si terrà l'11-12 di lugliu 2019 in San Petruburgu. Ellu vene cun un rapportu . I biglietti ponu esse acquistati .
Source: www.habr.com
