"Luwih gampang mangsuli tinimbang meneng" - wawancara sing apik karo bapak memori transaksional, Maurice Herlihy

"Luwih gampang mangsuli tinimbang meneng" - wawancara sing apik karo bapak memori transaksional, Maurice Herlihy

Maurice Herlihy - pemilik saka loro Hadiah Dijkstra. Kapisan kanggo karya "Sinkronisasi Tanpa Enteni" (Brown University) lan nomer loro, luwih anyar, - "Memori Transaksional: Dhukungan Arsitektur kanggo Struktur Data Tanpa Kunci" (Universitas Teknologi Virginia). Bebungah Dijkstra diwènèhaké kanggo karya-karya sing pinunjul lan pengaruhé wis katon paling sethithik sepuluh taun lan, mesthi, Maurice minangka salah sawijining spesialis sing paling misuwur ing lapangan. Dheweke saiki dadi profesor ing Universitas Brown lan duwe prestasi paragraf. Saiki dheweke melu riset blockchain ing konteks komputasi distribusi klasik.

Sadurunge, Maurice wis teka ing Rusia kanggo SPTCC (kaset video) lan nggawe patemon apik banget saka komunitas pangembang JUG.ru Java ing St.kaset video).

Habrapost iki minangka wawancara sing apik karo Maurice Herlihy. Iku mbahas topik ing ngisor iki:

  • Interaksi antarane akademisi lan industri;
  • Yayasan kanggo riset blockchain;
  • Ngendi ide terobosan teka? Pengaruh popularitas;
  • PhD ing panuntun dhumateng Barbara Liskov;
  • Donya nunggu multi-inti;
  • Donya anyar, masalah anyar. NVM, NUMA lan peretasan arsitektur;
  • Compiler vs CPU, RISC vs CISC, memori bareng vs pesen liwat;
  • Seni nulis kode multi-utas sing rapuh;
  • Carane mulang siswa carane nulis kode multi-threaded Komplek;
  • Edisi anyar saka buku "The Art of Multiprocessor Programming";
  • Carane iki memori transactional nemokke?   
  • Napa worth nindakake riset ing bidang komputasi sing disebarake;
  • Wis pangembangan algoritma mandegake, lan carane manggon ing;
  • Kerja ing Universitas Brown;
  • Bedane antarane riset universitas lan perusahaan;
  • Hydra lan SPTDC.

Wawancara ditindakake dening:

Vitaly Aksenov - saiki dadi post-doc ing IST Austria lan karyawan Departemen Teknologi Komputer ing Universitas ITMO. Dheweke melu riset ing bidang teori lan praktik struktur data kompetitif. Sadurungé mlebu IST, dhèwèké nampa gelar PhD saka Universitas Paris Diderot lan Universitas ITMO ing sangisoré Prof. Petr Kuznetsov.

Alexey Fedorov minangka produser ing JUG Ru Group, perusahaan Rusia sing ngatur konferensi kanggo pangembang. Alexey melu nyiapake luwih saka 50 konferensi, lan resume ngandhut kabeh saka posisi insinyur pembangunan ing Oracle (JCK, Java Platform Group) kanggo posisi pangembang ing Odnoklassniki.

Vladimir Sitnikov iku insinyur ing Netcracker. Kanggo sepuluh taun, dheweke wis nggarap kinerja lan skalabilitas NetCracker OS, piranti lunak sing digunakake dening operator telekomunikasi kanggo ngotomatisasi proses manajemen peralatan jaringan lan jaringan. Kasengsem ing masalah kinerja Java lan Oracle Database. Penulis luwih saka rolas dandan kinerja ing driver PostgreSQL JDBC resmi.

Interaksi antarane akademisi lan industri

Alexey: Maurice, sampeyan wis suwe kerja ing akademisi lan pitakonan pisanan yaiku babagan interaksi antarane akademisi lan industri. Apa sampeyan bisa nyritakake kepiye interaksi ing antarane dheweke wis diganti akhir-akhir iki? Apa 20-30 taun kepungkur lan apa sing kedadeyan saiki? 

Maurice: Aku mesthi nyoba kerja bareng karo perusahaan komersial amarga dheweke duwe tantangan sing menarik. Biasane, dheweke ora kasengsem banget kanggo nerbitake asil utawa panjelasan rinci babagan masalahe menyang komunitas jagad. Dheweke mung kasengsem kanggo ngrampungake masalah kasebut. Aku makarya kanggo sawetara perusahaan iki kanggo nalika. Aku ngenteni limang taun kerja full-time ing laboratorium riset ing Digital Equipment Corporation, sing biyen dadi perusahaan komputer utama. Aku kerja sedina seminggu ing Sun, ing Microsoft, ing Oracle, makarya sethithik ing Facebook. Saiki aku arep cuti sabbatical (profesor ing universitas Amerika diijini njupuk preian kaya ngono suwene setahun kira-kira saben enem taun) lan kerja ing Algorand, iki minangka perusahaan cryptocurrency ing Boston. Makarya kanthi rapet karo perusahaan mesthi dadi kesenengan, amarga sampeyan sinau babagan perkara anyar lan menarik. Umume sampeyan bisa dadi wong pisanan utawa nomer loro sing nerbitake artikel babagan topik sing dipilih, tinimbang nambah solusi kanggo masalah sing wis ditindakake wong liya.

Alexey: Apa sampeyan bisa ngandhani luwih lengkap babagan kedadeyan kasebut?

Maurice: Mesthi. Sampeyan ngerti, nalika aku ana ing Digital Equipment Corporation, aku lan Elliot Moss, kita nemokake memori transaksional. Iki minangka wektu sing apik banget nalika saben wong wiwit kasengsem ing teknologi informasi. Concurrency klebu, sanajan sistem multi-inti durung ana. Ing dina Sun lan Oracle, aku nindakake akeh karya ing struktur data paralel. Ing Facebook, aku melu proyek pamblokiran, sing ora bisa dakkandhakake, nanging muga-muga bakal umum. Taun ngarep, ing Algorand, aku bakal nggarap tim riset sing nyinaoni kontrak cerdas.

Alexey: Ing sawetara taun kepungkur, pamblokiran wis dadi topik sing populer banget. Apa bakal mbantu riset sampeyan? Mbok menawa bakal luwih gampang entuk dana utawa menehi akses menyang sumber daya perusahaan sing beroperasi ing industri kasebut?

Maurice: Aku wis nampa dana cilik saka Ethereum Foundation. Popularitas blockchain migunani banget kanggo menehi inspirasi marang para siswa supaya bisa kerja ing lapangan iki. Padha banget kasengsem ing lan seneng melu, nanging kadhangkala padha ora éling sing riset sing muni nggodho ing njaba dadi metu kanggo ndherek karya tenan hard. Nanging, aku seneng banget nggunakake kabeh mistik iki sak blockchain, iku mbantu kanggo narik kawigaten siswa. 

Nanging ora mung kuwi. Aku dadi dewan penasihat sawetara startup blockchain. Sawetara wong bisa sukses, sawetara bisa uga ora, nanging tansah menarik banget kanggo ndeleng gagasan, sinau lan menehi saran marang wong. Sing paling nyenengake yaiku nalika sampeyan ngelingake wong supaya ora nindakake apa-apa. Akeh perkara sing katon apik ing wiwitan, nanging apa pancene?

Yayasan kanggo riset blockchain

Vitaly: Sawetara wong mikir yen pamblokiran lan algoritma kasebut minangka masa depan. Lan wong liya ngomong iku mung gelembung liyane. Apa sampeyan bisa nuduhake pendapat babagan perkara iki?

Maurice: Akeh sing kedadeyan ing jagad pamblokiran sing ora bisa digunakake kanthi bener, sawetara mung apus, akeh perkara sing overrated. Nanging, aku mikir ana basis ilmiah sing kuat kanggo studi kasebut. Kasunyatan bilih donya pamblokiran kebak divisi ideologis nuduhake tingkat kasenengan lan dedikasi. Ing tangan liyane, iku ora utamané ono gunane kanggo riset ilmiah. Saiki, yen sampeyan nerbitake artikel sing ngomong babagan kekurangan algoritma tartamtu, reaksi sing ditampa ora mesthi ilmiah. Asring wong nuduhake emosi. Aku mikir yen hype kaya ing wilayah iki bisa uga katon menarik kanggo sawetara, nanging ing pungkasan, ana masalah ilmiah lan teknik nyata sing durung ditangani. Ana akeh Ilmu Komputer ing kene.

