"Empiresch Resultater sinn nëmme fir Verëffentlechung, déi richteg Motiver vun der Aarbecht sinn ästhetesch." Super Interview mam Michael Scott

"Empiresch Resultater sinn nëmme fir Verëffentlechung, déi richteg Motiver vun der Aarbecht sinn ästhetesch." Super Interview mam Michael Scott Michael Scott - schonn 34 Joer aal als Professer fir Informatik op der University of Rochester, a bei senger Heemecht Universitéit vu Wisconsin-Madison war hie fir fënnef Joer Dekan. Hie fuerscht a léiert Studenten iwwer parallel a verdeelt Programméierung a Sproochdesign.

D'Welt kennt de Michael aus dem Léierbuch "Programméiere Sprooch Pragmatik", wat iwwer Aarbecht "Algorithmen fir skalierbar Synchroniséierung op Multiprocessoren mat gemeinsame Memory" krut den Dijkstra-Präis als ee vun de bekanntste am Beräich vun der verdeeltem Informatik. Dir kennt hien och als Auteur vun deem ganz Algorithmus Michael-Scott.

Zesumme mam Doug Lee huet hien déi net-blockéierend Algorithmen a synchron Schlaangen entwéckelt, déi d'Java Bibliothéiken ënnerstëtzen. Ëmsetzung "duebel Datestrukturen" an JavaSE 6 verbessert Leeschtung vun 10 Mol ThreadPoolExecutor.

Inhalt:

  • Fréi Carrière, Universitéit vu Rochester. Projet Charlotte, Lynx Sprooch;
  • IEEE Scalable kohärent Interface, MCS gespaarten;
  • Iwwerliewe an enger ëmmer verännerter Welt;
  • Ginn d'Schüler méi domm? Global Trends, Internationaliséierung;
  • Effektiv Aarbecht mat Studenten;
  • Wéi mat der Virbereedung vun neie Coursen a Bicher ze halen;
  • Linken tëscht Betrib an Akademie;
  • Praktesch Ëmsetzung vun Iddien. MCS, MS, CLH, JSR 166, schafft mam Doug Lee a méi;
  • Transaktiouns Erënnerung;
  • Nei Architekturen. D'Victoire vun der transaktionell Erënnerung ass no;
  • Net-flüchtege Erënnerung, Optane DIMM, ultra-séier Apparater;
  • Den nächste groussen Trend. Dual Datestrukturen. Hydra.

Interviewe ginn duerchgefouert vun:

Vitaly Aksenov - Moment e Postdoc bei IST Éisträich a Member vum Departement Computer Technologien op der ITMO Universitéit. Féiert Fuerschung am Beräich vun der Theorie a Praxis vu kompetitiven Datestrukturen. Ier hien um IST geschafft huet, krut hien seng PhD vun der Paris Diderot Universitéit an der ITMO Universitéit ënner der Leedung vum Professer Peter 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.

Fréi Carrière, Universitéit vu Rochester. Charlotte Projet, Lynx Sprooch.

Алексей: Fir unzefänken, wollt ech Iech soen datt mir a Russland all wierklech Informatik, Data Science an Algorithmen gär hunn. Et ass ganz obszön. Mir hunn alles gelies Buch vum Cormen, Leiserson a Rivest. Dofir sollten déi kommend Konferenz, d'Schoul an dësen Interview selwer ganz populär sinn. Mir krute vill Froen fir dësen Interview vu Studenten, Programméierer a Gemeinschaftsmemberen, also si mir ganz dankbar fir dës Geleeënheet. Kritt Informatik déiselwecht Léift an den USA?

Vum Michael: Eist Gebitt ass sou divers, et huet sou vill Richtungen, an et beaflosst d'Gesellschaft op sou vill verschidde Weeër, datt et schwéier ass fir Iech eng definitiv Äntwert ze ginn. Awer de Fakt ass datt et enorm Ännerungen am Geschäft, der Industrie, der Konscht an der Gesellschaft am Allgemengen an de leschten 30 Joer bruecht huet.

Vitali: Loosst eis mat eppes wäitem ufänken. A ville Universitéiten gëtt et eppes wéi Spezialisatioun an engem bestëmmte Beräich. Fir d'Carnegie Mellon Universitéit ass dëst parallel Computing, fir MIT ass et Kryptografie, Roboteren a Multithreading. Gëtt et sou eng Spezialisatioun op der University of Rochester?

Vum Michael: Fir éierlech ze sinn, géif ech soen datt CMU an MIT an alle Beräicher spezialiséiert sinn. Eis Departement huet ëmmer déi meescht Opmierksamkeet op kënschtlech Intelligenz bezuelt. D'Halschent vun de Leit, déi fir eis schaffen, beschäftegt sech mat AI oder Mënsch-Computer Interaktioun - dësen Undeel ass méi héich wéi an aneren Departementer, an ass ëmmer esou. Awer wéi ech op der Uni war, hunn ech keng Coursen an der AI, an ech hunn ni an dësem Beräich geschafft. Also meng Departement spezialiséiert op e Problem mat deem ech näischt ze dinn hunn. D'Troust ass, datt den zweet wichtegste Problem fir eis Departement parallel a multi-threaded programméiere ass, dat ass, meng Spezialisatioun.

Vitali: Dir hutt ugefaang an der Informatik ze schaffen, wéi d'Feld vu Multi-threaded Programméiere just entstanen ass. D'Lëscht vun Äre Publikatiounen weist datt Är éischt Wierker mat enger zimlech breet Palette vun Themen behandelt hunn: Gedächtnismanagement a Multi-threaded Systemer, verdeelt Dateiesystemer, Betribssystemer. Firwat esou Villsäitegkeet? Hutt Dir probéiert Är Plaz an der Fuerschungsgemeinschaft ze fannen?

Vum Michael: Als Student hunn ech matgemaach Charlotte Projet op der Universitéit vu Wisconsin, wou ee vun den éischte verdeelt Betribssystemer entwéckelt gouf. Do hunn ech zesumme mam Rafael Finkel geschafft (Raphael Finkel) an Marvin Solomon (Marvin Solomon). Meng Ofhandlung war fir d'Entwécklung vun enger Sprooch fir System Software fir verdeelt Systemer gewidmet - elo huet jiddereen doriwwer vergiess, a Gott sei Dank. Ech hunn d'Lynx Programméierungssprooch erstallt, déi geduecht war fir et méi einfach ze maachen Serveren fir e locker gekoppelt verdeelt Betribssystem ze kreéieren. Well ech deemools haaptsächlech u Betribssystemer involvéiert sinn, hunn ech ugeholl datt meng Carrière haaptsächlech mat hinnen verbonne wier. Mee Rochester war eng ganz kleng Uni, an dowéinst hunn déi verschidde Gruppen do ganz enk matenee interagéiert. Et waren net eng Dosen aner Betribssystemer Leit do fir mech ze schwätzen, sou datt all meng Kontakter mat Leit waren, déi a ganz anere Beräicher geschafft hunn. Ech hunn et wierklech gär, en Allrounder sinn ass e grousse Virdeel fir mech. Wa mir speziell iwwer Multi-threaded Datestrukturen a Synchroniséierungsalgorithmen schwätzen, dann hunn ech ugefaang mat hinnen komplett zoufälleg ze schaffen.

IEEE Scalable Coherent Interface, MCS Sperrung.

Vitali: Kënnt Dir mir e bësse méi doriwwer soen?

Vum Michael: Dëst ass eng witzeg Geschicht déi ech ni midd jidderengem ze soen. Et ass op enger Konferenz geschitt ASPLOS zu Boston - dëst war am spéiden 80er oder fréi 90er. John Mellor-Crummey (John Mellor-Crummey), en Diplom vun eiser Fakultéit. Ech kannt hien, awer mir haten net virdru gemeinsam Fuerschung gemaach. Mary Vernon (Mary Vernon) vu Wisconsin huet e Gespréich iwwer e Multiprozessor System, deen se a Wisconsin entwéckelt hunn: Wisconsin Multicube. Dëse Multicube hat e Synchroniséierungsmechanismus um Hardwareniveau genannt Q op Sync Bit, a spéider gouf den Q op Lock Bit ëmbenannt well et wéi Colby Kéis geklongen huet, wat e Pun war. Wann Dir un Multithreading Mechanismen interesséiert sidd, wësst Dir wahrscheinlech datt Colby schliisslech de Synchroniséierungsmotor fir den IEEE Scalable Coherent Interface Standard gouf. Dëst war e Sperrmechanismus deen Hiweiser vun engem Cache an en aneren um Hardwareniveau erstallt huet, sou datt all Sperrhalter wousst, wiem säin Tour et war. Wéi de John an ech iwwer dëst héieren hunn, hu mir eis géigesäiteg gekuckt a gesot: firwat maachen dat um Hardwareniveau? Kann net datselwecht erreecht ginn andeems Dir vergläichen-a-swap benotzt? Mir hunn ee vun den Notizbicher geholl, déi am Klassesall leien, an hunn drop gekrabbelt MCS blockéieren, während d'Maria hire Bericht weidergeet. Duerno hu mir et ëmgesat, experimentéiert, d'Iddi huet sech als Erfolleg erausgestallt, a mir hunn den Artikel publizéiert. Zu där Zäit, fir mech, war dëst Thema just eng lëschteg Oflenkung, duerno hunn ech geplangt an d'Betribssystemer zréckzekommen. Awer dunn ass en anere Problem op déiselwecht Linn entstanen, a schliisslech gouf Synchroniséierung, Multithreading an Datestrukturen meng Spezialitéit. Wéi Dir gesitt, ass dëst alles duerch Zoufall geschitt.

