"Éta gampang ngajawab ti tetep jempé" - wawancara hébat sareng bapa mémori transaksional, Maurice Herlihy

Maurice Herlihy - boga dua Hadiah Dijkstra. Anu kahiji nyaéta pikeun digawé "Singkronisasi Gratis Antosan" (Brown University) sareng anu kadua, langkung énggal, - "Memori Transaksional: Rojongan Arsitéktur pikeun Struktur Data Henteu Kunci" (Universitas Téknologi Virginia). Hadiah Dijkstra dipasihkeun pikeun padamelan anu pentingna sareng pangaruhna parantos katingali sahenteuna sapuluh taun sareng Maurice écés mangrupikeun salah sahiji spesialis anu kasohor di lapangan. Anjeunna ayeuna damel salaku dosen di Universitas Brown sareng gaduh seueur prestasi anu panjangna saparagraf. Anjeunna ayeuna nalungtik blockchain dina konteks komputasi disebarkeun klasik.

Sateuacanna, Maurice parantos sumping ka Rusia pikeun SPTCC (ngarékam pidéo) sareng ngadamel rapat anu saé pikeun komunitas pamekar JUG.ru Java di St.ngarékam pidéo).

Habrapost Ieu wawancara hébat sareng Maurice Herlihy. Éta ngabahas topik-topik di handap ieu:

  • Interaksi antara akademisi jeung industri;
  • Yayasan pikeun Panalungtikan Blockchain;
  • Ti mana ideu terobosan asalna? Pangaruh popularitas;
  • PhD dina pangawasan Barbara Liskov;
  • Dunya ngantosan multi-inti;
  • Dunya anyar mawa masalah anyar. NVM, NUMA jeung arsitéktur Hacking;
  • Compiler vs prosesor, RISC vs CISC, dibagikeun memori vs pesen ngalirkeun;
  • Seni nulis kode ripuh multi-threaded;
  • Kumaha carana ngajarkeun siswa nulis kode kompléks multi-threaded;
  • Édisi anyar tina buku "The Art of Multiprocessor Programming";
  • Kumaha memori transactional ieu nimukeun;   
  • Naha éta patut ngalaksanakeun panalungtikan dina widang komputasi disebarkeun;
  • Geus ngembangkeun algoritma dieureunkeun, sarta kumaha carana ngaléngkah;
  • Gawé di Universitas Brown;
  • Beda antara panalungtikan di universitas sareng dina korporasi;
  • Hydra jeung SPTDC.

Wawancara dilaksanakeun ku:

Vitaly Aksenov — ayeuna, post-doc di IST Austria sareng karyawan Departemen Teknologi Komputer di Universitas ITMO. Ngalaksanakeun panalungtikan dina widang téori jeung prakték ngeunaan struktur data kalapa. Sateuacan damel di IST, anjeunna nampi gelar PhD ti Universitas Paris Diderot sareng Universitas ITMO dina pangawasan Profesor Peter Kuznetsov.

Alexey Fedorov - Produser di JUG Ru Grup, hiji parusahaan Rusia nu organizes konferensi pikeun pamekar. Alexey ilubiung dina persiapan leuwih ti 50 konferensi, sarta neruskeun na ngawengku sagalana ti posisi insinyur ngembangkeun di Oracle (JCK, Java Platform Grup) ka posisi pamekar di Odnoklassniki.

Vladimir Sitnikov - Insinyur di Netcracker. Sapuluh taun gawé dina kinerja sarta scalability of NetCracker OS, software dipaké ku operator telecom pikeun ngajadikeun otomatis prosés manajemén jaringan jeung alat jaringan. Kabetot dina masalah kinerja Java sareng Oracle Database. Panulis langkung ti belasan perbaikan kinerja dina supir PostgreSQL JDBC resmi.

Interaksi antara akademisi jeung industri

Alexey: Maurice, anjeun parantos lami damel di lingkungan akademik sareng patarosan anu munggaran nyaéta interaksi antara bidang akademik sareng industri. Dupi anjeun tiasa ngobrol ngeunaan kumaha interaksi antara aranjeunna geus robah anyar? Naon anu kajantenan 20-30 taun ka pengker sareng naon anu kajantenan ayeuna? 

Maurice: Kuring geus salawasna diusahakeun digawekeun raket jeung pausahaan komérsial sabab boga masalah metot. Aranjeunna, sakumaha aturan, teu pisan museurkeun boh dina medarkeun hasil maranéhanana atawa dina katerangan lengkep masalah maranéhna pikeun masarakat dunya. Aranjeunna ngan museurkeun ngarengsekeun masalah ieu. Kuring digawé pikeun pausahaan misalna pikeun sawatara waktu. Kuring nyéépkeun lima taun damel pinuh waktos di laboratorium panalungtikan di Digital Equipment Corporation, anu kantos janten perusahaan komputer ageung. Kuring digawé hiji poe saminggu di Sun, di Microsoft, di Oracle, sarta ngalakukeun pagawean saeutik di Facebook. Ayeuna kuring badé cuti sabbatical (profésor di universitas Amérika diidinan nyandak cuti sapertos kitu salami sataun sakali unggal genep taun) sareng damel di Algorand, ieu téh parusahaan cryptocurrency di Boston. Gawe bareng raket jeung pausahaan geus salawasna senang sabab éta kumaha anjeun diajar ngeunaan hal anyar jeung metot. Anjeun malah bisa jadi jalma kahiji atawa kadua pikeun nyebarkeun hiji artikel dina topik dipilih, tinimbang ngusahakeun incrementally ngaronjatkeun solusi pikeun masalah anu everyone sejenna geus dipake dina.

Alexey: Dupi anjeun ngabejaan urang leuwih jéntré kumaha ieu kajadian?

Maurice: Tangtu. Anjeun terang, nalika kuring damel di Digital Equipment Corporation, kuring sareng Elliot Moss, kami nimukeun mémori transaksional. Ieu periode pisan fruitful nalika dulur mimiti museurkeun téhnologi informasi. Parallelism, kaasup, sanajan sistem multi-core teu acan aya. Salila poé Panonpoé sarta Oracle, abdi digawé pisan dina struktur data paralel. Di Facebook kuring digawé dina proyék blockchain maranéhna, nu kuring teu bisa ngobrol ngeunaan, tapi kuring miharep éta geura-giru jadi publik. Taun hareup, di Algorand, kuring bakal damel di grup riset anu diajar kontrak pinter.

Alexey: Blockchain parantos janten topik anu kasohor dina sababaraha taun ka pengker. Naha ieu bakal ngabantosan panalungtikan anjeun? Panginten éta bakal ngagampangkeun kéngingkeun hibah atanapi nyayogikeun aksés kana sumber daya ti perusahaan anu beroperasi di industri?

Maurice: Kuring geus narima hibah leutik ti Ethereum Foundation. Popularitas blockchain pohara mantuan pikeun mere ilham siswa pikeun digawé di widang ieu. Aranjeunna kabetot pisan dina éta sareng gumbira pikeun aub, tapi sakapeung aranjeunna henteu sadar yén panalungtikan anu disada seru di luar tétéla ngalibetkeun kerja keras. Nanging, kuring bungah pisan ngagunakeun sadaya mistik ieu dina blockchain pikeun ngabantosan murid. 

Tapi éta henteu sadayana. Abdi dina dewan piwuruk sababaraha startups blockchain. Sababaraha di antarana bisa sukses, sababaraha di antarana bisa jadi teu, tapi sok pisan metot ningali gagasan maranéhanana, diajar aranjeunna sarta mamatahan jalma. Hal anu paling pikaresepeun nyaéta nalika anjeun ngingetkeun jalma pikeun henteu ngalakukeun hiji hal. Loba hal sigana kawas ide nu sae dina mimitina, tapi aranjeunna bener?

Yayasan pikeun Panalungtikan Blockchain

Vitaly: Sababaraha urang nganggap yén masa depan perenahna sareng blockchain sareng algoritma na. Jeung jalma séjén nyebutkeun éta ngan gelembung sejen. Naha anjeun tiasa ngabagikeun pendapat anjeun ngeunaan masalah ieu?

Maurice: Seueur anu kajantenan di dunya blockchain anu salah, sababaraha ngan ukur panipuan, seueur anu overrated. Nanging, kuring nyangka aya dasar ilmiah anu kuat pikeun studi ieu. Kanyataan yén dunya blockchain pinuh ku bédana ideologi nunjukkeun tingkat pikagumbiraeun sareng dedikasi. Di sisi anu sanés, ieu sanés mangpaat pisan pikeun panalungtikan ilmiah. Ayeuna, upami anjeun nyebarkeun tulisan anu nyarioskeun kalemahan algoritma khusus, réaksi anu hasilna henteu salawasna ilmiah. Mindeng jalma buang kaluar emosi maranéhanana. Jigana nu jenis ieu pikagumbiraeun di wewengkon ieu bisa sigana pikaresepeun pikeun sabagian, tapi dina ahir poé, aya masalah ilmiah sarta rékayasa nyata nu kudu kajawab. Aya seueur Ilmu Komputer di dieu.