Vitaliy: Dadi sampeyan nyoba nggawe dhasar kanggo riset blockchain, ta?

Maurice: Aku nyoba nggawe dhasar kanggo disiplin sing solid, ilmiah lan matematis. Lan bagean saka masalah iku kadhangkala sampeyan kudu mbantah sawetara saka posisi kebacut atos wong liya, kanggo nglirwakake wong. Kadhangkala wong takon apa aku kerja ing lapangan sing mung teroris lan pengedar narkoba. Reaksi kasebut ora ana gunane kaya prilaku para pengikut sing mbaleni tembung sampeyan kanthi wuta. Aku bebener nang endi wae ing tengah. Blockchain durung duwe pengaruh gedhe ing masyarakat lan ekonomi global. Nanging, mbokmenawa, iki ora bakal kelakon thanks kanggo teknologi modern. Teknologi modern bakal berkembang lan apa sing bakal diarani blockchain ing mangsa ngarep bakal dadi penting banget. Bisa uga ora katon kaya blockchain modern, iku pitakonan sing mbukak.

Yen wong nggawe teknologi anyar, dheweke bakal terus nyebat blockchain. Maksudku, kaya Fortran saiki ora ana hubungane karo basa Fortran wiwit taun 1960-an, nanging kabeh wong terus nyebut Fortran. Padha kanggo UNIX. Apa sing diarani "blockchain" durung nggawe revolusi. Nanging aku mangu-mangu manawa pamblokiran anyar iki bakal kaya sing disenengi saben wong saiki.

Ngendi ide terobosan teka? Pengaruh popularitas

Alexey: Apa popularitas pamblokiran nyebabake asil anyar saka sudut pandang ilmiah? Luwih akeh interaksi, luwih akeh siswa, luwih akeh perusahaan ing wilayah kasebut. Apa ana asil saka wutah iki popularitas wis?

Maurice: Aku dadi kasengsem ing iki nalika ana wong menehi flyer resmi kanggo perusahaan sing lagi wae ngumpulake dhuwit cukup akeh. Dheweke nulis babagan tugas para jenderal Bizantiumkaro kang aku luwih saka menowo. Ditulis ing leaflet jelas teknis salah. Wong-wong sing nulis iki ora ngerti model sing ana ing mburi masalah kasebut ... nanging perusahaan iki ngasilake dhuwit akeh. Sabanjure, perusahaan kanthi tenang ngganti leaflet iki kanthi versi sing luwih bener - lan aku ora bakal ngomong apa jeneng perusahaan iki. Dheweke isih ana lan apik banget. Kasus iki nggawe aku yakin yen, pisanan, pamblokiran mung minangka wangun komputasi sing disebarake. Kapindho, ambang entri (ing wektu iku, patang taun kepungkur) cukup sithik. Wong-wong sing kerja ing wilayah iki pancen sregep lan pinter, nanging ora maca makalah ilmiah. Padha nyoba kanggo reinvent bab dikenal lan padha nindakake iku salah. Dina iki drama wis suda.

Alexey: Apik banget, amarga sawetara taun kepungkur kita duwe tren sing beda. Iku kaya pembangunan ngarep-mburi, ngendi pangembang antarmuka browser reinvented kabeh teknologi sing wis populer ing mburi-mburi ing wektu iku: mbangun sistem, integrasi terus, lan kuwi. 

Maurice: Aku setuju. Nanging iki ora nggumunake, amarga sejatine ide terobosan mesthi teka saka njaba komunitas sing wis mapan. Peneliti mapan, utamane panguwasa ing akademisi, ora mungkin nindakake apa-apa sing bener-bener groundbreaking. Gampang kanggo nulis laporan kanggo konferensi sabanjure babagan carane sampeyan nambah asil karya sing kepungkur. Menyang konferensi, kumpul karo kanca-kanca, ngomong babagan perkara sing padha. Lan wong-wong sing nglanggar ide terobosan meh mesthi teka saka njaba. Ora ngerti aturan, ora ngerti basa, nanging tetep ... Yen sampeyan ana ing komunitas sing mapan, aku menehi saran supaya sampeyan nggatekake perkara anyar, sing ora cocog karo sing gedhe. gambar. Ing pangertèn, upaya bisa ditindakake kanggo nggabungake pangembangan eksternal sing luwih cair karo teknik sing wis kita ngerti. Minangka langkah pisanan, coba gawe basis ilmiah, banjur modifikasi supaya bisa ditrapake kanggo gagasan terobosan anyar. Aku mikir yen blockchain apik kanggo peran ide terobosan anyar.

Alexei: Apa sampeyan mikir iki kedadeyan? Amarga wong "njaba" ora duwe alangan tartamtu sing ana ing masyarakat?

Maurice: Ana pola ing kene. Yen sampeyan maca sajarah Impresionis ing lukisan lan seni ing umum, banjur ing siji wektu seniman misuwur nolak impresionisme. Padha ngandika iku sawetara jenis childishness. Sawijining generasi sabanjure, wujud seni sing sadurunge ditolak iki dadi standar. Apa sing dakdeleng ing lapanganku: para penemu blokir ora kasengsem karo kekuwatan, ing gulungake publikasi lan indeks kutipan, dheweke mung pengin nindakake sing apik. Banjur padha lungguh lan miwiti nindakake. Dheweke ora duwe kedalaman teknis tartamtu, nanging bisa didandani. Luwih angel nggawe ide kreatif anyar tinimbang mbenerake lan nggedhekake ide sing ora cukup diwasa. Thanks kanggo penemu iki, aku saiki duwe apa-apa!

Alexey: Iki padha karo prabédan antarane wiwitan lan proyek warisan. Kita marisi akeh watesan pamikiran, alangan, syarat khusus, lan liya-liyane.

Maurice: Analogi sing apik yaiku komputasi sing disebarake. Coba blockchain kaya-kaya minangka wiwitan lan komputasi sing disebarake minangka perusahaan gedhe. Komputasi sing disebarake lagi dituku lan digabung karo blockchain.

PhD ing Barbara Liskov

Vitaliy: Kita isih akeh pitakonan! Kita wis nliti bio sampeyan lan nemokake kasunyatan sing menarik babagan PhD sampeyan. Ya, wis suwe banget, nanging topik kasebut katon penting. Sampeyan nampa PhD ing pengawasan saka Barbara Liskov! Barbara misuwur banget ing komunitas pangembangan basa pamrograman, lan umume wong sing misuwur banget. Logis yen riset sampeyan ana ing bidang basa pemrograman. Kepiye sampeyan ngalih menyang komputasi paralel? Apa sebabe sampeyan mutusake ngganti topik?

Maurice: Nalika iku, Barbara lan klompoke mung nggoleki komputasi sing disebarake, sing dadi ide anyar. Ana uga sing ngomong yen komputasi disebarake iku omong kosong, komunikasi antarane komputer ora ana gunane. Salah sawijining masalah sing dianggep ing komputasi sing disebarake, sing mbedakake saka komputasi terpusat, yaiku toleransi kesalahan. Sawise akeh riset, kita mutusake yen ing basa pamrograman kanggo komputasi sing disebarake, sampeyan kudu duwe kaya transaksi atom, amarga sampeyan ora bisa yakin manawa telpon remot bakal sukses. Sawise sampeyan duwe transaksi, ana masalah kontrol concurrency. Banjur ana akeh karya kanggo entuk struktur data transaksional sing paralel banget. Banjur nalika aku lulus aku lunga menyang Carnegie Mellon lan wiwit golek topik kanggo karya. Aku rumangsa yen komputasi wis pindhah saka komputer individu menyang jaringan komputer. Terusan alami saka kemajuan bakal dadi multiprosesor - tembung "multi-inti" durung ana. Aku mikir: apa sing padha karo transaksi atom kanggo sistem multi-inti? Mesthine ora transaksi biasa, amarga gedhe banget lan abot. Lan sing carane aku teka munggah karo idea linearizability lan sing carane aku teka munggah karo kabeh sinkronisasi Enteni-free. Iku nyoba kanggo njawab pitakonan apa analog saka transaksi atom kanggo sistem multiprocessor karo memori sambungan. Sepisanan, karya iki bisa uga katon beda, nanging nyatane iki minangka kelanjutan saka tema sing padha.