Vitali: Ech kennen d'MCS-Blockéierung scho laang, awer bis elo wousst ech net datt et Är Aarbecht war, a verstanen net datt et en Akronym fir Är Familljennimm war.

Wéi iwwerliewen an enger ëmmer verännerter Welt?

Алексей: Ech hunn eng Fro zu engem Zesummenhang Thema. Virun 30 oder 40 Joer gouf et a verschiddene Spezialitéiten méi Fräiheet. Wann Dir wëllt eng Carrière am Multithreading oder verdeelt Systemer ufänken, Dir sidd wëllkomm, wann Dir wëllt an Betribssystemer ze kréien, kee Problem. An all Beräich gouf et vill oppe Froen a wéineg Experten. Schmuel Spezialisatiounen sinn elo entstanen: et gi keng just Experten op Betribssystemer am Allgemengen, et gi Spezialisten op eenzel Systemer. Et ass d'selwecht mat Multithreading a verdeelt Systemer. Awer de Problem ass datt eist Liewen net endlos ass, jidderee kann nëmmen e puer Joerzéngte fir d'Fuerschung widmen. Wéi an dëser neier Welt ze iwwerliewen?

Vum Michael: Mir sinn net speziell an deem Sënn dat selwecht geschitt eemol an anere Beräicher. Ech hat d'Gléck datt ech ugefaang hunn an der Informatik ze schaffen wann d'Feld a sengem "Teenage" Joer war. E puer Fundamenter ware scho geluecht, awer alles war nach ganz onreift. Dës Geleeënheet kënnt net dacks. Elektrotechnik ass scho ganz laang ronderëm, Physik nach méi laang, Mathematik bal zënter dem Ufank vun der Zäit. Awer dat heescht net datt keen méi interessant Entdeckungen an der Mathematik mécht. Et sinn nach vill oppe Problemer, mee gläichzäiteg muss méi geléiert ginn. Dir hutt Recht ze bemierken datt et elo vill méi Spezialisatioune gëtt wéi et virdru waren, awer dat heescht nëmmen datt mir eis an der selwechter Situatioun fannen wéi déi meescht aner Beräicher vun der mënschlecher Aktivitéit.

Алексей: Ech interesséieren mech fir de méi prakteschen Aspekt vun der Fro hei. Ech hunn e Mathematikhannergrond, a während mengem Studium sinn ech dacks op Konferenzen deelgeholl an u verschiddenen wëssenschaftlechen Themen geschafft. Ech hunn entdeckt datt keen aus dem Publikum meng Berichter versteet, an déiselwecht Manéier waren d'Berichter vun anere Leit nëmme fir sech selwer verständlech. Dat ass net de Fall bei héijen Themen, mä soubal Dir ufänkt an eppes ze verdéiwen, kann d'Publikum net méi mat Iech halen. Wéi maacht Dir mat deem?

Vum Michael: Net ëmmer erfollegräich. Ech hunn viru kuerzem e Bericht virbereet an deem ech ze déif an technesch Detailer gaangen sinn. Wéi d'Diskussioun virugaangen ass, gouf kloer datt de gréissten Deel vum Publikum mech net verstanen huet, also muss ech mech direkt un d'Situatioun upassen. D'Rutschen konnten net geännert ginn, sou datt et net ganz gutt ausgefall ass - also, allgemeng gesi, probéieren ech keng Rutschen ze benotzen. Am Allgemengen, mäi Rot ass Är Publikum ze berücksichtegen. Dir musst wëssen mat wiem Dir schwätzt, wat hiren Niveau vum Wëssen ass, a wat se brauchen ze héieren fir Är Aarbecht ze schätzen.

Vitali: Kënnt Dir eis en Hiweis ginn iwwer wat dëse Virtrag goung?

Vum Michael: Fir éierlech ze sinn, géif ech léiwer dëst Thema net ausbauen, fir déi betraffe Leit anonym ze loossen. De Punkt ass datt mir dacks ze déif an d'Intricacies vum Problem kommen, un deem mir schaffen, sou datt et schwéier gëtt fir eis am Ufank vum Gespréich z'erklären firwat de Problem interessant a wichteg ass a wéi et sech mat Themen verbonnen Publikum weess schonn. No menger Observatioun hunn d'Schüler déi schwéierst Zäit dës Fäegkeet ze léieren. An dat war och de schwaache Punkt vu mengem rezente Bericht. E richteg strukturéierte Bericht soll vun Ufank un de Kontakt mam Publikum fannen, hinnen erkläre wat genee de Problem ass a wéi et sech mat Themen déi him scho bekannt ass. Wéi technesch dës Aféierung ass hänkt vum Publikum of. Wann et komplett motley ass, da kann de Bericht Multi-Etapp sinn. D'Aféierung soll fir jiddereen zougänglech sinn, an um Enn kann d'Stéck net mat Iech halen, awer d'Leit, déi relativ vertraut sinn mat Ärem Feld, kënnen et erausfannen.

Ginn d'Schüler méi domm? Global Trends, Internationaliséierung.

Алексей: Dir hutt Studenten zënter e puer Joerzéngte beobachtet. Ginn d'Studente méi domm oder méi schlau vu Joerzéngt zu Joerzéngt oder Joer zu Joer? A Russland beschwéieren d'Proffen dauernd datt d'Studenten all Joer méi domm ginn, an et ass wierklech net kloer wat se maache sollen.

Vum Michael: Dir héiert wierklech vill Negativitéit vun eis al Leit. Ënnerbewosst hu mir eng Tendenz fir Studenten ze erwaarden all déi 30 Joer Erfahrung déi mir scho hunn. Wann ech e méi déif Verständnis hunn wéi ech 1985 gemaach hunn, firwat hunn d'Schüler dat net? Wahrscheinlech well se 20 Joer al sinn, wat mengt Dir? Ech mengen déi bedeitendst Ännerungen an de leschte Joerzéngte waren an der demographescher Zesummesetzung: mir hunn elo däitlech méi international Studenten, mat Ausnam vu Kanadier. Et ware fréier vill Kanadier, well mir ganz no un der kanadescher Grenz sinn an d'Studente vun do aus kënnen de Weekend heemreesen. Awer elo ginn et vill gutt Universitéiten a Kanada, a Kanadier léiwer hei ze studéieren däitlech manner vun hinnen kommen an d'USA.

Алексей: Denkt Dir datt dëst e lokale Trend ass oder e globalen?

Vum Michael: Ech erënnere mech net genau wien, awer een huet gesot datt d'Welt flaach ass. Eist Feld ass vill méi international ginn. ACM Konferenzen Virdrun goufen se exklusiv an den USA ofgehalen, dann hu se décidéiert se eemol all 4 Joer an anere Länner ze halen, an elo sinn se op der ganzer Welt ofgehale ginn. Dës Ännerungen betraff nach méi IEEE, well et ëmmer méi eng international Organisatioun war wéi ACM. An et gi Programmstull aus China, Indien, Russland, Däitschland a villen anere Länner, well elo iwwerall gëtt et vill.

Алексей: Mee, wahrscheinlech, et ginn negativ Aspekter vun esou Internationaliséierung?

Vum Michael: Ech géif soen, datt all déi negativ Aspekter net op Technologie bezéien, mä mat der Politik. Eemol war den Haaptproblem de Fakt datt d'USA déi schlau an talentéiert Leit aus Länner ronderëm d'Welt geklaut hunn. An elo sinn den Haaptproblem déi politesch Spiller tëscht verschiddene Länner ronderëm Visaën an Immigratioun.

Алексей: Dat heescht, Barrièren an esou Saachen. Et ass kloer.

Владимир: Perséinlech interesséieren ech mech wéi eng Approche Dir maacht wann Dir en neit Fach fir Studenten enseignéiert. Et gi verschidde Méiglechkeeten: Dir kënnt als éischt probéieren se ze inspiréieren fir eppes Neies ze probéieren, oder Dir kënnt méi Opmierksamkeet op d'Detailer bezuelen wéi eng gewësse Technologie funktionnéiert. Wat hues du léiwer?

Effektiv Aarbecht mat Studenten

Алексей: A wéi fënnt een dee verdammt Gläichgewiicht tëscht der éischter an zweeter?

Vum Michael: De Problem ass datt d'Coursen net ëmmer esou goen wéi ech gär hätt. Ech ginn de Schüler normalerweis am Viraus Liesmaterial fir datt se sech dran verdéiwen, et no beschtméiglechst verstinn a Froen iwwer déi Deeler formuléieren déi se net konnten verstoen. Da kënnt Dir an der Klass op déi schwieregste Momenter konzentréieren an se zesummen entdecken. Dëst ass wéi ech gär Klassen léieren. Mee opgrond vun der Laascht, déi elo op de Schüler läit, kann ech net ëmmer suergen, datt si am Viraus virbereeden. Als Resultat musst Dir vill méi Zäit fir d'allgemeng Erzielung vum Material widmen wéi Dir wëllt. Trotzdem probéieren ech eis Klassen interaktiv ze halen. Soss ass et méi einfach, eemol e Video opzehuelen, deen d'Schüler dann doheem kënne kucken. De Punkt vu Live Klassen ass mënschlech Interaktioun. An der Klass benotzen ech léiwer Kräid an eng Tafel anstatt Rutschen, ausser a bestëmmte Fäll, wann en Diagramm ze komplex ass fir op der Tafel ze weisen. Dank dësem muss ech net un engem steife Stonneplang halen. Well et keng strikt Uerdnung ass an där ech d'Material ginn, erlaabt et mir et un d'Publikum unzepassen ofhängeg vun de Froen déi ech kréien. Am Allgemengen probéieren ech d'Coursen esou interaktiv wéi méiglech ze maachen, sou datt d'Material, déi ech presentéieren, hänkt vun de Froen of, déi mir gestallt ginn.