Vitaly: Janten anjeun nyobian nempatkeun pondasi pikeun panalungtikan blockchain, leres?

Maurice: Kuring nyobian nempatkeun pondasi pikeun disiplin anu padet, sacara ilmiah sareng matematis. Sareng bagian tina masalahna nyaéta yén sakapeung anjeun kedah ngabantah sababaraha posisi anu parah teuing jalma sanés sareng teu malire aranjeunna. Kadang-kadang jalma nanya naha kuring digawé di wewengkon nu ngan teroris jeung traffickers narkoba museurkeun. Réaksi sapertos kitu henteu aya gunana sapertos paripolah pengikut anu sacara buta ngulang kecap anjeun. Jigana kabeneran aya wae di tengah. Blockchain bakal gaduh dampak anu ageung pikeun masarakat sareng ékonomi global. Tapi ieu sigana moal lumangsung berkat téhnologi modéren. Téknologi modéren bakal berkembang sareng naon anu bakal disebut blockchain di hareup bakal penting pisan. Éta henteu sigana sapertos blockchains modern, éta patarosan anu kabuka.

Upami jalma-jalma nimukeun téknologi anyar, aranjeunna bakal teras nyauran éta blockchain. Maksad abdi, sapertos Fortran dinten ayeuna teu aya hubunganana sareng basa Fortran ti taun 1960-an, tapi sadayana tetep nyebat Fortran. Sarua pikeun UNIX. Naon anu disebut "blockchain" masih bakal nyieun revolusi na. Tapi kuring ragu yén blockchain anyar ieu bakal sapertos naon anu dipikaresep ku sadayana ayeuna.

Ti mana ideu terobosan asalna? Dampak popularitas

Alexey: Naha popularitas blockchain nyababkeun hasil anyar tina sudut pandang ilmiah? Langkung seueur interaksi, langkung seueur mahasiswa, langkung seueur perusahaan di daérah éta. Naha geus aya hasil tina kanaékan popularitas ieu?

Maurice: Kuring jadi kabetot dina ieu lamun batur dibikeun kuring hiji flyer resmi pikeun parusahaan nu kakarék ngumpulkeun cukup loba duit. Ieu wrote ngeunaan tugas jenderal Bizantium, jeung nu kuring leuwih ti akrab. Naon anu diserat dina brosur éta jelas sacara téknis henteu leres. Jalma-jalma anu nyerat sadayana ieu henteu ngartos modél anu aya di tukangeun masalah ... sareng perusahaan ieu ngangkat seueur artos. Salajengna, perusahaan sepi ngagentos brosur ieu sareng versi anu langkung leres - sareng kuring moal nyarios naon nami perusahaan ieu. Aranjeunna masih di sabudeureun tur ngalakonan kacida alusna. Kajadian ieu ngayakinkeun kuring yén, mimitina, blockchain mangrupikeun bentuk komputasi anu disebarkeun. Bréh, ambang asupna (sahenteuna harita, opat taun ka pengker) rada handap. Jalma-jalma anu damel di widang ieu pisan energetik sareng cerdas, tapi aranjeunna henteu maca makalah ilmiah. Aranjeunna diusahakeun reinvent hal dipikawanoh tur ngalakukeun eta salah. Kiwari drama geus ngurangan.

Alexey: Ieu pisan metot, sabab sababaraha taun ka pengker urang boga trend béda. Ieu rada kawas ngembangkeun hareup-tungtung, nalika pangembang hareup-tungtung basis browser reinvented sakabéh téknologi anu geus populér di tukang-tungtung: ngawangun sistem, integrasi kontinyu, hal kawas éta. 

Maurice: Abdi satuju. Tapi ieu teu heran, sabab sabenerna gagasan terobosan salawasna datangna ti luar komunitas ngadegkeun. Panaliti anu mapan, khususna akademisi anu mapan, sigana moal ngalakukeun nanaon anu leres-leres groundbreaking. Gampang nyerat makalah kanggo konperénsi salajengna ngeunaan kumaha anjeun rada ningkatkeun hasil padamelan anjeun katukang. Buka konferensi, ngumpul jeung babaturan, ngobrol ngeunaan hal anu sarua. Sareng jalma-jalma anu nyebrang ideu terobosan ampir sok asalna ti luar. Aranjeunna teu nyaho aturan, maranéhna teu nyaho basa, tapi Tapi ... Mun anjeun dina komunitas ngadegkeun, abdi mamatahan anjeun nengetan hal anyar, mun hal anu teu cocog kana gambar sakabéh. Dina rasa, usaha tiasa dilakukeun pikeun ngagabungkeun pamekaran éksternal anu langkung cair sareng metode anu urang parantos ngartos. Sabagé léngkah munggaran, cobian ngawangun dasar ilmiah, teras robih supados tiasa dilarapkeun kana ide-ide terobosan énggal. Kuring nyangka yén blockchain saé pikeun janten ide anu seger sareng ngaganggu.

Alexey: Naha anjeun pikir ieu kajadian? Kusabab jalma "di luar" henteu ngagaduhan halangan khusus anu aya di masarakat?

Maurice: Aya pola anu lumangsung di dieu. Lamun maca sajarah impresionis dina lukisan jeung seni sacara umum, dina hiji waktu seniman kawentar nampik impressionism. Maranéhanana ngomong éta jenis bubudakeun. Generasi saterusna, bentuk seni anu saméméhna ditolak ieu janten standar. Naon anu kuring tingali dina widang kuring: panemu blockchain henteu kabetot dina kakawasaan, dina ningkatkeun publikasi sareng indéks kutipan, aranjeunna ngan ukur hoyong ngalakukeun anu saé. Jeung saterusna maranéhanana diuk turun jeung mimitian ngalakonan eta. Aranjeunna kakurangan sajumlah jero téknis, tapi éta tiasa dilereskeun. Langkung sesah ngadamel ideu kréatif énggal tibatan ngabenerkeun sareng nguatkeun ideu anu teu cukup dewasa. Hatur nuhun kana panemu ieu, kuring ayeuna gaduh anu kedah dilakukeun!

Alexey: Ieu sami sareng bédana antara ngamimitian sareng proyék warisan. Urang inherit loba watesan pamikiran, halangan, syarat husus, jeung saterusna.

Maurice: A analogi alus nyaeta komputasi disebarkeun. Pikirkeun blockchain saolah-olah éta ngamimitian sareng nyebarkeun komputasi salaku perusahaan anu ageung. Komputasi anu disebarkeun aya dina prosés kaala sareng dihijikeun sareng blockchain.

PhD dina pangawasan Barbara Liskov

Vitaly: Urang masih gaduh seueur patarosan! Kami ningali latar tukang anjeun sareng mendakan fakta anu pikaresepeun ngeunaan doktor anjeun. Sumuhun, ieu geus lila pisan, tapi sigana hiji topik penting. Anjeun nampi PhD anjeun dina bimbingan diri anjeun Barbara Liskov! Barbara kasohor pisan dina komunitas basa program, sareng jalma anu kawéntar sacara umum. Logis yén panalungtikan anjeun dina widang basa pamrograman. Kumaha anjeun pindah ka komputasi paralel? Naha anjeun mutuskeun pikeun ngarobah topik?

Maurice: Dina waktos éta, Barbara sareng kelompokna ngan ukur ningali komputasi anu disebarkeun, anu mangrupikeun ide anu énggal. Aya ogé anu nyebatkeun yén komputasi anu disebarkeun mangrupikeun omong kosong sareng yén komputer anu saling komunikasi henteu aya gunana. Salah sahiji masalah anu dibahas dina komputasi terdistribusi anu ngabédakeunana tina komputasi terpusat nyaéta kasabaran kasalahan. Saatos seueur panilitian, kami mutuskeun yén basa pamrograman komputasi anu disebarkeun kedah gaduh hal sapertos transaksi atom sabab anjeun moal pernah yakin yén telepon jauh bakal suksés. Sakali anjeun gaduh transaksi, masalah manajemén concurrency timbul. Teras aya seueur padamelan pikeun kéngingkeun struktur data transaksional anu paralel pisan. Lajeng, nalika kuring lulus, kuring indit ka Carnegie Mellon sareng mimiti milarian topik pikeun dianggo. Kapikiran kuring yén komputasi parantos pindah tina komputer individu ka jaringan komputer. Multiprocessors bakal janten tuluyan tina kamajuan alam - kecap "multi-core" teu acan aya. Teu sangka: naon sarua jeung transaksi atom pikeun sistem multi-core? Pasti teu transaksi biasa sabab badag teuing jeung beurat. Tur éta kumaha kuring datang nepi ka ide linearizability tur éta kumaha kuring datang nepi ka sakabeh antosan-gratis singkronisasi. Ieu usaha pikeun ngajawab patarosan naon analog tina transaksi atom pikeun sistem multiprocessor kalawan memori dibagikeun. Dina glance kahiji, karya ieu bisa kasampak lengkep beda, tapi dina kanyataanana mangrupa tuluyan tina téma sarua.