Donya ngenteni multi-inti

Vitaly: Sampeyan nyebutake yen ana sawetara komputer multi-inti ing wektu iku, ta?

Maurice: Dheweke mung ora ana. Ana sawetara supaya disebut-multiprocessors simetris, kang padha Sejatine disambungake menyang bis padha. Ora bisa banget, amarga saben perusahaan anyar nggawe kaya iki, Intel ngetokake prosesor siji sing ngluwihi multiprocessor.

Alexei: Apa iki ora ateges yen ing jaman kuna iku luwih saka studi teoritis?

Maurice: Iku dudu teoritis, nanging studi spekulatif. Kabeh iki dudu babagan nggarap akeh téoréma, nanging, kita ngusulake hipotesis babagan arsitektur sing durung ana ing wektu kasebut. Sing apa riset kanggo! Ora ana perusahaan sing bakal nindakake iki, kabeh iku saka masa depan sing adoh. Ing kasunyatan, iki nganti 2004, nalika muncul pemroses multi-inti nyata. Amarga kasunyatan sing prosesor overheat, sampeyan bisa nggawe prosesor malah luwih cilik, nanging sampeyan ora bisa nggawe luwih cepet. Amarga iki, ana transisi menyang arsitektur multi-inti. Banjur tegese dumadakan ana gunane kanggo kabeh konsep sing wis dikembangake ing jaman kepungkur.

Alexey: Apa sampeyan mikir prosesor multi-inti mung muncul ing taun XNUMX-an? Dadi kok telat?

Maurice: Iki amarga watesan hardware. Intel, AMD, lan perusahaan liyane apik banget kanggo ningkatake kecepatan prosesor. Nalika ing sawetara titik pemroses cukup cilik sing padha ora bisa nambah kacepetan jam maneh amarga prosesor bakal miwiti kanggo diobong metu. Sampeyan bisa nggawe luwih cilik, nanging ora luwih cepet. Apa ing daya - tinimbang prosesor cilik, pas wolung, nembelas utawa telung puluh loro prosesor ing volume padha cilik, ngendi mung siji digunakake kanggo pas. Saiki sampeyan duwe komunikasi multithreading lan cepet ing antarane amarga padha nuduhake cache. Nanging sampeyan ora bisa nggawe dheweke mlaku luwih cepet - ana watesan kacepetan sing spesifik. Padha terus nambah sethitik dening sethitik, nanging ora dadi luwih. Hukum fisika entuk dalan.

Donya anyar, masalah anyar. NUMA, NVM lan peretasan arsitektur

Alexei: Muni banget. Kanthi prosesor multi-inti anyar teka masalah anyar. Apa sampeyan lan kanca-kanca ngarepake masalah kasebut? Mungkin sampeyan wis sinau sadurunge? Ing studi teoretis asring ora gampang banget kanggo prédhiksi perkara kasebut. Nalika ana masalah, nganti tekan apa sing dikarepake sampeyan lan kanca-kancamu? Utawa padha anyar lan sampeyan lan kanca-kanca kudu nglampahi akèh wektu kanggo ngrampungake masalah nalika lagi muncul?

Vitaliy: Aku bakal nambah pitakonan Alexey: apa sampeyan bener prédhiksi arsitektur prosesor nalika sampeyan lagi sinau teori?

Maurice: Ora kabeh 100%. Nanging aku lan kanca-kancaku nindakake proyek sing apik kanggo prédhiksi multi-inti memori sing dienggo bareng. Aku mikir kanthi bener prédhiksi kesulitan ngrancang struktur data paralel sing bisa digunakake tanpa kunci. Struktur data kasebut penting kanggo akeh aplikasi, sanajan ora kanggo kabeh, nanging asring sampeyan butuh struktur data tanpa kunci. Nalika kita nemokke, akeh sing ngomong yen iki omong kosong, kabeh bisa dianggo kanthi kunci. We foresaw cukup uga bakal ana solusi siap kanggo akeh masalah program lan masalah struktur data. Ana uga masalah sing luwih rumit, kayata Nomer - Akses memori sing ora rata. Nyatane, dheweke ora dianggep nganti panemuan prosesor multi-inti amarga padha banget spesifik. Komunitas riset nggarap pitakonan sing umume bisa ditebak. Sawetara masalah hardware sing ana gandhengane karo arsitektur tartamtu kudu ngenteni ing swiwi - nyatane, tampilan arsitektur kasebut. Contone, ora ana sing bener-bener nggarap struktur data khusus GPU amarga GPU durung ana. Senajan akeh karya wis rampung ing SIMD, kalkulus iki siap digunakake sanalika hardware tengen katon. Nanging, iku mokal kanggo prédhiksi kabeh.

Alexey: Yen aku ngerti kanthi bener, NUMA minangka jinis kompromi antarane biaya, kinerja lan sawetara perkara liyane. Apa sampeyan ngerti kenapa NUMA teka telat?

Maurice: Aku NUMA ana amarga ana masalah karo hardware sing digunakake kanggo nggawe memori: luwih adoh komponen, luwih alon diakses. Ing tangan liyane, nilai kaloro saka abstraksi iki keseragaman memori. Mulane, salah sawijining ciri komputasi paralel yaiku kabeh abstraksi rada rusak. Yen akses padha sampurna seragam, kabeh memori bakal equidistant, nanging iki ekonomi, lan Mungkin malah fisik mokal. Dadi konflik iki muncul. Yen sampeyan nulis program kaya-kaya memori padha seragam, mesthine bakal bener. Ing pangertèn sing ora bakal menehi jawaban salah. Nanging kinerja lintang dheweke saka langit ora bakal njupuk. Kajaba iku, yen sampeyan nulis spinlocks tanpa mangerteni hirarki cache, kunci dhewe bakal bener, nanging sampeyan bisa lali babagan kinerja. Ing pangertèn, sampeyan kudu nulis program sing manggon ing ndhuwur abstraksi banget prasaja, nanging sampeyan kudu outsmart wong sing menehi abstraksi sing: sampeyan kudu ngerti sing ing abstraksi ana sawetara hirarki memori, sing ana bis antarane sampeyan lan memori iki, lan ing. Mangkono, ana sawetara konflik antarane abstraksi sing migunani dhewe, sing ndadékaké kita menyang masalah sing spesifik lan pragmatis.

Vitaliy: Kepiye babagan masa depan? Bisa prédhiksi carane prosesor bakal berkembang luwih? Ana idea sing salah siji saka jawaban iku memori transactional. Sampeyan mbokmenawa duwe soko liyane ing saham.

Maurice: Ana sawetara tantangan utama ing ngarep. Salah sijine yaiku memori sing koheren minangka abstraksi sing apik, nanging wiwit rusak ing kasus khusus. Dadi, contone, NUMA minangka conto urip sing bisa terus pura-pura yen memori seragam ana. Bener - ora, kinerja bakal nggawe sampeyan nangis. Ing sawetara titik, arsitek kudu nglirwakake gagasan arsitektur memori terpadu, sampeyan ora bisa ndalang ing salawas-lawase. Model pemrograman anyar bakal dibutuhake sing cukup gampang digunakake lan cukup kuat kanggo nggawe hardware dhasar sing efisien. Iki minangka kompromi sing angel banget, amarga yen sampeyan nuduhake programer arsitektur sing bener digunakake ing hardware, dheweke bakal edan. Iku banget rumit lan ora portabel. Yen sampeyan nampilake antarmuka sing prasaja banget, kinerja bakal kurang. Dadi, akeh kompromi sing angel banget kudu ditindakake kanggo nyedhiyakake model pemrograman sing migunani kanggo prosesor multi-inti sing gedhe banget. Aku ora yakin sing wong liyane saka spesialis panah saged program ing komputer 2000-inti. Lan kajaba sampeyan nindakake komputasi khusus utawa ilmiah, kriptografi utawa apa wae, sampeyan isih durung ngerti carane nindakake kanthi bener. 