Владимир: Et ass flott. A menger Erfahrung ass et zimlech schwéier Nolauschterer ze kréien fir Froen ze stellen. Och wann Dir am Viraus frot fir Froen ze stellen, egal wéi domm oder schlau, si sinn ëmmer nach roueg. Wéi maacht Dir mat deem?

Vum Michael: Dir wäert laachen, awer wann Dir laang genuch roueg bleift, desto oder spéider gëtt jiddereen onwuel an een stellt eng Fro. Oder Dir kënnt eng einfach technesch Fro mat engem Jo oder Nee Äntwert froen fir ze bestëmmen ob d'Leit verstinn wat just gesot gouf. Zum Beispill, gëtt et eng daten Course am Beispill uewen? Wien mengt esou? Wien mengt net? Wie versteet guer näischt, well am Ganzen nëmmen d'Halschent vun den Hänn eropgaange sinn?

Vitali: A wanns de falsch geäntwert hues, gidd een aus der Klass erausgehäit :)

Vum Michael: Wann Dir näischt geäntwert hutt, da sollt Dir eng Fro stellen. Ech muss verstoen wat genau de Student muss wëssen fir d'Fro ze beäntweren déi ech just gestallt hunn. Ech brauch se fir mech ze hëllefen hinnen ze hëllefen. Ech si prett hinnen unzepassen fir datt se de Problem verstoen. Awer wann ech net weess wat an hirem Kapp leeft, kann ech et net maachen. A wann een de Studenten net laang genuch Fridde gëtt, stelle se heiansdo um Enn déi richteg Froen, also déi, déi mir erméiglechen ze gesinn, wat genee an de Kapp vun de Schüler leeft. 

Алексей: Féieren dës Froen heiansdo zu Iddien, déi Dir selwer net virdru geduecht hutt? Sinn se onerwaart? Erlaaben se Iech e Problem an engem neie Liicht ze kucken?

Vum Michael: Et gi Froen déi en neie Wee fir Material presentéieren opzemaachen. Et ginn dacks Froen déi zu interessanten Probleemer féieren, iwwer déi ech net geplangt hunn ze schwätzen. D'Studente soen mir dacks datt ech eng Tendenz hunn fir vum Thema ze goen wann dat geschitt. An, laut hinnen, ass dat ganz dacks den interessantsten Deel vun der Lektioun. Ganz selten, just e puer Mol, hunn d'Schüler Froen gestallt, déi eng nei Richtung an der Fuerschung gefuerdert hunn an zu engem Artikel gewuess sinn. Dëst geschitt vill méi dacks a Gespréicher mat Studenten anstatt während de Klassen, awer heiansdo geschitt et während de Klassen. 

Алексей: Also hunn d'Schüler Iech Froen gestallt op Basis vun deenen et dunn méiglech war en Artikel ze publizéieren?

Vum Michael: Jo. 

Vitali: Wéi oft hutt Dir dës Gespréicher mat Studenten? Wéini wëlle se méi léieren wéi dat wat während der Lektioun ofgedeckt gouf?

Vum Michael: Mat menge Graduéierter Studenten - déi ganzen Zäit. Ech hunn iwwer 5 oder 6 vun hinnen, a mir diskutéieren eppes mat hinnen all der Zäit. A Gespréicher vun dëser Aart mat Studenten, déi einfach a meng Klassen deelhuelen, sinn net ganz heefeg. Obwuel ech wënschen, datt dat méi dacks geschitt ass. Ech de Verdacht, datt si einfach Angscht hunn an der Fakultéit während Büro Stonnen ze kommen. All Semester hunn e puer Studenten et fäerdeg bruecht dës psychologesch Barrière ze iwwerwannen, an et ass ëmmer ganz interessant mat hinnen no der Klass ze schwätzen. Richteg, wann all d'Schüler sou dapere wieren, hätt ech einfach net genuch Zäit. Also vläicht funktionnéiert alles wéi et soll. 

Vitali: Wéi kënnt Dir Zäit fannen fir mat Studenten ze kommunizéieren? Souwäit ech weess, hunn d'Enseignanten an den USA vill Aarbecht - Subventiounen ufroen an esou. 

Vum Michael: Éierlech gesot, mat Studenten ze schaffen ass den Aspekt vu menger Aarbecht, déi ech am meeschte genéissen. Also ech hu genuch Motivatioun dofir. Déi meescht vun der Zäit, déi ech a mengem Büro verbréngen, gëtt u Versammlungen vun allen Aarte verbruecht. Et ass elo Summer, also meng Zäitplang ass manner beschäftegt, mee am Schouljoer, all Dag vun 9 bis 17 hunn ech alles gepackt. Fuerschung Aarbecht, Rezensiounen, Subventiounen - fir all dëst ginn et nëmmen owes a Weekend. 

Wéi mat der Virbereedung vun neie Coursen a Bicher ze halen.

Алексей: Gitt Dir de Moment weider Coursen un, déi Dir scho laang geléiert hutt? Eppes wéi eng Aféierung an Informatik.

Vum Michael: Dat éischt wat hei am Kapp kënnt ass e Cours a Programméierungssproochen. 

Алексей: Wéi anescht ass haut d'Versioun vun dësem Cours aus deem wat et virun 10, 20, 30 Joer war? Vläicht wat méi interessant hei ass net d'Detailer vun engem bestëmmte Cours, mä déi allgemeng Trends.