Dunya ngantosan multi-inti

Vitaly: Anjeun nyarios yén dina waktos éta aya sakedik komputer multi-inti, sanés?

Maurice: Éta ngan teu aya. Aya sababaraha disebut multiprocessors simetris, nu dasarna disambungkeun ka beus sarua. Ieu henteu dianggo saé pisan sabab unggal waktos perusahaan énggal nyiptakeun hal anu sami, Intel bakal ngaluarkeun prosesor tunggal anu langkung unggul tibatan multiprocessor.

Alexey: Naha ieu henteu hartosna yén dina jaman baheula éta langkung seueur kajian téoritis?

Maurice: Ieu lain ulikan teoritis, tapi rada ulikan spekulatif. Sadaya ieu sanés ngeunaan damel sareng seueur téoréma, tapi urang nempatkeun hipotesis ngeunaan arsitektur anu teu aya dina waktos éta. Ieu kanggo naon panalungtikan! Teu aya perusahaan anu bakal ngalakukeun sapertos kieu; éta sadayana tina masa depan anu jauh. Kanyataanna, ieu kasus dugi 2004, nalika prosesor multi-core nyata mucunghul. Kusabab prosesor overheat, Anjeun bisa nyieun processor malah leuwih leutik, tapi anjeun teu bisa nyieun leuwih gancang. Kusabab ieu, aya transisi ka arsitéktur multi-inti. Lajeng éta hartina ujug-ujug aya pamakéan pikeun sakabéh konsep nu urang geus dimekarkeun dina mangsa katukang.

Alexey: Naha saur anjeun prosesor multi-core ngan ukur muncul dina taun XNUMXan? Ku kituna naha éta telat?

Maurice: Ieu alatan watesan hardware. Intel, AMD jeung pausahaan séjén pohara alus dina ngaronjatkeun speed processor. Nalika di sawatara titik prosesor jadi cukup leutik yén maranéhna teu bisa deui ningkatkeun laju jam sabab prosesor bakal mimiti kaduruk kaluar. Anjeun tiasa ngadamel aranjeunna langkung alit, tapi henteu langkung gancang. Naon anu aya dina kakawasaanana - tibatan prosesor anu alit, aranjeunna tiasa nyocogkeun dalapan, genep belas atanapi tilu puluh dua prosesor kana volume anu sami, dimana sateuacana ngan ukur hiji anu cocog. Ayeuna anjeun gaduh multithreading sareng komunikasi gancang antara aranjeunna kusabab aranjeunna ngabagi cache. Tapi anjeun teu bisa maksa aranjeunna ngajalankeun gancang - aya wates speed pisan husus. Aranjeunna terus ningkat saeutik-saeutik, tapi henteu langkung seueur. Hukum fisika nangtung dina jalan perbaikan.

Dunya anyar mawa masalah anyar. NUMA, NVM sareng arsitéktur Hacking

Alexey: Sora pisan lumrah. Kalawan prosesor multi-core anyar datang masalah anyar. Naha anjeun sareng kolega anjeun ngarepkeun masalah ieu? Sugan anjeun diajar aranjeunna sateuacanna? Dina studi téoritis mindeng teu pisan gampang pikeun ngaduga hal saperti. Nalika aya masalah, kumaha aranjeunna nyumponan ekspektasi anjeun sareng kolega anjeun? Atanapi aranjeunna énggal-énggal, sareng anjeun sareng kolega anjeun kedah nyéépkeun seueur waktos pikeun ngarengsekeun masalah nalika aranjeunna muncul?

Vitaly: Kuring bakal nambihan patarosan Alexey: naha anjeun leres-leres ngaduga arsitéktur prosesor nalika anjeun diajar téori?

Maurice: Teu 100%. Tapi kuring pikir kolega kuring sareng kuring parantos ngalaksanakeun padamelan anu saé pikeun ngaramalkeun multi-core kalayan mémori anu dibagikeun. Jigana urang bener diprediksi kasusah dina ngamekarkeun struktur data paralel nu beroperasi tanpa konci. Struktur data sapertos kitu penting pikeun seueur aplikasi, sanaos henteu sadayana, tapi sering anu anjeun peryogikeun nyaéta struktur data anu henteu ngonci. Nalika urang nimukeun aranjeunna, loba pamadegan yén ieu omong kosong, yén sagalana digawé rupa kalawan konci. Kami ngaramalkeun yén bakal aya solusi anu siap pikeun seueur masalah program sareng masalah struktur data. Aya ogé masalah anu langkung kompleks, sapertos Nomer - aksés henteu rata kana mémori. Kanyataanna, aranjeunna henteu malah dianggap dugi prosesor multi-inti anu nimukeun sabab éta teuing husus. Komunitas panalungtikan nuju ngusahakeun patarosan anu umumna tiasa diprediksi. Sababaraha masalah hardware pakait sareng arsitéktur husus kedah ngantosan di jangjang - kanyataanna, penampilan arsitéktur ieu. Salaku conto, teu aya anu leres-leres damel dina struktur data khusus GPU sabab GPU henteu aya deui. Sanajan loba karya geus dipigawé dina SIMD, Algoritma ieu siap dianggo pas hardware anu cocog janten sayogi. Sanajan kitu, teu mungkin keur foresee sagalana.

Alexey: Upami kuring ngartos leres, NUMA mangrupikeun kompromi antara biaya, kinerja sareng sababaraha hal anu sanés. Aya ide kunaon NUMA kaluar telat?

Maurice: Kuring nyangka yén NUMA aya kusabab masalah sareng hardware anu dianggo pikeun ngahasilkeun mémori: langkung jauh komponénna, langkung laun aksésna. Di sisi séjén, nilai kadua abstraksi ieu uniformity memori. Jadi salah sahiji ciri komputasi paralel nyaéta sakabéh abstraksi rada pegat. Lamun aksés éta sampurna seragam, sadaya memori bakal equidistant, tapi ieu ékonomis, komo meureun fisik, teu mungkin. Ku kituna konflik ieu timbul. Upami anjeun nyerat program anjeun saolah-olah mémori saragam, éta sigana bakal leres. Dina harti yén éta moal masihan jawaban salah. Tapi kinerja dirina moal nyekel béntang ti langit ogé. Kitu ogé, lamun nulis spinlocks Tanpa ngarti kana hirarki cache, blocking sorangan bakal bener, tapi anjeun bisa poho ngeunaan kinerja. Dina harti, Anjeun kudu nulis program nu hirup di luhur hiji abstraksi basajan pisan, tapi anjeun kudu outwit jalma anu méré Anjeun abstraksi: Anjeun kudu nyaho yén underneath abstraksi aya sababaraha hirarki memori, nu aya beus antara anjeun jeung memori ieu, jeung saterusna. Ku kituna, aya sababaraha konflik antara abstraksi mangpaat individual, nu ngabalukarkeun urang kana masalah pisan konkrit jeung pragmatis.

Vitaly: Kumaha masa depan? Dupi anjeun ngaduga kumaha prosesor bakal ngamekarkeun salajengna? Aya hiji gagasan yén salah sahiji jawaban anu memori transactional. Anjeun meureun boga hal sejenna di stock.

Maurice: Aya sababaraha tantangan utama payun. Salah sahijina nyaéta mémori anu koheren mangrupikeun abstraksi anu saé, tapi mimiti ngarecah dina kasus khusus. Janten, contona, NUMA mangrupikeun conto anu hirup dimana anjeun tiasa teras-terasan pura-pura yén mémori seragam aya. Sabenerna henteu, produktivitas bakal ngajadikeun anjeun ceurik. Dina sababaraha waktos, arsiték kedah ngantunkeun ideu arsitektur mémori tunggal; anjeun moal tiasa pura-pura salamina. Modél pamrograman énggal bakal diperyogikeun anu cukup gampang dianggo sareng cukup kuat pikeun ngajantenkeun hardware dasarna éfisién. Ieu mangrupikeun kompromi anu sesah, sabab upami anjeun nunjukkeun programer arsitéktur anu leres-leres dianggo dina hardware, aranjeunna bakal gélo. Éta rumit teuing sareng henteu portabel. Upami anjeun nampilkeun antarmuka anu saderhana teuing, kinerjana bakal goréng. Ku kituna, loba pisan hésé trade-offs bakal perlu dijieun pikeun nyadiakeun model programming mangpaat lumaku pikeun prosesor multi-inti sabenerna badag. Kaula teu yakin kana nu saha lian ti spesialis sanggup program dina komputer 2000-inti. Sareng upami anjeun nuju ngalakukeun komputasi atanapi kriptografi anu khusus atanapi ilmiah atanapi anu sapertos kitu - éta masih henteu jelas kumaha cara ngalakukeunana leres. 