Arah liyane sing padha yaiku arsitektur khusus. Akselerator grafis wis suwe, nanging wis dadi conto klasik babagan carane sampeyan bisa njupuk jinis komputasi khusus lan mbukak ing chip khusus. Iki nambah tantangan dhewe: kepiye sampeyan komunikasi karo piranti kasebut, kepiye program sampeyan. Aku bubar nggarap tugas ing lapangan cedhak komputasi memori. Sampeyan njupuk prosesor cilik lan lem menyang cuwilan gedhe saka memori supaya memori mbukak ing kacepetan cache L1, banjur komunikasi karo piranti kaya TPU - prosesor sibuk mbukak tugas anyar menyang inti memori. Pangembangan struktur data lan protokol komunikasi kanggo jinis iki minangka conto liyane sing menarik. Mangkono, prosesor lan hardware khusus bakal tundhuk dandan kanggo sawetara wektu.

Alexey: Apa bab memori non-volatile (memori non-molah malih)?

Maurice: Oh, kuwi conto liyane sing apik! NVM bakal ngganti cara kita ndeleng babagan kaya struktur data. Memori non-molah malih, ing pangertèn, janji bakal tenan nyepetake. Nanging ora bakal nggawe urip luwih gampang, amarga paling prosesor, caches, lan ndhaftar isih molah malih. Nalika sampeyan miwiti sawise kacilakan, status lan memori ora bakal persis padha sadurunge kacilakan. Aku ngucapke matur nuwun banget kanggo wong-wong sing melu NVM - kanggo dangu, peneliti bakal duwe soko kanggo nindakake, nyoba kanggo mangerteni kahanan bener. Komputasi bener yen bisa slamet saka kacilakan sing isi cache lan registrasi ilang, nanging memori utama tetep utuh.

Compiler vs CPU, RISC vs CISC, memori bareng vs pesen passing

Vladimir: Apa sampeyan mikir babagan compiler versus dilema prosesor ing syarat-syarat pesawat instruction? Kanggo nerangake kanggo wong-wong sing ora ana ing subyek: yen kita menyang memori ora rata utawa kaya, kita bisa aplikasi pesawat banget prasaja saka instruksi lan takon compiler kanggo generate kode Komplek sing bisa njupuk kauntungan saka keuntungan ditemokaké. Utawa kita bisa pindhah cara liyane: ngleksanakake instruksi Komplek lan takon prosesor kanggo ngatur maneh instruksi lan nindakake manipulasi liyane karo wong-wong mau. Apa sampeyan mikir babagan iki?

Maurice: Aku ora duwe jawaban kanggo pitakonan kasebut. Debat iki wis ana patang puluh taun. Ana wektu antarane dicekak printah nyetel lan angel perang sipil padha waged dening pesawat saka tim. Kanggo sawetara wektu, wong RISC menang, nanging banjur Intel dibangun maneh mesin supaya set instruksi suda digunakake ing njero, lan sing lengkap diekspor ing njaba. Mbok menawa iki minangka topik sing saben generasi anyar kudu nemokake kompromi dhewe lan nggawe keputusan dhewe. Pancen angel banget kanggo prédhiksi endi sing bakal dadi luwih apik. Dadi prediksi apa wae sing dakkarepake bakal bener sajrone sawetara wektu, banjur dadi palsu maneh kanggo sawetara wektu, banjur dadi bener maneh.

Alexey: Sepira umume industri umume sawetara gagasan menang sajrone pirang-pirang dekade lan kalah ing sabanjure? Apa ana conto liyane babagan owah-owahan periodik kasebut?

Maurice: Ing bidang komputasi sing disebarake, ana wong sing percaya memori bareng lan wong sing pracaya olahpesen. Originally ing komputasi distributed, komputasi paralel tegese passing pesen. Banjur ana sing nemokake manawa memori bareng nggawe program luwih gampang. Sisih liyane ujar manawa memori sing dienggo bareng rumit banget, amarga butuh kunci lan liya-liyane, mula kudu dipindhah menyang basa sing ora ana apa-apa kajaba pesen. Ana sing ndeleng apa sing metu saka iku lan ngandika: "wow, implementasine olahpesen iki katon banget padha karo memori sing dienggo bareng, amarga sampeyan nggawe akeh, akeh modul cilik iki, padha ngirim pesen menyang saben liyane, lan kabeh. buntu, - ayo gawe database memori bareng luwih apik!". Kabeh iki bola-bali bola-bali, lan iku mokal kanggo ngomong sing siji saka pihak iku unambiguously tengen. Siji sisih bakal tansah dominasi, amarga sanalika salah siji saka wong-wong mau meh menang, wong maneh lan maneh invent cara kanggo nambah liyane.

Seni nulis kode pirang-pirang benang sing rapuh

Alexei: Iki menarik banget. Contone, nalika kita nulis kode, apa wae basa pemrograman, kita biasane kudu nggawe abstraksi kaya sel sing bisa diwaca lan ditulis. Nanging nyatane, ing sawetara tingkat fisik, bisa uga katon kaya ngirim pesen ing bus hardware antarane komputer lan piranti liyane. Pranyata ana karya ing loro tingkat abstraksi bebarengan.

Maurice: Pancen bener yen memori sing dienggo bareng dibangun ing pesen passing - bus, cache, lan liya-liyane. Nanging hard kanggo nulis program nggunakake pesen passing, supaya hardware sengaja dumunung, pretending sampeyan duwe sawetara jenis memori seragam. Iki bakal nggampangake sampeyan nulis program sing prasaja lan bener sadurunge kinerja wiwit mudhun. Banjur sampeyan ngomong: katon kaya wektu kanggo nggawe kanca karo cache. Lan nalika sampeyan miwiti padha sumelang ing bab lokasi cache, lan banjur kita pindhah. Ing pangertèn, sampeyan bejat abstraksi: ngerti iku ora mung warata, memori seragam, lan sampeyan bakal nggunakake kawruh kanggo nulis program-loropaken cache. Iki sing kudu sampeyan lakoni ing tugas nyata. Konflik iki antarane abstraksi becik prasaja sing diwenehake lan implementasine rumit banget saka hardware dhasar yaiku saben wong nggawe kompromi dhewe. Aku duwe buku babagan multiprosesor lan sinkronisasi, lan ing sawijining dina aku arep nulis bab babagan struktur data ing java.util.concurrent. Yen sampeyan ndeleng wong-wong mau, kaya skip dhaptar Iki minangka karya seni sing apik tenan. (Cathetan editor: sing wis ngerti basa Jawa paling ora kudu ndeleng implementasine ConcurrentSkipListMap, Sampeyan bisa ndeleng pranala kanggo API и kode sumber). Nanging saka sudut pandangku, bakal dadi ora tanggung jawab kanggo nuduhake marang siswa, amarga struktur data kasebut minangka jinis wong ing sirkus, mlaku ing tali sing ana ing pit bear. Yen sampeyan ngganti malah siji rinci cilik, kabeh struktur bakal ambruk. Kode iki cepet banget lan elegan mung amarga ditulis kanthi sampurna, nanging owah-owahan sing paling sithik bakal nyebabake kegagalan lengkap. Yen aku menehi kode iki minangka conto kanggo siswa, dheweke bakal langsung ngomong: Aku uga bisa nindakake iki! Banjur sawetara pesawat bakal nabrak utawa reaktor nuklir bakal njeblug, lan salahku yen aku ora menehi informasi akeh banget ing wektu sing tepat.

Alexey: Nalika aku isih cilik, kakehan nyoba sinau kode sumber Doug Lee, contone, java.util.concurrent, amarga iku open source, iku gampang banget kanggo nggoleki lan nyoba kanggo ngerti apa sing ana ing kono. Ora dadi apik banget: asring, ora jelas kenapa Doug mutusake nindakake kanthi cara iki, nalika wong liya nindakake kanthi beda. Piyé carané njelaské bab-bab kuwi marang murid-muridmu? Apa ana cara sing bener kanggo njlèntrèhaké rincian spesifik saka algoritma hardcore, contone? Kepiye carane nindakake?