Vum Michael: Mäi Cours iwwer Programméierungssproochen war e bëssen ongewéinlech zu där Zäit wou ech et erstallt hunn. Ech hunn et an de spéiden 1980er ugefaang ze liesen, ersat mäi Kolleg, Doug Baldwin (Doug Baldwin). D'Thema vum Cours war nëmmen tangentially zu menger Spezialitéit verbonnen, awer wann hien fortgaang ass, war ech de beschte Kandidat fir de Cours ze léieren. Ech hu keng vun de Léierbicher gefall, déi deemools existéiert hunn, also hunn ech um Enn d'Léierbuch fir dëse Cours selwer geschriwwen. (Notiz vum Redakter: Mir schwätzen iwwer d'Buch "Programméiere Sprooch Pragmatik") Et gëtt elo a méi wéi 200 Universitéite ronderëm d'Welt benotzt. Meng Approche ass ongewéinlech, well se bewosst d'Problemer vum Sproochgestaltung an Ëmsetzung vermëschen, a vill op d'Interaktioun tëscht dësen Aspekter an alle méigleche Beräicher opmierksam mécht. D'Basis Approche ass onverännert bliwwen, wéi och vill Basiskonzepter: Abstraktiounen, Nummraim, Modularitéit, Typen. Awer de Set vu Sproochen, mat deenen dës Konzepter bewisen ginn, huet sech ganz geännert. Wéi de Cours fir d'éischt erstallt gouf, goufen et vill Beispiller am Pascal, awer haut hu vill vu menge Schüler net emol vun dëser Sprooch héieren. Awer si kennen Swift, Go, Rust, also muss ech iwwer d'Sprooche schwätzen déi haut benotzt ginn. Och d'Studente sinn elo gutt beherrscht a Skriptsproochen, awer wéi ech ugefaang hunn dëse Cours ze léieren, war et alles ëm kompiléiert Sproochen. Elo brauche mir vill Material iwwer Python, Ruby a souguer Perl, well dat ass wat de Code an dësen Deeg geschriwwe gëtt, an et gi vill interessant Saachen an dëse Sprooche geschitt, och am Beräich vum Sproochdesign. 

Vitali: Da wäert meng nächst Fro mat der viregter Zesummenhang sinn. Wéi an dësem Beräich ze halen? Ech de Verdacht datt d'Aktualiséierung vun esou engem Cours vill Aarbecht erfuerdert - Dir musst nei Sprooche verstoen, d'Haaptideeën verstoen. Wéi maacht Dir dat?

Vum Michael: Ech kann net prägen, datt ech ëmmer 100% geléngen. Awer déi meescht vun der Zäit maachen ech just wat all déi aner maachen - den Internet liesen. Wann ech Rust verstoen wëll, ech Google et, gitt op d'Mozilla Säit a liest d'Handbuch, déi do gepost gouf. Dëst ass Deel vun de Saachen déi an der kommerziell Entwécklung geschéien. Wa mir iwwer Wëssenschaft schwätzen, da musst Dir d'Rapporte bei den Haaptkonferenzen verfollegen. 

Link tëscht Geschäft an Akademie

Vitali: Loosst eis iwwer d'Verbindung tëscht Geschäft a wëssenschaftlecher Fuerschung schwätzen. An Ärer Lëscht vu Wierker hunn ech e puer Artikelen iwwer Cache Kohärenz fonnt. Ech verstinn datt d'Cache Konsistenz Algorithmen onbestänneg waren an der Zäit wou se publizéiert goufen? Oder net verbreet genuch. Wéi heefeg waren Är Iddien an der Praxis?

Vum Michael: Ech sinn net genee sécher op wéi eng Publikatiounen Dir schwätzt. Ech hunn zimlech vill Aarbecht mat menge Schüler Bill Bolosky gemaach (William Bolosky) und Leonidas Kontotanassis (Leonidas Kontothanassis) an de fréien 1990er iwwer Memory Management vun Neumann Maschinnen. Zu där Zäit hunn d'Geschäfter nach kee Verständnis wéi een e Multiprocessor System richteg mécht: ass et derwäert Ënnerstëtzung ze kreéieren fir Zougang zu Remote Memory um Hardwareniveau ze kreéieren, ass et derwäert d'Erënnerung ze verdeelen, ass et méiglech de Cache ze lueden Remote Memory, oder ass et néideg Säiten am Operatiounsraum ze réckelen? De Bill an de Leonidas hunn allebéid an dësem Beräich geschafft an hunn Approche exploréiert ouni Remote Cache Luede. Dëst war net direkt mat der Cache-Kohärenz verbonnen, awer et war nach ëmmer Aarbecht op NUMA Memory Gestioun, a spéider modern Approche fir Säitplazéierung a modernen Betribssystemer sinn dovunner gewuess. Insgesamt hunn de Bill an de Leonidas eng wichteg Aarbecht gemaach, obwuel net déi beaflosst an dësem Beräich - et ware vill aner Leit déi deemools un der selwechter Saach geschafft hunn. Méi spéit hunn ech un engem Thema geschafft am Zesummenhang mat der Cachekohärenz am Kontext vun der Hardware Transaktiounsspeicher. De Grupp, mat deem ech un dësem Problem geschafft hunn, huet op en Enn e puer Patenter kritt. Et stinn zimmlech interessant Iddien hannendrun, awer ech denken net datt se um Enn an der Praxis ëmgesat ginn. Op eng Manéier oder aner, et ass schwéier fir mech hir Rentabilitéit ze beurteelen. 

Алексей: An deem Sënn eng méi perséinlech Fro: Wéi wichteg ass et fir Iech, datt Är Iddien ëmgesat ginn? Oder denkt Dir net driwwer?

Vum Michael: Ech stellen dës Fro gär an Interviewe mat anere Leit, Bewerberinnen oder Kandidaten, déi op d'Fakultéit wëlle bäitrieden. Ech denken net datt et eng richteg Äntwert op dës Fro gëtt. Leit, déi cool Saache maachen, kënne ganz aner Motivatioune hunn. Ech sinn u Problemer ugezunn, well ech se perséinlech interessant fannen, net wéinst hire praktesche Virdeeler. Awer op der anerer Säit, wann eng interessant Saach nach ëmmer Applikatioun fënnt, hunn ech et wierklech gär. Also et ass net einfach hei. Awer am Ufank vu menger Aarbecht sinn ech nach ëmmer net vun der Iddi vun engem Endverbrauch an der Welt gedriwwen, mee duerch d'Harmonie vun der Iddi an de Wonsch et ze entdecken an ze kucken wat doraus kënnt. Wann et um Enn praktesch Resultater gëtt, super. 

Алексей: Duerch Är Ausbildung an Erfahrung sidd Dir besser fäeg wéi déi meescht de Wäert vun aneren Iddien ze beurteelen. Dir kënnt se vergläichen a bestëmmen wat besser funktionnéiert mat wéi. Ech si sécher, datt Dir eng Meenung iwwer Saachen hutt, déi am Moment an der Praxis vu groussen Hiersteller wéi Intel benotzt ginn. Aus Ärer Siicht, wéi korrekt ass de Cours deen dës Firmen huelen?

Vum Michael: Praxis dréint ëmmer ëm dat wat kommerziell erfollegräich ka sinn, dat ass, Profit ze kreéieren, an Dir besser een aneren doriwwer froen. Meng Aarbecht Resultater meeschtens zu Publikatiounen, an am Beräich vun Betribssystemer si evaluéiert baséiert op Leeschtung Indicateuren: Vitesse, Energieverbrauch, Code Gréisst. Mä et huet mir ëmmer geschéngt, datt dës empiresch Resultater nëmmen un Artikelen bäigefüügt ginn, fir datt se kënne publizéiert ginn, an déi richteg Motiver fir d'Aarbecht vun de Leit sinn ästhetesch. Fuerscher bewäerten Léisungen aus enger artistescher Perspektiv, si këmmeren sech ëm wéi elegant d'Iddien sinn, a si probéieren eppes besser ze kreéieren wéi existéierend Approchen. Fuerscher gi vu perséinlechen, subjektiven, ästheteschen Motiver gedriwwen. Mä Dir kënnt net iwwer dëst am Artikel selwer schreiwen dës Saache sinn net Argumenter fir de Programm Comité. Glécklecherweis sinn elegant Léisungen dacks och séier a bëlleg. Eng Dose vu menge Kollegen an ech hunn dëst Thema virun ongeféier 15 Joer diskutéiert an hunn um Enn en Artikel doriwwer geschriwwen. Ech mengen Dir kënnt et elo nach fannen, et heescht "Wéi evaluéiert Systemfuerschung" oder eppes wéi dat, et huet méi wéi eng Dosen Auteuren. Dëst ass deen eenzegen Artikel an deem ech den Auteur zesumme sinn Sasha Fedorova, Also wann Dir eng Sich no hirem Numm a menger Lëscht vu Publikatiounen maacht, fannt Dir wat Dir braucht. Et schwätzt iwwer d'Bewäertung vu Systemfuerschung a wéi wichteg Eleganz ass. 

Алексей: Also ass et en Ënnerscheed tëscht dem Standard vun deem wat gutt an der Wëssenschaft an am Geschäft ugesi gëtt. D'Wëssenschaft evaluéiert d'Performance, Stroumverbrauch, TDP, Einfachheet vun der Ëmsetzung, a vill méi. Hutt Dir d'Méiglechkeet dës Zort Fuerschung op der Uni ze maachen? Hutt Dir e Labo mat verschiddene Maschinnen a verschiddenen Architekturen, an deem Dir Experimenter maache kënnt?

Vum Michael: Jo, eis Departement huet vill verschidden interessant Maschinnen. Meeschtens si se kleng, mir hunn e klenge Cluster a vill Multiprocessor Systemer mat verschiddene Beschleuniger. Zousätzlech huet de Campus e risege Rechenzentrum deen Wëssenschaftler aus e puer Dosen verschiddenen Disziplinnen servéiert. Et huet ongeféier dausend Noden an zwanzegdausend Kären, alles op Linux. Wann de Besoin entsteet, kënnt Dir ëmmer e puer AWS kafen. Also hu mir keng bedeitend Restriktiounen mat Hardware. 

Алексей: Wéi war et virun drësseg Joer? Waren et dann Problemer?

Vum Michael: Et war deemools e bëssen anescht. An der Mëtt-bis-Enn vun den 1980er Jore gouf d'Wëssenschaft als kuerz u Rechenressourcen ugesinn. Fir dës Situatioun ze léisen, huet d'National Science Foundation (National Science Foundation) e Programm vun der koordinéierter experimenteller Fuerschung erstallt (Coordinated Experimental Research, CER). D'Missioun vum Programm war d'Informatikinfrastruktur fir Informatik Departementer ze bidden, an et huet bedeitend Ännerung erreecht. Mat de Suen, déi si zur Verfügung gestallt huet, hu mir op der University of Rochester 1984 en 128-Knuet BBN Butterfly kaaft, dëst war e Joer ier ech do ukomm sinn. Deemools war et de weltgréisste Multiprozessor System mat gedeelt Erënnerung. Et hat 128 Prozessoren, all op engem separaten Motherboard, a besetzt véier Racken. All Prozessor hat e Megabyte Erënnerung, 128 Megabytes RAM war deemools en onvirstellbare Betrag. Op dëser Maschinn hu mir MCS Sperrung fir d'éischte Kéier implementéiert. 

Алексей: Also, wann ech dech richteg verstinn, dann ass de Problem mat der Hardware am Moment geléist? 

Vum Michael: Am Allgemengen, jo. Et ginn e puer Opgepasst: éischtens, wann Dir Computerarchitektur um Chipniveau maacht, ass et schwéier an engem akademeschen Ëmfeld ze maachen, well et vill besser Tools gi fir et am Geschäft ze maachen. Wann Dir eppes méi kleng wéi 10 Nanometer braucht, musst Dir et bei engem aneren bestellen. An dësem Beräich ass et vill méi einfach e Fuerscher bei Intel ze sinn. Wann Dir un opteschen Kommunikatiounen op Chips oder op Solid-State Memory schafft, fannt Dir Technologien am Geschäft, déi nach net an der Wëssenschaft sinn, also musst Dir Allianzen erstellen. Zum Beispill, Stephen Swanson (Steven Swanson) erstallt esou eng Partnerschaft fir nei Erënnerung Technologien. Dës Form funktionnéiert net ëmmer, awer an e puer Fäll kann et zimlech erfollegräich sinn. Zousätzlech ass d'Entwécklung vun de mächtegste Rechensystemer an der Wëssenschaft méi schwéier. Déi gréisste Supercomputerprojeten déi momentan an den USA, Japan a China sinn, konzentréieren sech all op d'Geschäft. 

Praktesch Ëmsetzung vun Iddien. MCS, MS, CLH, JSR 166, zesumme mam Doug Lee a méi.

Vitali: Dir hutt scho geschwat wéi Dir ugefaang un Synchroniséierungsalgorithmen ze schaffen. Dir hutt zwee ganz berühmt Artikelen iwwer MCS blockéieren и Michael-Scott Queue (MS), déi an engem Sënn am Java ëmgesat goufen. (Notiz vum Redakter: all Publikatioune kënne gekuckt ginn Link). Do gouf dës Blockéierung mat e puer Ännerungen ëmgesat an et huet sech erausgestallt CLH Spär, an d'Schlaang gouf wéi virgesinn ëmgesat. Awer vill Jore sinn tëscht der Verëffentlechung vun Ären Artikelen an hirer praktescher Uwendung vergaang. 

Алексей: Et schéngt ongeféier 10 Joer am Fall vun der Schlaang.

Vum Michael: Ier dës Funktiounen an der Java Standardbibliothéik erschéngen?

Vitali: Jo. Wat hutt Dir gemaach fir dëst ze maachen? Oder hu se näischt gemaach?

Vum Michael: Ech kann Iech soen wéi MS Queue an Java 5. E puer Joer ier et eraus koum, hunn ech mam Mark Moyers Grupp bei Sun Microsystems an hirem Labo bei Boston geschafft. Hien huet en Atelier organiséiert fir Leit, déi hie kannt, déi un interessante Problemer am Multithreading schaffen, well hie wollt Themen fannen, déi hien un hir Firma ka verkafen. Do begéint ech den Doug Lea fir d'éischt. Den Doug an ech an ongeféier 25 aner Leit aus der Sonn waren zesummen iwwer dem Doug seng Presentatioun diskutéiert JSR 166, déi spéider java.util.concurrent gouf. Niewt dem Wee sot den Doug datt hien d'MS Schlaang benotze géif, awer dofir brauch hien e Konter fir d'Zuel vun den Elementer an der Schlaang fir d'Interface. Dat ass, dëst soll duerch eng separat Method gemaach ginn, atomarer, korrekt a séier. Ech hu virgeschloen einfach Seriennummeren un d'Knäppchen ze addéieren, d'Zuel vum éischte Node an de leschten ze huelen an een vun deem aneren ze subtrahéieren. Den Doug huet de Kapp gekraazt, gesot "firwat net", an huet um Enn just dat gemaach. Mir hunn diskutéiert dës Approche an der Bibliothéik ëmzesetzen, awer den Doug huet déi meescht vun der Aarbecht selwer gemaach. Als Resultat huet hien et fäerdeg bruecht exzellent Multithreading Support am Java z'etabléieren. 

Алексей: Also, wann ech richteg verstinn, soll d'.size () Method Deel vun der Norm Schlaang Interface gewiescht, an et soll eng algorithmic Komplexitéit vun O haten (1)?

Vum Michael: Jo, an zousätzlech zu dëser, eng separat Comptoir néideg.

Алексей: Well wann Dir d'.size () Method op Java nennt, gëtt erwaart datt d'Resultat direkt verfügbar ass an net baséiert op der aktueller Gréisst vun der Sammlung. Ech gesinn, merci.

Vum Michael: E puer Joer méi spéit hunn ech mat mengem Student Bill Scherer un duebelen Datestrukturen geschafft - tatsächlech ass dat wat ech wäert schwätzen Bericht iwwer Hydra. Den Doug ass bei eis komm a sot datt hien se am Java Executor Framework benotze kann. Zesumme mam Bill hu si zwou Implementatioune geschaf, déi sougenannte fair an onfair Schlaangen. Ech hunn hinnen iwwer dëse Projet beroden, obwuel ech net un der Schreiwen vum eigentleche Code deelgeholl hunn. Als Resultat ass d'Geschwindegkeet vun den Exekutoren wesentlech eropgaang. 

Владимир: Hutt Dir falsch Implementatioune vun Ären Algorithmen begéint oder Ufroe fir nei Features ze addéieren? Am Allgemengen soll d'Praxis mat der Theorie zesummefalen, awer zimlech dacks ënnerscheede se sech. Ugeholl datt Dir en Algorithmus geschriwwen hutt, an op Pabeier funktionnéiert et, awer d'Leit, déi an der Ëmsetzung involvéiert sinn, hunn Iech ugefaang fir méi Features oder eng Aart Tweaking vum Algorithmus ze froen. Hutt Dir schons esou Situatiounen?

Vum Michael: Dat eenzegt Beispill an deem een ​​bei mech komm ass a gefrot huet "wéi et ëmzesetzen" war dem Doug seng Fro, iwwer déi ech scho geschwat hunn. Awer et goufen e puer Fäll wou interessant Ännerungen gemaach gi fir praktesch Bedierfnesser ze passen. Zum Beispill huet d'K42 Team bei IBM den MCS-Schloss ëmgewandelt an et zu engem Standard-Interface gemaach, sou datt et kee Besoin war fir de Queue Node hin an hier an d'Acquisitioun a Verëffentlechungsroutinen ze passéieren. Dank dësem Standard-Interface huet eng Iddi, déi an der Theorie schéin war, an der Praxis ugefaang ze schaffen. Et ass iwwerraschend datt se ni en Artikel doriwwer publizéiert hunn, an obwuel se e Patent kruten, hunn se et spéider opginn. D'Iddi war wonnerbar, an ech probéieren doriwwer ze schwätzen wann méiglech. 

Et goufen aner Fäll wou d'Leit Verbesserunge vun den Algorithmen gemaach hunn, déi ech publizéiert hunn. Zum Beispill huet d'MS-Schlaang en zwee-Schrëtt Installatiounsmechanismus, wat bedeit datt et zwee CAS op de kritesche Wee vun der Schlaang waren. Op eeler Autoen waren CAS zimlech deier. Intel an aner Hiersteller hunn se viru kuerzem zimmlech gutt optimiséiert, awer eemol waren dës 30-Zyklus-Instruktiounen, sou datt méi wéi een op de kritesche Wee war onerwënscht. Als Resultat gouf eng aner Schlaang entwéckelt, déi ähnlech wéi d'MS Schlaang war, awer déi nëmmen eng atomar Operatioun um kritesche Wee hat. Dëst gouf erreecht wéinst der Tatsaach, datt während enger gewësser Zäit d'Operatioun O (n) Zäit dauere konnt, anstatt O (1). Et war onwahrscheinlech, awer méiglech. Dëst ass geschitt wéinst der Tatsaach, datt a bestëmmte Momenter den Algorithmus d'Schlaang vun Ufank un op déi aktuell Positioun an dëser Schlaang duerchgaang ass. Am Allgemengen, huet sech den Algorithmus ganz erfollegräich. Souwäit ech weess, ass et net ganz vill benotzt, deelweis well atomar Operatiounen däitlech manner Ressourcen erfuerderen wéi virdrun. Awer d'Iddi war super. Ech hunn och wierklech d'Aarbecht vum Dave Dice vun Oracle gär. Alles wat hie mécht ass ganz praktesch an hie benotzt Eisen ganz clever. Hien hat eng Hand a vill vun den NUMA-bewosste Synchroniséierungsalgorithmen a Multi-threaded Datestrukturen. 

Владимир: Wann Dir Algorithmen schreift oder Studenten léiert, ass d'Resultat vun Ärer Aarbecht net direkt ze gesinn. D'Gemeng brauch Zäit fir sech mat engem neien Artikel vertraut ze maachen. Den neien Algorithmus fënnt net direkt Uwendung. 

Vum Michael: Et ass wäit net direkt kloer, ob den Artikel bedeitend wäert sinn oder net. Ech mengen et wier interessant eng Etude vu Pabeieren ze maachen déi Auszeechnunge bei Konferenzen gewonnen hunn. Dat heescht, kuckt op d'Artikelen, déi d'Leit an de Programmkommissiounen eng Kéier als déi bescht ugesinn hunn. Dir musst probéieren duerch d'Zuel vun de Linken an den Impakt op d'Geschäft ze berechnen, wéi beaflosst dës Artikele wierklech an 10, 20, 25 Joer waren. Ech bezweifelen datt et eng staark Korrelatioun tëscht deenen zwee wier. Et wäert net null sinn, awer héchstwahrscheinlech wäert et vill méi schwaach sinn wéi mir wëllen. Vill Iddie bleiwen laang net opgefuerdert ier se verbreet ginn. Zum Beispill, loosst eis Transaktiouns Erënnerung huelen. Méi wéi 10 Joer ass vergaang vun der Zäit wou den ursprénglechen Artikel publizéiert gouf bis zur Zäit wou d'Leit ugefaang hunn Maschinnen domat ze bauen. A virun der Erscheinung vun dëser Erënnerung an kommerziellen Produkter - an all 20. Fir eng ganz laang Zäit huet keen op den Artikel opmierksam gemaach, an dann ass d'Zuel vun de Linken op et staark eropgaang. Et wier schwéier dat am Viraus virauszesoen. Op der anerer Säit, heiansdo fannen Iddien direkt Ëmsetzung. Virun e puer Joer hunn ech e Pabeier mam Joe Izraelevitz fir DISC geschriwwen, deen eng nei formell Definitioun vu Validitéit fir persistent Datestrukturen proposéiert huet, déi benotzt kënne ginn nodeems de Computer deen se leeft ofgebrach ass. Ech hunn den Artikel vun Ufank un gefall, awer et huet sech vill méi populär gewisen wéi ech erwaart hunn. Et gouf vu verschiddene Gruppe benotzt a gouf schlussendlech d'Standarddefinitioun vu Persistenzstrukturen. Wat natierlech flott ass.

Владимир: Ginn et Techniken déi Dir fir Bewäertung benotzt? Probéiert Dir iwwerhaapt Är Artikelen an Är Studenten ze evaluéieren? Am Sënn vun ob déi Persoun déi Dir geléiert hutt an déi richteg Richtung geet.

Vum Michael: Wéi all déi aner bezuelen ech méi op wat ech am Moment maachen. Nach eng Kéier, wéi all déi aner, kontrolléieren ech heiansdo Google Scholar fir ze kucken ob meng vergaangen Aarbechte zitéiert ginn, awer dat ass méi aus Virwëtz. Meeschtens sinn ech absorbéiert mat deem wat meng Schüler elo maachen. Wann et drëm geet déi aktuell Aarbecht ze bewäerten, ass en Deel dovun ästhetesch Iwwerleeungen, wat elegant ass a wat net. An um alldeeglechen Niveau spillen oppe Froen eng grouss Roll. Zum Beispill kënnt e Student bei mech mat enger Grafik vun e puer Resultater, a mir probéieren ze verstoen wou e komescht Verhalen vun der Grafik hierkënnt. Allgemeng versichen mir an eiser Aarbecht dauernd Saachen ze verstoen déi mir nach net verstinn. 

Transaktiouns Erënnerung

Vitali: Vläicht kënne mir e bëssen iwwer Transaktiouns Erënnerung schwätzen?

Vum Michael: Ech mengen et ass derwäert op d'mannst e bëssen ze soen, well ech vill Effort an et. Dëst ass en Thema op deem ech méi Publikatiounen hunn wéi all aner. Awer gläichzäiteg, komesch genuch, war ech ëmmer ganz skeptesch iwwer d'Transaktiounsgediechtnes. Menger Meenung no, Artikel vum Herlihy a Moss (M. Herlihy, J. E. B. Moss) gouf viru senger Zäit publizéiert. An de fréien 1990er hunn se virgeschloen datt d'Transaktiounsgediechtnis talentéiert Programméierer hëllefe kënnen op Multi-threaded Datestrukturen ze schaffen, sou datt dës Strukturen dann als Bibliothéiken vun gewéinleche Programméierer benotzt kënne ginn. Dat ass, et wier eng Hëllef fir den Doug Lee seng JSR 166 ze maachen. Awer d'Transaktiounsspeicher war net geduecht fir Multi-threaded Programméierung einfach ze maachen. Awer genee sou huet et ugefaang an de fréien 2000er ze gesinn, wéi et verbreet gouf. Et gouf ugekënnegt als e Wee fir de Problem vun der paralleler Programméierung ze léisen. Dës Approche huet mech ëmmer hoffnungslos geschéngt. Transaktiounsspeicher konnt et nëmme méi einfach maachen parallel Datestrukturen ze schreiwen. Dëst, et schéngt mir, ass wat si erreecht huet. 

Iwwer d'Schwieregkeet fir Multi-threaded Code ze schreiwen

Алексей: Ganz interessant. Et schéngt eng gewësse Barrière tëscht reguläre Programméierer ze sinn an déi, déi Multi-threaded Code schreiwen kënnen. D'lescht Joer hunn ech e puer Mol mat Leit geschwat déi e puer algorithmesche Kader implementéiert hunn. Zum Beispill mam Martin Thomson, wéi och mat Programméierer déi op Multi-threaded Bibliothéiken schaffen. (Notiz vum Redakter: De Martin Thompson ass e ganz berühmten Entwéckler, huet hien geschriwwen Stéierer и Aeron. An hien huet och de Bericht op eiser Joker 2015 Konferenz, Videoopnam verfügbar op YouTube. Hien ass d'selwecht opgemaach dëser Konferenz keynote Opnahmen och verfügbar). D'Haaptfuerderung, se soen, ass d'Algorithmen séier an einfach ze benotzen. Dat ass, si versichen dës Barrière ze iwwerwannen an esou vill Leit wéi méiglech un dëser Géigend unzezéien. Wat haalt dir dovunner?

