Michael Scott ist 34 Jahre alt als Professor für Informatik an der Universität von Rochester und seit fünf Jahren Dekan an der Wisconsin - Madison University. Er forscht auf dem Gebiet der parallelen und verteilten Programmierung und des Sprachdesigns und lehrt die Studierenden dies.
Die Welt kennt Michael aus dem Lehrbuch Programmiersprache Pragmatik , und die Arbeitsalgorithmen für die skalierbare Synchronisation auf Multiprozessoren mit gemeinsamem Speicher wurden mit dem Dijkstra-Preis als einer der bekanntesten auf dem Gebiet des verteilten Rechnens ausgezeichnet. Sie können ihn auch als Autor dieses Michael-Scott- Algorithmus kennen.
Zusammen mit Doug Lee entwickelte er die nicht blockierenden Algorithmen und synchronen Warteschlangen, mit denen die Java-Bibliotheken ausgeführt werden. Die Einführung von „dualen Datenstrukturen“ in JavaSE 6 ermöglichte eine 10-fache Verbesserung der Leistung von ThreadPoolExecutor
.
Inhalt:
- Karrierestart, University of Rochester. Charlotte Project, Lynx;
- IEEE Scalable Coherent Interface, MCS-Sperre;
- Überleben in einer sich ständig verändernden Welt;
- Werden die SchĂĽler dĂĽmmer? Globale Trends, Internationalisierung;
- Effektive Arbeit mit Studenten;
- Wie man mit der Vorbereitung neuer Kurse und Bücher Schritt hält;
- Die Beziehung zwischen Wirtschaft und Akademie;
- Praktische Umsetzung von Ideen. MCS, MS, CLH, JSR 166, in Zusammenarbeit mit Doug Lee und vielem mehr;
- Transaktionsspeicher;
- Neue Architekturen. Enger Sieg des Transaktionsgedächtnisses;
- Nichtflüchtiger Speicher, Optane DIMM, ultraschnelle Geräte;
- Der nächste große Trend. Duale Datenstrukturen. Hydra
Interviews durchgefĂĽhrt von:
Vitaly Aksenov ist derzeit Post-Dock bei IST Austria und Mitarbeiter des Instituts für Computertechnologie an der ITMO-Universität. Forschung in Theorie und Praxis wettbewerbsfähiger Datenstrukturen. Bevor er zu IST kam, promovierte er an der Universität Paris Didro und der Universität ITMO unter der Leitung von Professor Peter Kuznetsov.
Alexey Fedorov ist Produzent bei der JUG Ru Group, einem russischen Unternehmen, das Konferenzen für Entwickler organisiert. Alexey war an der Vorbereitung von mehr als 50 Konferenzen beteiligt, und sein Lebenslauf enthält alles von der Position eines Entwicklungsingenieurs bei Oracle (JCK, Java Platform Group) bis zur Position eines Entwicklers bei Odnoklassniki.
Vladimir Sitnikov ist Ingenieur bei Netcracker. Seit zehn Jahren arbeitet er an der Leistung und Skalierbarkeit von NetCracker OS, einer Software, die von Telekommunikationsbetreibern zur Automatisierung von Verwaltungsprozessen für Netzwerke und Netzwerkgeräte verwendet wird. Er interessiert sich für Leistungsprobleme bei Java- und Oracle-Datenbanken. Der Autor von mehr als einem Dutzend Leistungsverbesserungen im offiziellen PostgreSQL JDBC-Treiber.
Karrierestart, University of Rochester. Charlotte-Projekt, Lynx-Sprache.
Alexei : Zunächst wollte ich Ihnen sagen, dass wir alle in Russland Informatik, Datenwissenschaft und Algorithmen lieben. Recht auf Unanständigkeit. Wir alle lesen das
Buch Cormen, Leiserson und Rivest . Daher sollten die bevorstehende Konferenz, die Schule und dieses Interview selbst sehr beliebt sein. Wir haben viele Fragen zu diesem Interview von Studenten, Programmierern und Community-Mitgliedern erhalten, daher sind wir Ihnen fĂĽr diese Gelegenheit sehr dankbar. Macht die Informatik in den USA die gleiche Liebe?
Michael : Unser Gebiet ist so vielfältig, es hat so viele Richtungen und es beeinflusst die Gesellschaft auf so unterschiedliche Weise, dass es für mich schwierig ist, Ihnen eindeutig zu antworten. Tatsache ist jedoch, dass sich dank ihr in den letzten 30 Jahren enorme Veränderungen in Wirtschaft, Industrie, Kunst und Gesellschaft insgesamt ergeben haben.
Vitaliy : Beginnen wir mit etwas Fernem. An vielen Universitäten gibt es so etwas wie eine Spezialisierung auf einen bestimmten Bereich. Für die Carnegie Mellon University sind dies Parallel-Computing, für MIT Kryptografie, Roboter und Multithreading. Gibt es eine solche Spezialisierung an der Universität von Rochester?
Michael : Um ehrlich zu sein, würde ich sagen, dass CMU und MIT sich auf alle Bereiche spezialisiert haben. In unserer Abteilung wurde der künstlichen Intelligenz immer die größte Aufmerksamkeit geschenkt. Die Hälfte der Menschen, die mit uns arbeiten, befasst sich mit KI oder Mensch-Computer-Interaktion - dieser Anteil ist größer als in anderen Abteilungen und war es schon immer. Aber als ich an der Universität war, hatte ich keine Kurse in KI und ich habe nie in diesem Bereich gearbeitet. Meine Abteilung ist also auf ein Problem spezialisiert, mit dem ich nichts zu tun habe. Der Trost ist, dass das zweitwichtigste Problem für unsere Abteilung die parallele und Multithread-Programmierung ist, dh meine Spezialisierung.
Vitaliy : Sie haben mit dem Studium der Informatik begonnen, als das Gebiet der Multithread-Programmierung noch in den Kinderschuhen steckte. Die Liste Ihrer Veröffentlichungen zeigt, dass die ersten Arbeiten ein ziemlich breites Spektrum von Themen betrafen: Speicherverwaltung in Multithread-Systemen, verteilten Dateisystemen und Betriebssystemen. Warum so vielseitig? Haben Sie versucht, Ihren Platz in der Forschungsgemeinschaft zu finden?
Michael : Als Student habe ich am
Charlotte-Projekt an der University of Wisconsin teilgenommen, das eines der ersten verteilten Betriebssysteme entwickelt hat. Dort habe ich mit Raphael Finkel und Marvin Solomon gearbeitet. Meine Dissertation widmete sich der Entwicklung einer Sprache für Systemsoftware für verteilte Systeme - jetzt hat es jeder bereits vergessen und Gott sei Dank. Ich habe die Programmiersprache Lynx erstellt, die die Erstellung von Servern für ein verteiltes Betriebssystem mit schwacher Bindung vereinfachen sollte. Da ich zu dieser Zeit hauptsächlich mit Betriebssystemen beschäftigt war, ging ich davon aus, dass meine Karriere hauptsächlich mit diesen zusammenhängen würde. Aber die Universität von Rochester war sehr klein, und aus diesem Grund kommunizierten verschiedene Gruppen dort sehr eng miteinander. Es gab kein Dutzend anderer Betriebssystemspezialisten, mit denen ich kommunizieren konnte, daher waren alle Kontakte mit Menschen, die in ganz anderen Bereichen arbeiteten. Es hat mir sehr gut gefallen, Generalist zu sein ist ein großer Vorteil für mich. Als ich speziell über Multithread-Datenstrukturen und Synchronisationsalgorithmen sprach, begann ich mich versehentlich damit zu befassen.
IEEE Scalable Coherent Interface, MCS-Sperre.
Vitaliy : Können Sie etwas mehr Details dazu geben?
Michael : Dies ist eine lustige Geschichte, die ich nie müde werde, allen zu erzählen. Es geschah auf der
ASPLOS- Konferenz in Boston - es war in den späten 80ern oder frühen 90ern. An der Konferenz nahm John Mellor-Crummey teil, ein Absolvent unserer Fakultät. Ich kannte ihn, aber vorher hatten wir nicht gemeinsam geforscht. Mary Wernon aus Wisconsin hielt einen Vortrag über das in Wisconsin entwickelte Multiprozessorsystem:
Wisconsin Multicube . In diesem Multicube gab es auf Eisenebene einen Synchronisationsmechanismus namens Q on Sync Bit, und später wurde er in Q on Lock Bit umbenannt, weil er wie der Name Colby-Käse ausgesprochen werden konnte, das heißt, es war ein solches Wortspiel. Wenn Sie an Multithreading-Mechanismen interessiert sind, wissen Sie wahrscheinlich, dass Colby schließlich zum Synchronisationsmechanismus des IEEE Scalable Coherent Interface-Standards wurde. Es war ein Sperrmechanismus, der auf Eisenebene Zeiger von einem Cache zum anderen erzeugte, sodass jeder Sperrhalter wusste, wer an der Reihe war. Als John und ich davon hörten, sahen wir uns an und sagten: Warum tun wir das auf Eisenebene? Können Sie nicht dasselbe mit Vergleichen und Tauschen tun? Wir nahmen eines der Notizbücher im Publikum und warfen ein
MCS-Schloss darauf, während Mary ihr Gespräch fortsetzte. Später haben wir es implementiert, experimentiert, die Idee hat sich als erfolgreich erwiesen und wir haben einen Artikel veröffentlicht. Dann schien mir dieses Thema nur eine lustige Ablenkung zu sein, wonach ich vorhatte, zu den Betriebssystemen zurückzukehren. Aber dann trat ein anderes Problem in die gleiche Richtung auf, und schließlich wurden Synchronisation, Multithreading und Datenstrukturen zu meiner Hauptspezialität. Wie Sie sehen können, geschah dies alles zufällig.
Vitaliy : Ich bin seit langem mit dem Blockieren von MCS vertraut, aber bis jetzt wusste ich nicht, dass dies Ihre Arbeit ist, und habe nicht verstanden, dass es ein Akronym von Ihren Nachnamen ist.
Wie kann man in einer sich ständig verändernden Welt überleben?
Alexei : Ich habe eine Frage zu einem verwandten Thema. Vor 30 oder 40 Jahren gab es mehr Freiheit in verschiedenen Spezialitäten. Wenn Sie eine Karriere in Multithreading oder verteilten Systemen beginnen möchten - bitte, Sie möchten Betriebssysteme - kein Problem. In jedem Bereich gab es viele offene Fragen und wenige Experten. Es sind nun enge Spezialisierungen aufgetaucht: Es gibt einfach keine Experten für Betriebssysteme im Allgemeinen, es gibt Experten für einzelne Systeme. Gleiches gilt für Multithreading und verteilte Systeme. Das Problem ist jedoch, dass unser Leben nicht endlos ist, sondern dass sich jeder nur wenige Jahrzehnte der Forschung widmen kann. Wie kann man in dieser neuen Welt überleben?
Michael : Wir sind in dieser Hinsicht nichts Besonderes, trotzdem ist es einmal in anderen Bereichen passiert. Ich hatte Glück, dass ich im "Teenageralter" bei Informatik angefangen habe. Einige Grundlagen waren bereits gelegt, aber alles war noch sehr unreif. Eine solche Gelegenheit erscheint selten. Elektrotechnik gibt es schon sehr lange, Physik - noch länger Mathematik - fast von Anfang an. Dies bedeutet jedoch nicht, dass in der Mathematik sonst niemand interessante Entdeckungen macht. Es gibt immer noch viele offene Probleme, aber gleichzeitig muss noch mehr gelernt werden. Sie haben richtig bemerkt, dass es jetzt viel mehr Spezialisierungen als zuvor gibt, aber dies bedeutet nur, dass wir uns in der gleichen Situation befinden wie die meisten anderen Bereiche menschlicher Aktivitäten.
Alexei : Ich interessiere mich für den praktischeren Aspekt des Themas. Ich habe eine mathematische Ausbildung und während meines Studiums habe ich oft an Konferenzen teilgenommen und an verschiedenen wissenschaftlichen Themen gearbeitet. Ich stellte fest, dass niemand im Publikum meine Berichte verstand, und auf die gleiche Weise waren die Berichte anderer Menschen nur für sich selbst verständlich. Bei hochrangigen Themen ist dies nicht der Fall, aber sobald Sie anfangen, sich mit etwas zu beschäftigen, hört das Publikum auf, mit Ihnen Schritt zu halten. Wie gehst du damit um?
Michael : Nicht immer erfolgreich. Kürzlich habe ich einen Bericht erstellt, in dem ich mich zu sehr mit technischen Details befasst habe. Im Verlauf des Berichts wurde klar, dass die meisten Zuschauer mich nicht verstanden, sodass ich mich unterwegs an die Situation anpassen musste. Die Folien konnten nicht mehr geändert werden, daher hat es nicht sehr gut funktioniert. Daher versuche ich im Allgemeinen, die Folien nicht zu verwenden. Im Allgemeinen lautet mein Rat: Betrachten Sie Ihr Publikum. Sie müssen wissen, wen Sie kontaktieren, welchen Wissensstand sie haben und was sie hören müssen, um Ihre Arbeit bewerten zu können.
Vitaliy : Können Sie einen Hinweis geben, worum es in diesem Vortrag ging?
Michael : Um ehrlich zu sein, würde ich es vorziehen, nicht über dieses Thema zu sprechen, um die fraglichen Personen anonym zu lassen. Das Fazit ist, dass wir oft zu tief in die Feinheiten des Problems eintauchen, an dem wir arbeiten. Daher wird es für uns zu Beginn des Berichts schwierig zu erklären, warum dieses Problem interessant und wichtig ist und wie es sich auf Fragen bezieht, die die Schüler bereits kennen. Nach meinen Beobachtungen ist diese Fähigkeit für Schüler am schwierigsten. Und das war der Schwachpunkt meines jüngsten Berichts. Ein gut strukturierter Bericht sollte von Anfang an Kontakt mit dem Publikum aufnehmen, ihm genau erklären, was das Problem ist und wie es sich auf bereits bekannte Themen bezieht. Wie technisch dieser Einführungsteil sein wird, hängt vom Publikum ab. Wenn es vollständig fleckig ist, kann der Bericht mehrstufig sein. Der Eintrag sollte für alle zugänglich sein, und am Ende ist ein Teil möglicherweise nicht rechtzeitig für Sie, aber Personen, die mit Ihrer Region relativ vertraut sind, können alles verstehen.
Werden die SchĂĽler dĂĽmmer? Globale Trends, Internationalisierung.
Alexei : Sie haben mehrere Jahrzehnte lang Studenten beobachtet. Werden die Schüler von Jahrzehnt zu Jahrzehnt oder von Jahr zu Jahr dümmer oder schlauer? In Russland beschweren sich Professoren ständig darüber, dass Studenten jedes Jahr dumm werden, und es ist einfach nicht klar, was sie dagegen tun sollen.
Michael : Man kann wirklich viel Negativität von uns alten Leuten hören. Unbewusst erwarten wir von den Schülern, dass sie all die 30 Jahre Erfahrung beherrschen, die wir bereits haben. Wenn ich ein tieferes Verständnis habe als 1985, warum haben die Schüler es dann nicht? Wahrscheinlich, weil sie 20 Jahre alt sind, wie gefällt dir das? Ich denke, die wichtigsten Veränderungen in den letzten Jahrzehnten betreffen die demografische Zusammensetzung: Wir haben jetzt mit Ausnahme der Kanadier deutlich mehr internationale Studenten. Früher gab es viele Kanadier, da wir sehr nahe an der Grenze zu Kanada liegen und die Schüler an den Wochenenden von dort nach Hause gehen können. Aber jetzt gibt es in Kanada viele gute Universitäten, und Kanadier bevorzugen es, zu Hause zu studieren. In den USA fingen sie an, viel weniger zu reisen.
Alexei : Glaubst du, das ist ein lokaler oder globaler Trend?
Michael : Ich erinnere mich nicht genau, wer, aber jemand sagte, dass die Welt flach ist. Unsere Region ist viel internationaler geworden. FrĂĽher fanden
ACM-Konferenzen ausschließlich in den USA statt, dann beschlossen sie, sie alle vier Jahre in anderen Ländern abzuhalten, und jetzt finden sie weltweit statt. Diese Änderungen
wirkten sich in größerem Maße auf
IEEE aus , da es immer eine internationalere Organisation als ACM war. Und Programmmanager (Programmleiter) kommen aus China, Indien, Russland, Deutschland und vielen anderen Ländern, denn überall passiert gerade viel.
Alexei : Aber es gibt wahrscheinlich einige negative Aspekte einer solchen Internationalisierung?
Michael : Ich würde sagen, dass es bei allen negativen Aspekten nicht um Technologie geht, sondern um Politik. Das Hauptproblem war einst die Tatsache, dass die Vereinigten Staaten die intelligentesten und talentiertesten Menschen aus Ländern der Welt gestohlen haben. Und jetzt ist das Hauptproblem die politischen Spiele zwischen verschiedenen Ländern um Visa und Einwanderung.
Alexei : Das heiĂźt, Barrieren und dergleichen. Ich verstehe.
Vladimir : Ich persönlich frage mich, wie Sie vorgehen, wenn Sie Schülern ein neues Fach beibringen. Schließlich gibt es verschiedene Möglichkeiten: Sie können zuerst versuchen, sie zu inspirieren, etwas Neues auszuprobieren, und Sie können den Details der Funktionsweise einer bestimmten Technologie mehr Aufmerksamkeit schenken. Was bevorzugst du
Effektive Arbeit mit Studenten
Alexei : Und wie findet man das verdammte Gleichgewicht zwischen dem ersten und dem zweiten?
Michael : Das Problem ist, dass der Unterricht nicht immer so verläuft, wie ich es gerne hätte. Normalerweise gebe ich den Schülern Lesematerial im Voraus, damit sie sich damit beschäftigen, so viel wie möglich verstehen und Fragen an den Stellen formulieren, die sie nicht verstehen konnten. Dann können Sie sich im Klassenzimmer auf die schwierigsten Momente konzentrieren und sie alle gemeinsam erkunden. So leite ich am liebsten Klassen. Angesichts der Belastung der Schüler gelingt es mir jedoch nicht immer, sicherzustellen, dass sie im Voraus vorbereitet sind. Infolgedessen müssen wir viel mehr Zeit für die allgemeine Nacherzählung des Materials aufwenden, als wir möchten. Trotzdem versuche ich, unsere Klassen interaktiv zu halten. Andernfalls ist es einfacher, ein Video einmal aufzunehmen, das die Schüler dann zu Hause ansehen können. Die Bedeutung von Lebensaktivitäten liegt in der menschlichen Interaktion. Im Klassenzimmer bevorzuge ich es, keine Folien zu verwenden, sondern Kreide und eine Tafel, außer in einigen Fällen, wenn ein Diagramm zu kompliziert ist, um auf eine Tafel gezeichnet zu werden. Dank dessen muss ich mich nicht an einen strengen Unterrichtsplan halten. Da es keine genau definierte Reihenfolge gibt, in der ich das Material gebe, kann ich mich je nach den Fragen, die ich erhalte, an das Publikum anpassen. Im Allgemeinen versuche ich, den Unterricht so interaktiv wie möglich zu gestalten, damit das von mir präsentierte Material von den Fragen abhängt, die mir gestellt werden.
Vladimir : Das ist sehr cool. Nach meiner Erfahrung ist es ziemlich schwierig, Fragen vom Publikum zu bekommen. Selbst wenn Sie im Voraus Fragen stellen, egal ob dumm oder klug, schweigen sie immer noch. Wie gehst du damit um?
Michael : Du wirst lachen, aber wenn du lange still stehst, werden sich früher oder später alle unwohl fühlen und jemand wird eine Frage stellen. Oder Sie können eine einfache technische Frage mit der Antwort „Ja“ oder „Nein“ stellen, um festzustellen, ob die Leute verstanden haben, was gerade besprochen wurde. Gibt es im obigen Beispiel beispielsweise ein Datenrennen? Wer denkt ja? Wer denkt nicht? Wer versteht überhaupt nichts, denn insgesamt ist nur die Hälfte der Hände gestiegen?
Vitaliy : Und wenn du falsch geantwortet hast, fliegst du aus der Klasse :-)
Michael : Wenn du nichts beantwortet hast, solltest du eine Frage stellen. Ich muss verstehen, was genau der Schüler wissen muss, um die Frage zu beantworten, die ich gerade gestellt habe. Sie müssen mir helfen, ihnen zu helfen. Ich bin bereit, mich an sie anzupassen, damit sie das Problem verstehen. Aber wenn ich nicht weiß, was in ihrem Kopf vorgeht, kann ich das nicht tun. Und wenn Sie den Schülern lange Zeit keinen Frieden geben, stellen sie am Ende manchmal die richtigen Fragen, das heißt, dank denen ich sehe, was in den Köpfen der Schüler passiert.
Alexei : Bringen diese Fragen manchmal Ideen auf, an die Sie selbst vorher nicht gedacht hatten? Sind sie unerwartet? Erlauben sie uns, ein Problem in einem neuen Licht zu betrachten?
Michael : Es gibt Fragen, die eine neue Art der Präsentation von Material eröffnen. Oft gibt es Fragen, die zu interessanten Problemen führen, über die ich nicht sprechen wollte. Die Schüler sagen mir oft, dass ich die Tendenz habe, mich vom Thema des Unterrichts zu entfernen, wenn dies geschieht. Und ihnen zufolge ist dies sehr oft der interessanteste Teil der Aktivität. Sehr selten, buchstäblich mehrmals, stellten die Schüler Fragen, die eine neue Richtung in der Studie einbrachten und zu einem Artikel heranwuchsen. Dies geschieht viel häufiger in Gesprächen mit Schülern und nicht während des Unterrichts, sondern gelegentlich während des Unterrichts.
Alexei : Das heißt, die Schüler haben Ihnen Fragen gestellt, auf deren Grundlage Sie später einen Artikel veröffentlichen könnten?
Michael : Ja.
Vitaliy : Wie oft führen Sie solche Gespräche mit Studenten? , ?
: — . - 5 6 , - . , — . , . , . , . , , . , , , .
: ? , — .
: , — , . . , , . , , 9 17 . , , — .
.
: - , ? - Computer Science.
: , — .
: , 10, 20, 30 ? , , .
: , . 1980-, , (
Doug Baldwin ). , , . , . ( :
«Programming Language Pragmatics» ) 200 . , , . , : , , , . , , . , Pascal, . Swift, Go, Rust, , . , , , . Python, Ruby Perl, , , , .
: . ? , — , . ?
: , 100% . , — . Rust, Google, Mozilla . , . , .
: . (cache coherence). , ? . ?
: , . (
William Bolosky ) (
Leonidas Kontothanassis ) 1990- . , : , , , . . , NUMA, page placement . , , — . , (hardware transactional memory). , , . , , . , .
: : , ? ?
: , , . , . , , . , , - . , - - , . . - , , . — .
: . , . , , Intel. , ?
: , , , - . , : , , . , , , . , , , , . , , . , . , . - 15 . , ,
«How to evaluate systems research» - , . ,
, , , . , .
: , , . , , TDP, . ? , ?
: , . , . , , . , Linux. , AWS. .
: ? ?
: . - 1980- , . ,
(National Science Foundation ) (Coordinated Experimental Research, CER). Computer Science, . 1984 128- BBN Butterfly, . . 128 , , . , 128 . MCS.
: , ?
: — . : -, , , . - 10 , - . Intel. , , , . , (
Steven Swanson )
. , . , . , , , .
. MCS, MS, CLH, JSR 166, .
: , .
MCS - (MS) , Java. ( :
).
CLH , . .
: , 10 .
: Java?
: . , ? ?
: , MS Java 5. (Mark Moyers) Sun Microsystems . , , , . (Doug Lea). , - 25 Sun
JSR 166 , java.util.concurrent. , MS, . , , . , . , « », . , . Java.
: , .size() , O(1)?
: , .
: .size() Java, , , . Alles Klar, Danke.
: (dual data structures) (Bill Scherer) — ,
Hydra . , Java Executor Framework. , (fair and unfair queues). , . executors .
: ? , . , , , , , - . ?
: , « » — , . , . , K42 IBM MCS , acquire release. , , . , , , . , .
, . , MS , , CAS. CAS . Intel , - 30 , . , MS, . , O(n) , O(1). , . - , . , . , , , , . . (Dave Dice) Oracle. , , , . NUMA-aware .
: , . - , , , . .
: , . , , . , . , 10, 20, 25 . , . , , , , . , . , . , , 10 . — 20. , . . , . (Joe Izraelevitz) DISC, , . , , . , . , , .
: - , ? , ? , , , .
: , , . -, , Google Scholar , , . , . , , , — . . , , , . , , .
: , ?
: , , . , , . , , . ,
(M. Herlihy, JEB Moss) . 1990- , , , . , JSR 166. , . 2000-, . . . . , , .
: . , , . , . , , , . ( : — ,
Disruptor Aeron .
Joker 2015,
YouTube .
,
). , , . . Was denkst du darĂĽber?
: : , .
: , .
: — . , . (Butler Lampson), « ». . , , 10 — . ISA , , . . , . — GPU, , , , FPGA. , ? , .
: , . , . : — , , — , , , .
: — - .
: C++.
: - (Hans Boehm). , , . , . , , , 30
. ( :
).
: : ?
: . , , API. API, . , . . , , , , .
: , , , , , ? , , . , . ?
: . , , , - . , , . MNS . (Adam Morrison) (Yehuda Afek)
LCRQ . , , fetch-and-increment. . , fetch-and-increment . (Eric Freudenthal) Ultracomputer c (Allan Gottlieb) 1980-, . fetch-and-increment .
. ?
: , ?
: , , , .
: , ?
: — Intel IBM. , - load store . happens-before, . , , , . , , .
— . , . . , , 100 , , . , , . , - .
: , . ?
: . — . , — . , . , , , . , . , , . . , CAS , , . , , .
, Optane DIMM, .
: , — : . ? , - ?
: , , . , Intel
Optane DIMM , - 3 10 , RAM. . , RAM. , 10 , DRAM — . . , - . , - , — . , , . . , , . , , , «» .
, — . . - , , 5 , TCP-IP , . . , , . , . USENIX ATC . , , , I/O, . , .
: — , — . , .
: .
: , ?
: , - . , , . , , - . , .
: . , RAM CPU. - RAM .
: . , . .
: , . .
: . .
: .
. Dual data structures. Hydra.
: , . , , . , ? , , ?
: , . , , - . - , , , . , .
: Hydra . , , . ?
: . , . , , Java. , , . , , , , . , . , — , , . . , 10 , - , . - , . «» , , , -. - , . . , , , . , .
: ? , ?
: , , -, , , -, , , . , , . . , . , .
: : , ?
:
, . , , , . , . , . , - MS.
: ?
: , . Hydra. , Java, LCRQ, .
: , Hydra — , - ?
: , , Hydra , Java, , .
: , .
: , .
: , : .
: , ? ?
: , , . , . , . ,
SPTDC; - Java, -, Java. Java, .
: , Hydra - , , - . , . , , . , . Vielen Dank!
: .
: -.
: , . - ?
: , . - , , , .
: , . , !
Hydra 2019, 11-12 2019 -. «Dual data structures» . .