Maurice: Guru nggambar duwe klise sing kudu dielingi dhisik: yen sampeyan pengin nggambar kaya Picasso, sampeyan kudu sinau cara nggambar gambar realistis sing prasaja, lan mung yen sampeyan ngerti aturan sampeyan bisa miwiti nglanggar. Yen sampeyan langsung miwiti kanthi nglanggar aturan, sampeyan bakal kekacoan. Kaping pisanan, aku mulang siswa carane nulis kode sing prasaja lan bener tanpa kuwatir babagan kinerja. Aku ngandika ana masalah wektu Komplek lurking kene, supaya aja padha sumelang ing bab caches, aja padha sumelang ing bab model memori, mung priksa manawa kabeh bisa mlaku. Wis cukup angel: Pemrograman modern ora gampang dhewe, utamane kanggo siswa anyar. Lan nalika padha duwe roso bab carane nulis program bener, Aku ngandika: katon ing loro implementasine spinlock iki: siji alon banget, lan liya uga ora apik banget, nanging wis luwih apik. Nanging, matématis loro algoritma iki padha. Nyatane, salah sijine nggunakake lokalitas cache. Salah siji saka wong-wong mau muter ing data cache lokal, lan liyane bola-bali nindakake operasi liwat bis. Sampeyan ora bisa nulis kode efisien yen sampeyan ora ngerti, yen sampeyan ora ngerti carane break abstraksi lan katon ing struktur ndasari. Nanging sampeyan ora bakal bisa miwiti langsung. Ana wong sing miwiti nindakake iki langsung lan pracaya ing genius dhewe, biasane ends ala amarga padha ora ngerti prinsip. Ora ana sing nggambar kaya Picasso utawa nulis program kaya Doug Lee, sing anyar metu saka universitas, ing minggu pisanane. Perlu pirang-pirang taun kanggo nggayuh tingkat kawruh iki.

Alexey: Ternyata sampeyan mbagi masalah dadi rong bagean: sing pertama yaiku bener, sing nomer loro yaiku kinerja?

Maurice: Bener. Lan, ing urutan kasebut. Bagean saka masalah yaiku siswa anyar ora ngerti yen bener iku angel digayuh. Padha ngomong ing kawitan marketing: iki temenan bener, iku tetep mung kanggo nyepetake. Dadi kadhangkala aku ngandhani babagan algoritma sing ora bener kaya-kaya bener.

Carane mulang siswa carane nulis kode multi-threaded Komplek

Alexei: Mung kanggo ndeleng apa padha bisa ngrasakake trick?

Maurice: Aku tansah ngelingake sampeyan yen kadhangkala aku bakal nggawe algoritma sing salah. Sampeyan ora kudu ngapusi wong. Aku menehi saran supaya padha mamang babagan informasi kasebut. Yen aku ngandhani apa-apa lan ujar: "Deleng, iki pancen bener" - iki minangka sinyal yen ana ing endi wae nyoba ngapusi sampeyan, lan sampeyan kudu miwiti takon. Sabanjure, aku nyoba nyengkuyung para siswa supaya terus takon, banjur takon: "Apa sing kedadeyan yen kita ninggalake kabeh sing ana?". Lan dheweke langsung ndeleng kesalahan kasebut. Nanging ngyakinake siswa yen dheweke kudu kuwatir babagan kabeneran luwih angel tinimbang sing katon sepisanan. Akeh siswa iki teka karo pengalaman program ing SMA, sawetara wis ndharat proyek lan program ing kono, lan kabeh padha kebak poto-kapercayan. Iki minangka militer: sampeyan kudu ngganti pola pikir dhisik supaya bisa ngyakinake supaya sabar nyedhaki solusi saka masalah sing muncul. Utawa bisa uga kaya para bhikkhu Budha: pisanan padha sinau kanggo nalar bab bener, lan yen padha ngerti cara kanggo nalar bab bener, padha diijini kanggo pindhah menyang tingkat sabanjuré lan wiwit kuwatir bab kinerja.

Alexey: Yaiku, kadhangkala sampeyan nuduhake siswa conto sing ora bisa digunakake, amarga sampeyan entuk umpan balik sing nuduhake manawa dheweke ngerti inti saka masalah kasebut, apa bisa nemokake kode sing salah lan asil sing salah. Lha, kepriye biyasane siswa seneng utawa susah?

Maurice: Meh para siswa pungkasane nemokake kesalahan. Yen dheweke nggoleki alon-alon, aku takon pitakon utama, lan ing kene penting kanggo ngerti yen dheweke ora nate diapusi, mula dheweke bakal ora mikirake tembung sampeyan minangka bebener sing paling penting. Banjur padha bosen lan keturon maca Facebook ing laptop nalika kelas. Nanging yen sampeyan ngandhani luwih dhisik yen dheweke bakal diapusi lan bakal katon bodho yen ora ngerti trik, dheweke dadi luwih waspada. Iki apik ing pirang-pirang cara. Aku pengin siswa ora mung takon pemahaman babagan masalah kasebut, nanging uga takon marang wewenange guru. Ide iki yaiku yen siswa bisa ngangkat tangan kapan wae lan ngomong: Aku rumangsa salah. Iku alat sinau penting. Aku ora pengin siswa njagong lan meneng mikir: kabeh iki misale jek omong kosong lengkap, nanging banget medeni kanggo mundhakaken tangan, lan tenan, iku profesor, supaya kabeh sing ngandika bener. Mulane, yen dielingake luwih dhisik yen ora kabeh sing dicritakake mesthi bener, dheweke duwe insentif kanggo menehi perhatian luwih akeh marang materi kasebut. Aku kanthi tegas nyatakake yen ngangkat tangan lan takon ora apa-apa. Pitakonan sampeyan bisa uga konyol utawa naif, nanging asring pitakon sing paling apik.

Alexei: Apik banget. Biasane wong duwe sawetara jinis alangan psikologis sing ngalangi saka takon profesor pitakonan. Utamane yen ana akeh wong ing kamar, lan kabeh wong wedi yen ngrembug pitakonan bodho sampeyan bakal njupuk wektu kabeh wong iki. Apa ana trik kanggo ngatasi iki?

Maurice: Aku kerep mandheg lan takon pitakonan klasik. Apa ana pratelan sing bener, utawa kepiye carane ngatasi masalah sing dibahas. Iki minangka langkah penting, utamane ing wiwitan sesi, nalika wong isin ngomong babagan sing paling cilik. Sampeyan takon marang siswa lan ora ngomong apa-apa. Ana meneng, kabeh wong rada tegang, tensine mundhak, banjur dumadakan ana sing rusak, rusak lan ngomong jawaban. Dadi sampeyan mbukak kahanan: dadi luwih angel lan ora kepenak kanggo tetep meneng tinimbang mangsuli! Iki minangka trik pedagogis standar. Saben guru ing donya kudu ngerti carane nindakake iki.

Alexey: Saiki kita duwe judhul sing apik kanggo wawancara iki: "luwih gampang njawab tinimbang meneng."

Vitaly: Ayo kula takon bab siji maneh. Sampeyan lagi nggarap bukti topologi. Kepiye sampeyan bisa melu iki, amarga komputasi lan topologi sing disebarake pancen beda!

Maurice: Ana hubungan sing didhelikake ing kana. Nalika aku dadi mahasiswa lan sinau matematika, aku sinau matematika murni. Aku ora duwe kapentingan nyata ing komputer nganti pungkasan sinau lan aku ketemu aku ing perlu urgent kanggo golek proyek. Minangka mahasiswa, aku sinau topologi aljabar. Akeh taun mengko, nalika nggarap masalah disebut "Masalah Perjanjian K-Set", Aku digunakake grafik kanggo model masalah lan, minangka ketoke banjur, nemokake solusi. Sampeyan mung kudu lungguh lan ngubengi count. Coba goleki jawaban sing cocog ing grafik iki. Nanging algoritmaku ora bisa: ternyata dheweke bakal tansah mlaku ing bunderan. Sayange, ora ana sing bisa diterangake ing basa formal teori grafik, basa sing kabeh ilmuwan komputer ngerti. Banjur aku eling yen pirang-pirang taun kepungkur, sanajan ing kelas topologi, kita nggunakake konsep kasebut "kompleks sederhana", yaiku generalisasi grafik menyang dimensi sing luwih dhuwur. Banjur aku takon dhewe: apa sing kedadeyan yen kita ngrumusake masalah ing babagan kompleks sing sederhana? Iki dadi kunci. Kanthi nggunakake formalisme sing luwih kuat, masalah kasebut dadi luwih gampang. Wong berjuang kanthi suwe, nggunakake grafik, nanging ora bisa nindakake apa-apa. Lan saiki ora bisa - jawaban sing bener dudu algoritma, nanging bukti ora bisa ngrampungake masalah kasebut. Sing, algoritma kuwi mung ora ana. Nanging saben bukti mokal adhedhasar salah siji saka komplèks prasaja, utawa ing bab sing wong pura-pura ora nimbang Komplek prasaja. Saka kasunyatan sing disebut soko dening jeneng anyar, iku ora ilang inti.

