"Et ass méi einfach ze äntweren wéi roueg ze bleiwen" - e super Interview mam Papp vun der Transaktiounsgediechtnes, Maurice Herlihy

Maurice Herlihy - de Besëtzer vun zwee Dijkstra Präisser. Déi éischt ass fir Aarbecht "Waartfräi Synchroniséierung" (Brown University) an déi zweet, méi rezent, - "Transaktiounsspeicher: architektonesch Ënnerstëtzung fir Sperrfräi Datestrukturen" (Virginia Tech University). Den Dijkstra-Präis gëtt fir Wierker verdeelt, deenen hir Bedeitung an Afloss säit mindestens zéng Joer opmierkbar ass, an natierlech ass de Maurice ee vun de bekanntste Spezialisten am Beräich. Hien ass de Moment Professer op der Brown University an huet Paragraf-laang Leeschtungen. Elo beschäftegt hien sech an der Blockchain Fuerschung am Kontext vum klassesche verdeelt Informatik.

Virdrun ass de Maurice scho fir SPTCC a Russland komm (videoband) an huet eng exzellent Versammlung vun der JUG.ru Java Entwéckler Gemeinschaft zu St.videoband).

Dësen Habrapost ass e super Interview mam Maurice Herlihy. Et diskutéiert déi folgend Themen:

  • Interaktioun tëscht Akademie an Industrie;
  • Fondatioun fir Blockchain Fuerschung;
  • Wou kommen Duerchbroch Iddien hier? Afloss vun Popularitéit;
  • Dokteraarbecht ënner der Leedung vum Barbara Liskov;
  • D'Welt waart op Multi-Kär;
  • Nei Welt, nei Problemer. NVM, NUMA an Architektur Hacking;
  • Compilers vs CPUs, RISC vs CISC, gedeelt Erënnerung vs Message Passage;
  • D'Konscht fir fragil Multi-threaded Code ze schreiwen;
  • Wéi Schüler ze léieren wéi komplex Multi-threaded Code ze schreiwen;
  • Nei Editioun vum Buch "The Art of Multiprocessor Programming";
  • Wéi gouf Transaktiouns Erënnerung erfonnt?   
  • Firwat et derwäert ass Fuerschung am Beräich vun verdeelt Informatik ze maachen;
  • Huet d'Entwécklung vun algorithms gestoppt, a wéi liewen op;
  • Aarbecht op Brown University;
  • Den Ënnerscheed tëscht Universitéit a Firmenfuerschung;
  • Hydra an SPTDC.

Interviewe ginn duerchgefouert vun:

Vitaly Aksenov - Moment e Post-Doc bei IST Éisträich an en Employé vum Computer Technologies Departement op der ITMO Universitéit. Hie beschäftegt sech mat der Fuerschung am Beräich vun der Theorie a Praxis vu kompetitive Datestrukturen. Ier hien bei IST koum, krut hien seng Doktorat vun der Pariser Diderot Universitéit an der ITMO Universitéit ënner dem Prof. Petr Kuznetsov.

Alexey Fedorov ass e Produzent bei JUG Ru Group, eng russesch Firma déi Konferenzen fir Entwéckler organiséiert. Alexey huet un der Virbereedung vu méi wéi 50 Konferenzen deelgeholl, a säi CV enthält alles vun der Positioun vun engem Entwécklungsingenieur bei Oracle (JCK, Java Plattform Group) bis zur Positioun vun engem Entwéckler bei Odnoklassniki.

Vladimir Sitnikov ass en Ingenieur bei Netcracker. Fir zéng Joer huet hien un der Leeschtung an der Skalierbarkeet vum NetCracker OS geschafft, Software déi vun Telekomoperateuren benotzt gëtt fir Netzwierk- an Netzwierkausrüstungsverwaltungsprozesser ze automatiséieren. Interesséiert an Java an Oracle Datebank Leeschtung Problemer. Auteur vun iwwer eng Dosen Leeschtungsverbesserungen am offiziellen PostgreSQL JDBC Chauffer.

Interaktioun tëscht Akademie an Industrie

Alexey: Maurice, Dir schafft scho ganz laang an der Akademie an déi éischt Fro ass iwwer d'Interaktioun tëscht der Akademie an der Industrie. Kënnt Dir eis soen wéi d'Interaktiounen tëscht hinnen a leschter Zäit geännert hunn? Wat war virun 20-30 Joer a wat geschitt elo? 

Maurice: Ech hunn ëmmer probéiert enk mat kommerziellen Firmen ze schaffen, well se interessant Erausfuerderunge hunn. An der Regel sinn se net ganz interesséiert weder fir hir Resultater ze verëffentlechen oder fir detailléiert Erklärunge vun hire Problemer un der Weltgemeinschaft. Si sinn nëmmen interesséiert dës Problemer ze léisen. Ech hunn fir e puer vun dëse Firmen fir eng Zäit geschafft. Ech hunn fënnef Joer Vollzäit an engem Fuerschungslabo bei Digital Equipment Corporation geschafft, déi fréier eng grouss Computerfirma war. Ech hunn een Dag an der Woch bei Sun geschafft, bei Microsoft, bei Oracle, e bëssen op Facebook geschafft. Elo ginn ech an e Sabbatical Congé (e Professer op enger amerikanescher Uni däerf ongeféier eemol all sechs Joer esou eng Vakanz fir ee Joer huelen) a schaffen an Algorand, Dëst ass sou eng cryptocurrency Firma zu Boston. Eng enk Zesummenaarbecht mat de Firmen war ëmmer eng Freed, well esou léiert een nei an interessant Saachen. Dir kënnt allgemeng déi éischt oder zweet Persoun sinn, déi en Artikel iwwer e gewielten Thema publizéieren, anstatt lues a lues Léisunge vu Probleemer ze verbesseren, un deenen all déi aner scho schaffen.

Alexey: Kënnt Dir eis méi soen wéi dat geschitt?

Maurice: Natierlech. Dir wësst, wann ech bei Digital Equipment Corporation war, ech an Elliot Moss, mir erfonnt Transaktiounen Erënnerung. Et war eng ganz fruchtbar Period wou jidderee ugefaang huet fir Informatiounstechnologie ze interesséieren. Concurrency abegraff, obwuel Multi-Core Systemer nach net existéieren. An den Deeg vu Sonn an Oracle hunn ech vill Aarbecht u parallelen Datestrukturen gemaach. Op Facebook war ech an hirem Blockchain-Projet involvéiert, iwwer deen ech net ka schwätzen, awer hoffentlech geschwënn ëffentlech gëtt. D'nächst Joer, bei Algorand, wäert ech un enger Fuerschungsteam schaffen, déi intelligent Kontrakter studéiert.

Alexey: An de leschte Joren ass Blockchain e ganz populärt Thema ginn. Wäert et Är Fuerschung hëllefen? Vläicht wäert et et méi einfach maachen Subventiounen ze kréien oder Zougang zu de Ressourcen vun de Firmen, déi an der Industrie operéieren?

Maurice: Ech hu schonn e klenge Subventioun vun der Ethereum Foundation kritt. D'Popularitéit vu Blockchain ass ganz nëtzlech fir Studenten ze inspiréieren an dësem Beräich ze schaffen. Si sinn immens drun interesséiert a si frou matzemaachen, awer heiansdo mierken se net datt d'Fuerschung, déi no baussen verlockend kléngt, wierklech haart Aarbecht mat sech bréngt. Wéi och ëmmer, ech si ganz frou all dës Mystik ronderëm de Blockchain ze benotzen, et hëlleft Studenten unzezéien. 

Mä dat ass net alles. Ech sinn am Berodungsrot vu verschiddene Blockchain Startups. E puer vun hinnen kënnen Erfolleg hunn, anerer kënnen net, awer et ass ëmmer ganz interessant hir Iddien ze gesinn, se ze studéieren a Leit ze beroden. Déi spannendst Saach ass wann Dir d'Leit warnt eppes net ze maachen. Vill Saache schéngen am Ufank wéi eng gutt Iddi, awer sinn se wierklech?

Fondatioun fir Blockchain Fuerschung

Vitaly: Verschidde Leit mengen datt Blockchain a seng Algorithmen d'Zukunft sinn. An aner Leit soen et ass just eng aner Bubble. Kënnt Dir Är Meenung zu dëser Matière deelen?

Maurice: Vill vun deem wat an der Blockchain Welt lass ass funktionnéiert net richteg, e puer si just Scams, vill Saache sinn iwwerbewäert. Wéi och ëmmer, ech mengen datt et eng zolidd wëssenschaftlech Basis fir dës Studien ass. D'Tatsaach datt d'Blockchain Welt voller ideologeschen Divisiounen ass weist den Niveau vun der Opreegung an Engagement. Op der anerer Säit ass et net besonnesch gutt fir wëssenschaftlech Fuerschung. Elo, wann Dir en Artikel publizéiert deen iwwer d'Defiziter vun engem bestëmmten Algorithmus schwätzt, ass d'Reaktioun net ëmmer voll wëssenschaftlech. Oft drécke Leit hir Emotiounen aus. Ech mengen, datt esou en Hype an dësem Beräich fir e puer attraktiv schénge kann, awer am Endeffekt sinn et richteg wëssenschaftlech an technesch Themen déi nach net behandelt ginn. Et gëtt vill Informatik hei.