Wewengkon séjén anu sami nyaéta arsitéktur khusus. Akselerator grafik parantos lami, tapi aranjeunna janten conto klasik ngeunaan kumaha anjeun tiasa nyandak jinis komputasi khusus sareng ngajalankeunana dina chip khusus. Ieu nambihan tantangan sorangan: kumaha anjeun komunikasi sareng alat sapertos kitu, kumaha program anjeun. Abdi nembe ngusahakeun masalah di daérah deukeut komputasi memori. Anjeun nyandak prosesor leutik sareng lem kana sakumpulan mémori anu ageung supados mémori jalan dina laju cache L1 teras komunikasi sareng alat sapertos kitu. TPU - prosesor sibuk ngamuat tugas anyar kana inti mémori anjeun. Ngarancang struktur data sareng protokol komunikasi pikeun hal ieu mangrupikeun conto anu pikaresepeun. Janten prosesor sareng hardware khusus bakal teras-terasan ningali perbaikan pikeun sababaraha waktos.

Alexey: Kumaha upami memori non-volatile (memori non-volatile)?

Maurice: Oh, éta conto hébat sejen! NVM bakal greatly ngarobah cara urang nempo hal kawas struktur data. Memori non-volatile, dina rasa, janji bakal ngagancangkeun hal-hal. Tapi éta moal ngagampangkeun kahirupan sabab kalolobaan prosesor, cache, sareng register masih teu stabil. Nalika anjeun ngamimitian saatos kacilakaan, kaayaan anjeun sareng kaayaan mémori anjeun moal persis sami sareng sateuacan kacilakaan. Abdi nganuhunkeun pisan ka jalma-jalma anu damel di NVM - bakal aya seueur anu kedah dilakukeun ku panaliti pikeun waktos anu lami nyobian terangkeun kaayaan anu leres. Komputasi leres upami aranjeunna tiasa salamet tina kacilakaan dimana eusi cache sareng register leungit, tapi mémori utama tetep gembleng.

Compiler vs prosesor, RISC vs CISC, dibagikeun memori vs pesen ngalirkeun

Vladimir: Kumaha saur anjeun ngeunaan "compilers vs processors" dilema ti hiji set instruksi titik of view? Hayu atuh ngajelaskeun pikeun maranéhanana anu teu nyaho: lamun urang buka memori skewed atawa hal sarupa, urang bisa ngagunakeun susunan basajan pisan paréntah jeung nanya ka kompiler pikeun ngahasilkeun kode kompléks nu bisa ngamangpaatkeun kaunggulan anyar. Atanapi urang tiasa jalan anu sanés: laksanakeun paréntah anu rumit sareng naroskeun ka prosesor pikeun nyusun ulang paréntah sareng ngalakukeun manipulasi sanés sareng aranjeunna. Kumaha saur anjeun ngeunaan éta?

Maurice: Abdi henteu gaduh jawaban kana patarosan éta. debat ieu geus lumangsung salila opat puluh taun. Aya waktos nalika antara disingget susunan paréntah jeung hese perang sipil anu perang ku susunan paréntah. Sakedap, jalma RISC meunang, tapi lajeng Intel diwangun deui mesin maranéhanana ambéh a set ngurangan parentah dipaké internal, sarta set pinuh ieu diékspor externally. Ieu meureun hiji topik nu unggal generasi anyar kudu manggihan compromises sorangan sarta nyieun kaputusan sorangan. Hésé pisan pikeun ngaduga mana tina hal-hal ieu anu langkung saé. Janten naon waé ramalan kuring bakal leres pikeun sababaraha waktos, teras palsu deui sakedap, teras leres deui.

Alexey: Sabaraha umumna pikeun industri sababaraha ideu meunang sababaraha dekade sareng éléh dina salajengna? Naha aya conto sanés ngeunaan parobahan périodik sapertos kitu?

Maurice: Dina topik komputasi disebarkeun, aya jalma anu percaya memori dibagikeun jeung jalma anu percaya olahtalatah. Dina awalna, dina komputasi terdistribusi, komputasi paralel hartina ngalirkeun pesen. Lajeng batur manggihan yén éta loba gampang program kalawan memori dibagikeun. Sisi sabalikna nyebatkeun yén mémori anu dibagikeun teuing pajeulit, sabab peryogi konci sareng anu sanés, janten kedah ngalih ka basa anu teu aya sanés ngan ukur pesen anu dikirimkeun. Aya anu ningali naon anu kaluar tina ieu sareng nyarios, "Wah, palaksanaan olahtalatah ieu katingalina sapertos mémori anu dibagikeun, sabab anjeun nyiptakeun seueur pisan modul-modul alit ieu, aranjeunna ngirim pesen ka anu sanés, sareng aranjeunna sadayana. interlock"Hayu urang ngadamel database memori anu langkung saé!" Sadaya ieu diulang leuwih sarta leuwih deui, sarta teu mungkin mun disebutkeun yen salah sahiji pihak pasti katuhu. Salah sahiji sisi bakal salawasna ngadominasi sabab pas salah sahijina ampir meunang, jalma deui jeung deui invent cara pikeun ngaronjatkeun séjén.

Seni Nulis Kodeu Multithreaded Rusuh

Alexey: Ieu pisan metot. Contona, nalika urang nulis kode, euweuh urusan naon basa programming, urang biasana kudu nyieun abstraksi kawas sél nu bisa dibaca tur ditulis. Tapi kanyataanna, dina sababaraha tingkat fisik, ieu sigana sapertos ngirim pesen dina beus hardware antara komputer anu béda sareng alat anu sanés. Tétéla yén karya lumangsung dina duanana tingkat abstraksi sakaligus.

Maurice: Éta leres pisan yén mémori anu dibagi diwangun dina pesen anu dikirimkeun - beus, cache, sareng sajabana. Tapi hese nulis program ngagunakeun pesen passing, jadi hardware ngahaja perenahna, pretending nu boga sababaraha jenis memori seragam. Ieu bakal ngagampangkeun anjeun nyerat program anu saderhana sareng leres sateuacan kinerja mimiti mudun. Teras anjeun bakal nyarios: sigana waktosna pikeun babaturan sareng cache. Lajeng anjeun mimiti salempang ngeunaan lokasi cache, sarta ti dinya mana. Dina rasa, anjeun hacking abstraksi: anjeun terang éta henteu ngan datar, memori seragam, jeung anjeun bakal ngagunakeun pangaweruh nu nulis program ramah-cache. Ieu naon anu anjeun kedah laksanakeun dina masalah nyata. Konflik ieu antara abstraksi anu amis, saderhana, anu saé anu anjeun parantos dipasihkeun sareng palaksanaan rumit anu rumit tina parangkat keras dasarna dimana sadayana bakal ngadamel kompromi sorangan. Abdi gaduh buku ngeunaan multiprocessor sareng sinkronisasi, sareng dina hiji waktos kuring badé nyerat bab ngeunaan struktur data dina java.util.concurrent. Lamun nempo aranjeunna, hal kawas daptar kalawan omissions Ieu karya seni endah pisan. (Catetan éditor: Anu akrab sareng basa Jawa sahenteuna kedah ningali palaksanaanna ConcurrentSkipListMap, anjeun tiasa ningali tautan di API и kode sumber). Tapi tina sudut pandang kuring, éta bakal tanggung jawab pikeun nunjukkeun ka murid, sabab struktur data sapertos kitu sapertos saurang lalaki dina sirkus anu ngajalankeun tali ketat dina liang biruang. Lamun ngarobah malah hiji jéntré leutik, sakabeh struktur bakal ambruk. Kode ieu pisan gancang sarta elegan ngan sabab ditulis sampurna, tapi parobahan slightest bakal ngakibatkeun gagalna lengkep. Mun kuring masihan kode ieu salaku conto ka siswa, maranéhna bakal langsung ngomong: Abdi tiasa ngalakukeun éta teuing! Teras sababaraha pesawat bakal nabrak atanapi reaktor nuklir bakal ngabeledug, sareng kuring bakal kaliru pikeun masihan aranjeunna seueur inpormasi dina waktos anu salah.

Alexey: Nalika kuring alit, sababaraha kali kuring nyobian diajar kode sumber Doug Lee, contona, java.util.concurrent, Kusabab éta open source, éta gampang pisan pikeun manggihan tur coba ngartos naon anu lumangsung di dinya. Éta henteu saé pisan: sering, éta teu écés naha Doug mutuskeun pikeun ngalakukeun hal-hal ku cara ieu nalika batur ngalakukeunana béda. Kumaha anjeun ngajelaskeun hal ieu ka murid anjeun? Naha aya cara anu leres khusus pikeun ngajelaskeun rinci khusus ngeunaan algoritma hardcore, contona? Kumaha anjeun ngalakukeun ieu?