Vum Michael: Dëst ass den Haaptproblem vu Multithreading: wéi héich Leeschtung z'erreechen ouni d'Komplexitéit vum System ze erhéijen. 

Алексей: Well wann se probéieren Komplexitéit ze vermeiden, gëtt den Algorithmus manner universell.

Vum Michael: De Schlëssel hei ass richteg entworf Abstraktiounen. Et schéngt mir datt dëst allgemeng den Haapt Saach ass fir Computersystemer als Feld. Butler Lampson benotzt dëse Begrëff gär, an hie nennt eis "Händler vun Abstraktiounen." Einfach Technologien existéieren haut net. D'Prozessoren, déi mir benotzen, hunn 10 Milliarden Transistoren - Einfachheet ass aus der Fro. Zur selwechter Zäit ass d'ISA vill méi einfach wéi de Prozessor, well mir eng ganz laang Zäit geschafft hunn fir et mat héijer Leeschtung an enger relativ einfacher Interface ze bidden. Mee och bei hatt ass net alles glat. Dee selwechte Problem ass mat Beschleuniger déi elo um Maart erschéngen. Froen stelle sech - wéi Dir déi richteg Interface fir d'GPU mécht, e Verschlësselungsmechanismus, Kompressioun, e Transcodéierungsmechanismus, e linear Algebra Mechanismus, oder souguer e méi flexibel FPGA. Wéi eng Interface ze kreéieren déi den Tool einfach ze benotzen mécht a Komplexitéit verstoppt? Et wäert et net lass ginn, awer éischter verstoppt et vun engem einfache Programméierer. 