Vitaliy: Also Dir probéiert de Grondlag fir Blockchain Fuerschung ze leeën, richteg?

Maurice: Ech probéieren de Grondsteen ze leeën fir eng zolidd, wëssenschaftlech a mathematesch gutt Disziplin. An en Deel vum Problem ass datt Dir heiansdo e puer vun den ze haarde Positioune vun anere Leit widdersprécht, fir se ze ignoréieren. Heiansdo froen d'Leit firwat ech an engem Beräich schaffen, an deem nëmmen Terroristen an Drogendealer interesséiert sinn. Sou eng Reaktioun ass sou sënnlos wéi d'Behuele vun den Unhänger blann Är Wierder widderhuelen. Ech mengen d'Wourecht ass iergendwou an der Mëtt. Blockchain huet nach en déiwen Impakt op d'Gesellschaft an d'Weltwirtschaft. Awer, wahrscheinlech, wäert dëst net duerch modern Technologie geschéien. Modern Technologien wäerten entwéckelen a wat an Zukunft Blockchain genannt gëtt wäert ganz wichteg ginn. Vläicht wäert et net emol wéi modern Blockchainen ausgesinn, dat ass eng oppe Fro.

Wann d'Leit nei Technologien erfannen, nennen se se weider Blockchain. Ech mengen, grad wéi de Fortran vun haut huet näischt mat der Fortran Sprooch aus den 1960er Joren ze dinn, mee jidderee nennt et ëmmer Fortran. Datselwecht fir UNIX. Wat "Blockchain" genannt gëtt ass nach seng Revolutioun ze maachen. Awer ech bezweifelen datt dësen neie Blockchain wäert sinn wéi wat jidderee gär huet haut ze benotzen.

Wou kommen Duerchbroch Iddien hier? Afloss vun Popularitéit

Alexey: Huet d'Popularitéit vum Blockchain zu neie Resultater aus wëssenschaftlecher Siicht gefouert? Méi Interaktioun, méi Studenten, méi Firmen an der Géigend. Ginn et scho Resultater vun dësem Wuesstum an der Popularitéit?

Maurice: Ech hunn mech drun interesséiert, wéi een mir en offiziellen Flyer iwwerreecht huet fir eng Firma, déi just zimlech vill Sue gesammelt hat. Si geschriwwen iwwer d'Aufgab vun de byzantinesche Genereelmat deem ech méi wéi vertraut sinn. Am Broschür geschriwwen war kloer technesch falsch. Déi Leit, déi dëst geschriwwen hunn, hunn de Modell hannert dem Problem net wierklech verstanen... an awer huet dës Firma vill Sue gesammelt. Duerno huet d'Firma dës Broschür roueg duerch eng vill méi korrekt Versioun ersat - an ech wäert net soen wat den Numm vun dëser Firma war. Si existéieren nach ëmmer an et geet ganz gutt. Dëse Fall huet mech iwwerzeegt datt, als éischt, Blockchain just eng Form vu verdeelt Informatik ass. Zweetens war den Entréesschwell (deemools viru véier Joer) zimlech niddereg. D'Leit, déi an dësem Beräich schaffen, ware ganz energesch a schlau, awer si hunn net wëssenschaftlech Aarbechte gelies. Si hu probéiert bekannt Saachen nei ze erfannen a si hunn et falsch gemaach. Haut ass den Drama reduzéiert ginn.

Alexey: Et ass ganz interessant, well virun e puer Joer hate mir en aneren Trend. Et ass e bësse wéi Front-End Entwécklung, wou Browser Interface Entwéckler ganz Technologien nei erfonnt hunn, déi scho populär waren am Back-End zu där Zäit: Systemer bauen, kontinuéierlech Integratioun, a sou Saachen. 

Maurice: Ech averstanen. Awer dëst ass net iwwerraschend, well wierklech Duerchbroch Iddien kommen ëmmer vu baussen der etabléierter Gemeinschaft. Etabléiert Fuerscher, besonnesch Autoritéiten an der Akademie, sinn onwahrscheinlech eppes wierklech banebriechend ze maachen. Et ass einfach e Bericht fir déi nächst Konferenz ze schreiwen iwwer wéi Dir d'Resultater vun Ärer fréierer Aarbecht liicht verbessert hutt. Gitt op eng Konferenz, gitt zesumme mat Frënn, schwätzt iwwer déiselwecht Saachen. An déi Leit, déi mat Duerchbroch Iddien abriechen, kommen bal ëmmer vu baussen. Si kennen d'Regelen net, kennen d'Sprooch net, awer trotzdem ... Wann Dir an enger etabléierter Gemeinschaft sidd, roden ech Iech op nei Saachen opzepassen, op eppes wat net an de grousse passt Bild. An engem Sënn kann e Versuch gemaach ginn fir extern, méi flësseg Entwécklungen mat Techniken ze kombinéieren déi mir scho verstinn. Als éischte Schrëtt, probéiert eng wëssenschaftlech Basis ze kreéieren, an dann z'änneren sou datt et op nei Duerchbroch Iddien applizéiert ka ginn. Ech denken datt de Blockchain super ass fir d'Roll vun enger frëscher Duerchbroch Iddi.

Alexei: Firwat mengt Dir dat geschitt? Well d'Leit "dobaussen" keng spezifesch Barrièren an der Gemeinschaft hunn?

Maurice: Hei ass e Muster. Wann Dir d'Geschicht vun den Impressionisten an der Molerei a Konscht am Allgemengen liest, dann hunn d'berühmte Kënschtler eng Kéier den Impressionismus verworf. Si soten et wier eng Zort Kandheet. Eng Generatioun méi spéit gouf dës virdru refuséiert Konschtform de Standard. Wat ech a mengem Beräich gesinn: d'Erfinder vun der Blockchain waren net u Kraaft interesséiert, fir Publikatiounen an Zitatiounsindex ofzeschléissen, si wollten just eppes Gutt maachen. An esou hunn si sech gesat an ugefaang et ze maachen. Et huet hinnen eng gewëssen technesch Déift gefeelt, awer dat ass fixbar. Et ass vill méi schwéier mat neie kreativen Iddien ze kommen wéi et ass net genuch reift ze korrigéieren an ze verstäerken. Dank dësen Erfinder hunn ech elo eppes ze maachen!

Alexey: Dëst ass ähnlech wéi den Ënnerscheed tëscht Startups a Legacy Projeten. Mir ierwen vill Gedankenbeschränkungen, Barrièren, speziell Ufuerderungen, asw.

Maurice: Eng gutt Analogie ass verdeelt Informatik. Denkt un Blockchain wéi wann et e Startup wier a verdeelt Informatik als eng grouss etabléiert Firma. Verdeelt Informatik ass amgaang mat Blockchain kaaft a fusionéiert ze ginn.

Dokteraarbecht ënner Barbara Liskov

Vitaliy: Mir hunn nach vill Froen! Mir hunn Äre Bio ënnersicht an hunn en interessant Fakt iwwer Är PhD fonnt. Jo, et war viru laanger Zäit, awer d'Thema schéngt wichteg ze sinn. Dir hutt Är PhD ënner der Opsiicht vun Barbara Liskov! D'Barbara ass ganz berühmt an der Programméierungssprooch Entwécklung Gemeinschaft, an eng ganz berühmt Persoun am Allgemengen. Et ass logesch datt Är Fuerschung am Feld vun de Programméierungssproochen war. Wéi hutt Dir op parallel Computing ëmgewandelt? Firwat hutt Dir decidéiert de Sujet ze änneren?

Maurice: Zu där Zäit hunn d'Barbara an hire Grupp just op verdeelt Informatik gekuckt, wat eng ganz nei Iddi war. Et waren och déi, déi gesot hunn, datt verdeelt Informatik Blödsinn ass, Kommunikatioun tëscht Computeren ass sënnlos. Ee vun de Themen, déi am verdeeltem Informatik berücksichtegt ginn, wat se vun zentraliséierter Informatik ënnerscheet, ass Feelertoleranz. No vill Fuerschung hu mir décidéiert datt Dir an enger Programméierungssprooch fir verdeelt Informatik eppes wéi Atomtransaktiounen hutt, well Dir kënnt ni sécher sinn datt e Remote Call geléngt. Wann Dir Transaktiounen hutt, gëtt et e Problem vun der Concurrency Kontroll. Duerno gouf et vill Aarbecht fir héich parallel Transaktiounsdatenstrukturen ze kréien. Dunn wann ech Diplom ech gaangen Carnegie Mellon an ugefaang fir en Thema fir Aarbecht ze sichen. Et ass mir opgefall datt d'Informatik vun eenzelne Computeren an Netzwierker vu Computere geplënnert ass. Eng natierlech Fortsetzung vum Fortschrëtt wier Multiprozessoren - d'Wuert "Multi-Core" gouf et deemools net. Ech hu geduecht: wat ass d'Äquivalent vun atomarer Transaktioune fir e Multi-Core System? Sëcher net gewéinlech Transaktiounen, well se ze grouss a schwéier sinn. An esou sinn ech op d'Iddi komm linearizability an dat ass wéi ech mat der ganzer wait-gratis synchroniséiert. Et war e Versuch d'Fro ze äntweren, wat ass den Analog vun atomarer Transaktiounen fir e Multiprozessor System mat gemeinsame Erënnerung. Op den éischte Bléck kann dëst Wierk ganz anescht ausgesinn, awer tatsächlech ass et eng Fortsetzung vum selwechten Thema.