Maurice: Guru ngagambar gaduh klise anu aranjeunna émut heula: upami anjeun hoyong ngagambar sapertos Picasso, anjeun kedah mimiti diajar ngagambar gambar anu réalistis anu sederhana, sareng ngan nalika anjeun terang aturan anjeun tiasa ngamimitian ngalanggarana. Upami anjeun ngawitan ngalanggar aturan langsung, anjeun bakal ngaganggu. Kahiji, kuring ngajarkeun siswa cara nulis basajan, kode bener tanpa salempang ngeunaan kinerja. Anu kuring nyarioskeun nyaéta, aya masalah waktos anu rumit anu nyumput di dieu, janten tong hariwang ngeunaan cache, tong hariwang ngeunaan modél mémori, ngan pastikeun yén sadayana jalan leres. Ieu geus cukup hésé: programming modern teu gampang sorangan, utamana pikeun siswa anyar. Sareng nalika aranjeunna gaduh intuisi ngeunaan cara nyerat program anu leres, kuring nyarios: tingali dua palaksanaan spinlock ieu: anu hiji lambat pisan, sareng anu kadua ogé henteu pisan, tapi langkung saé. Nanging, sacara matematis dua algoritma éta sami. Kanyataanna, salah sahijina ngagunakeun locality cache. Salah sahijina dijalankeun dina data anu disimpen sacara lokal, sareng anu sanésna sababaraha kali ngalaksanakeun operasi dina beus. Anjeun teu bisa nulis kode efisien lamun teu ngarti naon éta, sarta teu nyaho kumaha carana megatkeun abstraksi jeung kasampak dina struktur kaayaan. Tapi anjeun moal tiasa ngamimitian ngalakukeun ieu langsung. Aya jalma anu ngamimitian ngalakukeun ieu langsung sareng percanten ka genius sorangan, biasana tungtungna parah sabab henteu ngartos prinsipna. Teu aya anu ngagambar sapertos Picasso atanapi nyerat program sapertos Doug Lee kaluar tina kuliah dina minggu kahijina. Butuh taun pikeun ngahontal tingkat pangaweruh ieu.

Alexey: Tétéla anjeun ngabagi masalah kana dua bagian: kahiji nyaeta correctness, kadua - kinerja?

Maurice: Leres. Jeung, persis dina urutan éta. Bagian tina masalah nyaeta siswa anyar teu ngarti yén correctness téh hésé pikeun ngahontal. Dina glance kahiji maranéhna ngomong: ieu téh écés bener, ngan ukur nyepetkeun eta. Janten sakapeung kuring nyarioskeun ka aranjeunna ngeunaan algoritma anu mimitina salah saolah-olah éta leres.

Kumaha carana ngajarkeun siswa nulis kode multithreaded kompléks

Alexey: Ngan pikeun nempo naha maranéhna bisa ngarasakeun nyekel?

Maurice: Kuring sok ngingetkeun sateuacanna yén sakapeung kuring bakal ngajukeun algoritma anu salah. Anjeun teu kedah nipu jalma. Kuring nyarankeun aranjeunna nyandak inpormasi kalayan sakedik uyah. Upami kuring nyarioskeun hiji hal sareng nyarios: "Tingali, ieu écés leres" - ieu mangrupikeun sinyal yén dimana waé aranjeunna nyobian nipu anjeun, sareng anjeun kedah ngamimitian naroskeun patarosan. Salajengna, abdi nyobian ngadorong murid pikeun terus naroskeun patarosan, teras kuring nyarankeun, "Naon anu bakal kajadian upami urang ngantepkeun naon waé?" Jeung maranéhna langsung ningali kasalahan. Tapi ngayakinkeun siswa yén maranéhna kudu salempang ngeunaan correctness jauh leuwih hese ti sigana di glance kahiji. Seueur mahasiswa ieu ngagaduhan pangalaman program di SMA, sawaréh ngagaduhan padamelan sareng parantos ngalaksanakeun program di dinya, sareng aranjeunna sadayana pinuh ku kapercayaan. Ieu hal kawas tentara: Anjeun mimitina kudu ngarobah wanda maranéhanana guna ngayakinkeun maranéhna pikeun sabar ngadeukeutan ngarengsekeun masalah anu timbul. Atawa meureun éta kawas biarawan Budha: mimitina maranéhna diajar alesan ngeunaan correctness, sarta sanggeus maranéhna ngarti cara nalar ngeunaan correctness, aranjeunna diwenangkeun pikeun pindah ka tingkat salajengna tur mimitian pikahariwangeun ngeunaan kinerja.

Alexey: Nyaéta, sakapeung anjeun nunjukkeun murid conto anu henteu tiasa dianggo, hatur nuhun anjeun nampi tanggapan anu nunjukkeun naha aranjeunna ngartos hakekat masalahna, naha aranjeunna tiasa mendakan kode anu salah sareng hasil anu salah. Janten, naha mahasiswa biasana ngajantenkeun anjeun gumbira atanapi sedih?

Maurice: Murid ampir sok manggihan kasalahan ahirna. Upami aranjeunna milarian lalaunan teuing, kuring naroskeun patarosan anu ngarah, sareng di dieu hal anu penting pikeun ngartos yén upami anjeun henteu pernah nipu aranjeunna, aranjeunna bakal mimiti nganggap kecap anjeun salaku bebeneran pamungkas. Lajeng maranéhna bakal bosen tur mimitian ragrag saré bari maca Facebook dina laptop maranéhanana salila kelas. Tapi nalika anjeun nyarios sateuacanna yén aranjeunna bakal ditipu, sareng aranjeunna bakal katingali bodo upami aranjeunna henteu ngartos trik, aranjeunna janten langkung waspada. Ieu alus dina cara béda. Abdi hoyong murid henteu ngan ukur naroskeun pamahamanana ngeunaan masalah éta, tapi ogé naroskeun otoritas guru. Gagasanna nyaéta yén saurang murid tiasa ngangkat leungeun iraha waé sareng nyarios: Jigana naon anu anjeun nyarios salah. Éta mangrupikeun alat diajar anu penting. Kuring teu hayang salah sahiji siswa diuk jeung cicingeun mikir sorangan: kabeh ieu sigana gede bohong lengkep, tapi raising leungeun Anjeun teuing pikasieuneun, jeung atoh, manéhna profesor, jadi sagalana manéhna nyebutkeun téh bebeneran. Ku alatan éta, lamun aranjeunna warned sateuacanna yén teu sagalana dicaritakeun téh merta leres, aranjeunna gaduh insentif pikeun nengetan leuwih kana materi. Kuring nerangkeun yén henteu kunanaon pikeun ngangkat leungeun anjeun sareng naroskeun patarosan. Patarosan anjeun tiasa disada bodo atanapi naif, tapi ieu sering kumaha patarosan anu pangsaéna timbul.

Alexey: Pisan metot. Biasana jalma gaduh sababaraha jinis halangan psikologis anu henteu ngamungkinkeun aranjeunna naroskeun patarosan ka profesor. Utamana upami aya seueur jalma di rohangan, sareng sadayana sieun yén ngabahas patarosan bodo anjeun bakal nyandak waktos sadayana jalma ieu. Dupi aya trik pikeun nungkulan ieu?

Maurice: Abdi sering eureun sareng naroskeun patarosan klasik. Naha hiji pernyataan bakal bener, atawa kumaha maranéhna bakal ngajawab masalah keur dibahas. Ieu mangrupikeun tindakan konci, khususna dina awal pelajaran nalika jalma éra nyarioskeun hal anu pangleutikna. Anjeun naroskeun patarosan ka murid sareng teu nyarios nanaon deui. Aya tiiseun, dulur meunang saeutik tense, tegangan tumuwuh, lajeng ujug-ujug aya nu teu tahan, ngarecah sarta nyebutkeun jawaban. Ieu kumaha anjeun ngarobih kaayaan: neraskeun cicingeun janten langkung hese sareng teu pikaresepeun tibatan ngawalon! Ieu trik pedagogical baku. Unggal guru di dunya kedah terang kumaha ngalakukeun ieu.

Alexey: Ayeuna kami gaduh judul anu saé pikeun wawancara ieu: "Éta langkung gampang pikeun ngajawab tibatan cicingeun."

Vitaly: Hayu atuh nanya deui. Anjeun nuju damel dina bukti topologis. Kumaha anjeun malah kalibet dina ieu, sabab komputasi disebarkeun sarta topologi mangrupakeun hal lengkep beda!

Maurice: Aya sambungan disumputkeun dinya. Nalika kuring murid diajar matematika, kuring diajar matematika murni. Kuring teu boga minat nyata dina komputer dugi studi abdi sumping ka tungtung na kuring kapanggih sorangan Nyanghareupan kabutuhan mencét néangan pakasaban. Salaku murid kuring diajar topologi aljabar. Mangtaun-taun ti harita, bari ngerjakeun masalah anu disebut "Masalah Perjangjian k-Set", Kuring dipaké grafik pikeun model masalah na, sakumaha eta seemed dina wayah éta, Kuring geus kapanggih solusi. Anjeun ngan kungsi diuk turun jeung indit sabudeureun count. Coba milarian jawaban anu cocog dina grafik ieu. Tapi algoritma kuring henteu jalan: tétéla yén anjeunna bakal ngajalankeun di bunderan salawasna. Hanjakalna, sadaya ieu teu tiasa dijelaskeun dina basa formal téori grafik - anu terang sadayana élmuwan komputer. Teras kuring émut yén sababaraha taun ka pengker, di kelas topologi, kami nganggo konsép "kompléks basajan", nu mangrupakeun generalisasi grafik ka dimensi luhur. Teras kuring naros ka diri kuring: naon anu bakal kajantenan upami urang ngarobih deui masalah tina segi kompleks saderhana? Ieu janten momen konci. Kalayan ngagunakeun formalisme anu langkung kuat, masalahna ngadadak janten langkung saderhana. Jalma perang ngalawan eta pikeun lila, ngagunakeun grafik, tapi maranéhna teu bisa ngalakukeun nanaon. Sareng ayeuna aranjeunna henteu tiasa - jawaban anu leres tétéla sanés algoritma, tapi buktina teu mungkin pikeun ngarengsekeun masalah. Hartina, algoritma misalna hiji saukur teu aya. Tapi unggal bukti impossibility dumasar kana komplék saderhana atawa kana hal-hal anu pura-pura teu dianggap komplék saderhana. Ngan kusabab anjeun nelepon hiji hal ngaran anyar, éta teu leungit hakekat na.