Алексей: Wéi ech et verstinn, hu mir nach ëmmer eng Barrière fir Abstraktiounen ze verstoen. Loosst eis de Gedächtnismodell an eiser Etapp vun der Entwécklung vu Wëssenschaft an Technologie huelen, dëst ass eng vun den Haaptabstraktiounen. Dank et sinn all Programméierer an zwou Gruppen opgedeelt: de gréissten Deel sinn déi, déi et net verstinn, an de klengen Deel sinn déi, déi verstinn oder mengen datt se et verstinn. 

Vum Michael: Dat ass eng gutt Fro - versteet ee vun eis wierklech den Erënnerungsmodell?

Vitali: Besonnesch am C++.

Vum Michael: Schwätzt iergendwann mam Hans Boehm. Hien ass ee vun de schlauste Leit, déi ech kennen, e féierende Expert op Erënnerungsmodeller. Hie wäert Iech direkt soen datt et vill ass wat hien net versteet. Awer wa mir zréck op d'Thema vun Abstraktiounen zréckkommen, dann ass menger Meenung no déi wichtegst Iddi am Beräich vun Erënnerungsmodeller an de leschten 30 Joer ausgedréckt. an der Dissertatioun vum Sarita Adve. (Notiz vum Redakter: eng komplett Lëscht vu Publikatiounen ass verfügbar Link).

Алексей: Meng Fro ass: kënnt dës Barrière aus der Natur vum Konzept? 

Vum Michael: Nee. Sarita ass zu der Conclusioun komm, datt mat der richteger Approche Dir all d'Komplexitéit erfollegräich verstoppen, héich Leeschtung kréien an dem Programméierer eng einfach API ginn. A wann Dir dës API verfollegt, kënnt Dir konsequent Konsistenz erreechen. Ech mengen dat ass de richtege Modell. Schreift Code ouni Datenrennen a kritt sequenziell Konsistenz. Natierlech, fir d'Wahrscheinlechkeet vum Rennen ze reduzéieren, gi speziell Tools gebraucht, awer dat ass eng aner Saach. 

Владимир: Sinn et Zäiten an Ärer Carrière, wou e Problem, dee geléist schéngt, op eemol zu enger Katastroph verwandelt huet, oder et huet sech erausgestallt, datt dëse Problem onléisbar war? Zum Beispill, an der Theorie kënnt Dir all Zuel Faktor oder bestëmmen ob eng Zuel Prime ass. Mä an der Praxis kann dëst schwéier ginn mat der aktueller Hardware ze Faktor Zuelen. Huet Iech eppes ähnleches geschitt?