D'Welt waart op Multi-Core

Vitaly: Dir hutt gesot datt et zu där Zäit ganz wéineg Multi-Core Computere waren, richteg?

Maurice: Si goufe just net existéiert. Et waren e puer sougenannte symmetresch Multiprozessoren, déi am Fong mam selwechte Bus ugeschloss waren. Et huet net ganz gutt fonctionnéiert, well all Kéier wann eng nei Firma esou eppes erstallt huet, huet Intel en eenzege Prozessor erausbruecht, deen de Multiprozessor besser gemaach huet.

Alexei: Heescht dat net, datt et an deenen antiken Zäiten méi eng theoretesch Studie war?

Maurice: Et war keng theoretesch, mä éischter eng spekulativ Etude. All dëst war net iwwer d'Aarbecht mat villen Theorem, éischter, hu mir Hypothesen iwwer d'Architektur virgestallt, déi zu där Zäit net existéiert hunn. Dofir ass d'Fuerschung! Keng Firma hätt dat gemaach, et war alles eppes aus der wäiter Zukunft. Tatsächlech war dat bis 2004, wou real Multi-Core Prozessoren erschéngen. Wéinst der Tatsaach datt d'Prozessoren iwwerhëtzen, kënnt Dir de Prozessor nach méi kleng maachen, awer Dir kënnt et net méi séier maachen. Dofir gouf et en Iwwergang zu Multi-Core Architekturen. An dunn huet et geheescht, datt op eemol all d'Konzepter, déi mir an der Vergaangenheet entwéckelt haten, benotzt ginn.

Alexey: Firwat mengt Dir datt Multi-Core Prozessoren nëmmen an den XNUMXer erschéngen? Also firwat sou spéit?

Maurice: Et ass wéinst Hardware Aschränkungen. Intel, AMD an aner Firme si ganz gutt fir d'Prozessorgeschwindegkeet ze stäerken. Wann iergendwann d'Prozessoren kleng genuch ginn, datt se d'Auergeschwindegkeet net méi konnten erhéijen, well d'Prozessoren ufänken ze verbrennen. Dir kënnt se méi kleng maachen, awer net méi séier. Wat ass an hirer Kraaft - amplaz vun engem ganz klenge Prozessor, fit aacht, siechzéng oder drësseg-zwee Prozessoren am selwechte Volume vun de Fall, wou nëmmen een benotzt ze fit. Elo hutt Dir Multithreading a séier Kommunikatioun tëscht hinnen well se Cache deelen. Awer Dir kënnt se net méi séier maachen - et gëtt eng ganz spezifesch Geschwindegkeetsbegrenzung. Si weider lues a lues verbesseren, awer net sou vill. D'Gesetzer vun der Physik stoungen an de Wee.

Nei Welt, nei Problemer. NUMA, NVM an Architektur Hacking

Alexei: Kléngt ganz raisonnabel. Mat neie Multi-Core Prozessoren koumen nei Problemer. Hutt Dir an Är Kollegen dës Problemer erwaart? Hutt Dir se vläicht am Viraus studéiert? An theoreteschen Studien ass et dacks net ganz einfach esou Saachen virauszesoen. Wann Problemer opgetrueden sinn, a wéi engem Mooss hunn se Är Erwaardungen an Äre Kollegen erfëllt? Oder ware se ganz nei an Dir an Är Kollegen hu vill Zäit misse verbrénge fir Problemer ze léisen wéi se entstanen sinn?

Vitaliy: Ech addéieren dem Alexey seng Fro: Hutt Dir d'Architektur vun de Prozessoren richteg virausgesot wärend Dir Theorie studéiert?

Maurice: Net all 100%. Awer ech mengen datt meng Kollegen an ech eng gutt Aarbecht gemaach hunn fir Multi-Core gemeinsame Erënnerung virauszesoen. Ech mengen, mir hunn d'Schwieregkeete beim Design vun parallelen Datestrukturen richteg virausgesot, déi ouni Sperren funktionnéieren. Esou Datestrukture ware fir vill Uwendungen wichteg, awer net fir all, awer dacks brauch Dir wierklech eng gespaarten Datenstruktur. Wéi mir se erfonnt hunn, hunn vill argumentéiert datt dëst Blödsinn ass, datt alles gutt mat Schleisen funktionnéiert. Mir hu ganz gutt virausgesot datt et fäerdeg Léisunge fir vill Programméierungsproblemer an Datestrukturproblemer géife ginn. Et goufen och méi komplex Problemer, wéi z.B NUMA - Ongläiche Erënnerung Zougang. Tatsächlech goufen se net emol ugesinn bis d'Erfindung vu Multi-Core Prozessoren well se ze spezifesch waren. D'Fuerschungsgemeinschaft huet u Froen geschafft, déi allgemeng prévisibel waren. E puer Hardwareproblemer, déi mat spezifeschen Architekturen verbonne sinn, hu missen op de Flilleke waarden - tatsächlech d'Erscheinung vun dësen Architekturen. Zum Beispill huet keen wierklech un GPU-spezifesch Datestrukturen geschafft well d'GPU deemools net existéiert huet. Och wa vill geschafft gouf SIMD, dës Algorithmen ware prett fir ze benotzen soubal déi richteg Hardware erschéngt. Allerdéngs ass et onméiglech alles virauszesoen.

Alexey: Wann ech richteg verstinn, ass NUMA eng Zort Kompromiss tëscht Käschten, Leeschtung an e puer aner Saachen. All Ahnung firwat NUMA sou spéit koum?

Maurice: Ech mengen datt NUMA existéiert wéinst engem Problem mat der Hardware déi benotzt gëtt fir Erënnerung ze maachen: wat méi wäit d'Komponente sinn, dest méi lues ginn se zougänglech. Op der anerer Säit ass den zweete Wäert vun dëser Abstraktioun d'Uniformitéit vun der Erënnerung. Dofir ass eng vun de Charakteristiken vum parallele Computing datt all Abstraktioune liicht gebrach sinn. Wann den Zougang perfekt eenheetlech wier, wier all Erënnerung equidistant, awer dëst ass wirtschaftlech, a vläicht souguer kierperlech onméiglech. Also entsteet dëse Konflikt. Wann Dir Äre Programm schreift wéi wann d'Erënnerung eenheetlech wier, da wäert et wahrscheinlech richteg sinn. Am Sënn datt et keng falsch Äntwerte gëtt. Awer d'Performance vun hire Stäre vum Himmel wäert net gräifen. Ähnlech, wann Dir schreift spinlocks ouni d'Hierarchie vun de Cache ze verstoen, wäert d'Spär selwer richteg sinn, awer Dir kënnt iwwer d'Leeschtung vergiessen. An engem Sënn muss Dir Programmer schreiwen, déi op enger ganz einfacher Abstraktioun liewen, awer Dir musst d'Leit outsmart, déi Iech dës Abstraktioun ginn hunn: Dir musst wëssen, datt ënner der Abstraktioun eng Hierarchie vun der Erënnerung ass, datt et ass e Bus tëscht Iech an dëser Erënnerung, etc. Et gëtt also e Konflikt tëscht Abstraktiounen, déi eleng nëtzlech sinn, wat eis zu ganz spezifeschen a pragmatesche Problemer féiert.

Vitaliy: Wat iwwer d'Zukunft? Kënnt Dir viraussoen wéi d'Prozessoren sech weider entwéckelen? Et gëtt eng Iddi datt eng vun den Äntwerten d'Transaktiounsgediechtnes ass. Dir hutt wahrscheinlech nach eppes op Lager.

Maurice: Et sinn e puer grouss Erausfuerderunge virun. Eent ass datt kohärent Erënnerung eng wonnerbar Abstraktioun ass, awer et fänkt a spezielle Fäll ofzebriechen. Also, zum Beispill, NUMA ass e liewegt Beispill vun eppes wou Dir weider maache kënnt wéi wann een eenheetlech Erënnerung existéiert. Eigentlech - nee, d'Leeschtung wäert Iech kräischen. Irgendwann mussen d'Architekten d'Iddi vun enger vereenegter Erënnerungsarchitektur opginn, Dir kënnt net fir ëmmer virstellen. Nei Programméierungsmodeller wäerte gebraucht ginn, déi einfach genuch sinn ze benotzen a mächteg genuch fir déi ënnerierdesch Hardware effizient ze maachen. Dëst ass e ganz schwéiere Kompromiss, well wann Dir Programméierer d'Architektur weist déi tatsächlech an der Hardware benotzt gëtt, gi se verréckt. Et ass ze komplizéiert an net portabel. Wann Dir eng Interface presentéieren déi ze einfach ass, wäert d'Leeschtung schlecht sinn. Also wäerte vill ganz schwiereg Kompromësser musse gemaach ginn fir nëtzlech Programméierungsmodeller ze bidden, déi fir wierklech grouss Multi-Core Prozessoren applizéiert ginn. Ech net sécher op dass een aneren wéi eng schmuel Spezialist kapabel vun engem programméiere op engem 2000-Kär Computer. An ausser Dir maacht ganz spezialiséiert oder wëssenschaftlech Informatik, Kryptografie oder wat och ëmmer, et ass ëmmer nach guer net kloer wéi et richteg gemaach gëtt. 