Vitaly: Tétéla anjeun ngan untung?

Maurice: Salian ti untung, éta ogé kahayang. Ieu ngandung harti yén anjeun teu kudu poho hal "teu aya gunana" anjeun diajar saméméhna. Langkung seueur hal anu teu aya gunana anjeun diajar, langkung seueur ideu anu anjeun tiasa nimba nalika nyanghareupan masalah anyar. Jenis pencocokan pola intuitif ieu penting sabab ... Hayu urang ngalakukeun ieu, ieu ranté hiji: mimitina kuring manggihan yén grafik teu dianggo pisan atawa teu dianggo pisan, éta ngingetkeun kuring ngeunaan hiji hal ti acara dalapan. sababaraha taun ka pengker sareng taun murid kuring, nalika urang diajar sadayana kompleks saderhana ieu. Ieu dina gilirannana ngidinan kuring pikeun manggihan buku ajar topologi heubeul kuring sarta muka deui kana sirah kuring. Tapi upami teu aya pangaweruh anu lami, kuring moal pernah aya kamajuan dina ngarengsekeun masalah anu asli.

Édisi énggal tina buku "The Art of Multiprocessor Programming"

Alexey: Anjeun nyarios sababaraha kecap ngeunaan buku anjeun. Éta sigana sanés rusiah anu paling awon yén anjeun nyerat buku anu paling kasohor di dunya ngeunaan multithreading, "Seni Pemrograman Multiprocessor". Éta umurna sakitar 11 taun sareng ti saprak éta ngan ukur dileupaskeun  dirévisi ulang. Naha bakal aya édisi kadua?

Maurice: Ieu alus nu nanya! Bakal pisan geura-giru, dina tilu bulan atawa leuwih. Aya dua pangarang deui, kami nambihan langkung seueur bahan, ningkatkeun bagian ngeunaan garpu / gabung paralelisme, nyerat bagian dina MapReduce, nambihan seueur hal énggal sareng ngaluarkeun hal-hal anu teu perlu - hal anu pikaresepeun pisan dina waktos nyerat. édisi munggaran, tapi geus euweuh kiwari. Hasilna nyaéta buku anu dirévisi sacara serius.

Alexey: Sadayana parantos dilakukeun, anu tinggaleun nyaéta ngaleupaskeun?

Maurice: Sababaraha bab masih peryogi sababaraha padamelan. Penerbit urang (anu kuring pikir geus hates kami) masih nyobian pikeun meunangkeun pesen sakuliah yén urang kedah dianggo gancang. Kami jauh katinggaleun jadwal. Sacara téoritis, urang tiasa ngadamel buku ieu sababaraha taun sateuacanna.

Alexey: Aya kasempetan pikeun meunangkeun versi anyar tina buku saméméh Natal?

Maurice: Ieu tujuan urang! Tapi kuring parantos ngaramalkeun kameunangan sababaraha kali dugi ka teu aya anu percaya deui ka kuring. Anjeun panginten henteu kedah percanten teuing ka kuring dina masalah ieu.

Alexey: Dina sagala hal, ieu warta hebat. Abdi resep pisan kana édisi munggaran buku. Anjeun tiasa nyarios kuring kipas.

Maurice: Kuring miharep édisi anyar bakal pantes sumanget anjeun, hatur nuhun!

Kumaha Mémori Transaksional Diciptakeun

Vitaly: Patarosan salajengna ngeunaan memori transactional. Sajauh kuring ngartos, anjeun mangrupikeun panaratas dina widang ieu, anjeun nimukeunana dina waktos anu teu aya anu mikirkeun hal-hal sapertos kitu. Naha anjeun mutuskeun pikeun pindah kana widang ieu? Naha transaksi sigana penting pikeun anjeun? Naha anjeun mikir yén someday aranjeunna bakal dilaksanakeun dina hardware?

Maurice: Kuring geus dipikawanoh ngeunaan transaksi saprak poé panalungtikan lulusan kuring.

Vitaly: Leres, tapi ieu mangrupikeun transaksi anu béda!

Maurice: Kuring gawé bareng Elliott Moss on non-blocking ngumpulkeun sampah. Masalahna nyaéta yén urang hoyong ngarobih sababaraha kecap dina mémori sacara atom teras algoritmana bakal saderhana pisan, sareng sahenteuna sababaraha di antarana bakal langkung éfisién. Ngagunakeun ngabandingkeun-jeung-swap keur beban-link / toko-saratnadisadiakeun ku arsitéktur paralel, kasebut nyaéta dimungkinkeun pikeun ngalakukeun hiji hal, tapi pisan episien jeung awon sabab bakal kudu nungkulan lapisan indirection. Abdi hoyong ngarobih kecap mémori sareng kuring kedah ngalih sabab kuring ngan ukur tiasa ngarobih hiji pointer, janten aranjeunna kedah nunjuk kana sababaraha struktur sapertos diréktori. Urang ngobrolkeun kumaha hébatna upami urang tiasa ngarobih hardware supados tiasa ngarékam sakaligus. Elliott sigana perhatikeun ieu: upami anjeun ningali protokol kohérénsi cache, aranjeunna parantos nyayogikeun seueur fungsionalitas anu diperyogikeun. Dina transaksi optimistis, protokol kohérénsi cache bakal aya bewara yén aya konflik waktos sareng cache bakal janten teu sah. Naon anu lumangsung upami anjeun sacara spekulatif ngajalankeun transaksi dina cache anjeun sareng nganggo mékanisme protokol kohérénsi pikeun ngadeteksi konflik? Arsitéktur hardware spekulatif éta gampang dirancang. Janten urang nyerat éta publikasi munggaran pisan ngeunaan memori transactional. Dina waktos anu sami, perusahaan anu kuring damel, Digital Equipment Corporation, nyiptakeun prosésor 64-bit énggal anu disebut Alpha. Ku kituna kuring indit sarta masihan presentasi ka grup ngembangkeun Alpha ngeunaan memori transactional urang endah tur maranéhna nanya: Sabaraha sharing tambahan bakal parusahaan urang lamun urang ditambahkeun sadayana ieu langsung ka processor? Sareng kuring henteu gaduh jawaban pikeun ieu, sabab kuring ahli téknologi, kuring sanés ahli pamasaran. Nyaan teu aya nu ngajawab. Aranjeunna teu pisan impressed yén kuring teu nyaho nanaon.

Vitaly: Milyar! Sebutkeun milyaran!

Maurice: Leres, éta anu kuring kedah nyarios. Ayeuna, dina umur startups jeung sagalana, abdi terang kumaha carana nulis rencana bisnis. Nu bisa ngabohong saeutik ngeunaan ukuran kauntungan poténsi Anjeun. Tapi dina jaman éta sigana naif, janten kuring ngan ukur nyarios, "Kuring henteu terang." Lamun nempo sajarah publikasi dina mémori transactional, anjeun bakal aya bewara nu sanggeus sataun aya sababaraha rujukan ka dinya, lajeng salila kira sapuluh taun teu saurang ogé dicutat ieu tulisan. Tanda kutip muncul sakitar 2004, nalika multi-cores leres muncul. Nalika jalma manggihan yén nulis kode paralel bisa nyieun duit, panalungtikan anyar dimimitian. Ravi Rajwar nulis artikel, anu ku sababaraha cara ngenalkeun konsép mémori transaksional ka mainstream. (Catatan redaktur: Aya versi kadua artikel ieu, dirilis dina 2010 sarta sadia kalawan bébas. sakumaha PDF). Ujug-ujug jalma sadar persis kumaha sakabéh ieu bisa dipaké, kumaha algoritma tradisional kalayan konci bisa gancangan. Hiji conto alus ngeunaan hal nu geus kaliwat seemed kawas ngan hiji masalah akademik metot. Sareng enya, upami anjeun naroskeun ka kuring dina waktos éta naha kuring ngira yén sadaya ieu bakal penting ka hareup, kuring bakal nyarios: tangtosna, tapi nalika henteu jelas. Meureun dina 50 taun? Dina prakték, ieu tétéla ngan ukur dasawarsa. Hadé pisan mun anjeun ngalakukeun hiji hal sarta sanggeus ngan sapuluh taun jalma perhatikeun eta.