Vum Michael: Ech erënnere mech net direkt un esou eppes. Et sinn Zäite ginn, wou et mir geschéngt huet, datt an engem bestëmmte Beräich näischt méi ze maachen wier, mee dunn ass eppes Neies an interessant do geschitt. Zum Beispill hunn ech geduecht datt d'Gebitt vun der onlimitéierter Schlaang scho Reife erreecht huet. No e puer Verbesserunge vun der MNS Schlaang ass näischt méi geschitt. An dann Morrison (Adam Morrison) an Afek (Yehuda Afek) erfonnt LCRQ Schlaang. Et gouf kloer datt eng onlimitéiert Multi-threaded Schlaang méiglech war, wou meeschtens nëmmen eng Ofdreiwung-an-Inkrementinstruktioun um kritesche Wee war. An dëst huet et méiglech gemaach eng Uerdnung vun der Gréisst besser Leeschtung ze erreechen. Et ass net datt mir net wëssen datt d'Fetch-and-Increment eng ganz nëtzlech Saach ass. Den Eric Freudenthal huet iwwer dëst a senger Aarbecht um Ultracomputer mam Allan Gottlieb am spéiden 1980er geschriwwen, awer et goung ëm limitéiert Schlaangen. De Morrison an den Afek konnte Fetch-and-Increment op enger onlimitéierter Schlaang benotzen.

Nei Architekturen. Ass d'Victoire vun der Transaktiouns Erënnerung no?

Владимир: Sicht Dir no neien architektonesche Léisungen, déi fir Algorithmen nëtzlech kënne sinn? 

Vum Michael: Natierlech ginn et vill Saachen, déi ech géif gären ëmgesat gesinn. 

Владимир: Wéi eng Zort zum Beispill?

Vum Michael: Éischtens, e puer einfache Verlängerungen op eis Hardware-Niveau Transaktiounsspeicher an Intel an IBM Prozessoren. Besonnesch, ech hätt gär datt déi net-transaktionell Belaaschtung an de Buttek, dee just geschitt ass, direkt bannent Transaktiounen verfügbar ass. Si féieren direkt zu Schleifen an der geschitt-virdrun Sequenz, sou datt se schwéier kënne sinn. Awer wann Dir Schichten vun der Abstraktioun behält, ginn et vill ganz interessant Saachen déi Dir ausserhalb vun der Transaktioun maache kënnt wärend et geschitt. Ech weess net wéi schwéier dëst wier ze realiséieren, awer et wier ganz nëtzlech. 

Eng aner nëtzlech Saach ass de Cache vum Fernspeicher ze lueden. Ech mengen desto oder spéider wäert dat gemaach ginn. Dës Technologie erlaabt d'Schafung vu Systemer mat disaggregéierter Erënnerung. Et wier méiglech ze halen, soen, 100 Terabytes vun netflüchtege Erënnerung an engem Rack, an de Betribssystem selwer géif dynamesch entscheeden, wéi eng Sektiounen vun deem Gedächtnis dem kierperlechen Adressraum vun de Prozessoren entspriechen. Dëst wier extrem nëtzlech fir Cloud Computing, well et erlaabt grouss Quantitéiten un Erënnerung un d'Aufgaben ze ginn déi et brauchen. Ech mengen een et wäert maachen.

Vitali: Fir iwwer Transaktiounsgediechtnes ze schwätzen, hunn ech nach eng Fro zu dësem Thema. Wäert Transaktiounsspeicher schlussendlech Standard Multi-threaded Datestrukturen ersetzen?

Vum Michael: Nee. Transaktiounen sinn e spekulative Mechanismus. Um Programméierungsniveau sinn dës Atomschlässer, awer dobannen si Spekulatiounen. Esou Prognosen funktionnéieren wann déi meescht vun de Schätzunge richteg sinn. Dofir funktionnéiert d'Transaktiounsspeicher gutt wann Threads kaum matenee interagéieren, an Dir musst just sécher sinn datt et keng Interaktioune gëtt. Awer wann e Message tëscht Threads ufänkt, sinn Transaktioune vu wéineg Notzung. Loosst mech erklären, mir schwätzen iwwer de Fall wann Transaktiounen ëm déi ganz atomar Operatioun gewéckelt sinn. Si kënnen nach ëmmer erfollegräich als Komponente fir Multi-threaded Datestrukturen benotzt ginn. Zum Beispill, wann Dir eng dräi-Wuert CAS braucht, an Dir musst dräi kleng Saachen an der Mëtt vun engem wierklech multithreaded Algorithmus multithread deen mat zwanzeg Threads zur selwechter Zäit funktionnéiert. Am Allgemengen kënnen Transaktiounen nëtzlech sinn, awer si eliminéieren net d'Noutwendegkeet fir richteg Multi-threaded Datestrukturen ze designen. 

Net-flüchtege Erënnerung, Optane DIMM, ultra-séier Apparater.

Vitali: Déi lescht Saach, iwwer déi ech gär géif schwätzen, ass d'Thema vun Ärer aktueller Fuerschung: net-flüchteg Erënnerung. Wat kënne mir an deem Beräich an nächster Zukunft erwaarden? Vläicht wësst Dir iwwer effektiv Implementatiounen déi scho existéieren? 

Vum Michael: Ech sinn keen Hardware-Expert, ech weess just wat ech an der Noriicht liesen a wat meng Kollegen mir soen. Jiddereen huet scho héieren datt Intel verkeeft Optane DIMM, déi ongeféier 3 Mol d'Lieslatenz an 10 Mol d'Schreiflatenz hunn wéi dynamesch RAM. Si wäerte geschwënn a ganz grousse Volumen Versioune verfügbar sinn. Et ass witzeg ze denken datt Dir e Laptop mat e puer Terabytes vu byte-adresserbare RAM hutt. Et ass méiglech datt mir an 10 Joer décidéieren dës nei Technologie ze benotzen, well mir DRAM benotzen - just de Volume erhéijen. Awer dank der Energieonofhängegkeet ginn eis komplett nei Méiglechkeeten op. Mir kënnen de Späicherstack grondsätzlech änneren, sou datt et keng Trennung tëscht Byte-adresserbar Aarbechtsgediechtnes a blockstrukturéierter persistent Erënnerung gëtt. Also brauche mir net alles ze serialiséieren wat muss vun engem Programm lafen an en anert a blockstrukturéiert Dateien transferéiert ginn. Vun dësem kënne mir vill wichteg Prinzipien ofleeden, déi Betribssystemer, Runtime-Ëmfeld a verdeelt Datengeschäfter beaflossen. Dëse Beräich ass ganz interessant fir ze schaffen. Perséinlech ass et schwéier fir mech virauszesoen wat dëst alles féiert, awer d'Problemer hei sinn extrem erhuelsam. Et kann revolutionär Ännerungen hei ginn, a si verfollegen ganz natierlech aus der Aarbecht op Multithreading, zënter Echec Erhuelung ass e "Multithreading" Prozess nieft der normaler Operatioun vum System. 

Dat zweet Haaptthema, un deem ech am Moment schaffen, ass d'Gestioun vun ultraschnell Geräter a sécheren Zougang zu Apparater aus dem Benotzerraum mat systemescher Politikkontrolle. An de leschte Jore gouf et en Trend fir den Zougang zum Apparat an de Benotzerraum ze réckelen. Dëst gëtt gemaach well den TCP-IP Kernel Stack net op engem Netzwierksinterface funktionnéiere kann, deen all 5 Mikrosekonnen en neie Paket brauch, et wäert einfach net ophalen. Dofir bidden Hiersteller direkten Zougang zu Geräter. Awer dëst bedeit datt de Betribssystem d'Kontroll iwwer de Prozess verléiert an et kann net e passenden Zougang zum Apparat fir konkurréiere Uwendungen ubidden. Eis Fuerschungsteam mengt datt dësen Defizit vermeit ka ginn. Mir hunn en Artikel iwwer dëst bei USENIX ATC dëse Mount. Et ass am Zesummenhang mat der Aarbecht op Persistenz, well laanglieweg Byte-adresserbar persistent Erënnerung ass am Wesentlechen en Apparat mat ultra-schnelle I/O, deen am Benotzerraum zougänglech muss ginn. Dës Fuerschung mécht méiglech nei Approche fir Mikrokernelen, Exokernelen an aner traditionell Versuche fir d'Funktionalitéit sécher vum OS Kernel an de Benotzerraum ze bewegen. 

Владимир: Byte-adresserbar Erënnerung ass super, awer et gëtt eng kierperlech Begrenzung - d'Liichtgeschwindegkeet. Dëst bedeit datt et zwangsleefeg e Verspéidung gëtt wann Dir mam Apparat interagéiert. 

Vum Michael: Ganz richteg.

Владимир: Gëtt et genuch Kapazitéit fir déi nei Laascht ze bewältegen?

Vum Michael: Dëst ass eng exzellent Fro, awer et wäert schwéier fir mech ze beäntweren. D'Iddi vun der Veraarbechtung an der Erënnerung ass scho laang, et ass ganz interessant, awer och ganz komplex. Ech hunn net an dësem Beräich geschafft, awer et wier flott wann e puer Entdeckungen do gemaach ginn. Ech fäerten, ech hunn näischt méi ze addéieren. 

Владимир: Et gëtt nach ee Problem. Nei, wesentlech méi grouss Quantitéiten un RAM wäerten onméiglech sinn an d'CPU ze passen. Dofir, wéinst kierperlechen Aschränkungen, muss dëse RAM isoléiert sinn. 

Vum Michael: Et hänkt alles vun der Unzuel vun de Mängel an der Produktioun vun integréierte Circuits of. Wann et méiglech wier hallefleitwafers ganz ouni Mängel ze kreéieren, da wier et méiglech, e ganze Mikrokrees draus ze maachen. Awer elo wësse mer net wéi mir Mikrokreesser méi grouss maachen wéi d'Poststempel. 