Eng aner ähnlech Richtung ass spezialiséiert Architekturen. Grafikbeschleuniger sinn scho laang ronderëm, awer si scho e klassesche Beispill ginn wéi Dir eng spezialiséiert Zort Berechnung huelen an se op engem speziellen Chip lafen. Dëst ergëtt seng eegen Erausfuerderungen: Wéi kommunizéiert Dir mat esou engem Apparat, wéi programméiert Dir en. Ech hunn viru kuerzem un Aufgaben am Feld geschafft no Erënnerung Rechenzäit. Dir huelt e klenge Prozessor a kleeft et op e risege Stéck Erënnerung sou datt d'Erënnerung mat L1 Cache Geschwindegkeet leeft, an da kommunizéiert et mat engem Apparat wéi TPU - de Prozessor ass beschäftegt nei Aufgaben an Ärem Erënnerungskär ze lueden. D'Entwécklung vun Datenstrukturen a Kommunikatiounsprotokoller fir dës Zort Saach ass en anert interessant Beispill. Also spezialiséiert Prozessoren an Hardware wäerte fir eng laang Zäit Verbesserungen ënnerleien.

Alexey: Wat iwwer net-flüchteg Erënnerung (net liichtflüchtege Erënnerung)?

Maurice: Oh, dat ass en anert gutt Beispill! NVM wäert d'Art a Weis wéi mir Saache wéi Datestrukturen kucken vill änneren. Net-flüchteg Erënnerung, an engem Sënn, versprécht d'Saache wierklech ze beschleunegen. Awer et wäert d'Liewen net méi einfach maachen, well déi meescht Prozessoren, Cache a Registere nach ëmmer onbestänneg sinn. Wann Dir no engem Crash ufänkt, wäert Äre Staat an Ären Erënnerungszoustand net genau d'selwecht sinn wéi virum Crash. Ech sinn ganz dankbar fir d'Leit, déi am NVM involvéiert sinn - fir eng laang Zäit hunn d'Fuerscher eppes ze maachen, probéiert d'Korrektheetsbedéngungen erauszefannen. Berechnunge si richteg, wa se e Crash iwwerliewe kënnen, an deem den Inhalt vun de Cache an de Registere verluer geet, awer d'Haaptminne bleift intakt.

Compilers vs CPUs, RISC vs CISC, gedeelt Erënnerung vs Message Passage

Vladimir: Wat mengt Dir iwwer de Compiler versus Prozessoren Dilemma a punkto Instruktiounsset? Fir déi z'erklären, déi net am Thema sinn: wa mir an ongläiche Gedächtnis goen oder eppes wéi dat, kënne mir e ganz einfache Set vun Instruktiounen uwenden an de Compiler froen fir komplexe Code ze generéieren, dee vun den entdeckten Virdeeler profitéiere kann. Oder mir kënnen deen anere Wee goen: komplex Instruktiounen ëmsetzen an de Prozessor froen d'Instruktiounen nei ze bestellen an aner Manipulatioune mat hinnen ze maachen. Wat mengt Dir doriwwer?

Maurice: Ech hu wierklech keng Äntwert op déi Fro. Dës Debatt leeft zënter véier Joerzéngte. Et war eng Zäit tëscht verkierzt Kommando Formatioun an komplizéiert Biergerkricher goufen vun enger Rei vun Équipen gefouert. Fir eng Zäit hunn d'RISC-Leit gewonnen, awer dunn huet Intel hir Motoren nei opgebaut, sou datt e reduzéierten Instruktiounsset bannen benotzt gouf, an dee komplette gouf dobausse exportéiert. Vläicht ass dëst en Thema an deem all nei Generatioun seng eege Kompromësser muss fannen a seng eegen Entscheedungen treffen. Et ass ganz schwéier virauszesoen, wéi eng vun dëse Saachen besser wäert ausgoen. Also all Prognose, déi ech maachen, wäert fir eng gewëssen Zäit wouer sinn, an dann erëm fir eng Zäit falsch ginn, an dann erëm wouer sinn.

Alexey: Wéi heefeg ass et fir d'Industrie allgemeng datt e puer Iddien iwwer e puer Joerzéngte gewannen an an den nächsten verléieren? Ginn et aner Beispiller vun esou periodesch Ännerungen?

Maurice: Am Beräich vun der verdeeltem Informatik ginn et Leit déi un gleewen gemeinsam Erënnerung a Leit déi gleewen un Messagen. Ursprénglech am verdeelt Informatik, parallel Computing heescht Message Passe. Dunn huet een entdeckt datt gedeelt Erënnerung d'Programméiere vill méi einfach mécht. Déi aner Säit huet gesot datt d'gedeelt Erënnerung ze komplizéiert ass, well se Spären an dergläiche brauchen, also ass et derwäert op Sproochen ze plënneren, wou näischt anescht wéi Message Passage einfach existéiert. Eppes huet gekuckt wat doraus erauskoum a seet: "Wow, dës Messagerie Implementatioun gesäit ganz ähnlech wéi gedeelt Erënnerung aus, well Dir erstellt vill, vill vun dëse klenge Moduler, si schécken Messagen uneneen, a si all deadlock, - loosst eis eng gemeinsam Erënnerungsdatebank besser maachen!". Dat alles gëtt ëmmer erëm widderholl, an et ass onméiglech ze soen datt eng vun de Parteien eendeiteg Recht huet. Eng Säit wäert ëmmer dominéieren, well soubal ee vun hinnen bal gewënnt, erfannen d'Leit ëmmer erëm Weeër fir déi aner ze verbesseren.

D'Konscht fir brécheg Multi-threaded Code ze schreiwen

Alexei: Dëst ass ganz interessant. Zum Beispill, wa mir Code schreiwen, egal wéi eng Programméierungssprooch, musse mir normalerweis Abstraktioune kreéieren wéi Zellen déi gelies a geschriwwe kënne ginn. Awer tatsächlech, op e puer kierperlechen Niveau, kann et ausgesinn wéi e Message op engem Hardwarebus tëscht verschiddene Computeren an aneren Apparater ze schécken. Et stellt sech eraus datt et op béide Abstraktiounsniveauen gläichzäiteg geschafft gëtt.