Naha éta patut ngalaksanakeun panalungtikan dina widang komputasi disebarkeun

Vitaly: Lamun urang ngobrol ngeunaan panalungtikan anyar, naon anu anjeun mamatahan pamiarsa - komputasi disebarkeun atawa multi-inti jeung naha? 

Maurice: Dinten ieu gampang pikeun meunangkeun prosésor multi-inti, tapi éta hésé nyetél sistem disebarkeun leres. Kuring mimiti ngerjakeun aranjeunna kusabab kuring hoyong ngalakukeun anu béda ti tesis PhD kuring. Ieu naséhat anu salawasna kuring masihan ka mahasiswa anyar: ulah nyerat tuluyan tina disertasi anjeun-coba angkat ka arah anu énggal. Sareng ogé, multithreading gampang. Abdi tiasa ékspérimén sareng garpu kuring nyalira dina laptop kuring tanpa kaluar tina ranjang. Tapi lamun kuring ujug-ujug hayang nyieun sistem disebarkeun nyata, abdi bakal kudu ngalakukeun loba karya, narik murid, jeung saterusna. Abdi jalma anu puguh sareng langkung resep damel dina multi-core. Ékspérimén dina sistem multi-inti ogé langkung gampang tibatan ngalakukeun ékspérimén dina sistem anu disebarkeun, sabab sanajan dina sistem distribusi anu bodo aya seueur teuing faktor anu kedah dikontrol.

Vitaly: Naon anu anjeun lakukeun ayeuna, nalungtik blockchain? Artikel mana nu kudu diperhatikeun heula?

Maurice: Nembe muncul artikel pohara alus, nu kuring nulis bareng jeung murid kuring, Vikram Saraf, hususna keur ceramah di Konférénsi Tokenomcs di Paris tilu minggu ka tukang. Ieu artikel ngeunaan sistem disebarkeun praktis, nu urang ngajukeun nyieun Ethereum multi-threaded. Ayeuna, kontrak pinter (kode nu dijalankeun dina blockchain nu) dieksekusi sequentially. Kami nyerat tulisan sateuacana anu nyarioskeun ngeunaan cara ngagunakeun transaksi spekulatif pikeun nyepetkeun prosésna. Simkuring nyandak loba gagasan ti memori transactional software sarta ngomong yén lamun nyieun gagasan ieu bagian tina mesin virtual Etherium, lajeng sagalana bakal dianggo gancang. Tapi pikeun ieu perlu yén teu aya konflik data dina kontrak. Teras we nganggap yén dina kahirupan nyata teu aya konflik sapertos kitu. Tapi urang teu boga cara pikeun manggihan. Teras kapikiran yén urang ngagaduhan ampir dasawarsa sajarah kontrak nyata dina panangan urang, ku kituna urang ngalungkeun blockchain Ethereum sareng naros ka diri urang sorangan: naon anu bakal kajantenan upami catetan sajarah ieu dieksekusi paralel? Urang kapanggih kanaékan signifikan dina speed. Dina dinten awal Ethereum, laju ngaronjat pisan, tapi kiwari sagalana geus rada leuwih pajeulit, sabab aya kontrak pangsaeutikna jeung likelihood bentrok leuwih data anu merlukeun serialization geus jadi leuwih luhur. Tapi kabeh ieu karya eksperimen kalawan data sajarah nyata. Hal anu saé ngeunaan blockchain nyaéta yén éta émut sadayana salamina, ku kituna urang tiasa uih deui dina waktosna sareng diajar naon anu bakal kajantenan upami urang ngagunakeun algoritma anu béda pikeun ngajalankeun kodeu. Kumaha jalma-jalma baheula bakal resep kana ide anyar urang? Panaliti sapertos kitu langkung gampang sareng langkung pikaresepeun, sabab aya hiji hal anu ngawas sadayana sareng ngarékam sadayana. Ieu mangrupikeun hal anu langkung mirip sareng sosiologi tibatan pamekaran algoritma.

Naha pamekaran algoritma lirén sareng kumaha carana ngaléngkah?

Vitaly: Waktosna pikeun patarosan téoritis anu terakhir! Naha éta karasa kamajuan dina struktur data kalapa turun unggal taun? Saur anjeun urang geus ngahontal hiji dataran dina pamahaman kami ngeunaan struktur data atawa bakal aya sababaraha perbaikan utama? Meureun aya sababaraha gagasan palinter nu lengkep bisa ngarobah sagalana?

Maurice: Urang meureun geus ngahontal hiji dataran dina struktur data pikeun arsitéktur tradisional. Tapi struktur data pikeun arsitéktur anyar masih wewengkon pisan ngajangjikeun. Upami anjeun hoyong ngadamel struktur data pikeun, sebutkeun, akselerator hardware, maka struktur data pikeun GPU béda pisan sareng struktur data pikeun CPU. Lamun anjeun ngamekarkeun struktur data pikeun blockchains, Anjeun kudu Hash potongan data lajeng nempatkeun kana hal kawas Tangkal merkle, pikeun nyegah pemalsuan. Aya lonjakan kagiatan di daérah ieu akhir-akhir ieu, kalayan seueur anu ngalakukeun padamelan anu saé. Tapi kuring pikir naon anu bakal kajadian nyaéta yén arsitéktur anyar sareng aplikasi énggal bakal ngakibatkeun struktur data énggal. Aplikasi warisan sareng arsitéktur tradisional - moal aya seueur rohangan pikeun éksplorasi deui. Tapi upami anjeun kaluar tina jalan anu keok sareng ningali ka luar, anjeun bakal ningali hal-hal anu gélo anu teu dipikaserius ku mainstream - éta tempat sagala hal anu pikaresepeun leres-leres kajantenan.

Vitaly: Ku alatan éta, pikeun jadi panalungtik kawentar, abdi kedah invent arsitéktur sorangan :)

Maurice: Anjeun tiasa "maok" arsitektur anyar batur - sigana leuwih gampang!

Gawé di Universitas Brown

Vitaly: Dupi anjeun tiasa ngabejaan urang ngeunaan Universitas Browndimana anjeun damel? Henteu seueur anu dipikanyaho ngeunaan anjeunna dina konteks téknologi inpormasi. Kirang ti ngeunaan MIT, contona.

Maurice: Universitas Brown mangrupikeun salah sahiji paguron pangkolotna di Amérika Serikat. Jigana ngan Harvard saeutik heubeul. Brown mangrupa bagian tina disebut Liga Ivy, nu mangrupakeun kumpulan dalapan universitas pangkolotna. Harvard, Brown, Cornell, Yale, Columbia, Dartmouth, Pennsylvania, Princeton. Éta mangrupikeun universitas anu lami, alit sareng rada aristokrat. Fokus utama nyaéta pendidikan seni liberal. Henteu nyobian janten sapertos MIT, MIT khusus pisan sareng téknis. Brown mangrupikeun tempat anu saé pikeun diajar Sastra Rusia atanapi Yunani Klasik, sareng tangtosna, Ilmu Komputer. Ieu museurkeun kana atikan komprehensif. Kalolobaan siswa urang buka Facebook, Apple, Google - jadi kuring pikir siswa urang teu boga masalah neangan pakasaban di industri. Kuring indit ka gawe di Brown sabab kuring kungsi digawé di Digital Equipment Corporation di Boston. Ieu mangrupikeun perusahaan anu nimukeun seueur hal anu pikaresepeun, tapi nampik pentingna komputer pribadi. Pausahaan jeung nasib susah, anu pangadegna éta sakali revolusioner ngora, maranéhna teu diajar nanaon sarta poho nanaon, sarta ku kituna maranéhanana balik ti revolusioner ka reactionaries dina ngeunaan belasan taun. Aranjeunna resep lulucon yén komputer pribadi milik di garasi-hiji garasi ditinggalkeun, tangtu. Éta rada atra yén aranjeunna ancur ku perusahaan anu langkung fleksibel. Nalika eta janten jelas yen parusahaan aya dina kasulitan, Kuring nelepon babaturan kuring di Brown, nu ngeunaan sajam di luar Boston. Abdi henteu hoyong ngantunkeun Boston dina waktos éta kusabab teu aya seueur bukaan di paguron luhur sanés. Ieu mangrupikeun waktos nalika teu aya seueur padamelan dina Ilmu Komputer sapertos ayeuna. Sareng Brown ngagaduhan lawang, kuring henteu kedah ngalih bumi, henteu kedah ngalih kulawarga kuring, sareng kuring resep pisan cicing di Boston! Éta kumaha kuring mutuskeun pikeun angkat ka Brown. Abdi resep éta. Murid-muridna saé, janten kuring henteu kantos nyobian angkat ka tempat sanés. Salami sabbatical kuring, kuring damel di Microsoft salami sataun, angkat ka Technion di Haifa salami sataun, sareng ayeuna kuring bakal di Algorand. Kuring ngagaduhan seueur kolega dimana-mana sareng ku kituna lokasi fisik ruang kelas urang henteu penting pisan. Tapi anu paling penting nyaéta murid, aranjeunna anu pangsaéna di dieu. Abdi henteu kantos nyobian angkat ka tempat anu sanés kusabab kuring bagja di dieu.