Владимир: Mee mir schwätzen nach ëmmer vun riesegen Gréissten, ongeféier Zentimeter. Dëst huet zwangsleefeg en Impakt op d'Latenz. 

Vum Michael: Jo. Et gëtt näischt wat Dir maache kënnt iwwer d'Liichtgeschwindegkeet. 

Владимир: Leider. 

Den nächste groussen Trend. Dual Datestrukturen. Hydra.

Vitali: Souwäit ech verstinn, fangt Dir ganz séier nei Trends. Dir war ee vun deenen éischten, déi am Transaktiounsgediechtnis geschafft hunn, an ee vun deenen éischten, déi an net-flüchtlech Erënnerung geschafft hunn. Wat mengt Dir wäert den nächste groussen Trend sinn? Oder vläicht ass et e Geheimnis?

Vum Michael: Fir éierlech ze sinn, ech weess et net. Hoffentlech wäert ech bemierken wann eppes Neies kënnt. Ech hat net Gléck genuch fir en neit Feld eleng ze erfannen, awer ech hat e puer Gléck a konnt zimmlech fréi un nei Felder schaffen, déi vun aneren erstallt goufen. Ech hoffen, datt ech dat an Zukunft maache wäert.

Алексей: Déi lescht Fro an dësem Interview geet iwwer Är Leeschtung bei Hydra an Är Aktivitéiten an der Schoul. Wann ech dat richteg verstanen hunn, geet de Rapport an der Schoul ëm blockéierfräi Algorithmen, an op der Konferenz iwwer duebel Datestrukturen. Kënnt Dir e puer Wierder iwwer dës Berichter soen?

Vum Michael: Deelweis hu mir dës Themen scho mat Iech an dësem Interview beréiert. Et geet ëm d'Aarbecht, déi ech mat mengem Student Bill Scherer gemaach hunn. Hien huet eng Dissertatioun doriwwer geschriwwen, an den Doug Lee huet och dozou bäigedroen, an et gouf schlussendlech Deel vun de Multi-threaded Synchronschlaangen an der Java-Bibliothéik. Loosst eis dovun ausgoen datt d'Datenstruktur gelies a geschriwwe gëtt ouni ze blockéieren, dat heescht, all Operatioun huet eng limitéiert Zuel vun Instruktiounen op de kriteschen Wee. Wann Dir probéiert Daten aus engem eidele Container ze läschen, oder probéiert verschidden Donnéeën ze läschen, déi net an dësem Container sinn, gitt Dir direkt informéiert datt dëst net gemaach ka ginn. Awer dëst Verhalen ass vläicht net akzeptabel wann de Fuedem dës Donnéeën wierklech brauch. Dann ass déi éischt Saach, déi am Kapp komm ass, eng Loop ze kreéieren déi stänneg freet ob déi néideg Donnéeën erschéngen. Awer dann gëtt et Interferenz fir all déi aner. Zousätzlech, mat dëser Approche kënnt Dir 10 Minutten waarden, an da kënnt en anere Fuedem, an et kritt zoufälleg déi néideg Donnéeën als éischt. Dual Datestrukturen hunn nach ëmmer keng Spären, awer si erlaben Threads richteg ze waarden. De Begrëff "duebel" bedeit datt d'Struktur entweder Daten oder Ufroe fir Daten enthält, loosst eis se Anti-Daten nennen. Also wann Dir probéiert eppes aus engem eidele Container ze recuperéieren, gëtt eng Ufro amplaz an de Container gesat. Elo kann de Fuedem op eng Ufro waarden ouni iergendeen aneren ze stéieren. Zousätzlech gëtt d'Datestruktur Prioritéite fir Ufroe zou, sou datt se se un déi richteg Persoun weiderginn wann se se kréien. D'Resultat ass en net gespaarten Mechanismus deen nach ëmmer eng formell Spezifizéierung a gutt Leeschtung an der Praxis huet. 

Алексей: Wat sinn Är Erwaardungen vun dëser Datestruktur? Wäert et d'Performance an all allgemenge Fäll verbesseren, oder ass et besser fir verschidde Situatiounen gëeegent? 

Vum Michael: Et ass nëtzlech wann Dir éischtens e Container ouni Sperrung braucht, an zweetens musst Dir waarden an enger Situatioun wou Dir Daten aus dem Container musst recuperéieren déi net dran ass. Sou bescht vu mengem Wëssen, stellt eise Kader optimal Verhalen wann dës zwee Konditiounen erfëllt sinn. Dofir, an dëse Fäll recommandéieren ech et ze benotzen. Den Haaptvirdeel vu gespaarten Datenstrukturen ass datt se Leeschtungsproblemer vermeiden. A waarden ass ganz wichteg a villen Algorithmen wann Daten vun engem Fuedem an en aneren transferéiert ginn.

Vitali: Loosst mech klären: wäert Dir iwwer datselwecht schwätzen souwuel an der Schoul wéi och op der Konferenz?

Vum Michael: An der Schoul Ech wäert schwätzen allgemeng iwwer Multi-threaded Datestrukturen, mat de Grondprinzipien, déi am Ufank vun der Lektioun duergestallt goufen. Ech huelen un datt d'Publikum weess wat Threads sinn a vertraut mat Schleisen. Baséiert op dëser Basis Wëssen, wäert ech iwwer gespaarten-gratis Daten Strukturen schwätzen. Ech ginn en Iwwerbléck iwwer déi wichtegst Problemer an dësem Beräich, beréieren Theme wéi Erënnerung Gestioun. Ech denken net datt et eppes méi komplizéiert gëtt wéi d'MS Schlaang.

Алексей: Sidd Dir plangt iwwer duebel Datestrukturen um Enn vun Ärer Klass an der Schoul ze léieren?

Vum Michael: Ech wäert se ernimmen, mee ech wäert net vill Zäit op hinnen verbréngen. Den Hydra Bericht gëtt hinnen gewidmet. Et wäert de Projet ofdecken deen et schlussendlech an Java gemaach huet, souwéi mam Joe Israelevich ze schaffen fir eng duebel Variant vun der LCRQ Schlaang ze kreéieren an e bal universellen Design fir duebel Datestrukturen ze kreéieren.

Алексей: Also de Virtrag an der Schoul kann fir Ufänger recommandéiert ginn, an de Virtrag iwwer duebel Datestrukturen op Hydra - fir Leit déi schonn Erfahrung hunn?

Vum Michael: Korrigéiert mech wann ech falsch sinn, awer d'Publikum bei Hydra wäert zimlech divers sinn, dorënner vill Java Experten, an allgemeng Leit déi net speziell u Multi-threaded Programméierung involvéiert sinn. 

Vitali: Jo, et ass wouer.

Алексей: Mir hoffen op d'mannst.

Vum Michael: An dësem Fall wäert ech mat deemselwechte Problem konfrontéiert sinn, mat deem mir dësen Interview ugefaang hunn: wéi ee Bericht souwuel genuch räich un techneschen Detailer wéi och fir all Nolauschterer zougänglech mécht.

Vitali: Gitt Dir e Bericht op déiselwecht Manéier wéi Dir Virträg gitt? Dat ass, mam Publikum schwätzen an un d'Situatioun upassen?

Vum Michael: Ech fäerten, datt et net esou klappt, well de Bericht wäert Rutschen hunn. Rutschen si wichteg wann Nolauschterer am Ufank verschidde Sprooche schwätzen. Vill Leit wäerten et schwéier fannen mech op Englesch ze verstoen, besonnesch wann ech ze séier schwätzen. Ech hunn dës Themen gewielt well Peter Kuznetsov gefrot mech iwwer Spär-gratis Daten Strukturen op SPTDC School ze schwätzen; an dann brauch ech e Rapport fir eng Java Benotzer Grupp Konferenz, an ech wollt eppes ze wielen, datt speziell fir Java Programméierer interesséiert wier. Deen einfachste Wee war iwwer déi Saachen an der Java-Bibliothéik ze schwätzen, déi ech op eng oder aner Manéier eng Hand haten. 

Алексей: Mir ginn dovun aus, datt d'Publikum op Hydra schonn eppes iwwer Spär-gratis programméiere weess a vläicht e puer Erfahrung an dësem Beräich huet. Mä dëst ass nëmmen eng Viraussetzung d'Situatioun wäert op der Konferenz selwer méi kloer ginn. Jiddefalls, Merci fir Är Zäit. Ech si sécher datt den Interview ganz interessant fir eis Lieser wäert sinn. Villmols merci!

Vitali: Merci. 

Vum Michael: Ech wäert frou Iech zu St. 

Алексей: Mir och, mir hunn eng schéin Stad. Sidd Dir schons hei?

Vum Michael: Nee, ech war ni a Russland iwwerhaapt. Awer Sankt Petersburg war ëmmer op der Lëscht vun de Plazen, wou ech nach net war, awer wou ech wierklech wëlle goen, also war ech ganz frou iwwer d'Invitatioun. 

Алексей: Mir wäerten iwwregens e Programm vun Ausflich fir Spriecher hunn. Villmols Merci fir den Interview, an e schéinen Dag!

Dir kënnt Äert Gespréich mam Michael op der Hydra 2019 Konferenz weiderféieren, déi am Juli 11-12, 2019 zu St. Hie wäert mat engem Rapport kommen "Dual Date Strukturen". Tickete kënne kaaft ginn op der offizieller Websäit.

Source: will.com

Setzt e Commentaire