Maurice: Et ass absolut wouer datt gemeinsam Erënnerung op Message Passage opgebaut ass - Bussen, Cache, asw. Awer et ass schwéier Programmer ze schreiwen andeems Dir Messagen passéiert, sou datt d'Hardware bewosst läit, wéi wann Dir eng Aart vun eenheetlecher Erënnerung hutt. Dëst wäert et méi einfach maachen fir Iech einfach, korrekt Programmer ze schreiwen ier d'Leeschtung ufänkt ze falen. Da seet Dir: et gesäit aus wéi wann et Zäit ass fir Frënn mam Cache ze maachen. An dat ass wann Dir ufänkt Iech Suergen iwwer d'Plaz vum Cache ze maachen, an da gi mir fort. An engem Sënn brécht Dir d'Abstraktioun: Dir wësst datt et net nëmmen flaach, eenheetlech Erënnerung ass, an Dir wäert dat Wëssen benotze fir Cache-frëndlech Programmer ze schreiwen. Dëst ass wat Dir an echte Aufgaben maache musst. Dëse Konflikt tëscht der flotter einfacher flotter Abstraktioun déi Dir kritt hutt an der schrecklech komplexer Ëmsetzung vun der Basisdaten Hardware ass wou jidderee säin eegene Kompromiss mécht. Ech hunn e Buch iwwer Multiprozessoren a Synchroniséierung, an enges Daags wollt ech e Kapitel iwwer Datestrukturen schreiwen java.util.concurrent. Wann Dir se kuckt, Saache wéi sprangen Lëschten Dëst sinn erstaunlech Konschtwierker. (Note vum Redakter: déi, déi mat der Java Sprooch vertraut sinn, sollten op d'mannst d'Implementatioun kucken ConcurrentSkipListMap, Dir kënnt op d'Linken kucken fir API и Quelltext). Mä aus menger Siicht wier et onverantwortlech, se de Schüler ze weisen, well esou eng Datestruktur ass eng Zort Guy an engem Zirkus, deen op engem Seel iwwer e Bierpit leeft. Wann Dir souguer e klengen Detail ännert, wäert d'ganz Struktur zesummeklappen. Dëse Code ass ganz séier an elegant just well et perfekt geschriwwe ass, awer déi geringsten Ännerung féiert zum kompletten Echec. Wann ech de Schüler dëse Code als Beispill ginn, da soen se direkt: Ech kann dat och! An da wäert e Fliger ofbriechen oder en Atomreakter explodéieren, an et wäert meng Schold sinn, datt ech hinnen net ze vill Informatioun zur richteger Zäit ginn hunn.

Alexey: Wéi ech e bësse méi jonk war, hunn ech vill Mol probéiert de Quellcode vum Doug Lee ze studéieren, zum Beispill, java.util.concurrent, well et Open Source ass, ass et ganz einfach et ze fannen an ze probéieren ze verstoen wat do lass ass. Et war net ganz gutt: dacks ass et komplett onkloer firwat den Doug decidéiert eppes op dës Manéier ze maachen, wann all déi aner et anescht maachen. Wéi erklärt Dir Är Schüler dës Saachen? Gëtt et e bestëmmte korrekte Wee fir déi spezifesch Detailer vun engem Hardcore Algorithmus ze beschreiwen, zum Beispill? Wéi maacht Dir et?

Maurice: Zeechnenproffen hunn e Cliché, deen se sech als éischt erënneren: Wann Dir wéi Picasso zeechne wëllt, musst Dir fir d'éischt léiere wéi een einfach realistesch Biller zeechnen, an eréischt wann Dir d'Regele kennt, kënnt Dir se briechen. Wann Dir direkt ufänkt mat de Regelen ze briechen, kritt Dir e Chaos. Als éischt léieren ech d'Schüler wéi een einfachen, korrekte Code schreift ouni sech iwwer d'Leeschtung ze këmmeren. Ech soen datt et komplex Timing Themen hei lauert, also maach der keng Suergen iwwer Cache, maach der keng Suergen iwwer Erënnerungsmodeller, gitt einfach sécher datt alles richteg funktionnéiert. Et ass scho schwéier genuch: Modern Programméiere ass net einfach eleng, besonnesch fir nei Studenten. A wann se eng Intuitioun hunn iwwer wéi richteg Programmer ze schreiwen, soen ech: kuckt op dës zwee Spinlock-Implementatiounen: eng ass ganz lues, an déi zweet ass och net ganz gutt, awer scho besser. Wéi och ëmmer, mathematesch sinn dës zwee Algorithmen d'selwecht. Tatsächlech benotzt ee vun hinnen Cache Uertschaft. Ee vun hinnen dréit op lokal cache Daten, an deen aneren mécht ëmmer erëm Operatiounen duerch de Bus. Dir kënnt net effizient Code schreiwen wann Dir et net versteet, wann Dir net wësst wéi Dir d'Abstraktioun briechen an d'Basisstruktur kucken. Awer Dir kënnt net direkt ufänken et ze maachen. Et gi Leit, déi dëst direkt ufänken an un hiren eegene Genie gleewen, normalerweis endet et schlecht, well se d'Prinzipien net verstinn. Keen zitt wéi de Picasso oder schreift Programmer wéi den Doug Lee, frësch aus der Uni, a senger éischter Woch. Et dauert Joer fir dësen Niveau vum Wëssen z'erreechen.

Alexey: Et stellt sech eraus datt Dir de Problem an zwee Deeler deelt: déi éischt ass Richtegkeet, déi zweet ass Leeschtung?

Maurice: Genau. An, an där Reiefolleg. En Deel vum Problem ass datt nei Studenten net bewosst sinn datt Richtegkeet schwéier z'erreechen ass. Si soen op den éischte Bléck: dat ass selbstverständlech richteg, et bleift just ze beschleunegen. Also heiansdo soen ech hinnen iwwer en inherent falschen Algorithmus wéi wann et richteg wier.

Wéi léiere Schüler wéi komplex Multi-threaded Code ze schreiwen

Alexei: Just fir ze kucken ob se den Trick kennen spieren?

Maurice: Ech warnen Iech ëmmer am Viraus, datt ech heiansdo mat de falsche Algorithmen kommen. Dir sollt d'Leit net täuschen. Ech proposéieren datt si skeptesch iwwer d'Informatioun sinn. Wann ech eppes soen a soen: "Kuckt, dat ass selbstverständlech richteg" - dat ass e Signal datt iergendwou versichen, Iech ze täuschen, an Dir sollt ufänken Froen ze stellen. Als nächst probéieren ech d'Schüler ze encouragéieren weider Froen ze stellen, an dann ze froen: "Wat geschitt wa mir alles loossen wéi et ass?". A si gesinn direkt de Feeler. Awer d'Studenten iwwerzeegen datt se sech ëm d'Korrektheet këmmeren mussen ass méi schwéier wéi et op den éischte Bléck schéngt. Vill vun dëse Schüler kommen mat programméiere Erfahrung am Lycée, puer hu schonn Aarbechtsplazen gelant an programmed do, a si sinn all voller Self-Vertrauen. Dëst ass eppes militäresch: Dir musst als éischt hire Mentalitéitswiessel änneren fir se ze iwwerzeegen gedëlleg d'Léisung vun opkomende Probleemer unzegoen. Oder vläicht ass et wéi buddhistesch Mönche: als éischt léiere se iwwer d'Korrektheet ze redenéieren, a wa se d'Weeër iwwer d'Korrektheet verstoen, däerfen se op den nächsten Niveau goen a sech ëm d'Leeschtung këmmeren.

Alexey: Dat ass, heiansdo weist Dir Schüler net-schaffen Beispiller, dank deem Dir Feedback kritt weist ob se d'Essenz vum Problem verstoen, ob se de falsche Code an déi falsch Resultat fannen kann. Gutt, wéi maachen d'Studenten normalerweis frou oder opgeregt?

Maurice: Bal ëmmer fannen d'Schüler endlech de Feeler. Wann se ze lues sichen, stellen ech féierend Froen, an hei ass et wichteg ze verstoen datt wa se ni täuscht ginn, se ufänken Är Wierder als ultimativ Wourecht ouni Gedanken ze gesinn. Dann langweilen si sech a schlofen an der Klass Facebook op hirem Laptop liesen. Awer wann Dir hinnen am Viraus matdeelt datt se scammed ginn an domm ausgesinn wa se keen Trick fillen, da gi se vill méi waakreg. Dëst ass gutt a ville Weeër. Ech hätt gär datt d'Schüler net nëmmen hiert Verständnis vun der Fro a Fro stellen, mee och d'Autoritéit vum Enseignant a Fro stellen. D'Iddi ass, datt de Schüler zu all Moment d'Hand ophiewe kann a soen: Ech mengen, wat Dir grad gesot hutt ass falsch. Et ass e wichtegt Léierinstrument. Ech wëll net, datt ee vun de Schüler sech sëtzt a roueg bei sech selwer denkt: dat alles schéngt e komplette Blödsinn, awer et ass ze grujeleg fir d'Hand opzehiewen, an tatsächlech ass hien e Professer, also alles wat hie seet stëmmt. Dofir, wa se am Viraus gewarnt ginn, datt net alles wat gesot gëtt onbedéngt richteg ass, hunn se en Ureiz fir méi Opmierksamkeet op d'Material ze bezuelen. Ech soen explizit datt Är Hand ophiewen a Froen stellen ass an der Rei. Är Fro kléngt vläicht domm oder naiv, awer dat ass dacks wéi déi bescht Froen entstoen.

Alexei: Ganz interessant. Normalerweis hunn d'Leit eng Aart psychologesch Barrière, déi hinnen verhënnert de Professer eng Fro ze stellen. Besonnesch wann et vill Leit am Raum sinn, a jidderee fäert, datt d'Diskussioun iwwer Är domm Fro d'Zäit vun all deene Leit wäert huelen. Ginn et Tricken fir dëst ze këmmeren?

Maurice: Ech halen dacks op a stellen déi klassesch Froen. Wäert all Ausso richteg sinn, oder wéi géifen se de Problem ënner Diskussioun léisen. Dëst ass e Schlësselschrëtt, besonnesch am Ufank vun enger Sessioun, wann d'Leit ongenéiert sinn och déi klengst Saach ze soen. Dir stellt de Schüler eng Fro a seet näischt méi. Et gëtt Rou, jidderee spannen e bëssen op, d'Spannung wiisst, dann brécht op eemol een zesummen, brécht a seet d'Äntwert. Also entwéckelt Dir d'Situatioun: et gëtt méi schwéier an onwuel ze bleiwen wéi ze äntweren! Dëst ass e Standard pädagogeschen Trick. All Enseignant op der Welt soll wëssen, wéi dat ze maachen.

Alexey: Elo hu mir e super Titel fir dësen Interview: "et ass méi einfach ze beäntweren wéi ze roueg ze bleiwen."

Vitaly: Loosst mech Iech nach eng Saach froen. Dir schafft un topologesche Beweiser. Wéi hutt Dir Iech iwwerhaapt dozou bedeelegt, well verdeelt Informatik an Topologie sinn ganz aner Saachen!

Maurice: Do ass eng verstoppte Relatioun. Wéi ech Student war a Mathematik studéiert hunn, hunn ech reng Mathematik studéiert. Ech hat bis um Enn vu mengem Studium kee richtegen Intressi u Computeren an ech hu mech an der dréngender Bedierfnes fonnt fir eng Aarbecht ze sichen. Als Student hunn ech algebraesch Topologie studéiert. Vill Joer méi spéit, iwwerdeems schaffen op engem Problem genannt "k-Set Accord Problem", Ech hunn Grafike benotzt fir de Problem ze modelléieren an, wéi et deemools ausgesäit, eng Léisung fonnt. Dir musst just sëtzen a ronderëm d'Grafik goen. Probéiert eng passend Äntwert op dëser Grafik ze fannen. Awer mäi Algorithmus huet net geschafft: et huet sech erausgestallt datt hien ëmmer an de Krees leeft. Leider konnt näischt vun dësem an der formeller Sprooch vun der Grafiktheorie erkläert ginn, der Sprooch déi all Informatiker kennen. An dunn hunn ech mech drun erënnert datt mir viru ville Joeren, och an Topologieklassen, d'Konzept benotzt hunn "einfach komplex", wat eng Generaliséierung vu Grafiken op méi héich Dimensiounen ass. Dunn hunn ech mech gefrot: Wat geschitt wa mir de Problem a Saache vereinfacht Komplexe reformuléieren? Dëst gouf de Schlëssel. Andeems Dir e méi mächtege Formalismus benotzt, gëtt de Problem op eemol vill méi einfach. D'Leit hunn et laang gekämpft, mat Grafike benotzt, awer si konnten näischt maachen. An och elo kënnen se net - déi richteg Äntwert war net den Algorithmus, mä de Beweis vun der Onméiglechkeet de Problem ze léisen. Dat ass, esou en Algorithmus gëtt et einfach net. Mee all Beweis vun Onméiglechkeet baséiert entweder op vereinfacht Komplexen, oder op Saachen, déi d'Leit virstellen, net als einfache Komplexen ze berücksichtegen. Vun der Tatsaach datt Dir eppes mat engem neien Numm genannt hutt, verléiert et seng Essenz net.

Vitaliy: Et stellt sech eraus datt Dir just Gléck hutt?

Maurice: Nieft dem Gléck ass et och ze preparéieren. Dat heescht, Dir sollt déi "nëtzlos" Saachen net vergiessen, déi Dir virdru geléiert hutt. Wat Dir méi nëtzlos Saachen léiert, wat Dir méi Abléck kënnt extrahéieren wann Dir mat engem neie Problem konfrontéiert sidd. Dës Aart vun intuitiv Muster Matching ass wichteg well ... Loosst eis just soen, et ass eng Kette: am Ufank hunn ech fonnt datt Grafike net ganz funktionnéieren oder guer net funktionnéieren, et erënnert mech un eppes vun virun aacht Joer a Studentejoren wou mir all dës einfach Komplexe studéiert hunn. Am Géigesaz, dëst erlaabt mech meng al Topologie Léierbuch ze fannen an et zréck a mengem Kapp lued. Awer wann et net fir dat aalt Wëssen wier, hätt ech ni e Virsprong gemaach fir den urspréngleche Problem ze léisen.

Nei Editioun vun The Art of Multiprocessor Programming

Alexei: Dir hutt e puer Wierder iwwer Äert Buch gesot. Et ass wahrscheinlech net dat gréisste Geheimnis datt Dir dat berühmtste Buch vun der Welt iwwer Multithreading geschriwwen hutt, "The Art of Multiprocessor Programming". Si ass scho ronn 11 Joer al an zënterhier nëmmen eraus  iwwerschafft Reprint. Gëtt et eng zweet Editioun?

Maurice: Et ass gutt, datt Dir gefrot hutt! Et wäert ganz geschwënn sinn, an dräi Méint oder esou. Et ginn zwee méi Auteuren, mir hunn vill méi Material bäigefüügt, d'Sektioun iwwer Gabel / join parallelism verbessert, eng Rubrik iwwer MapReduce geschriwwen, vill nei Saache bäigefüügt an onnéideg erausgehäit - eppes wat ganz interessant war am Moment vum Schreiwen déi éischt Editioun, ass awer net méi haut. Et huet sech als e ganz eescht iwwerschafft Buch erausgestallt.

Alexei: Alles ass scho gemaach, et bleift just ze verëffentlechen?

Maurice: Et muss nach un e puer Kapitelen geschafft ginn. Eise Verlag (ech mengen hien haasst eis schonn) probéiert nach ëmmer ze vermëttelen datt mir méi séier solle schaffen. Mir sinn wäit hannert Zäitplang. Theoretesch hätte mir dëst Buch e puer Joer virdrun gemaach.

Alexey: Gëtt et eng Chance fir eng nei Versioun vum Buch viru Chrëschtdag ze kréien?

Maurice: Dat ass eist Zil! Awer ech hunn d'Victoire esou oft virausgesot datt keen mech méi gleeft. Dir sollt mir och an dëser Saach och net ze vill trauen.

Alexei: Op alle Fall ass dëst fantastesch Neiegkeet. Déi éischt Editioun vum Buch huet mir wierklech gär. Dir kënnt soen, ech sinn Fan.

Maurice: Ech hoffen, datt déi nei Editioun Är häerzlech Begeeschterung wäert wäert sinn, Merci!

Wéi Transaktiouns Erënnerung erfonnt gouf

Vitaly: Déi nächst Fro ass iwwer Transaktiounsgediechtnes. Souwäit ech verstinn, sidd Dir e Pionéier an dësem Beräich, Dir hutt et an enger Zäit erfonnt, wou keen iwwer sou Saachen geduecht huet. Firwat hutt Dir decidéiert an dësem Beräich ze plënneren? Firwat waren Transaktiounen wichteg fir Iech? Hutt Dir geduecht datt se iergendwann an Eisen verkierpert ginn?

Maurice: Ech weess iwwer Transaktiounen zënter menger Ofschlossstudie.

Vitaliy: Jo, awer dëst sinn verschidden Transaktiounen!

Maurice: Ech hunn mam Elliott Moss un der net-blockéierender Müllsammlung geschafft. Eise Problem war datt mir atomesch e puer Wierder an der Erënnerung wollten änneren an da wieren d'Algorithmen ganz einfach, an op d'mannst e puer vun hinnen méi effizient ginn. Benotzt vergläichen-an-tauschen fir load-link/store-bedingtzur Verfügung gestallt vun der paralleler Architektur, ass et méiglech eppes ze maachen, awer et ass ganz ineffizient an ellent, well Dir musst mat Indirektniveauen këmmeren. Ech wëll d'Erënnerungswierder änneren an ech muss wiesselen, well ech kann nëmmen ee Pointer änneren, sou datt se op eng Aart vu Verzeechnesähnlech Struktur musse weisen. Mir hunn iwwer geschwat wéi flott et wier wa mir d'Hardware kéinte änneren fir datt se gläichzäiteg ophuelen. Den Elliot schéngt dëst gemierkt ze hunn: wann Dir d'Cache-Kohärenzprotokoller kuckt, liwwere se schonn déi meescht erfuerderlech Funktionalitéit. An enger optimistescher Transaktioun bemierkt de Cache Kohärenzprotokoll d'Präsenz vun engem Timing Konflikt an de Cache gëtt ongëlteg. Wat geschitt wann Dir spekulativ eng Transaktioun op Ärem Cache ufänkt an d'Mechanismen vum Kohärenzprotokoll benotzt fir Konflikter z'entdecken? Déi spekulativ Hardwarearchitektur war einfach ze designen. Also hu mir dat geschriwwen alleréischt Publikatioun iwwer transaktionell Erënnerung. Zur selwechter Zäit huet d'Firma, op där ech geschafft, Digital Equipment Corporation, en neien 64-Bit Prozessor mam Alpha gebaut. An dofir sinn ech gaang an hunn d'Alpha-Entwécklungsteam eng Presentatioun iwwer eist wonnerbar Transaktiounsgediechtnes gemaach, a si hunn gefrot: wéi eng zousätzlech Akommes wäert eis Firma kréien wa mir dat alles direkt an de Prozessor setzen? An dorop hat ech absolut keng Äntwert, well ech en Technolog sinn, ech si kee Marketing-Mënsch. Ech hat wierklech näischt ze soen. Si waren net ganz beandrockt datt ech näischt wousst.

Vitaly: Milliarden! Sot just "Milliarden"!

Maurice: Jo, dat hätt ech misste soen. Elo, an der Ära vun Startups an all dat, weess ech wéi een e Geschäftsplang schreift. Datt Dir e bëssen iwwert d'Gréisst vun der Potential Gewënn leien kann. Mä an deenen Deeg war et naiv, also ech sot just: "Ech weess et net." Wann Dir d'Geschicht vun der Verëffentlechung iwwer d'Transaktiounsgediechtnes kuckt, mierkt Dir datt et no engem Joer e puer Referenzen dorop waren, an dann fir ongeféier zéng Joer huet keen dësen Artikel iwwerhaapt zitéiert. D'Zitater koumen ëm 2004, wéi richteg Multi-Core entstanen ass. Wann d'Leit entdeckt hunn datt d'Schreiwe vum Parallelcode Sue ka verdéngen, huet nei Fuerschung ugefaang. Ravi Rajwar en Artikel geschriwwen, déi op iergendeng Manéier den Mainstream zum Konzept vun der Transaktiounsgediechtnes agefouert huet. (Notiz vum Redakter: Dësen Artikel huet eng zweet Versioun am Joer 2010 verëffentlecht an ass fräi verfügbar als PDF). Op eemol hunn d'Leit gemierkt wéi genau dat alles ka benotzt ginn, wéi se traditionell Algorithmen mat Spären beschleunegen. E gutt Beispill vun eppes wat an der Vergaangenheet just en interessanten akademesche Problem war. A jo, wann Dir mech deemools gefrot hätt, ob ech geduecht hunn, datt dat alles an Zukunft wichteg wier, hätt ech gesot: natierlech, mä wéini genee ass net kloer. Vläicht an 50 Joer? An der Praxis war et nëmmen e Jorzéngt. Et ass ganz flott wann een eppes mécht, an an nëmmen zéng Joer mierken d'Leit et.

Firwat et derwäert ass Fuerschung am Beräich vun verdeelt Informatik ze maachen

Vitaly: Wa mir iwwer nei Fuerschung schwätzen, wat géift Dir Lieser beroden - verdeelt Informatik oder Multi-Core a firwat? 

Maurice: Et ass einfach e Multi-Core Prozessor dës Deeg ze kréien, awer et ass méi schwéier e richteg verdeelt System opzestellen. Ech hunn ugefaang un hinnen ze schaffen well ech eppes anescht wéi menger Doktorat wollt maachen. Dëst ass de Rot, deen ech ëmmer Ufänger ginn: Schreif keng Suivi-Dissertatioun - probéiert an eng nei Richtung ze goen. Plus, Multithreading ass einfach. Ech kann experimentéieren op meng eegen Gabel lafen op engem Laptop ouni aus dem Bett erauszekréien. Awer wann ech op eemol e richtege verdeelte System géife kreéieren, muss ech vill Aarbecht maachen, Studenten unzéien, asw. Ech sinn eng faul Persoun a géif léiwer op Multi-Core schaffen. Experimentéiere mat Multi-Core Systemer ass och méi einfach wéi mat verdeelen ze experimentéieren, well och an engem domm verdeelt System ginn et ze vill Faktoren fir ze kontrolléieren.

Vitaliy: Wat maacht Dir elo, fuerscht Blockchain? Op wéi eng Artikele sollt Dir als éischt oppassen?

Maurice: Kuerzem opgetaucht ganz gudden Artikeldéi ech mat mengem Schüler geschriwwen, Vikram Saraf, speziell fir de Tokenomcs Konferenzen zu Paräis virun dräi Wochen. Dëst ass en Artikel iwwer nëtzlech verdeelt Systemer an deenen mir proposéieren Ethereum multi-threaded ze maachen. Elo ginn Smart Kontrakter (Code deen op der Blockchain leeft) sequenziell ausgefouert. Mir hunn en Artikel virdrun geschriwwen, deen iwwer e Wee geschwat huet fir spekulativ Transaktiounen ze benotzen fir de Prozess ze beschleunegen. Mir hunn vill Iddien aus Software Transaktiounsspeicher geholl a gesot datt wann Dir dës Iddien Deel vun der virtueller Etherium Maschinn mécht, da funktionnéiert alles méi séier. Awer dofir ass et néideg datt et keng Datekonflikter an de Kontrakter sinn. An dann hu mir ugeholl datt et am richtege Liewen wierklech keng esou Konflikter gëtt. Mee mir hu keng Chance fir erauszefannen. Dunn ass et eis opgetrueden datt mir bal zéng Joer vun der realer Kontraktgeschicht op den Hänn haten, also hu mir den Etherium Blockchain entlooss a gefrot: wat géif geschéien wann dës historesch records parallel lafen? Mir hunn eng bedeitend Erhéijung vun der Geschwindegkeet fonnt. An de fréie Deeg vum Etherium ass d'Geschwindegkeet ganz vill eropgaang, awer haut ass alles e bësse méi komplizéiert, well et manner Kontrakter gëtt an d'Wahrscheinlechkeet vu Konflikter iwwer Daten déi Serialiséierung erfuerderen ass méi héich ginn. Awer all dat ass experimentell Aarbecht mat realen historeschen Daten. Déi schéin Saach iwwer Blockchain ass datt et alles fir ëmmer erënnert, sou datt Dir zréck an d'Zäit kënnt a studéiere wat geschitt wier wa mir aner Algorithmen benotze fir de Code ze lafen. Wéi d'Leit an der Vergaangenheet eis nei Iddi gär hätten. Et ass vill méi einfach a méi agreabel esou Fuerschung ze maachen, well et ass eng Saach déi alles iwwerwaacht an alles ophëlt. Dëst ass schonn eppes méi wéi Soziologie wéi d'Entwécklung vun Algorithmen.

Huet d'Entwécklung vun Algorithmen gestoppt a wéi weider ze liewen

Vitaly: Zäit fir déi lescht theoretesch Fro! Fillt et wéi Fortschrëtter a kompetitiv Datestrukturen all Joer schrumpfen? Denkt Dir datt mir e Plateau an eisem Verständnis vun Datestrukturen erreecht hunn, oder ginn et e puer grouss Verbesserungen? Vläicht ginn et e puer schlau Iddien, déi alles komplett änneren kënnen?

Maurice: Mir kënnen e Plateau an Datestrukture fir traditionell Architekturen erreecht hunn. Awer Datenstrukture fir nei Architekturen sinn nach ëmmer e ganz villverspriechend Gebitt. Wann Dir Datenstrukture fir z.B. Hardware Beschleuniger wëllt erstellen, da si GPU-Datestrukture ganz anescht wéi CPU-Datestrukturen. Wann Dir Datestrukture fir Blockchainen designt, musst Dir Stécker vun Daten hashéieren an se dann an eppes wéi merkle Bam, fir Fälschungen ze verhënneren. An dësem Beräich ass et an der leschter Zäit e Stroum vun Aktivitéit ginn, vill maachen eng ganz gutt Aarbecht. Awer ech mengen wat wäert geschéien ass datt nei Architekturen an nei Uwendungen zu neien Datestrukture féieren. Eeler Uwendungen an traditionell Architektur - vläicht ass et net vill Plaz méi fir Fuerschung. Awer wann Dir vun der geschloener Streck erauskënnt an iwwer de Rand kuckt, gesitt Dir verréckte Saachen, déi de Mainstream net eescht hëlt - dat ass wou all déi spannend Saachen tatsächlech geschitt.

Vitaly: Dofir, fir e ganz berühmte Fuerscher ze sinn, hunn ech meng eegen Architektur missen erfannen 🙂

Maurice: Dir kënnt dem aneren seng nei Architektur "klauen" - et schéngt vill méi einfach!

Aarbecht op Brown University

Vitaliy: Kënnt Dir eis méi iwwer soen Brown Universitéitan deem schaffs du? Net vill ass iwwer hien am Kader vun der Informatiounstechnologie bekannt. Manner wéi iwwer MIT, zum Beispill.

Maurice: Brown University ass eng vun den eelsten Universitéiten an den USA. Ech mengen nëmmen den Harvard ass e bësse méi al. Brown gehéiert zu de sougenannte Ivy Ligen, déi eng Sammlung vun aacht eelsten Universitéiten ass. Harvard, Brown, Cornell, Yale, Columbia, Dartmouth, Pennsylvania, Princeton. Dëst ass eng Aart al, kleng an e bësse aristokratesch Uni. De Fokus ass op liberal Konschtausbildung. Et ass net probéiert wéi MIT ze sinn, MIT ass ganz spezialiséiert an technesch. Brown ass eng super Plaz fir russesch Literatur oder Klassesch Griichesch ze studéieren an natierlech Informatik. Et konzentréiert sech op ëmfaassend Ausbildung. Déi meescht vun eise Schüler ginn op Facebook, Apple, Google, also mengen ech, datt eis Schüler kee Problem hunn eng Aarbecht an der Industrie ze kréien. Ech sinn bei Brown schaffe gaang well ech virdrun bei der Digital Equipment Corporation zu Boston geschafft hunn. Et war eng Firma déi vill interessant Saachen erfonnt huet, awer d'Wichtegkeet vu perséinleche Computeren ofgeleent huet. Eng Firma mat engem schwieregen Schicksal, d'Grënner vun deem eemol jonk Revolutionäre waren, si hunn näischt geléiert an näischt vergiess, an dofir hu si sech bannent ongeféier engem Joerzéngt vu Revolutionären op Reaktiounsfäegkeeten ëmgewandelt. Si hu gär de Geck gemaach datt perséinlech Computeren an enger Garage gehéieren - natierlech eng verloossene Garage. Et ass ganz offensichtlech datt se vu méi flexibele Firmen zerstéiert goufen. Wéi et kloer gouf datt d'Firma an Ierger war, hunn ech mäi Frënd vu Brown genannt, deen ongeféier eng Stonn vu Boston ass. Ech wollt Boston deemools net verloossen, well aner Universitéiten net vill Plazen haten. Et war eng Zäit wou et am Beräich vun der Informatik nach net esou vill fräi Plazen ware wéi elo. A Brown hat eng Aarbecht, ech hu net aus mengem Haus ze plënneren, Ech hu meng Famill net ze plënneren, an ech genéissen wierklech zu Boston ze liewen! Also hunn ech d'Entscheedung getraff fir op Brown ze goen. Ech hunn dat gär. D'Studente si super, also hunn ech ni emol probéiert anzwousch anescht ze goen. Op engem Sabbatical hunn ech e Joer bei Microsoft geschafft, e Joer op den Technion zu Haifa gaang, an elo sinn ech um Algorand. Ech hu vill Kollegen iwwerall an dofir ass déi kierperlech Lag vun eise Klassesäll net esou wichteg. Awer dat Wichtegst sinn d'Schüler, si sinn déi bescht hei. Ech hunn nach ni probéiert soss anzwousch ze goen, well ech hei ganz frou sinn.

Awer trotz dem Brown säi Ruhm an den USA, ass hien iwwerraschend onbekannt am Ausland. Wéi Dir gesitt, maachen ech elo mäi Bescht fir dësen Zoustand ze korrigéieren.

Den Ënnerscheed tëscht Universitéit a Firmenfuerschung

Vitaliy: Okay, déi nächst Fro ass iwwer Digital Ausrüstung. Dir waart Fuerscher do. Wat ass den Ënnerscheed tëscht dem R&D Departement vun enger grousser Firma ze schaffen an op enger Uni ze schaffen? Wat sinn d'Virdeeler an Nodeeler?

Maurice: Ech sinn zanter zwanzeg Joer bei Microsoft gewiescht, an enk mat Leit bei Sun Microsystems, Oracle, Facebook, an elo Algorand zesumme geschafft. Baséierend op all deem, wëll ech soen, datt et méiglech ass éischt Klass Fuerschung souwuel an Entreprisen wéi op der Uni ze maachen. De wichtegen Ënnerscheed ass datt Dir an enger Firma mat Kollegen schafft. Wann ech op eemol eng Iddi fir e Projet hunn deen et nach net gëtt, muss ech meng Kollegen iwwerzeegen datt dat eng gutt Iddi ass. Wann ech um Brown sinn, da kann ech meng Schüler soen: loosst eis un der Antigravitatioun schaffen! Si ginn entweder bei een aneren oder iwwerhuelen de Projet. Jo, ech muss Finanzéierung fannen, ech muss eng Subventiounsanwendung schreiwen an sou weider. Op alle Fall wäerten et ëmmer vill Studenten sinn, an Dir kënnt unilateral Entscheedungen treffen. Awer op der Uni wäert Dir héchstwahrscheinlech net mat Leit vun Ärem Niveau schaffen. An der Welt vun der Industriefuerschung musst Dir fir d'éischt jidderengem iwwerzeegen datt Äre Projet et wäert ass. Ech kann näischt vu jidderengem bestellen. A béid dës Manéiere fir ze schaffen si wäertvoll, well wann Dir un eppes wierklech verréckten schafft an Är Kollegen schwéier ze iwwerzeegen sinn, ass et méi einfach d'Studenten ze iwwerzeegen - besonnesch wann Dir se bezuelt. Wann Dir un eppes schafft, wat vill Erfahrung an déif Expertise erfuerdert, da brauch Dir Kollegen, déi kënne soen "nee, et geschitt just datt ech dëst Gebitt verstinn an Är Iddi schlecht ass, näischt wäert aus et kommen." Dëst ass ganz nëtzlech a punkto Zäitverschwendung. An och, wann Dir an industrielle Laboratoiren vill Zäit verbréngt Berichter ze schreiwen, da verbréngt Dir dës Zäit op der Uni fir Suen ze fannen. Wann ech wëll datt Studenten iergendwou kënne reesen, muss ech d'Suen dofir soss anzwousch fannen. A wat Dir méi wichteg Är Positioun op der Uni ass, wat Dir méi Zäit hutt fir Suen ze sammelen. Also, elo wësst Dir wéi ech schaffen - e professionnelle Bettler! Wéi ee vun deene Mönche, déi mat engem Spendeplat rondrëm goen. Am Allgemengen, komplementar dës zwou Aktivitéiten all aner. Dofir probéieren ech op béide Welten ze liewen a fest op de Been ze stoen.

Vitaliy: Et schéngt, datt eng Firma ze iwwerzeegen ass méi schwéier wéi aner Wëssenschaftler ze iwwerzeegen.

Maurice: Méi haart, a vill méi. Ausserdeem, a verschiddene Beräicher ass et anescht: een mécht voll-Skala Fuerschung, an een ass op hiren Thema konzentréiert. Wann ech bei Microsoft oder Facebook géifen a soen, loosst eis Anti-Schwéierkraaft maachen, si géifen et kaum schätzen. Awer wann ech meng Graduéierter genee datselwecht géif soen, da géife se héchstwahrscheinlech direkt op d'Aarbecht kommen, obwuel ech elo scho Problemer hätt - well Dir musst Geld dofir fannen. Awer soulaang Dir wëllt eppes am Aklang mat den Ziler vun der Firma maachen, kann dës Firma eng ganz gutt Plaz sinn fir Fuerschung ze maachen.

Hydra an SPTDC

Vitaliy: Meng Froen kommen op en Enn, also schwätze mer e bëssen iwwer déi kommend Rees a Russland.

Maurice: Jo, ech freeën mech op Petersburg zréckzekommen.

Alexey: Et ass eng grouss Éier fir mech datt Dir dëst Joer bei eis sidd. Dëst ass Är zweete Kéier zu Sankt Petersburg, oder?

Maurice: Schonn déi drëtt!

Alexei: Huet et, awer SPTDC - genee déi zweet. Déi leschte Kéier gouf d'Schoul geruff SPTCC, elo hu mir ee Buschtaf geännert (C op D, Concurrent to Distributed) fir ze ënnersträichen datt et dëst Joer méi Beräicher am Zesummenhang mat verdeelt Computing sinn. Kënnt Dir e puer Wierder soen iwwer Är Presentatiounen an der Schoul an Hydra Konferenzen?

Maurice: An der Schoul wëll ech iwwer d'Basis vu Blockchain schwätzen a wat Dir domat maache kënnt. Ech géif gären weisen datt Blockchains ganz ähnlech mat der Multi-threaded Programméierung sinn, déi mir vertraut sinn, awer mat hiren eegene Nuancen, an et ass wichteg dës Differenzen ze verstoen. Wann Dir e Feeler an enger normaler Webapplikatioun maacht, ass et just lästeg. Wann Dir Buggy Code an enger finanzieller App schreift, wäert iergendeen definitiv all Är Suen klauen. Dëst ass e ganz aneren Niveau vu Verantwortung a Konsequenzen. Ech wäert e bëssen iwwer Beweis-vun-Aarbecht schwätzen, Smart Kontrakter, Transaktiounen tëscht verschiddene Blockchain.

Aner Spriecher wäerten nieft mir schaffen, déi och eppes iwwer de Blockchain ze soen hunn, a mir hu mir eis eens ënnerenee koordinéiert fir datt eis Geschichten gutt passen. Awer fir den Ingenieursgespréich wëll ech engem breede Publikum eng kloer Erklärung ginn firwat Dir net alles sollt gleewen wat Dir iwwer Blockchains héiert, firwat Blockchains e super Feld sinn, wéi et mat anere bekannten Iddien passt, a firwat mir sollten couragéiert an d'Zukunft kucken.

Alexey: Ausserdeem wëll ech soen datt dëst net am Format vun engem Meetup oder engem Benotzergrupp stattfënnt, wéi et virun zwee Joer war. Mir hu beschloss eng kleng Konferenz bei der Schoul ze maachen. De Grond ass, datt mir mat Peter Kuznetsov schwätzen, realiséiert, datt d'Schoul op nëmmen honnert limitéiert ass, vläicht 120 Leit. Zur selwechter Zäit ginn et vill Ingenieuren déi mat Iech wëllen schwätzen, Berichter besichen an allgemeng un d'Thema interesséiert sinn. Dofir hu mir eng nei Konferenz erstallt genannt Hydra. Iwwregens, keng Ahnung firwat Hydra?

Maurice: Well et wäert siwe Spriecher hunn? A si kënnen de Kapp ofgeschnidden ginn, an nei Spriecher wuessen op hirer Plaz?

Alexey: Eng super Iddi fir nei Spriecher ze wuessen. Awer wierklech, et gëtt eng Geschicht hei. Denkt un d'Legend vum Odysseus, wou hien tëscht ze segelen huet Scylla an Charybdis? Hydra ass eppes wéi Charybdis. D'Geschicht ass datt ech eemol op enger Konferenz geschwat hunn an iwwer Multithreading geschwat hunn. Et waren nëmmen zwee Bunnen op dëser Konferenz. Am Ufank vum Bericht hunn ech dem Publikum an der Sall gesot, datt si elo e Choix hunn tëscht Scylla a Charybdis. Mäi Geescht Déier ass Charybdis, well Charybdis huet vill Käpp, a mengem Thema ass multithreading. Sou erschéngen d'Nimm vun de Konferenzen.

Mir hunn op alle Fall souwuel Froen an Zäit aus. Also Merci Frënn fir e super Interview a bis zu SPTDC an Hydra 2019!

Et wäert méiglech sinn d'Kommunikatioun mam Maurice op der Hydra 2019 Konferenz weiderzemaachen, déi am Juli 11-12, 2019 zu St. Hie wäert mat engem Rapport kommen "Blockchainen an d'Zukunft vum verdeelte Computer". Tickete kënne kaaft ginn op der offizieller Websäit.

Source: will.com

Setzt e Commentaire