Tapi sanajan Kinérja Brown di Amérika Serikat, anjeunna heran kanyahoan di mancanagara. Sakumaha anjeun tiasa tingali, kuring ayeuna ngalakukeun sagalana mungkin pikeun ngabenerkeun kaayaan ieu.

Bédana antara panalungtikan di universitas sareng dina korporasi

Vitaly: Oke, patarosan salajengna ngeunaan Alat Digital. Anjeun aya salaku panalungtik. Naon bédana antara damel di departemen R&D perusahaan ageung sareng damel di universitas? Naon kaunggulan jeung kalemahan?

Maurice: Dua puluh taun kuring damel di Microsoft, damel caket sareng karyawan Sun Microsystems, Oracle, Facebook, sareng ayeuna Algorand. Dumasar kana sadaya ieu, kuring hoyong nyebatkeun yén mungkin pikeun ngalaksanakeun panalungtikan kelas munggaran di perusahaan sareng di paguron luhur. Beda pentingna nyaéta dina perusahaan anjeun damel sareng kolega. Mun kuring ujug-ujug boga gagasan pikeun proyék nu teu acan aya, Kuring kudu ngayakinkeun peers kuring yén ieu téh mangrupakeun ide nu sae. Upami kuring di Brown, kuring tiasa nyarios ka murid kuring: hayu urang ngerjakeun antigravitasi! Aranjeunna bakal angkat ka batur atanapi nyandak proyek. Leres, kuring kedah milarian dana, kuring kedah nyerat aplikasi hibah, sareng sajabana. Dina sagala hal, bakal salawasna aya loba siswa, sarta anjeun bakal bisa nyieun kaputusan unilaterally. Tapi di universitas anjeun paling dipikaresep moal gawé bareng jalma satingkat anjeun. Di dunya panilitian industri, anjeun kedah ngayakinkeun sadayana yén proyék anjeun pantes dilaksanakeun. Abdi teu tiasa mesen nanaon ka saha. Sareng duanana cara damel ieu berharga, sabab upami anjeun nuju ngerjakeun hal anu edan sareng kolega anjeun sesah diyakinkeun, langkung gampang ngayakinkeun mahasiswa pascasarjana - khususna upami anjeun mayar aranjeunna. Upami anjeun nuju ngusahakeun hal anu peryogi seueur pangalaman sareng kaahlian anu jero, maka anjeun peryogi kolega anu tiasa nyarios "henteu, éta kajadian anu kuring ngartos di daérah ieu sareng ide anjeun goréng, éta moal jalan." Ieu pisan mangpaat dina watesan wasting waktu. Ogé, upami di laboratorium industri anjeun nyéépkeun waktos nyerat laporan, teras di universitas anjeun nyéépkeun waktos ieu pikeun milarian artos. Upami abdi hoyong murid tiasa angkat ka mana waé, abdi kedah milarian artos ka tempat sanés. Sareng langkung penting posisi anjeun di universitas, langkung seueur waktos anjeun kedah nyéépkeun artos. Janten ayeuna anjeun terang naon anu kuring damel - pengemis profésional! Kawas salah sahiji biarawan nu walks sabudeureun kalawan piring kurban. Sacara umum, dua kagiatan ieu silih ngalengkepan. Éta sababna kuring nyobian hirup sareng ngajaga suku kuring dina taneuh dina dua dunya.

Vitaly: Sigana mah ngayakinkeun hiji pausahaan leuwih hese tibatan ngayakinkeun élmuwan séjén.

Maurice: Langkung hese, sareng seueur deui. Leuwih ti éta, di wewengkon béda éta béda: sababaraha ngalaksanakeun panalungtikan skala pinuh, sedengkeun nu sejenna museurkeun kana topik maranéhanana. Upami kuring angkat ka Microsoft atanapi Facebook sareng nyarios: hayu urang ngadamel anti gravitasi, aranjeunna boro bakal ngahargaan éta. Tapi upami kuring nyarioskeun hal anu sami ka mahasiswa pascasarjana kuring, aranjeunna sigana bakal langsung damel, sanaos ayeuna kuring bakal ngagaduhan masalah - saatosna, kuring kedah milarian artos pikeun ieu. Tapi salami anjeun hoyong ngalakukeun hal anu saluyu sareng tujuan perusahaan, perusahaan éta tiasa janten tempat anu saé pikeun ngalakukeun panalungtikan.

Hydra jeung SPTDC

Vitaly: Patarosan abdi parantos réngsé, janten hayu urang ngobrol sakedik ngeunaan perjalanan anu bakal datang ka Rusia.

Maurice: Leres, abdi ngarep pisan uih deui ka St. Petersburg.

Alexey: Kuring ngahormatan gaduh anjeun sareng kami taun ieu. Ieu kadua kalina anjeun di St. Petersburg, katuhu?

Maurice: Geus katilu!

Alexey: Kuring ngarti, tapi SPTDC - pasti anu kadua. Panungtungan waktu sakola disebut SPTCC, urang ayeuna geus robah hiji hurup (C nepi ka D, Concurrent to Distributed) pikeun ngantebkeun yén aya leuwih wewengkon patali husus pikeun komputasi disebarkeun taun ieu. Dupi anjeun nyebutkeun sababaraha kecap ngeunaan laporan anjeun di Sakola jeung Konférénsi Hydra?

Maurice: Di Sakola Abdi hoyong ngobrol ngeunaan dasar-dasar blockchain sareng naon anu anjeun tiasa laksanakeun. Abdi hoyong nunjukkeun yén blockchains sami sareng program multi-threaded anu urang wawuh, tapi kalayan nuansa sorangan, sareng bédana ieu penting pikeun ngartos. Upami anjeun ngalakukeun kasalahan dina aplikasi wéb biasa, éta ngan ngaganggu. Lamun anjeun nulis kode Buggy dina aplikasi finansial, batur pasti bakal maok kabeh duit Anjeun. Ieu tingkat lengkep beda tanggung jawab jeung konsekuensi. Kuring bakal ngobrol saeutik ngeunaan proof-of-work, ngeunaan kontrak pinter, ngeunaan transaksi antara blockchains béda.

Bakal aya panyatur anu sanés damel di gigireun kuring anu ogé gaduh anu nyarioskeun ngeunaan blockchain, sareng kami sapuk pikeun koordinat saling supados carita urang pas babarengan. Tapi pikeun laporan rékayasa, abdi hoyong ngabejaan panongton lega katerangan kaharti naha anjeun teu kedah percanten sagalana anjeun ngadangu ngeunaan blockchains, naha blockchains mangrupakeun widang hébat, kumaha eta fits dina kalawan gagasan dipikawanoh séjén, sarta naha urang kedah boldly kasampak. ka hareup.

Alexey: Salaku tambahan, kuring hoyong nyarios yén ieu moal lumangsung dina format pertemuan atanapi grup pangguna, sapertos dua taun ka pengker. Urang mutuskeun pikeun ngayakeun konferensi leutik deukeut sakola. Alesanna nyaéta saatos komunikasi sareng Peter Kuznetsov, urang sadar yén sakola dugi ka ngan saratus, panginten 120 urang. Dina waktos anu sami, seueur insinyur anu hoyong komunikasi sareng anjeun, hadir dina presentasi, sareng umumna resep kana topik éta. Kusabab ieu kami parantos nyiptakeun konperénsi énggal disebut Hydra. Ku jalan kitu, aya ide naha Hydra?

Maurice: Kusabab bakal aya tujuh speaker? Sareng sirahna tiasa dipotong, sareng spiker énggal bakal tumbuh di tempatna?

Alexey: Gagasan anu hadé pikeun ngembang panyatur énggal. Tapi dina kanyataanana, aya carita di dieu. Inget legenda Odysseus, dimana anjeunna kedah balayar antara Scylla jeung Charybdis? Hydra mangrupa hal kawas Charybdis. Carita éta sakali kuring nyarios dina konperénsi sareng ngobrol ngeunaan multithreading. Aya ngan dua lagu dina konferensi ieu. Dina awal laporan, abdi ngawartoskeun panongton di aula yén maranéhna kiwari boga pilihan antara Scylla na Charybdis. Sato sumanget kuring nyaéta Charybdis sabab Charybdis ngagaduhan seueur sirah sareng téma kuring nyaéta multi-threading. Ieu kumaha nami konferensi muncul.

Bisi wae, urang geus kehabisan patarosan jeung waktu. Janten, hatur nuhun, réréncangan, pikeun wawancara anu saé, sareng ningali anjeun di SPTDC School and Hydra 2019!

Anjeun tiasa neraskeun paguneman anjeun sareng Maurice dina konperénsi Hydra 2019, anu bakal dilaksanakeun dina 11-12 Juli 2019 di St. Anjeunna bakal datang kalayan laporan "Blockchains sareng masa depan komputasi anu disebarkeun". Tiket bisa dibeuli dina situs wéb resmi.

sumber: www.habr.com

Tambahkeun komentar