Michael Scott berusia 34 tahun sebagai profesor Ilmu Komputer di University of Rochester, dan telah menjadi dekan selama lima tahun di universitas asalnya, Wisconsin-Madison. Dia terlibat dalam penelitian di bidang pemrograman paralel dan didistribusikan dan desain bahasa dan mengajarkan siswa ini.
Dunia mengenal Michael dari Pragmatik Pemrograman buku teks, dan Algoritma kerja untuk sinkronisasi yang dapat diukur pada multiprosesor bersama-memori memenangkan Hadiah Dijkstra sebagai salah satu yang paling terkenal di bidang komputasi terdistribusi. Anda juga bisa mengenalnya sebagai penulis algoritma Michael-Scott itu .
Bersama dengan Doug Lee, ia mengembangkan algoritma non-blocking dan antrian sinkron yang menjalankan perpustakaan Java. Pengenalan "struktur data ganda" di JavaSE 6 memungkinkan peningkatan 10 kali lipat dalam kinerja ThreadPoolExecutor
.
Konten:
- Karir dimulai, University of Rochester. Proyek Charlotte, Lynx;
- IEEE Scalable Coherent Interface, MCS lock;
- Bertahan hidup di dunia yang terus berubah;
- Apakah siswa mendapatkan bodoh? Tren global, internasionalisasi;
- Kerja efektif dengan siswa;
- Bagaimana cara mengikuti persiapan kursus dan buku baru;
- Hubungan antara bisnis dan akademi;
- Implementasi ide secara praktis. MCS, MS, CLH, JSR 166, bekerja dengan Doug Lee dan banyak lagi;
- Memori transaksional;
- Arsitektur baru. Tutup kemenangan memori transaksional;
- Memori non-volatile, Optane DIMM, perangkat ultrafast;
- Tren besar berikutnya. Struktur data ganda. Hydra
Wawancara dilakukan oleh:
Vitaly Aksenov saat ini menjadi post-dock di IST Austria dan karyawan Departemen Teknologi Komputer di Universitas ITMO. Terlibat dalam penelitian dalam teori dan praktik struktur data kompetitif. Sebelum bergabung dengan IST, ia menerima gelar PhD dari Universitas Paris Didro dan Universitas ITMO di bawah arahan Profesor Peter Kuznetsov.
Alexey Fedorov adalah produsen di JUG Ru Group, sebuah perusahaan Rusia yang menyelenggarakan konferensi untuk para pengembang. Alexey berpartisipasi dalam persiapan lebih dari 50 konferensi, dan dalam resume-nya ada sesuatu dari posisi insinyur pengembangan di Oracle (JCK, Java Platform Group), dan berakhir dengan posisi devrell di Odnoklassniki.
Vladimir Sitnikov adalah seorang insinyur di Netcracker. Selama sepuluh tahun, ia telah bekerja pada kinerja dan skalabilitas NetCracker OS, sebuah perangkat lunak yang digunakan oleh operator telekomunikasi untuk mengotomatisasi proses manajemen jaringan dan peralatan jaringan. Dia tertarik dengan masalah kinerja Java dan Oracle Database. Penulis peningkatan kinerja lebih dari selusin di driver JDBC PostgreSQL resmi.
Karir dimulai, University of Rochester. Proyek Charlotte, bahasa Lynx.
Alexei :
Pertama- tama, saya ingin memberi tahu Anda bahwa di Rusia kita semua menyukai Ilmu Komputer, Ilmu Data, dan algoritma. Hak untuk tidak senonoh. Kita semua membaca
buku Cormen, Leiserson and Rivest . Karena itu, konferensi yang akan datang, sekolah dan wawancara ini sendiri harus sangat populer. Kami menerima banyak pertanyaan untuk wawancara ini dari siswa, programer dan anggota masyarakat, jadi kami sangat berterima kasih kepada Anda atas kesempatan ini. Apakah Ilmu Komputer Membuat Cinta yang Sama Di AS?
Michael : Area kami sangat beragam, memiliki banyak arah, dan memengaruhi masyarakat dengan berbagai cara sehingga sulit bagi saya untuk menjawab Anda dengan tegas. Tetapi kenyataannya adalah bahwa berkat dia selama 30 tahun terakhir telah ada perubahan besar dalam bisnis, industri, seni dan masyarakat secara keseluruhan.
Vitaliy : Mari kita mulai dengan sesuatu yang jauh. Di banyak universitas, ada sesuatu seperti spesialisasi dalam satu bidang tertentu. Untuk Carnegie Mellon University, ini adalah komputasi paralel, untuk MIT, kriptografi, robot, dan multithreading. Apakah ada spesialisasi di University of Rochester?
Michael : Sejujurnya, saya akan mengatakan bahwa CMU dan MIT berspesialisasi dalam semua bidang. Di departemen kami, selalu yang paling diperhatikan adalah kecerdasan buatan. Setengah dari orang-orang yang bekerja dengan kami terlibat dalam interaksi AI atau komputer manusia - proporsi ini lebih besar daripada di departemen lain, dan memang selalu demikian. Tetapi ketika saya masih di universitas, saya tidak memiliki kursus di AI, dan saya tidak pernah bekerja di daerah ini. Jadi departemen saya berspesialisasi dalam masalah yang tidak ada hubungannya dengan saya. Penghiburannya adalah bahwa masalah terpenting kedua untuk departemen kami adalah pemrograman paralel dan multithread, yaitu spesialisasi saya.
Vitaliy : Anda mulai mempelajari Ilmu Komputer ketika bidang pemrograman multi-utas masih baru. Daftar publikasi Anda menunjukkan bahwa karya pertama berkaitan dengan berbagai masalah: manajemen memori dalam sistem multi-utas, sistem file terdistribusi, dan sistem operasi. Mengapa fleksibilitas seperti itu? Sudahkah Anda mencoba menemukan tempat Anda di komunitas riset?
Michael : Sebagai seorang mahasiswa, saya berpartisipasi dalam
proyek Charlotte di University of Wisconsin, yang mengembangkan salah satu sistem operasi terdistribusi pertama. Di sana saya bekerja dengan Raphael Finkel dan Marvin Solomon. Disertasi saya dikhususkan untuk pengembangan bahasa untuk perangkat lunak sistem untuk sistem terdistribusi - sekarang semua orang sudah melupakannya, dan terima kasih Tuhan. Saya menciptakan bahasa pemrograman Lynx, yang seharusnya menyederhanakan pembuatan server untuk sistem operasi terdistribusi dengan ikatan yang lemah. Karena pada waktu itu saya terutama terlibat dalam sistem operasi, saya berasumsi bahwa karier saya akan terutama terkait dengan mereka. Tetapi University of Rochester sangat kecil, dan karena ini, kelompok-kelompok yang berbeda di sana sangat berkomunikasi satu sama lain. Tidak ada selusin spesialis sistem operasi lain dengan siapa saya dapat berkomunikasi, jadi semua kontak dengan orang-orang yang bekerja di daerah yang sama sekali berbeda. Saya sangat menyukainya, menjadi seorang generalis adalah keuntungan besar bagi saya. Berbicara secara khusus tentang struktur data multi-threaded dan algoritma sinkronisasi, saya mulai berurusan dengan mereka secara tidak sengaja.
IEEE Scalable Coherent Interface, MCS Lock.
Vitaliy : Bisakah Anda memberi sedikit rincian lebih lanjut tentang ini?
Michael : Ini adalah cerita lucu yang saya tidak pernah lelah untuk memberitahu semua orang. Itu terjadi di konferensi
ASPLOS di Boston - itu di akhir 80-an atau awal 90-an. Konferensi ini dihadiri oleh John Mellor-Crummey, lulusan fakultas kami. Saya kenal dia, tetapi sebelum itu kami belum melakukan penelitian bersama. Mary Wernon dari Wisconsin membuat presentasi tentang sistem multiprosesor yang mereka kembangkan di Wisconsin:
Wisconsin Multicube . Dalam Multicube ini, di tingkat besi, ada mekanisme sinkronisasi yang disebut Q pada Sync Bit, dan kemudian namanya diganti Q pada Lock Bit, karena itu bisa diucapkan seperti nama keju Colby, yaitu, itu seperti permainan kata. Jika Anda tertarik pada mekanisme multithreading, Anda mungkin tahu bahwa Colby akhirnya menjadi mekanisme sinkronisasi dari standar IEEE Scalable Coherent Interface. Itu adalah mekanisme penguncian yang menciptakan pointer dari satu cache ke cache lainnya di tingkat besi, sehingga setiap pemegang kunci tahu giliran siapa. Ketika John dan saya mendengarnya, kami saling memandang dan berkata: mengapa melakukan ini pada tingkat besi? Tidak bisakah Anda melakukan hal yang sama dengan bandingkan-dan-tukar? Kami mengambil salah satu buku catatan di antara hadirin dan melemparkan
kunci MCS di atasnya sementara Mary melanjutkan ceramahnya. Kemudian kami menerapkannya, bereksperimen, gagasan itu ternyata berhasil, dan kami menerbitkan sebuah artikel. Kemudian bagi saya topik ini sepertinya hanya gangguan yang menyenangkan, setelah itu saya berencana untuk kembali ke sistem operasi. Tapi kemudian masalah lain muncul ke arah yang sama, dan akhirnya sinkronisasi, multithreading, dan struktur data menjadi spesialisasi utama saya. Seperti yang Anda lihat, semua ini terjadi secara kebetulan.
Vitaliy : Saya sudah lama terbiasa dengan pemblokiran MCS, tetapi sampai sekarang saya tidak tahu bahwa ini adalah pekerjaan Anda, dan tidak mengerti bahwa itu adalah akronim dari nama belakang Anda.
Bagaimana cara bertahan hidup di dunia yang terus berubah?
Alexei : Saya punya pertanyaan tentang topik terkait. 30 atau 40 tahun yang lalu ada lebih banyak kebebasan dalam spesialisasi yang berbeda. Jika Anda ingin memulai karir di sistem multithreading atau terdistribusi - silakan, Anda ingin melakukan sistem operasi - tidak ada masalah. Di setiap bidang ada banyak pertanyaan terbuka dan beberapa ahli. Spesialisasi yang sempit kini telah muncul: tidak ada pakar sistem operasi secara umum, ada pakar sistem individual. Hal yang sama dengan sistem multithreading dan terdistribusi. Tetapi masalahnya adalah bahwa hidup kita tidak terbatas, setiap orang dapat mengabdikan diri untuk meneliti hanya beberapa dekade. Bagaimana cara bertahan hidup di dunia baru ini?
Michael : Kami tidak istimewa dalam hal ini, semua sama terjadi di daerah lain. Saya beruntung bahwa saya mulai bekerja di Ilmu Komputer ketika bidang ini berada di usia "remaja". Beberapa fondasi sudah diletakkan, tetapi semuanya masih sangat belum matang. Kesempatan seperti itu jarang muncul. Teknik kelistrikan telah ada sejak lama, fisika - bahkan lebih lama, matematika - hampir sejak awal waktu. Tetapi ini tidak berarti bahwa dalam matematika tidak ada orang lain yang membuat penemuan menarik. Masih ada banyak masalah terbuka, tetapi pada saat yang sama, lebih banyak yang harus dipelajari. Anda benar mencatat bahwa sekarang ada jauh lebih banyak spesialisasi daripada sebelumnya, tetapi ini hanya berarti bahwa kita berada dalam situasi yang sama dengan sebagian besar bidang aktivitas manusia lainnya.
Alexei : Saya tertarik pada aspek yang lebih praktis dari masalah ini. Saya memiliki pendidikan matematika, dan selama studi saya, saya sering menghadiri konferensi dan mengerjakan berbagai topik ilmiah. Saya menemukan bahwa tidak seorang pun di antara hadirin yang memahami laporan saya, dan dengan cara yang sama, laporan orang lain hanya dapat dimengerti oleh mereka sendiri. Dalam topik tingkat tinggi, ini tidak benar, tetapi begitu Anda mulai mempelajari sesuatu, audiens berhenti mengikuti Anda. Bagaimana Anda menangani ini?
Michael : Tidak selalu berhasil. Baru-baru ini, saya menyiapkan laporan di mana saya terlalu jauh ke detail teknis. Ketika laporan berlanjut, menjadi jelas bahwa sebagian besar hadirin tidak mengerti saya, jadi saya harus beradaptasi dengan situasi saat ini. Slide tidak lagi dapat diubah, jadi itu tidak berfungsi dengan baik - oleh karena itu, secara umum, saya mencoba untuk tidak menggunakan slide. Secara umum, saran saya adalah ini - pertimbangkan audiens Anda. Anda perlu tahu siapa yang Anda hubungi, tingkat pengetahuan apa yang mereka miliki dan apa yang perlu mereka dengar untuk mengevaluasi pekerjaan Anda.
Vitaliy : Bisakah Anda memberi petunjuk tentang apa kuliah ini?
Michael : Sejujurnya, saya lebih suka untuk tidak membicarakan topik ini untuk meninggalkan orang-orang yang tidak disebutkan namanya. Intinya adalah bahwa kita sering menyelam terlalu dalam ke seluk-beluk masalah yang sedang kita kerjakan, sehingga menjadi sulit bagi kita untuk menjelaskan di awal laporan mengapa masalah ini menarik dan penting dan bagaimana kaitannya dengan pertanyaan yang sudah diketahui siswa. Menurut pengamatan saya, keterampilan ini paling sulit bagi siswa. Dan itulah titik lemah dari laporan terakhir saya. Laporan yang terstruktur dengan baik harus dari awal menemukan kontak dengan audiens, menjelaskan dengan tepat apa masalahnya dan bagaimana kaitannya dengan topik yang sudah diketahui. Seberapa teknis bagian pengantar ini akan tergantung pada audiens. Jika benar-benar berbintik-bintik, maka laporannya bisa bertingkat. Entri harus dapat diakses oleh semua orang, dan pada akhirnya, bagian mungkin tidak tepat waktu untuk Anda, tetapi orang-orang yang relatif akrab dengan daerah Anda akan dapat memahami segalanya.
Apakah siswa mendapatkan bodoh? Tren global, internasionalisasi.
Alexei : kamu sudah memperhatikan siswa selama beberapa dekade. Apakah siswa menjadi bodoh atau pintar dari dekade ke dekade atau dari tahun ke tahun? Di Rusia, profesor terus-menerus mengeluh bahwa siswa menjadi bodoh setiap tahun, dan tidak jelas apa yang harus dilakukan tentang itu.
Michael : Anda benar-benar dapat mendengar banyak hal negatif dari kami, orang tua. Secara tidak sadar, kita memiliki kecenderungan untuk mengharapkan siswa untuk menguasai semua 30 tahun pengalaman yang sudah kita miliki. Jika saya memiliki pemahaman yang lebih dalam dari pada tahun 1985, mengapa siswa tidak memilikinya? Mungkin karena mereka berusia 20 tahun, bagaimana Anda menyukainya? Saya pikir perubahan yang paling signifikan dalam beberapa dekade terakhir berkaitan dengan komposisi demografis: kami sekarang memiliki lebih banyak siswa internasional, kecuali Kanada. Dulu ada banyak orang Kanada, karena kami sangat dekat dengan perbatasan dengan Kanada, dan siswa dapat pulang dari sana pada akhir pekan. Tetapi sekarang di Kanada ada banyak universitas yang bagus, dan orang Kanada lebih suka belajar di rumah, di AS mereka mulai bepergian jauh lebih sedikit.
Alexei : Apakah kamu pikir ini tren lokal atau global?
Michael : Saya tidak ingat persis siapa, tetapi seseorang berkata bahwa dunia ini datar. Area kami telah menjadi jauh lebih internasional.
Konferensi ACM dulu diadakan secara eksklusif di AS, kemudian mereka memutuskan untuk mengadakannya setiap 4 tahun di negara lain, dan sekarang mereka diadakan di seluruh dunia. Pada tingkat yang lebih besar, perubahan-perubahan ini memengaruhi
IEEE , karena selalu merupakan organisasi yang lebih internasional daripada ACM. Dan manajer program (ketua program) berasal dari Cina, India, Rusia, Jerman dan banyak negara lain, karena di mana-mana banyak hal terjadi sekarang.
Alexei : Tapi mungkin ada beberapa aspek negatif dari internasionalisasi seperti itu?
Michael : Saya akan mengatakan bahwa semua aspek negatif bukan tentang teknologi, tetapi tentang politik. Satu-satunya masalah utama adalah fakta bahwa Amerika Serikat mencuri orang-orang paling cerdas dan berbakat dari negara-negara di dunia. Dan sekarang masalah utama adalah permainan politik antara berbagai negara di sekitar visa dan imigrasi.
Alexei : Yaitu, penghalang dan sejenisnya. Saya melihat.
Vladimir : Secara pribadi, saya ingin tahu pendekatan apa yang Anda ambil saat mengajar subjek baru kepada siswa. Lagipula, ada beberapa opsi berbeda: Anda dapat mencoba dulu untuk menginspirasi mereka untuk mencoba sesuatu yang baru, dan Anda dapat lebih memperhatikan detail bagaimana suatu teknologi bekerja. Apa yang Anda sukai?
Bekerja efektif dengan siswa
Alexei : dan bagaimana menemukan keseimbangan antara yang pertama dan yang kedua?
Michael : Masalahnya adalah bahwa kelas tidak selalu berjalan seperti yang saya inginkan. Biasanya, saya memberikan siswa bahan bacaan terlebih dahulu sehingga mereka mempelajari, memahami sebanyak mungkin, dan merumuskan pertanyaan di tempat-tempat yang tidak dapat mereka pahami. Kemudian di kelas Anda dapat fokus pada saat-saat paling sulit dan menjelajahi semuanya bersama-sama. Inilah yang paling saya sukai untuk memimpin kelas. Tetapi dengan mempertimbangkan beban yang ada pada para siswa, saya tidak selalu berhasil memastikan bahwa mereka dipersiapkan sebelumnya. Akibatnya, kita harus mencurahkan lebih banyak waktu untuk menceritakan kembali materi secara umum daripada yang kita inginkan. Meskipun demikian, saya mencoba membuat kelas kami tetap interaktif. Jika tidak, lebih mudah untuk merekam video satu kali, yang dapat ditonton siswa di rumah. Makna aktivitas hidup adalah dalam interaksi manusia. Di ruang kelas, saya lebih suka untuk tidak menggunakan slide, tetapi kapur tulis dan papan tulis, kecuali dalam beberapa kasus ketika beberapa diagram terlalu rumit untuk digambar di papan tulis. Berkat ini, saya tidak perlu mematuhi rencana pelajaran yang ketat. Karena tidak ada urutan yang jelas di mana saya memberikan materi, ini memungkinkan saya untuk beradaptasi dengan audiens tergantung pada pertanyaan yang saya terima. Secara umum, saya mencoba membuat kelas seinteraktif mungkin, sehingga materi yang saya sajikan tergantung pada pertanyaan yang saya ajukan.
Vladimir : Ini sangat keren. Dalam pengalaman saya, cukup sulit untuk mendapatkan pertanyaan dari penonton. Bahkan jika Anda bertanya terlebih dahulu untuk mengajukan pertanyaan, tidak peduli bodoh atau pintar, mereka tetap diam. Bagaimana Anda menangani ini?
Michael : Anda akan tertawa, tetapi jika Anda berdiri dalam waktu lama, cepat atau lambat semua orang akan merasa tidak nyaman, dan seseorang akan mengajukan pertanyaan. Atau Anda dapat mengajukan pertanyaan teknis sederhana dengan jawaban "ya" atau "tidak" untuk menentukan apakah orang mengerti apa yang baru saja dibahas. Misalnya, apakah ada perlombaan data dalam contoh di atas? Siapa yang berpikir ya? Siapa yang berpikir tidak? Siapa yang tidak mengerti apa-apa sama sekali, karena secara total hanya setengah dari tangan yang telah bangkit?
Vitaliy : Dan jika Anda menjawab salah, Anda keluar dari kelas :-)
Michael : Jika Anda tidak menjawab apa pun, Anda harus mengajukan pertanyaan. Saya harus mengerti apa yang sebenarnya perlu diketahui oleh siswa untuk menjawab pertanyaan yang baru saja saya tanyakan. Mereka perlu membantu saya membantu mereka. Saya siap beradaptasi dengan mereka sehingga mereka mengerti masalahnya. Tetapi jika saya tidak tahu apa yang sedang terjadi di kepala mereka, saya tidak bisa melakukan ini. Dan jika Anda tidak memberi siswa kedamaian untuk waktu yang lama, maka pada akhirnya mereka kadang-kadang mengajukan pertanyaan yang tepat, yaitu, pertanyaan yang membantu saya melihat apa yang terjadi di kepala siswa.
Alexei : Apakah pertanyaan-pertanyaan ini kadang-kadang memunculkan ide-ide yang sebelumnya tidak terpikirkan oleh Anda sendiri? Apakah itu tidak terduga? Apakah mereka memungkinkan kita untuk melihat beberapa masalah dengan cara baru?
Michael : Ada pertanyaan yang membuka cara baru untuk menyajikan materi. Seringkali ada pertanyaan yang mengarah pada masalah menarik yang tidak saya rencanakan untuk dibicarakan. Siswa sering memberi tahu saya bahwa saya memiliki kecenderungan untuk menjauh dari topik pelajaran ketika ini terjadi. Dan, menurut mereka, sangat sering ini adalah bagian paling menarik dari kegiatan ini. Jarang sekali, secara harfiah beberapa kali, siswa mengajukan pertanyaan yang muncul dengan arah baru dalam penelitian dan tumbuh menjadi sebuah artikel. Ini terjadi jauh lebih sering dalam percakapan dengan siswa, dan tidak selama kelas, tetapi kadang-kadang selama kelas.
Alexei : Yaitu, para siswa bertanya padamu, atas dasar apa kamu nanti bisa menerbitkan sebuah artikel?
Michael : Ya.
Vitaliy : Seberapa sering Anda berbicara dengan siswa seperti itu? , ?
: — . - 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, , , . , .
: (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 .
,
). , , . . ?
: : , .
: , .
: — . , . (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 - , , - . , . , , . , . !
: .
: -.
: , . - ?
: , . - , , , .
: , . , !
Hydra 2019, 11-12 2019 -. «Dual data structures» . .