Vitaliy: Pranyata sampeyan mung begja?

Maurice: Saliyane luck, iku uga kekarepan. Tegese, sampeyan kudu ora lali bab "ora ana guna" sing wis sinau sadurunge. Luwih akeh perkara sing ora ana gunane sing sampeyan sinau, luwih akeh wawasan sing bakal bisa dijupuk nalika ngadhepi masalah anyar. Pencocokan pola intuisi kaya iki penting amarga ... Ayo ngomong, iki minangka rantai: ing wiwitan, aku nemokake yen grafik ora bisa digunakake utawa ora bisa digunakake, ngelingake aku babagan wolung taun kepungkur. lan taun mahasiswa nalika kita sinau kabeh Komplek prasaja iki. Sabanjure, iki ngidini aku nemokake buku topologi lawas lan mbukak maneh ing sirahku. Nanging yen ora amarga kawruh lawas, aku ora bakal bisa ngrampungake masalah asline.

Edisi anyar The Art of Multiprocessor Programming

Alexei: Sampeyan ngomong sawetara tembung babagan buku sampeyan. Mesthine dudu rahasia paling gedhe yen sampeyan nulis buku paling misuwur ing donya babagan multithreading, "Seni Pemrograman Multiprosesor". Dheweke wis kira-kira 11 taun lan wiwit iku mung metu  revisi reprint. Apa bakal ana edisi kapindho?

Maurice: Apik sampeyan takon! Bakal banget cepet, ing telung sasi utawa luwih. Ana rong penulis liyane, kita nambahake luwih akeh materi, nambah bagean ing garpu / gabung paralelisme, nulis bagean ing MapReduce, nambahake akeh perkara anyar lan mbuwang sing ora perlu - sing menarik banget nalika nulis. edition pisanan, nanging ora ana maneh dina iki. Iku dadi buku sing wis direvisi kanthi serius.

Alexei: Kabeh wis rampung, mung kanggo ngeculake?

Maurice: Saperangan bab isih kudu digarap. Penerbit kita (aku rumangsa wis sengit marang kita) isih nyoba ngirimake yen kita kudu kerja luwih cepet. Kita adoh banget saka jadwal. Secara teoritis, kita bisa nindakake buku iki sawetara taun sadurunge.

Alexey: Apa ana kasempatan kanggo njaluk versi anyar saka buku sadurunge Natal?

Maurice: Iku tujuan kita! Nanging aku wis mbadek kaping pirang-pirang kamenangan nganti ora ana sing percaya maneh. Sampeyan mbokmenawa uga ora ngandel banget marang aku babagan iki.

Alexei: Ing kasus apa wae, iki warta sing apik banget. Aku pancene disenengi edition pisanan saka buku. Sampeyan bisa ngomong aku penggemar.

Maurice: Muga-muga edisi anyar iki cocog karo semangatmu, matur nuwun!

Carane memori transactional iki nemokke

Vitaly: Pitakonan sabanjure babagan memori transaksional. Satemene aku ngerti, sampeyan dadi pionir ing bidang iki, sampeyan nemokke ing wektu sing ora ana sing mikir babagan kaya ngono. Napa sampeyan mutusake pindhah menyang wilayah iki? Napa transaksi penting kanggo sampeyan? Apa sampeyan mikir yen ing sawijining dina bakal diwujudake ing wesi?

Maurice: Aku wis ngerti babagan transaksi wiwit kuliah.

Vitaliy: Ya, nanging iki transaksi sing beda!

Maurice: Aku kerja bareng karo Elliott Moss babagan pengumpulan sampah sing ora ngalangi. Masalah kita yaiku kita pengin ngganti sawetara tembung ing memori kanthi atom lan banjur algoritma bakal dadi gampang banget, lan paling ora sawetara bakal dadi luwih efisien. nggunakake mbandhingake-lan-swap kanggo mbukak-link / nyimpen-kahanankasedhiya dening arsitektur podo, iku bisa kanggo nindakake soko, nanging banget inefficient lan ala amarga sampeyan kudu menehi hasil karo tingkat indirection. Aku pengin ngganti tembung memori lan aku kudu ngalih amarga aku mung bisa ngganti siji pitunjuk, supaya padha kudu nuduhake sawetara jenis struktur direktori-kaya. We ngedika bab carane gedhe iku bakal yen kita bisa ngganti hardware supaya bisa ngrekam bebarengan. Elliot misale jek weruh iki: yen sampeyan ndeleng protokol koherensi cache, dheweke wis nyedhiyakake sebagian besar fungsi sing dibutuhake. Ing transaksi optimistis, protokol koherensi cache bakal weruh anané konflik wektu lan cache bakal dadi ora sah. Apa sing kedadeyan yen sampeyan spekulatif miwiti transaksi ing cache lan nggunakake mekanisme protokol koherensi kanggo ndeteksi konflik? Arsitektur hardware spekulatif gampang dirancang. Dadi kita nulis sing publikasi pisanan banget babagan memori transaksional. Ing wektu sing padha, perusahaan aku kerja, Digital Equipment Corporation, mbangun prosesor 64-bit anyar sing diarani Alpha. Lan aku lunga lan menehi presentation kanggo tim pangembangan Alpha bab memori transactional apik kita, lan padha takon: apa income tambahan bakal perusahaan yen kita sijine kabeh iki langsung menyang prosesor? Lan aku pancen ora duwe wangsulan, amarga aku ahli teknologi, aku dudu spesialis pemasaran. Aku pancene ora duwe apa-apa kanggo ngomong. Dheweke ora kesengsem banget yen aku ora ngerti apa-apa.

Vitaly: Milyar! Cukup ngomong "miliar"!

Maurice: Ya, aku kudu ngomong. Saiki, ing jaman wiwitan lan kabeh, aku ngerti carane nulis rencana bisnis. Sing bisa ngapusi sethitik babagan ukuran MediaWiki potensial. Nanging ing jaman semana kaya-kaya naif, mula aku mung kandha, "Aku ora ngerti." Yen katon ing sajarah publikasi babagan memori transactional, sampeyan bakal sok dong mirsani sing sawise taun ana sawetara referensi kanggo iku, lan banjur kanggo bab sepuluh taun ora ana siji dikutip artikel iki. Kuotasi kasebut muncul ing sekitar 2004, nalika multi-inti sing sejatine dumadi. Nalika wong nemokake manawa nulis kode paralel bisa ngasilake dhuwit, riset anyar diwiwiti. Ravi Rajwar nulis artikel, kang ing sawetara cara ngenalaken ide kanggo konsep memori transactional. (Cathetan Editor: Artikel iki duwe versi kapindho sing dirilis ing 2010 lan kasedhiya kanthi bebas minangka PDF). Semalat, wong-wong ngerti carane persis kabeh iki bisa digunakake, carane bisa nyepetake algoritma tradisional kanthi kunci. Conto apik babagan perkara sing sadurunge katon minangka masalah akademik sing menarik. Lan ya, yen sampeyan wis takon kula ing wektu sing aku panginten sing kabeh iki bakal penting ing mangsa, Aku bakal ngandika: mesthi, nanging nalika persis ora cetha. Mungkin ing 50 taun? Ing laku, ternyata mung sepuluh taun. Iku apik banget yen sampeyan nindakake apa-apa, lan mung sepuluh taun wong sok dong mirsani.

Napa worth nindakake riset ing bidang komputasi sing disebarake

Vitaly: Yen kita ngomong babagan riset anyar, apa sampeyan bakal menehi saran marang para pembaca - komputasi sing disebarake utawa multi-inti lan kenapa? 

Maurice: Gampang entuk prosesor multi-inti saiki, nanging luwih angel nyiyapake sistem distribusi sing bener. Aku miwiti nggarap dheweke amarga aku pengin nindakake sing beda karo PhD. Iki minangka saran sing tansah dakwenehake kanggo pamula: aja nulis disertasi tindak lanjut - coba pindhah menyang arah anyar. Kajaba iku, multithreading gampang. Aku bisa eksprimen ing garpu dhewe mlaku ing laptop tanpa metu saka amben. Nanging yen aku dumadakan pengin nggawe sistem distribusi nyata, aku kudu nindakake akeh karya, narik kawigaten siswa, lan liya-liyane. Aku wong kesed lan luwih seneng nggarap multi-inti. Eksperimen karo sistem multi-inti uga luwih gampang tinimbang eksperimen karo sing disebarake, amarga sanajan ing sistem sing disebarake bodho ana akeh faktor sing bisa dikontrol.

Vitaliy: Apa sing sampeyan lakoni saiki, riset blockchain? Artikel apa sing kudu digatekake dhisik?

Maurice: bubar muncul artikel sing apik bangetsing aku nulis karo muridku, Vikram Saraf, khusus kanggo Konferensi Tokenomcs ing Paris telung minggu kepungkur. Iki minangka artikel babagan sistem distribusi sing migunani sing diusulake kanggo nggawe Ethereum multi-threaded. Saiki kontrak cerdas (kode sing mlaku ing pamblokiran) dieksekusi sacara berurutan. Kita nulis artikel sadurunge sing ngomong babagan cara nggunakake transaksi spekulatif kanggo nyepetake proses kasebut. Kita njupuk akeh gagasan saka memori transaksional piranti lunak lan ujar manawa sampeyan nggawe ide kasebut minangka bagean saka mesin virtual Etherium, mula kabeh bakal luwih cepet. Nanging kanggo iki perlu ora ana konflik data ing kontrak. Banjur kita nganggep yen ing urip nyata ora ana konflik kasebut. Nanging kita durung duwe kesempatan kanggo ngerteni. Banjur kedadean kita wis meh sepuluh taun sajarah kontrak nyata ing tangan kita, supaya kita unloaded pamblokiran Etherium lan kepingin weruh: apa sing bakal kelakon yen cathetan sajarah iki mlaku ing podo karo? We ketemu Tambah pinunjul ing kacepetan. Ing dina wiwitan Etherium, kacepetan tambah akeh, nanging dina iki kabeh luwih rumit, amarga kontrak luwih sithik lan kemungkinan konflik babagan data sing mbutuhake serialisasi dadi luwih dhuwur. Nanging kabeh iki karya eksperimen karo data sajarah nyata. Sing apik babagan blockchain yaiku ngelingi kabeh ing salawas-lawase, supaya sampeyan bisa bali ing wektu lan sinau apa sing bakal kelakon yen kita nggunakake algoritma liyane kanggo mbukak kode kasebut. Kepiye carane wong ing jaman kepungkur seneng karo ide anyar kita. Luwih gampang lan luwih nyenengake kanggo nindakake riset kasebut, amarga ana sing ngawasi kabeh lan ngrekam kabeh. Iki wis luwih kaya sosiologi tinimbang pangembangan algoritma.

Wis pangembangan algoritma mandheg lan carane urip

Vitaly: Wektu kanggo pitakonan teoretis pungkasan! Apa krasa kemajuan ing struktur data kompetitif nyusut saben taun? Apa sampeyan mikir yen kita wis tekan dataran tinggi ing pangerten babagan struktur data, utawa bakal ana sawetara perbaikan utama? Mungkin ana sawetara gagasan pinter sing bisa ngganti kabeh?

Maurice: Kita bisa uga wis tekan dataran tinggi ing struktur data kanggo arsitektur tradisional. Nanging struktur data kanggo arsitektur anyar isih dadi wilayah sing janjeni. Yen sampeyan pengin nggawe struktur data kanggo, ngomong, akselerator hardware, banjur struktur data GPU beda banget saka struktur data CPU. Nalika sampeyan ngrancang struktur data kanggo pamblokiran, sampeyan kudu nglebokake potongan data banjur dilebokake kaya wit merkle, kanggo nyegah pemalsuan. Akhir-akhir iki ana akeh kegiatan ing wilayah iki, akeh sing nindakake pakaryan sing apik banget. Nanging aku mikir apa sing bakal kelakon yaiku arsitektur anyar lan aplikasi anyar bakal nyebabake struktur data anyar. Aplikasi lawas lan arsitektur tradisional - mbok menawa ora ana papan kanggo riset maneh. Nanging yen sampeyan metu saka trek sing diantemi lan katon liwat pinggiran, sampeyan bakal weruh prekara-prekara edan sing ora dianggep serius - ing kono kabeh kedadeyan sing nyenengake.

Vitaly: Dadi, dadi peneliti sing misuwur, aku kudu nggawe arsitektur dhewe 🙂

Maurice: Sampeyan bisa "nyolong" arsitektur anyar wong liya - misale jek luwih gampang!

Kerja ing Universitas Brown

Vitaliy: Apa sampeyan bisa ngandhani luwih lengkap babagan Universitas Browning ngendi sampeyan kerja? Ora akeh sing dingerteni babagan dheweke ing konteks teknologi informasi. Kurang saka MIT, contone.

Maurice: Universitas Brown minangka salah sawijining universitas paling tuwa ing Amerika Serikat. Aku mung Harvard sing rada tuwa. Brown iku bagéan saka supaya disebut- liga ivy, yaiku koleksi wolung universitas paling tuwa. Harvard, Brown, Cornell, Yale, Columbia, Dartmouth, Pennsylvania, Princeton. Iki minangka universitas lawas, cilik lan rada aristokrat. Fokus ing pendidikan seni liberal. Iku ora nyoba kanggo dadi kaya MIT, MIT banget specialized lan technical. Brown minangka papan sing apik kanggo sinau Sastra Rusia utawa Yunani Klasik lan, mesthi, Ilmu Komputer. Iku fokus ing pendidikan lengkap. Umume siswa kita menyang Facebook, Apple, Google, mula aku mikir siswa kita ora duwe masalah entuk kerja ing industri kasebut. Aku kerja ing Brown amarga sadurunge aku kerja ing Digital Equipment Corporation ing Boston. Iku perusahaan sing nemokke akèh iku menarik, nanging rek pentinge komputer pribadi. Perusahaan kanthi nasib sing angel, sing ngedegake sing biyen dadi revolusioner enom, ora sinau apa-apa lan ora lali apa-apa, lan mulane padha nguripake saka revolusioner menyang reaksioner sajrone watara sepuluh taun. Dheweke seneng guyon manawa komputer pribadi ana ing garasi - garasi sing ditinggalake. Iku cukup ketok sing padha numpes dening perusahaan luwih fleksibel. Nalika dadi cetha yen perusahaan ana alangan, aku nelpon kancaku saka Brown, sing kira-kira jam saka Boston. Aku ora pengin ninggalake Boston nalika iku, amarga universitas liyane ora duwe lowongan akeh. Dhek jaman biyen ora akeh lowongan sing ana ing bidang Ilmu Komputer kaya saiki. Lan Brown wis proyek, Aku ora kudu pindhah metu saka omahku, Aku ora kudu pindhah kulawarga, lan aku seneng manggon ing Boston! Dadi aku nggawe keputusan kanggo pindhah menyang Brown. Aku seneng. Murid-muride apik, mula aku ora nate nyoba menyang papan liya. Ing sabbatical, aku makarya ing Microsoft kanggo setahun, pindhah menyang Technion ing Haifa kanggo setahun, lan saiki aku bakal ing Algorand. Aku duwe akeh kolega ing endi wae lan mulane lokasi fisik kelas kita ora penting. Nanging sing paling penting yaiku para siswa, dheweke sing paling apik ing kene. Aku ora tau nyoba menyang ngendi wae, amarga aku cukup seneng ing kene.

Nanging sanajan misuwur Brown ing Amerika Serikat, dheweke ora dingerteni ing luar negeri. Kaya sing sampeyan ngerteni, saiki aku nindakake sing paling apik kanggo mbenerake kahanan iki.

Bedane antarane riset universitas lan perusahaan

Vitaliy: Oke, pitakonan sabanjure yaiku babagan Peralatan Digital. Sampeyan dadi peneliti ing kana. Apa bedane kerja ing departemen R&D ing perusahaan gedhe lan kerja ing universitas? Apa kaluwihan lan cacat?

Maurice: Aku wis ana ing Microsoft suwene rong puluh taun, kerja bareng karo wong ing Sun Microsystems, Oracle, Facebook, lan saiki Algorand. Adhedhasar kabeh iki, aku pengin ujar manawa bisa nindakake riset kelas siji ing perusahaan lan ing universitas. Bentenane penting yaiku ing perusahaan sampeyan bisa kerja bareng karo kolega. Yen dumadakan aku duwe ide kanggo proyek sing durung ana, aku kudu ngyakinake kanca-kancaku yen iki pancen apik. Yen aku ana ing Brown, aku bisa ngomong marang murid-muridku: ayo nggarap antigravitasi! Dheweke bakal pindhah menyang wong liya utawa njupuk proyek kasebut. Ya, aku kudu golek pendanaan, aku kudu nulis aplikasi hibah lan liya-liyane. Ing kasus apa wae, mesthi ana akeh siswa, lan sampeyan bakal bisa nggawe keputusan kanthi sepihak. Nanging ing universitas, sampeyan paling ora bakal bisa kerja karo wong-wong ing level sampeyan. Ing jagad riset industri, sampeyan kudu ngyakinake kabeh wong yen proyek sampeyan kudu ditindakake. Aku ora bisa pesen saka sapa wae. Lan loro-lorone cara kerja iki penting, amarga yen sampeyan lagi nggarap perkara sing edan lan kanca-kancane angel diyakinake, luwih gampang kanggo ngyakinake mahasiswa pascasarjana - utamane yen sampeyan mbayar. Yen sampeyan nggarap perkara sing mbutuhake akeh pengalaman lan keahlian sing jero, mula sampeyan butuh rekan kerja sing bisa ujar "ora, kedadeyan aku ngerti wilayah iki lan ide sampeyan ala, ora ana sing bakal teka." Iki migunani banget babagan mbuwang wektu. Lan uga, yen ing laboratorium industri sampeyan nglampahi akeh wektu nulis laporan, banjur ing universitas sampeyan nglampahi wektu iki kanggo golek dhuwit. Yen aku pengin siswa bisa lelungan menyang ngendi wae, aku kudu golek dhuwit ing papan liya. Lan luwih penting posisi sampeyan ing universitas, luwih akeh wektu sampeyan kudu nglumpukake dhuwit. Dadi, saiki sampeyan ngerti apa aku kerja - pengemis profesional! Kaya salah sawijining biksu sing mlaku-mlaku nganggo piring sumbangan. Umumé, loro kegiatan iki nglengkapi saben liyane. Mulane aku nyoba kanggo manggon lan ngadeg mantep ing loro donya.

Vitaliy: Kayane ngyakinake perusahaan luwih angel tinimbang ngyakinake ilmuwan liyane.

Maurice: Luwih angel, lan liya-liyane. Kajaba iku, ing macem-macem wilayah beda: ana sing nindakake riset skala lengkap, lan ana sing fokus ing topik kasebut. Yen aku menyang Microsoft utawa Facebook lan ujar, ayo nindakake anti-gravitasi, dheweke ora bakal ngormati. Nanging yen aku ngomong babagan sing padha karo para siswa lulusan, mesthine dheweke bakal langsung kerja, sanajan saiki aku bakal duwe masalah - amarga sampeyan kudu golek dhuwit kanggo iki. Nanging yen sampeyan pengin nindakake apa wae sing cocog karo tujuan perusahaan, perusahaan kasebut bisa dadi papan sing apik kanggo riset.

Hydra lan SPTDC

Vitaliy: Pitakonanku wis rampung, mula ayo ngobrol babagan perjalanan menyang Rusia sing bakal teka.

Maurice: Ya, aku ngarep-arep bali menyang Petersburg.

Alexey: Iku pakurmatan gedhe kanggo kula sing karo kita taun iki. Iki kaping pindho sampeyan ing St. Petersburg, ta?

Maurice: Wis katelu!

Alexei: Ngerti, nanging SPTDC - persis kapindho. Wektu pungkasan sekolah kasebut diarani SPTCC, saiki kita wis ngganti siji huruf (C kanggo D, Concurrent to Distributed) kanggo nandheske sing ana liyane wilayah related kanggo komputasi mbagekke taun. Apa sampeyan bisa ngomong sawetara tembung babagan presentasi sampeyan ing Sekolah lan Konferensi Hydra?

Maurice: Ing Sekolah, aku pengin ngomong babagan dhasar blockchain lan apa sing bisa ditindakake. Aku pengin nuduhake yen pamblokiran meh padha karo program multi-threaded sing kita kenal, nanging kanthi nuansa dhewe, lan penting kanggo ngerti bedane kasebut. Yen sampeyan nggawe kesalahan ing aplikasi web normal, iku mung ngganggu. Yen sampeyan nulis kode buggy ing app financial, wong mesthi bakal nyolong kabeh dhuwit. Iki minangka tingkat tanggung jawab lan akibat sing beda. Aku bakal ngomong sethithik babagan bukti kerja, kontrak cerdas, transaksi antarane macem-macem pamblokiran.

Penutur liyane bakal kerja ing jejere aku, sing uga duwe apa-apa babagan blockchain, lan kita setuju kanggo koordinasi ing antarane awake dhewe supaya crita kita pas. Nanging kanggo pirembagan babagan teknik, aku pengin menehi panjelasan sing jelas menyang pamirsa sing akeh kenapa sampeyan ora percaya kabeh sing sampeyan krungu babagan blockchain, kenapa blockchain minangka lapangan sing apik, kepiye cocog karo ide liyane sing kondhang, lan kenapa kita kudu kendel nyawang masa depan.

Alexey: Kajaba iku, aku arep ngomong yen iki ora bakal kelakon ing format meetup utawa grup pangguna, kaya rong taun kepungkur. Kita mutusake kanggo nindakake konferensi cilik ing cedhak sekolah. Alasane yaiku sawise ngobrol karo Peter Kuznetsov, kita ngerti yen sekolah kasebut diwatesi mung satus, bisa uga 120 wong. Ing wektu sing padha, ana akeh insinyur sing pengin ngobrol karo sampeyan, nekani laporan, lan umume kasengsem ing topik kasebut. Kanggo iki kita wis nggawe konferensi anyar diarani Hydra. Miturut cara, ana idea kenapa Hydra?

Maurice: Amarga bakal duwe pitung pamicara? Lan padha bisa Cut mati sirahe, lan penutur anyar bakal tuwuh ing panggonan?

Alexey: Ide apik kanggo ngembangake pamicara anyar. Nanging tenan, ana crita ing kene. Elinga legenda Odysseus, ing ngendi dheweke kudu lelayaran Scylla lan Charybdis? Hydra kaya Charybdis. Crita iki yen aku ngomong ing konferensi lan ngomong babagan multithreading. Mung ana rong trek ing konferensi iki. Ing wiwitan laporan, aku ngandhani para pamirsa ing bale sing saiki duwe pilihan antarane Scylla lan Charybdis. Kewan rohku yaiku Charybdis, amarga Charybdis akeh kepala, lan temaku yaiku multithreading. Iki carane jeneng konferensi katon.

Ing kasus apa wae, kita wis kehabisan pitakonan lan wektu. Dadi matur nuwun kanggo kanca-kanca kanggo wawancara sing apik lan ketemu sampeyan ing SPTDC lan Hydra 2019!

Bakal bisa nerusake komunikasi karo Maurice ing konferensi Hydra 2019, sing bakal dianakake ing Juli 11-12, 2019 ing St. Dheweke bakal teka karo laporan "Blockchains lan masa depan komputasi sing disebarake". Tiket bisa dituku ing situs web resmi.

Source: www.habr.com

Add a comment