- salaku profésor élmu komputer di Universitas Rochester, sareng janten dekan salami lima taun di almamaterna, Universitas Wisconsin–Madison. Anjeunna ngalaksanakeun panalungtikan dina program paralel sareng disebarkeun sareng desain basa, sareng ngajarkeun mata pelajaran ieu ka murid.
Dunya terang Michael tina buku ajar , kumaha upami padamelan narima Hadiah Dijkstra salaku salah sahiji nu kawentar dina widang komputasi disebarkeun. Anjeun ogé tiasa terang anjeunna salaku panulis algoritma éta .
Kalayan sareng Doug Lee, anjeunna ngembangkeun algoritma non-blocking sareng antrian sinkron anu ngawasa perpustakaan Java. JavaSE 6 parantos ningkat prestasi ku 10 kali. ThreadPoolExecutor.
eusi:
- Karir mimiti, Universitas Rochester. Proyék Charlotte, basa Lynx;
- IEEE Scalable Koheren Interface, MCS konci;
- Salamet di dunya anu kantos robih;
- Naha murid janten bodo? Tren global, internasionalisasi;
- Karya éféktif jeung siswa;
- Kumaha nuturkeun kamajuan panganyarna dina nyiapkeun kursus sareng buku anyar;
- Sambungan antara bisnis sareng akademisi;
- Putting gagasan kana prakték. MCS, MS, CLH, JSR 166, gawé bareng Doug Lee sarta leuwih;
- Mémori transaksional;
- Arsitéktur anyar. mémori Transactional nyaeta on verge meunangna;
- memori non-volatile, Optane DIMM, alat ultra-gancang;
- Trend badag salajengna. Struktur data ganda. Hidra.
Wawancara dilaksanakeun ku:
Vitaly Aksenov - ayeuna mangrupikeun postdoc di IST Austria sareng anggota Jurusan Ilmu Komputer di Universitas ITMO. Panalitianana museurkeun kana téori sareng prakték ngeunaan struktur data sakaligus. Sateuacan ngagabung ka IST, anjeunna nampi gelar PhD ti Universitas Paris Diderot sareng Universitas ITMO dina pangawasan Profesor Petr 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.
Karir mimiti, Universitas Rochester. Proyék Charlotte, basa Lynx.
Алексей: Anu mimiti, abdi hoyong ngabejaan Anjeun yen urang di Rusia téh sadayana pisan gemar Élmu Komputer, Élmu Data, sarta algoritma. Ieu ampir teu sopan. Urang sadaya geus maca Ku alatan éta, konferensi upcoming, sakola, jeung wawancara ieu sorangan kudu jadi pohara populér. Kami nampi seueur patarosan pikeun wawancara ieu ti mahasiswa, programer, sareng anggota komunitas, janten kami nganuhunkeun pisan pikeun kasempetan ieu. Naha Élmu Komputer sapertos populér di AS?
MichaelWewengkon urang rupa-rupa, gaduh seueur cabang, sareng mangaruhan masarakat ku seueur cara, ku kituna sesah kuring masihan anjeun jawaban anu pasti. Tapi nyatana éta parantos nyababkeun parobihan anu ageung dina bisnis, industri, seni, sareng masarakat sacara gembleng salami 30 taun ka pengker.
VitaliHayu urang mimitian ku hal anu langkung jauh. Seueur paguron luhur ngagaduhan spésialisasi dina hiji daérah anu khusus. Pikeun Carnegie Mellon, éta komputasi paralel; pikeun MIT, éta kriptografi, robotika, sareng multithreading. Naha Universitas Rochester ngagaduhan spésialisasi anu sami?
Michael: Jujur, Abdi nyebutkeun CMU na MIT ngahususkeun dina sagalana. Departemen urang geus salawasna geus fokus kana kecerdasan jieunan. Satengah jalma urang damel di AI atanapi interaksi manusa-komputer — proporsi anu langkung luhur tibatan di departemén sanés, sareng éta salawasna sapertos kitu. Tapi nalika kuring di CMU, kuring henteu ngagaduhan kursus di AI, sareng kuring henteu kantos damel di dinya. Janten departemén kuring khusus dina masalah anu kuring henteu aya hubunganana. Warta anu saé nyaéta yén masalah anu paling penting kadua di jabatan kami nyaéta program serentak sareng multithreaded, anu mangrupikeun kaahlian kuring.
VitaliAnjeun mimiti damel dina élmu komputer nalika widang pemrograman multithreaded nembé muncul. Ditilik ku daptar publikasi anjeun, karya awal anjeun nutupan rentang topik anu cukup lega: manajemén memori dina sistem multithreaded, sistem file disebarkeun, sarta sistem operasi. Naha versatility misalna? Naha anjeun nyobian milarian tempat anjeun dina komunitas panalungtikan?
Michael: Salaku murid, kuring milu di Universitas Wisconsin, dimana salah sahiji sistem operasi anu disebarkeun munggaran dikembangkeun. Di dinya kuring damel sareng Raphael Finkel () jeung Marvin Solomon (). Disertasi kuring nyaéta pikeun ngembangkeun basa parangkat lunak sistem pikeun sistem anu disebarkeun — ayeuna seueur hilap, hatur nuhun. Kuring nyiptakeun basa pamrograman Lynx, anu dimaksudkeun pikeun nyederhanakeun nyiptakeun server pikeun sistem operasi anu disebarkeun sacara bébas. Kusabab kuring utamina damel dina sistem operasi dina waktos éta, kuring nganggap yén karir kuring ogé bakal difokuskeun kana éta ogé. Tapi Universitas Rochester leutik pisan, sareng kusabab ieu, kelompok anu béda-béda aya interaksi anu raket pisan. Henteu aya belasan spesialis sistem operasi sanés anu kuring tiasa berinteraksi, janten sadaya kontak kuring sareng jalma-jalma anu damel dina widang anu béda-béda. Nyaan ngarasakeun ieu; janten generalis mangrupikeun kauntungan anu ageung pikeun kuring. Sedengkeun pikeun struktur data multithreaded sarta algoritma sinkronisasi husus, kuring mimiti dipake dina eta sagemblengna ku kacilakaan.
IEEE Scalable Koheren Interface, MCS konci.
Vitali: Dupi anjeun tiasa ngajelaskeun langkung seueur ngeunaan ieu?
Michael: Ieu mangrupikeun carita lucu anu kuring henteu bosen nyarioskeun ka sadayana. Éta kajadian dina konperénsi. di Boston - éta dina 80s telat atawa mimiti 90an. John Mellor-Crummie hadir dina konperénsi éta (), lulusan jurusan urang. Kuring terang anjeunna, tapi urang henteu kantos ngalaksanakeun panalungtikan babarengan. Mary Vernon () ti Wisconsin masihan presentasi ngeunaan sistem multiprocessor anu aranjeunna kembangkeun di Wisconsin: Multicube Ieu miboga mékanisme sinkronisasi hardware disebut Q on Sync Bit, nu ieu engké diganti Q on Lock Bit sabab disada kawas kéju Colby, jadi éta Pun a. Upami anjeun nuju kana multithreading, anjeun panginten terang yén Colby pamustunganana janten mékanisme singkronisasi pikeun standar Interface Koheren Scalable IEEE. Éta mékanisme ngonci anu nyiptakeun pointer tina hiji cache ka anu sanés dina tingkat hardware supados masing-masing anu gaduh konci terang saha anu giliran éta. Nalika John sareng kuring nguping perkawis ieu, urang silih tingali sareng nyarios, naha ngalakukeun ieu dina tingkat hardware? Naha urang tiasa ngahontal hal anu sami sareng ngabandingkeun-sareng-swap? Kami nyandak salah sahiji buku catetan anu ngagolér di kelas sareng ngadamel sketsa. bari Mary nuluykeun presentasi nya. Urang engké dilaksanakeun éta, experimented kalawan eta, gagasan kabukti suksés, sarta kami diterbitkeun kertas. Dina waktos éta, topik éta sigana ngan ukur gangguan anu pikaresepeun pikeun kuring, saatos kuring ngarencanakeun uih deui ka sistem operasi. Tapi lajeng masalah sejen timbul dina arah nu sarua, sarta pamustunganana, sinkronisasi, multithreading, sarta struktur data janten husus utama abdi. Sakumaha anjeun tiasa tingali, eta kabeh kajadian ku kacilakaan.
Vitali: Kuring geus wawuh jeung MCS blocking pikeun lila, tapi nepi ka ayeuna kuring teu nyaho yén éta téh karya anjeun, sarta teu sadar yén éta téh mangrupa akronim pikeun ngaran tukang anjeun.
Kumaha salamet dina dunya anu terus-terusan robih?
АлексейKuring boga patarosan patali. Tilu puluh atawa opat puluh taun ka tukang, aya leuwih kabebasan sakuliah specialties béda. Upami anjeun hoyong ngamimitian karir dina sistem multithreading atanapi disebarkeun, teraskeun; upami anjeun hoyong damel dina sistem operasi, henteu aya masalah. Unggal widang ngagaduhan seueur patarosan kabuka sareng sababaraha ahli. Ayeuna, spésialisasi sempit parantos muncul: sanés ngan ukur ahli sistem operasi umum, aya spesialis dina sistem khusus. Sami lumaku pikeun multithreading sarta sistem disebarkeun. Tapi masalahna nyaéta yén kahirupan urang aya watesna; unggal jalma ngan bisa bakti sababaraha dekade pikeun panalungtikan. Kumaha urang salamet di dunya anyar ieu?
MichaelKami henteu khusus dina hal ieu; hal anu sarua kajadian dina widang séjén dina hiji waktu atawa sejen. Kuring éta untung pikeun ngamimitian digawé di elmu komputer nalika widang éta di infancy na. Sababaraha pondasi parantos ditata, tapi sadayana masih teu dewasa. Kasempetan sapertos kieu henteu sering sumping. Téknik listrik geus aya pikeun waktu anu pohara lila, fisika malah leuwih lila, sarta matematika saprak praktis mimiti jaman. Tapi éta lain hartosna teu aya anu nyieun pamanggihan metot dina matematika deui. Masih seueur masalah anu kabuka, tapi dina waktos anu sami, urang kedah diajar deui. Anjeun leres yén ayeuna aya seueur spésialisasi anu langkung ageung tibatan baheula, tapi éta ngan ukur hartosna urang dina kaayaan anu sami sareng kalolobaan widang usaha manusa.
АлексейAbdi resep kana aspék anu langkung praktis tina patarosan di dieu. Abdi gaduh kasang tukang dina matematika, sareng salami diajar, kuring sering ngahadiran konperénsi sareng damel dina sababaraha topik ilmiah. Kuring manggihan yén teu saurang ogé di panongton ngartos ceramah kuring, sarta sarupa, ceramah jalma séjén éta ngan kaharti ku dirina sorangan. Ieu henteu leres pisan pikeun topik tingkat luhur, tapi pas anjeun ngamimitian ngagali kana hiji hal, pamiarsa henteu tiasa ngiringan. Kumaha anjeun nungkulan ieu?
Michael: Teu salawasna hasil. Kuring nembé nyiapkeun ceramah dimana kuring nyerep teuing kana detil téknis. Nalika obrolan lumangsung, janten jelas yén kalolobaan panongton teu ngarti kuring, jadi kuring kudu adaptasi on laleur. Slides henteu tiasa dirobih, janten henteu suksés pisan-éta sababna, sacara umum, kuring nyobian henteu nganggo slide. Gemblengna, saran abdi mertimbangkeun panongton Anjeun. Anjeun kedah terang saha anu anjeun wartosan, tingkat pangaweruhna, sareng naon anu kedah didangukeun pikeun ngahargaan karya anjeun.
Vitali: Dupi anjeun tiasa masihan kuring petunjuk ngeunaan naon ceramah ieu?
MichaelJujur, kuring langkung resep henteu ngajentrekeun topik ieu supados ngajaga anonimitas jalma anu terlibat. Intina nyaéta yén urang sering ngalenyepan jero pisan kana seluk-beluk masalah anu nuju digarap, sahingga hésé ngajelaskeun dina awal obrolan naha masalah éta menarik sareng penting sareng kumaha hubunganana sareng masalah anu parantos terang ku panongton. Dina pangalaman kuring, ieu mangrupikeun kaahlian anu paling diperjuangkeun ku murid. Sareng ieu mangrupikeun kalemahan dina omongan kuring anu anyar. Omongan anu terstruktur ogé kedah nyambung sareng pamiarsa ti mimiti, ngajelaskeun naon masalahna sareng kumaha hubunganana sareng topik anu aranjeunna terang. Kumaha teknis bubuka ieu gumantung kana panongton. Lamun rupa-rupa pisan, omonganna bisa multi-step. Perkenalan kedah tiasa diaksés ku sadayana, sareng dina tungtungna, éta sesah teuing pikeun tetep, tapi jalma anu kawilang akrab sareng lapangan anjeun bakal tiasa ngartos sadayana.
Naha murid janten bodo? Tren global, internasionalisasi.
АлексейAnjeun parantos ningali murid sababaraha dekade ayeuna. Naha mahasiswa janten bodo atanapi langkung pinter ti dasawarsa ka dasawarsa atanapi ti taun ka taun? Di Rusia, profésor terus-terusan ngawadul yén murid-muridna beuki bodo unggal taun, sareng éta teu jelas naon anu kudu dilakukeun ngeunaan éta.
Michael: Anjeun leres-leres tiasa ngupingkeun seueur negatip ti urang anu baheula. Subconsciously, urang condong ngaharepkeun siswa pikeun nyerep sagala 30 taun pangalaman urang geus boga. Upami kuring gaduh pamahaman anu langkung jero tibatan anu kuring lakukeun dina taun 1985, naha mahasiswa henteu gaduh éta? Meureun ku sabab geus 20 taun, kumaha? Jigana parobahan paling signifikan dina dasawarsa panganyarna ngeunaan komposisi demografi: urang ayeuna geus nyata leuwih siswa internasional, iwal Canadians. Baheula seueur urang Kanada sabab urang caket pisan ka wates Kanada, sareng murid ti dinya tiasa uih deui dina sabtu minggu. Tapi ayeuna Kanada ngagaduhan seueur paguron luhur, sareng urang Kanada langkung resep diajar di bumi; aranjeunna ngarambat nyata kirang ka AS.
Алексей: Naha anjeun pikir ieu téh trend lokal atawa global?
MichaelKuring teu apal persis saha, tapi ceuk batur dunya téh datar. widang urang geus jadi nyata leuwih internasional. Saméméhna, aranjeunna diayakeun sacara éksklusif di Amérika Serikat, teras aranjeunna mutuskeun pikeun nahan aranjeunna di nagara-nagara sanés unggal opat taun, sareng ayeuna dilaksanakeun di sakumna dunya. Parobihan ieu ngagaduhan dampak anu langkung ageung , sabab geus salawasna geus organisasi leuwih internasional ti ACM. Sareng aya korsi program ti Cina, India, Rusia, Jérman, sareng seueur nagara sanés, sabab seueur pisan anu lumangsung di mana waé ayeuna.
Алексей: Tapi meureun aya sababaraha aspék négatip kana internasionalisasi ieu?
MichaelAbdi nyarios yén sadaya aspék négatip nyaéta politik, sanés téknologi. Jaman baheula, masalah utama nyaéta AS maok jalma anu paling pinter sareng paling berbakat ti nagara-nagara di sakumna dunya. Ayeuna, masalah utama nyaéta kaulinan pulitik antara nagara béda ngaliwatan visas jeung imigrasi.
Алексей: Nyaéta, halangan jeung hal-hal kawas éta. Kahartos.
ВладимирSacara pribadi, kuring panasaran ngeunaan pendekatan anjeun nalika ngajarkeun mata pelajaran anyar ka murid. Aya sababaraha pendekatan anu béda: anjeun tiasa museurkeun kana inspirasi aranjeunna pikeun nyobian hal-hal anu énggal, atanapi anjeun tiasa langkung difokuskeun kana detil kumaha téknologi tinangtu dianggo. Anu anjeun resep?
Karya éféktif jeung siswa
Алексей: Na kumaha anjeun manggihan kasaimbangan damn antara kahiji jeung kadua?
MichaelMasalahna nyaéta kelas henteu salawasna jalan sakumaha anu dipikahoyong. Biasana kuring masihan bahan bacaan sateuacanna ka murid supados tiasa ngalenyepan, ngartos sabisa-bisana, sareng ngarumuskeun patarosan ngeunaan poin-poin anu teu acan kahartos. Lajeng, di kelas, urang bisa difokuskeun titik paling hese tur neuleuman éta babarengan. Ieu kumaha kuring resep ngajar. Tapi tinangtu beban kerja ayeuna, kuring henteu salawasna ngagaduhan kasempetan pikeun mastikeun aranjeunna parantos nyiapkeun sateuacanna. Hasilna, abdi mungkas nepi méakkeun nyata leuwih waktos on summaries umum ti Abdi hoyong. Sanaos ieu, kuring nyobian ngajaga kelas urang interaktif. Upami teu kitu, langkung gampang ngan ukur ngarékam pidéo saatos murid tiasa nonton di bumi. Titik kelas hirup nyaéta interaksi manusa. Di kelas, abdi resep ngagunakeun kapur tulis sarta dewan tinimbang slides, iwal dina kasus nu jarang dipake lamun diagram a teuing kompléks pikeun nembongkeun di papan tulis. Ieu ngabebaskeun kuring tina kedah taat kana rencana pelajaran anu kaku. Kusabab teu aya susunan susunan dimana kuring nampilkeun materi, ieu ngamungkinkeun kuring pikeun adaptasi jeung panongton dumasar kana patarosan kuring narima. Gemblengna, abdi nyobian sangkan kelas jadi interaktif sabisa, ku kituna bahan anu kuring dibere gumantung kana patarosan kuring ditanya.
ВладимирÉta saé. Dina pangalaman abdi, éta rada hese meunang patarosan ti listeners. Sanaos anjeun naroskeun sateuacanna patarosan naon waé, henteu paduli kumaha bodo atanapi pinterna, aranjeunna tetep cicingeun. Kumaha anjeun nungkulan ieu?
MichaelAnjeun bakal seuri, tapi lamun nangtung di dinya cukup lila cicingeun, sooner atanapi engké dulur bakal meunang uncomfortable, sarta batur bakal nanya. Atanapi anjeun tiasa naroskeun téknis anu sederhana / henteu patarosan pikeun nangtukeun naha jalma ngartos naon anu diucapkeun. Contona, aya lomba data dina conto dibikeun? Saha anu nyangka kitu? Anu nyangka henteu? Anu teu ngarti nanaon pisan, sabab ngan satengah leungeun naék?
VitaliSareng upami anjeun salah ngajawab, anjeun diusir ti kelas :)
MichaelUpami anjeun teu acan ngawaler nanaon, kuring kedah naroskeun patarosan. Kuring kedah terang naon anu kedah dipikanyaho ku murid pikeun ngajawab patarosan anu kuring naroskeun. Aranjeunna kedah ngabantosan abdi ngabantosan aranjeunna. Abdi daék adaptasi sareng aranjeunna supados aranjeunna tiasa terang masalahna. Tapi upami kuring henteu terang naon anu aya dina sirahna, kuring henteu tiasa ngalakukeun éta. Sareng upami kuring ngantepkeun murid-muridna cukup panjang, sakapeung aranjeunna naroskeun patarosan anu leres-patarosan anu ngamungkinkeun kuring ningali naon anu aya dina sirahna.
АлексейNaha patarosan ieu kadang ngakibatkeun ideu anu anjeun teu acan panginten sateuacanna? Aranjeunna teu kaduga? Naha aranjeunna ngidinan Anjeun pikeun nempo hiji masalah dina lampu anyar?
MichaelAya patarosan anu muka cara anyar pikeun nampilkeun materi. Seringna, patarosan nyababkeun masalah anu pikaresepeun anu kuring henteu badé dibahas. Siswa sering nyarioskeun ka kuring yén kuring condong nyimpang tina topik pelajaran nalika ieu kajadian. Sareng, numutkeun aranjeunna, ieu sering mangrupikeun bagian anu paling pikaresepeun dina palajaran. Jarang pisan, ngan sababaraha kali, siswa naroskeun patarosan anu nyababkeun arah anyar dina panalungtikan sareng dikembangkeun janten artikel. Ieu kajadian leuwih sering dina paguneman jeung siswa ti di kelas, tapi geus kajadian aya kalana salila kelas.
Алексей: Ku kituna, siswa nanya ka anjeun patarosan anu engké bisa dijadikeun dadasar pikeun hiji artikel?
Michael: Enya.
VitaliSakumaha sering anjeun gaduh paguneman sapertos kieu sareng murid? Iraha aranjeunna hoyong diajar langkung seueur tibatan anu katutupan di kelas?
Michael: Sareng mahasiswa pascasarjana abdi-sadayana waktos. Kuring boga ngeunaan lima atawa genep di antarana, sarta kami nuju salawasna ngabahas hal. Paguneman sapertos kieu sareng murid anu ngan ukur ngahadiran kelas kuring henteu sering pisan. Sanajan Abdi hoyong eta lumangsung leuwih sering. Kuring curiga aranjeunna ngan saukur sieun datang ka kantor fakultas salila jam kantor. Saban semester, sababaraha mahasiswa tiasa ngatasi halangan psikologis ieu, sareng sok pikaresepeun pisan ngobrol sareng aranjeunna saatos kelas. Sanajan kitu, lamun sakabeh murid anu sakumaha kawani, kuring ngan saukur teu boga waktu. Jadi meureun sagalana jalan sakumaha sakuduna.
VitaliKumaha anjeun mendakan waktos pikeun berinteraksi sareng murid? Sajauh anu kuring terang, di AS, profesor sibuk pisan - aplikasi hibah sareng anu sanés.
MichaelJujur, damel sareng mahasiswa mangrupikeun aspék padamelan kuring anu paling kuring resep. Janten kuring rada ngamotivasi. Kalolobaan waktu kuring méakkeun di kantor abdi spent dina sagala rupa rapat. Ayeuna nuju usum panas, janten jadwal abdi kirang sibuk, tapi dina taun sakola, abdi pinuh dipesen unggal dinten ti 9 nepi ka 17 sore. Panaliti, ulasan, hibah — kuring ngan ukur gaduh soré sareng sabtu minggu pikeun sadayana éta.
Kumaha carana nuturkeun kamajuan panganyarna dina nyiapkeun kursus sareng buku anyar.
АлексейNaha anjeun masih ngajarkeun salah sahiji kursus anu anjeun ajar salami lami? Hal sapertos Perkenalan Ilmu Komputer.
Michael: Hal kahiji anu aya dina pikiran di dieu nyaéta kursus basa program.
АлексейKumaha bédana vérsi kursus ayeuna tina kursus ieu 10, 20, atanapi 30 taun ka pengker? Panginten tren umum langkung narik tibatan detil tina kursus anu tangtu.
Michael: Kursus kuring ngeunaan basa pamrograman rada teu biasa nalika kuring nyiptakeunana. Kuring mimiti ngajarkeun éta dina ahir 1980-an, ngagentos batur sapagawean kuring, Doug Baldwin (). Topik Tangtu ieu ngan tangensial patali Spésialisasi kuring, tapi nalika anjeunna ninggalkeun, Kuring kapanggih sorangan calon pangalusna pikeun ngajarkeun eta. Abdi henteu resep kana buku ajar anu aya, janten kuring tungtungna nyerat buku pangajaran pikeun kursus sorangan. (Catatan editor: Ieu ngeunaan buku) Ayeuna nuju dianggo di langkung ti 200 universitas di sakuliah dunya. Pendekatan kuring teu biasa sabab ngahaja nyampur desain basa sareng masalah palaksanaan, fokus kana interaksi antara aspék ieu dina unggal domain anu mungkin. Pendekatan inti tetep teu robih, sakumaha ogé seueur konsep inti: abstraksi, ruang ngaran, modularitas, jinis. Nanging, sakumpulan basa anu dianggo pikeun nunjukkeun konsép ieu parantos robih. Nalika kursus mimiti diciptakeun, éta kalebet seueur conto dina Pascal, tapi ayeuna, seueur murid kuring anu henteu kantos ngupingkeun basa éta. Tapi aranjeunna terang Swift, Go, sareng Rust, janten kuring kedah ngobrol ngeunaan basa anu dianggo ayeuna. Oge, murid-murid ayeuna mah geus apal kana basa-basa skrip, padahal basa kuring mimiti ngajar ieu kursus, éta sagemblengna bakti kana basa-basa anu disusun. Ayeuna, kumaha ogé, urang peryogi seueur bahan ngeunaan Python, Ruby, sareng Perl, sabab éta anu ditulis ku jalma dina dinten-dinten ieu, sareng seueur hal anu pikaresepeun anu kajantenan dina basa ieu, kalebet dina desain basa.
Vitali: Teras patarosan salajengna abdi aya hubunganana sareng anu sateuacana. Kumaha anjeun tetep di wewengkon ieu? Kuring curiga ngamutahirkeun kursus sapertos kieu peryogi seueur padamelan — anjeun kedah ngartos basa anyar sareng ngartos konsép dasar. Kumaha anjeun ngatur éta?
MichaelAbdi teu tiasa nyarios yén kuring salawasna suksés dina ieu 100%. Tapi paling sering, kuring ngan ukur ngalakukeun naon anu dilakukeun ku batur — maca internét. Upami abdi hoyong ngartos Rust, abdi Google eta, buka ramatloka Mozilla, sarta baca pituduh dinya. Éta pikeun naon anu lumangsung dina pangwangunan komérsial. Sedengkeun pikeun akademisi, kuring kudu nuturkeun ceramah dina konferensi utama.
Sambungan antara bisnis jeung akademisi
VitaliHayu urang ngobrol ngeunaan hubungan antara bisnis jeung panalungtikan akademik. Kuring mendakan sababaraha tulisan ngeunaan kohérénsi cache dina daptar padamelan anjeun. Sajauh anu kuring ngartos, dina waktos publikasina, algoritma kohérénsi cache henteu stabil? Atawa teu loba dipaké. Kumaha lega katampa éta gagasan anjeun dina prakna?
Michael: Kaula teu yakin kana publikasi nu nuju ngawangkong ngeunaan. Abdi parantos damel sakedik sareng murid abdi Bill Bolosky () jeung Leonidas Kontotanassis () dina awal 1990s, dipake dina manajemen memori pikeun mesin Neumann. Dina waktos éta, bisnis henteu acan ngartos kumaha leres ngawangun sistem multiprocessor: naha ngawangun dukungan pikeun aksés mémori jauh di tingkat hardware, naha ngadamel mémori disebarkeun, naha ngamuat cache tina mémori jauh, atanapi naha mindahkeun halaman dina sistem operasi. Bill sareng Leonidas duanana damel di daérah ieu sareng ngajalajah pendekatan anu henteu ngalibetkeun pemuatan cache jauh. Ieu henteu langsung aya hubunganana sareng kohérénsi cache, tapi éta tetep dianggo dina manajemén mémori NUMA, sareng teras janten pondasi pikeun pendekatan modern pikeun panempatan halaman dina sistem operasi modern. Gemblengna, Bill jeung Leonidas ngalakukeun pagawean penting, sanajan teu paling boga pangaruh dina widang-loba jalma séjén anu dipake dina hal anu sarua dina waktu éta. Engké, kuring digawé dina cache kohérénsi dina konteks hardware memori transactional. Grup kuring digarap dina masalah ieu réngsé nepi narima sababaraha patén-patén. Aya sababaraha ideu anu pikaresepeun di tukangeunana, tapi kuring henteu nyangka tungtungna bakal dilaksanakeun. Bisi wae, hese pikeun kuring nangtoskeun kauntunganana.
Алексей: Dina hal ieu, patarosan anu langkung pribadi: kumaha pentingna pikeun anjeun ningali ideu anjeun dilaksanakeun? Atawa anjeun teu mikir ngeunaan eta?
MichaelAbdi resep naroskeun patarosan ieu dina wawancara sareng jalma sanés, naha éta pelamar atanapi jalma anu resep damel di jurusan. Abdi henteu nyangka aya jawaban anu leres. Jalma anu ngalakukeun hal anu keren tiasa gaduh motivasi anu béda pisan. Kuring katarik kana masalah sabab kuring pribadi mendakan éta pikaresepeun, sanés kusabab panggunaan praktisna. Tapi di sisi séjén, lamun hal metot manggihan pamakéan a, Nyaan ngarasakeun eta. Janten éta henteu saderhana. Tapi dina awal proyék, kuring henteu didorong ku ideu ngeunaan panggunaan pamungkasna di dunya, tapi ku kohérénsi ideu sareng kahayang pikeun ngajalajah éta sareng ningali naon anu asalna. Lamun pamustunganana ngahasilkeun mangpaat praktis, hébat.
АлексейHatur nuhun kana pendidikan sareng pangalaman anjeun, anjeun ngagaduhan posisi anu langkung saé tibatan seueur pikeun meunteun nilai ideu jalma sanés. Anjeun tiasa ngabandingkeun aranjeunna sareng nangtoskeun mana anu pangsaéna. Kuring yakin anjeun gaduh pendapat ngeunaan téknologi anu ayeuna dianggo dina prakték ku pabrik utama sapertos Intel. Dina pamadegan anjeun, éta jalan pausahaan ieu nyokot jalan katuhu?
Michael: Prakték salawasna revolves sabudeureun naon bisa suksés komersil, nyaeta, ngahasilkeun kauntungan, sarta anjeun hadé nanya ka batur ngeunaan éta. Karya kuring lolobana ngahasilkeun publikasi, sarta dina widang sistem operasi, aranjeunna dievaluasi ku metrics kinerja: speed, konsumsi kakuatan, ukuran kode. Tapi kuring sok sigana yén hasil empiris ieu ditambahkeun kana makalah wungkul supados tiasa diterbitkeun, sedengkeun motif nyata jalma pikeun digawé nyaéta éstétis. Panalungtik evaluate solusi tina sudut pandang artistik; aranjeunna paduli ka elegance gagasan maranéhanana, sarta aranjeunna nyobian nyieun hal hadé ti deukeut aya. Panalungtik didorong ku pribadi, subjektif, motif éstétis. Tapi anjeun teu bisa nulis ngeunaan ieu dina kertas sorangan; hal ieu lain argumen pikeun panitia program. Untungna, solusi anu elegan sering ogé gancang sareng murah. Sakitar sapuluh kolega kuring sareng kuring ngabahas topik ieu sakitar 15 taun ka pengker sareng réngsé nyerat makalah ngeunaan éta. Jigana masih bisa kapanggih ayeuna; disebutna atawa hal kawas éta, éta boga leuwih ti belasan pangarang. Ieu mangrupikeun hiji-hijina tulisan dimana kuring ogé panulis , janten upami anjeun milarian nami anjeunna dina daptar publikasi kuring, anjeun bakal mendakan naon anu anjeun milarian. Ieu ceramah ngeunaan evaluating sistem panalungtikan sarta pentingna elegance.
АлексейJanten, aya bédana antara standar pikeun anu dianggap hasil anu saé dina élmu sareng bisnis. Dina élmu, kinerja, konsumsi kakuatan, TDP, betah palaksanaan, sareng seueur deui anu dievaluasi. Naha anjeun ngagaduhan kasempetan pikeun ngalaksanakeun panalungtikan sapertos kieu di universitas? Dupi anjeun gaduh lab kalawan mesin béda jeung arsitéktur béda mana percobaan bisa dilaksanakeun?
MichaelLeres, departemén kami ngagaduhan seueur mesin anu pikaresepeun. Aranjeunna biasana leutik; urang boga klaster leutik tur loba sistem multiprocessor kalawan sagala rupa akselerator. Kami ogé ngagaduhan pusat komputasi anu ageung di kampus anu nyayogikeun panaliti ti sababaraha belasan disiplin anu béda. Éta ngagaduhan sakitar sarébu titik sareng dua puluh rébu inti, sadayana ngajalankeun Linux. Lamun perlu timbul, urang salawasna bisa meuli sababaraha AWS. Janten, urang teu gaduh watesan hardware anu signifikan.
Алексей: Kumaha kaayaan tilu puluh taun katukang? Naha aya masalah harita?
Michael: Hal éta rada béda deui. Dina pertengahan nepi ka ahir 1980-an, ieu dipercaya yén sains kakurangan sumberdaya komputasi. Pikeun ngalereskeun kaayaan ieu, National Science Foundation ) nyiptakeun program Coordinated Experimental Research (CER). Tujuanana nya éta nyadiakeun infrastruktur komputasi pikeun departemén elmu komputer, sarta eta dijieun bédana signifikan. Kalayan artos anu disayogikeun, kami mésér BBN Butterfly 128-node di Universitas Rochester di 1984, sataun sateuacan kuring sumping. Dina waktos éta, éta mangrupikeun sistem multiprocessor mémori dibagikeun panggedéna di dunya. Éta ngagaduhan 128 prosesor, masing-masing dina motherboard anu misah, ngeusian opat rak. Unggal processor miboga mégabyte memori; 128 megabyte RAM mangrupikeun jumlah anu teu kabayang dina waktos éta. Urang mimiti ngalaksanakeun MCS ngonci dina mesin ieu.
Алексей: Janten, upami kuring ngartos anjeun leres, masalah hardware ayeuna parantos direngsekeun?
Michael: Sacara umum, enya. Aya sababaraha guha: kahiji, upami anjeun nuju damel dina arsitéktur komputer tingkat chip, sesah ngalakukeun éta di akademisi sabab aya alat anu langkung canggih pikeun éta dina bisnis. Upami anjeun peryogi anu langkung alit tibatan 10 nanométer, anjeun kedah ngalihkeunana. Langkung gampil janten panalungtik di Intel dina widang éta. Upami anjeun nuju ngerjakeun komunikasi optik dina chip atanapi mémori solid-state, anjeun bakal mendakan téknologi dina bisnis anu henteu acan sayogi di akademisi, janten anjeun kedah ngabentuk aliansi. Contona, Stephen Swanson () dijieun pikeun téknologi memori anyar. Pendekatan ieu henteu salawasna jalan, tapi dina sababaraha kasus tiasa rada suksés. Saterusna, ngamekarkeun sistem komputasi pangkuatna leuwih hese dina sains. Proyék superkomputer panggedéna ayeuna dijalankeun di AS, Jepang, sareng Cina sadayana konsentrasi dina bisnis.
Putting gagasan kana prakték. MCS, MS, CLH, JSR 166, damel sareng Doug Lee, sareng seueur deui.
VitaliAnjeun parantos nyarios kumaha anjeun ngamimitian damel dina algoritma sinkronisasi. Anjeun gaduh dua makalah anu kasohor pisan и , nu dina harti tangtu dilaksanakeun di Jawa. (Catetan éditor: sadaya publikasi tiasa ditingali ). Aya blocking ieu dilaksanakeun kalawan sababaraha parobahan sarta tétéla , sarta antrian dilaksanakeun sakumaha rencanana. Tapi mangtaun-taun ngalangkungan antara publikasi tulisan anjeun sareng aplikasi praktisna.
Алексей: Sigana mah kira-kira 10 taun dina kasus antrian.
Michael: Sateuacan fitur ieu muncul dina perpustakaan standar Java?
Vitali: Enya. Naon anu anjeun lakukeun pikeun ngajantenkeun ieu? Atawa anjeun teu ngalakukeun nanaon?
Michael: Abdi tiasa ngabejaan ka maneh kumaha antrian MS asup ka Java 5. Sababaraha taun saméméh éta kaluar, Kuring ieu gawé bareng grup Tandaan Moyers 'di Sun Microsystems di lab maranéhna luar Boston. Anjeunna ngayakeun workshop pikeun sababaraha babaturanana anu keur dipake dina masalah metot dina multithreading, sabab hayang manggihan topik nu bisa dijual ka parusahaan na. Éta tempat kuring mimiti papanggih Doug Lea. Doug, abdi, sarta ngeunaan 25 jalma séjén ti Sun anu nyawalakeun presentasi Doug ngeunaan , nu saterusna jadi java.util.concurrent. Sapanjang jalan, Doug disebutkeun yen manehna hayang ngagunakeun antrian MS, tapi diperlukeun counter pikeun panganteur pikeun nanganan jumlah elemen dina antrian. Ieu hartosna metode anu misah, atom, tepat, sareng gancang, kedah ngalakukeunana. Kuring ngusulkeun ngan saukur nambahkeun nomer serial kana titik, nyandak nomer serial tina titik kahiji jeung panungtungan, sarta subtracting hiji ti séjén. Doug ngagaruk sirahna, saurna, "Naha henteu?", sareng tungtungna ngalakukeun éta. Urang bahas ngalaksanakeun pendekatan ieu di perpustakaan, tapi Doug ngalakukeun lolobana karya sorangan. Pamustunganana, anjeunna junun ngadegkeun rojongan multithreading unggulan di Java.
Алексей: Ku kituna, upami abdi ngartos neuleu, kudu .ukuran () Metoda geus bagian tina panganteur antrian baku, sarta eta kudu boga hiji pajeulitna algorithmic O (1)?
Michael: Sumuhun, jeung sajaba ti ieu, méteran misah diperlukeun.
Алексей: Kusabab lamun nelepon metoda .size () dina Java, hasilna diperkirakeun sadia geuwat, teu dumasar kana ukuran sabenerna koleksi. Kahartos, nuhun.
Michael: Sababaraha taun ti harita kuring dikeureuyeuh struktur data ganda kalawan murid abdi Bill Scherer - éta naon kertas kuring bakal ngeunaan. Doug ngadeukeutan kami sareng nyarios yén anjeunna tiasa ngagunakeunana dina Java Executor Framework. Kalayan Bill, anjeunna nyiptakeun dua palaksanaan, anu disebut antrian adil sareng teu adil. Kuring consulted on proyék ieu, sanajan kuring teu aub dina nulis kode. Hasilna, laju executors ngaronjat sacara signifikan.
ВладимирNaha anjeun kantos mendakan palaksanaan anu salah tina algoritma anjeun atanapi pamenta pikeun fitur anyar? Sacara umum, prakték kedah cocog sareng téori, tapi aranjeunna sering diverge. Anggap anjeun parantos nyerat algoritma, sareng éta tiasa dianggo dina kertas, tapi jalma-jalma anu ngalaksanakeun éta ngamimitian naroskeun anjeun langkung seueur fitur atanapi pikeun sababaraha kustomisasi. Naha anjeun kantos ngalaman kaayaan sapertos kitu?
MichaelHiji-hijina conto dimana aya anu ngadeukeutan kuring sareng naroskeun "kumaha carana nerapkeunana" nyaéta patarosan Doug, anu ku kuring parantos disebatkeun. Tapi aya sababaraha kasus dimana parobahan metot dijieun pikeun minuhan kaperluan praktis. Salaku conto, tim K42 di IBM ngarobah konci MCS sareng nyiptakeun antarmuka standar anu ngaleungitkeun kabutuhan pikeun ngaliwat titik antrian mudik antara rutinitas acquire sareng ngaleupaskeun. Antarbeungeut standar ieu ngajantenkeun ide, saé dina téori, tiasa dianggo dina prakték. Ahéngna, aranjeunna henteu kantos nyebarkeun makalah ngeunaan éta, sareng sanaos nampi patén, éta engkéna ditinggalkeun. Konsep éta cemerlang, sarta kuring nyoba ngobrol ngeunaan eta sabisana.
Aya kasus sanés dimana jalma-jalma ngajantenkeun perbaikan kana algoritma anu kuring diterbitkeun. Salaku conto, antrian MS gaduh mékanisme pangaturan dua tahap, anu hartosna aya dua CAS dina jalur kritis antrian. Dina mesin heubeul, CASs éta rada mahal. Intel sarta pabrik lianna geus anyar dioptimalkeun aranjeunna ogé, tapi balik dina poé éta 30-siklus parentah, jadi ngabogaan leuwih ti hiji dina jalur kritis éta pikaresepeun. Hasilna, antrian hébat dimekarkeun anu sarupa jeung antrian MS, tapi miboga ngan hiji operasi atom dina jalur kritis. Ieu kahontal ku ngamungkinkeun hiji operasi nyandak O (n) waktos tinimbang O (1) waktos dina interval waktu nu tangtu. Ieu saperti teu mirip, tapi mungkin. Ieu lumangsung alatan dina titik nu tangtu algoritma traversed antrian ti mimiti nepi ka posisi ayeuna dina antrian. Gemblengna, algoritma tétéla suksés pisan. Sajauh anu kuring terang, éta henteu dianggo pisan, sabagéan ageung kusabab operasi atom ngabutuhkeun sumber daya anu langkung ageung tibatan anu biasa. Tapi ide éta hébat. Kuring ogé resep karya Dave Dice di Oracle. Sagalana anjeunna ngalakukeun pisan praktis, sarta anjeunna ngagunakeun hardware pisan cleverly. Anjeunna ngagaduhan panangan dina bagian anu penting tina algoritma sinkronisasi NUMA-sadar sareng struktur data multithreaded.
ВладимирNalika anjeun nyerat algoritma atanapi ngajar murid, hasil padamelan anjeun henteu langsung katingali. Butuh waktu masarakat pikeun jadi akrab jeung, sebutkeun, hiji makalah anyar. Algoritma anyar henteu mendakan aplikasi langsung.
MichaelTeu jelas naha hiji artikel bakal boga pangaruh atawa henteu. Jigana bakal jadi istiméwa pikeun ngalaksanakeun ulikan ngeunaan makalah anu geus meunang panghargaan konferensi. Nyaéta, pikeun ningali makalah anu jalma-jalma dina panitia program dina waktos éta dianggap pangsaéna. Urang kedah nyobian ngitung, dumasar kana jumlah citations sarta dampak bisnis, kumaha pangaruh tulak ieu sabenerna éta 10, 20, 25 taun engké. Kuring ragu bakal aya korelasi kuat antara dua parameter ieu. Éta moal nol, tapi sigana bakal langkung lemah tibatan anu urang pikahoyong. Loba gagasan tetep unclaimed pikeun lila saméméh maranéhna meunang traction. Contona, nyandak memori transactional. Leuwih ti 10 taun kaliwat tina publikasi kertas aslina nepi ka jalma sabenerna dimimitian ngawangun mesin jeung eta. Sarta pinuh 20 taun kaliwat saméméh memori ieu muncul dina produk komérsial. Lila-lila, teu aya anu nengetan kertas, teras jumlah kutipan na ningkat sacara dramatis. Éta hésé pikeun ngaduga ieu sateuacanna. Di sisi séjén, kadang gagasan manggihan palaksanaan saharita. Sababaraha taun ka tukang, kuring ko-pangarang hiji makalah jeung Joe Izraelevitz pikeun DISC nu diusulkeun harti formal anyar correctness pikeun struktur data pengkuh nu bisa dipaké sanggeus komputer ngajalankeun aranjeunna nabrak. Kuring resep kertas ti mimiti, tapi tétéla jadi leuwih populér ti kuring nyangka. Sababaraha grup béda diadopsi eta, sarta pamustunganana jadi harti standar struktur data pengkuh. Nu tangtu hiji hal nice.
ВладимирNaha aya téknik penilaian anu anjeun anggo? Naha anjeun malah nyobian ngaevaluasi tulisan anjeun atanapi murid anjeun? Dina hal naha jalma anu anjeun ajar aya dina jalur.
MichaelSapertos sadayana, abdi langkung difokuskeun kana naon anu ayeuna nuju digarap. Sapertos sadayana, kuring kadang-kadang mariksa Google Scholar pikeun ningali upami makalah kuring sateuacana dicutat, tapi éta biasana kusabab panasaran. Kuring lolobana immersed dina naon murid kuring lakukeun ayeuna. Sedengkeun pikeun meunteun karya ayeuna, éta sabagéan masalah éstétika-naon anu elegan sareng anu henteu. Sareng dina tingkat dinten-dinten, patarosan anu kabuka maénkeun peran anu ageung. Contona, hiji murid bisa datang ka kuring kalayan grafik sababaraha hasil, sarta kami bakal coba ngartos naha grafik ieu behaving ahéngna. Sacara umum, dina padamelan urang, urang teras-terasan nyobian terangkeun hal-hal anu teu acan kahartos.
Mémori transaksional
Vitali: Meureun urang kudu ngobrol saeutik ngeunaan memori transactional?
Michael: Jigana éta patut nyebutkeun sahanteuna saeutik, sabab kuring geus nempatkeun loba usaha kana ieu. Éta topik anu kuring parantos diterbitkeun langkung seueur tibatan anu sanés. Tapi dina waktos anu sareng, cukup Oddly, Kuring geus salawasna geus rada skeptis ngeunaan memori transactional. Dina pendapat abdi, (M. Herlihy, J.E.B. Moss) diterbitkeun sateuacanna. Dina awal taun 1990-an, aranjeunna ngusulkeun yén mémori transaksional tiasa ngabantosan programer berbakat anu damel dina struktur data multithreaded, ku kituna struktur ieu tiasa dianggo salaku perpustakaan ku programer biasa. Kalayan kecap séjén, eta bakal jadi Boon pikeun Doug Lees dipake dina JSR maranéhna 166. Tapi memori transactional teu dimaksudkeun pikeun nyieun programming multithreaded gampang. Tapi, éta persis kumaha éta ditanggap dina awal 2000-an, nalika éta janten popularitas. Ieu touted salaku cara pikeun ngajawab masalah programming paralel. pendekatan ieu salawasna seemed harepanana ka kuring. Mémori transaksi ngan ukur tiasa nyederhanakeun tulisan struktur data paralel. Sareng éta, dina pamanggih kuring, nyaéta anu dihontal.
Dina pajeulitna nulis kode multithreaded
Алексей: Pisan metot. Sigana aya halangan anu tangtu antara programer biasa sareng anu tiasa nyerat kode multithreaded. Taun ka tukang, kuring ngobrol sababaraha kali kalayan jalma anu ngalaksanakeun sababaraha kerangka algorithmic. Contona, kalawan Martin Thompson, kitu ogé kalayan programer dipake dina perpustakaan multithreaded. (Catetan éditor: Martin Thompson mangrupikeun pamekar anu kasohor pisan; anjeunna nyerat и Sarta anjeunna ogé boga dina konperénsi Joker 2015 kami, ngarékam pidéo Anjeunna sami. konferensi ieu, (Ogé diaksés). Numutkeun aranjeunna, tantangan utama nyaéta ngadamel algoritma gancang sareng gampang dianggo. Janten, aranjeunna narékahan pikeun ngatasi halangan ieu sareng narik saloba-lobana jalma pikeun widang ieu. Kumaha saur anjeun ngeunaan ieu?
MichaelIeu mangrupikeun masalah utama multithreading: kumaha carana ngahontal prestasi anu luhur tanpa ningkatkeun pajeulitna sistem.
Алексей: Kusabab nalika aranjeunna nyobian ulah pajeulitna, algoritma janten kirang umum.
Michael: konci di dieu nyaeta abstraksi dirancang leres. Jigana ieu konci pikeun sistem komputer salaku widang umum. Butler Lampson resep ngagunakeun istilah ieu, sarta anjeunna nyaéta panggero urang "padagang di abstractions". Téknologi saderhana teu aya ayeuna. Prosesor anu kami anggo ngandung 10 milyar transistor-kesederhanaan henteu janten masalah. Dina waktos anu sami, ISA nyata langkung saderhana tibatan prosésor, sabab kami kerja keras pikeun mastikeun kinerja anu luhur sareng antarmuka anu saderhana pikeun éta. Tapi sanaos éta, henteu sadayana lancar. Masalah anu sami aya sareng akselerator anu ayeuna muncul dina pasaran. Patarosan timbul: kumaha carana nyieun panganteur katuhu pikeun GPU, mesin enkripsi, komprési, mesin transcoding, mesin aljabar linier, atawa malah FPGA leuwih fleksibel. Kumaha carana nyieun hiji panganteur anu bakal mastikeun betah pamakéan sarta nyumputkeun pajeulitna? Teu meunang leupas tina eta, tapi rada nyumputkeun eta ti programmer rata.
АлексейKuring ngarti yén urang masih gaduh halangan pikeun ngartos abstraksi. Candak model memori; dina tahap pamekaran ilmiah sareng téknologi urang, éta mangrupikeun salah sahiji abstraksi anu paling penting. Éta ngabagi sadaya programer kana dua kelompok: seuseueurna — jalma anu henteu ngartos, sareng minoritas — anu ngalakukeun, atanapi nganggap aranjeunna.
Michael: Ieu patarosan alus - naha salah sahiji urang bener ngartos model memori?
Vitali: Utamana dina C ++.
MichaelNgobrol Hans Boehm sometime. Anjeunna mangrupikeun salah sahiji jalma anu paling pinter anu kuring kenal, ahli anu unggul dina modél mémori. Anjeunna bakal langsung nyarios yén anjeunna henteu ngartos pisan. Tapi balik deui ka patarosan abstraksi, kuring nyangka ide anu paling penting dina widang modél mémori salami 30 taun katukang dikedalkeun ku . (Catetan éditor: daptar lengkep publikasi sayogi ).
Алексей: Patarosan abdi: naha halangan ieu asalna tina alam konsep?
MichaelHenteu Sarita nyimpulkeun yén kalayan pendekatan anu leres, anjeun tiasa suksés nyumputkeun sagala pajeulitna, ngahontal prestasi anu luhur, sareng nyayogikeun programer kalayan API anu sederhana. Tur upami Anjeun salah nuturkeun API ieu, anjeun bisa ngahontal konsistensi sequential. Kuring yakin ieu model katuhu. Tulis kode tanpa balapan data sareng anjeun kéngingkeun konsistensi berurutan. Tangtosna, pikeun ngirangan kamungkinan balapan data, anjeun peryogi alat khusus, tapi éta masalah anu béda.
ВладимирNaha aya instansi dina karir anjeun dimana masalah anu sigana direngsekeun ujug-ujug janten musibah, atanapi dimana tétéla henteu tiasa direngsekeun? Contona, dina tiori, éta mungkin pikeun faktor angka nu mana wae nu atawa nangtukeun naha angka nu mana wae nu prima. Tapi dina prakna, ieu tiasa sesah; kalawan hardware ayeuna, hese angka faktor. Naha aya kajadian sapertos kieu ka anjeun?
Michael: Abdi teu tiasa mikir nanaon kawas éta langsung kaluar bat. Aya waktos nalika kuring panginten teu aya deui anu kedah dilakukeun di daérah anu tangtu, teras aya kajadian anu énggal sareng pikaresepeun. Contona, Teu sangka widang antrian taya geus ngahontal kematangan. Saatos sababaraha perbaikan dina antrian MNS, euweuh kajadian husus deui. Teras Morrison (Adam Morrison) sareng Afek (Yehuda Afek) nimukeun Ieu janten jelas yén hiji antrian multithreaded unbounded éta mungkin, kalawan ukur dipulut-na-increment instruksi dina jalur kritis lolobana waktu. Sarta ieu diwenangkeun pikeun urutan gedena pamutahiran kinerja. Ieu sanés yén kami henteu acan terang yén fetch-and-increment mangrupikeun fitur anu mangpaat pisan. Eric Freudenthal nyerat perkawis ieu dina makalahna dina Ultracomputer sareng Allan Gottlieb dina ahir taun 1980-an, tapi éta pikeun antrian terbatas. Morrison sareng Afek tiasa nganggo dipulut-na-increment dina antrian anu henteu terbatas.
Arsitéktur Anyar: Naha Mémori Transaksional Ngadeukeutan Kameunangan?
Владимир: Dupi anjeun tetep hiji panon on solusi arsitéktur anyar nu bisa jadi mangpaat pikeun algoritma?
Michael: Tangtu, aya loba hal anu Abdi hoyong ningali dilaksanakeun.
Владимир: Jeung nu mana, contona?
MichaelAnu mimiti, sababaraha ekstensi saderhana pikeun mémori transaksional tingkat hardware kami dina prosesor Intel sareng IBM. Khususna, Abdi hoyong ngadamel beban non-transaksional sareng toko langsung sayogi dina transaksi. Aranjeunna langsung ngakibatkeun puteran dina urutan kajadian-saméméh, ngarah tiasa tricky. Tapi upami urang ngajaga lapisan abstraksi, aya seueur hal anu pikaresepeun anu tiasa dilakukeun di luar transaksi nalika nuju lumangsung. Kuring henteu weruh kumaha hésé ieu bakal dilaksanakeun, tapi bakal mangpaat pisan.
Fitur anu sanésna nyaéta ngamuat cache tina mémori jauh. Jigana ieu bakal dilaksanakeun sooner atanapi engké. Téknologi ieu bakal ngamungkinkeun pikeun nyiptakeun sistem kalayan mémori anu dipisahkeun. Ieu bakal mungkin pikeun nyimpen, sebutkeun, 100 terabytes memori non-volatile dina rak a, sarta sistem operasi bakal dinamis mutuskeun bagian mana memori ieu kedah peta kana spasi alamat fisik prosesor. Ieu bakal mangpaat pisan pikeun komputasi awan, sabab bakal ngamungkinkeun mémori anu ageung dialokasikeun kana tugas anu meryogikeunana. Jigana batur antukna bakal ngalakukeun ieu.
VitaliPikeun mungkus sawala ngeunaan memori transactional, Kuring boga hiji deui patarosan patali. Bakal memori transactional pamustunganana ngaganti struktur data multithreaded baku?
Michael: No Transaksi mangrupakeun mékanisme spekulatif. Dina tingkat pemrograman, aranjeunna mangrupikeun konci atom, tapi sacara internal, aranjeunna spekulasi. Prediksi jenis ieu ngan ukur tiasa dianggo upami seueur tebakan leres. Éta pisan sababna naha mémori transactional jalan ogé lamun threads bieu interaksi saling, jeung anjeun ngan kudu mastikeun euweuh interaksi. Tapi lamun pesen dimimitian antara threads, transaksi téh saeutik gunana. Hayu atuh netelakeun: urang nuju ngawangkong ngeunaan kasus dimana transaksi dibungkus sabudeureun sakabéh operasi atom. Éta kénéh bisa hasil dipaké salaku blok wangunan pikeun struktur data multithreaded. Contona, upami anjeun peryogi CAS tilu kecap, jeung anjeun kudu multithread tilu hal leutik di tengah hiji algoritma sabenerna multithreaded anu hade jeung dua puluh threads sakaligus. Pondokna, transaksi tiasa mangpaat, tapi aranjeunna henteu ngaleungitkeun kabutuhan leres mendesain struktur data multithreaded.
memori non-volatile, Optane DIMM, alat ultra-gancang.
VitaliHal panungtungan Abdi hoyong ngabahas topik panalungtikan anjeun ayeuna: memori nonvolatile. Naon anu tiasa urang ngarepkeun di daérah ieu dina waktos anu caket? Naha anjeun terang naon waé anu aya, palaksanaan efisien?
MichaelAbdi sanés ahli hardware, kuring ngan ukur terang naon anu kuring baca dina warta sareng naon anu dicarioskeun ku kolega kuring. Sadayana parantos nguping yén Intel ngajual , nu boga ngeunaan 3x latency baca sarta 10x latency nulis RAM dinamis. Aranjeunna baris geura-giru sadia dina kapasitas anu kacida gedéna. Éta lucu mikir yén anjeun tiasa gaduh laptop sareng sababaraha terabyte RAM anu tiasa dialamatkeun bait. Ieu rada mungkin yen dina 10 taun, urang bakal mutuskeun pikeun ngagunakeun téhnologi anyar ieu cara nu sarua urang ngagunakeun DRAM-ngan tetep nambahkeun leuwih kapasitas. Tapi non-volatility muka nepi kemungkinan sagemblengna anyar. Urang dasarna tiasa ngarobih tumpukan panyimpen supados henteu aya pamisahan antara mémori kerja bait-addressable sareng mémori pengkuh blok-terstruktur. Ieu ngandung harti urang teu kudu serialize sagalana urang peryogi kana file blok-terstruktur - mindahkeun tina hiji program ngajalankeun ka hareup. Ieu ngagaduhan seueur implikasi penting pikeun sistem operasi, lingkungan runtime, sareng panyimpen data anu disebarkeun. Ieu mangrupikeun daérah anu pikaresepeun pikeun dianggo. Sacara pribadi, sesah pikeun kuring ngaduga naon anu bakal nyababkeun ieu, tapi masalah di dieu pisan pikaresepeun. Meureun aya parobahan revolusioner di dieu, sarta aranjeunna nuturkeun pisan alami tina karya dina multithreading, saprak recovery kacilakaan mangrupakeun "multithreaded" prosés barengan operasi normal tina sistem.
Topik utama kadua anu ayeuna kuring dianggo nyaéta ngatur alat ultra-gancang sareng aman ngaksésana tina rohangan pangguna kalayan kontrol kawijakan tingkat sistem. Dina taun-taun ayeuna, aya tren pikeun mindahkeun aksés alat kana rohangan pangguna. Ieu alatan tumpukan TCP-IP kernel urang teu bisa boga fungsi dina luhureun panganteur jaringan anu merlukeun pakét anyar unggal 5 microseconds; eta ngan saukur moal tetep nepi. Ku alatan éta, padagang nyadiakeun aksés langsung ka alat. Nanging, ieu hartosna sistem operasi leungit kontrol kana prosésna sareng henteu tiasa mastikeun aksés alat anu pas pikeun aplikasi anu bersaing. Grup panalungtikan urang yakin aral ieu bisa dihindari. Kami bakal nampilkeun makalah ngeunaan ieu di USENIX ATC bulan ieu. Éta aya hubunganana sareng gawé dina kegigihan, sabab awét, mémori pengkuh bait-addressable dasarna mangrupikeun alat sareng I / O ultra-gancang anu kedah diaksés dina rohangan pangguna. Studi ieu ngamungkinkeun pendekatan anyar pikeun microkernels, exokernels, sareng usaha tradisional anu sanés pikeun mindahkeun fungsionalitas tina kernel OS ka rohangan pangguna.
ВладимирMémori anu tiasa dialamatkeun bait saé, tapi aya wates fisik - laju cahaya. Ieu ngandung harti bakal aya inevitably reureuh nalika interacting jeung alat.
Michael: Leres pisan.
ВладимирNaha bakal aya kapasitas anu cekap pikeun ngatasi beban énggal?
MichaelÉta patarosan hébat, tapi hese pikeun kuring ngajawab. Gagasan ngolah dina mémori parantos lami-lami; éta pisan metot, tapi ogé pisan kompléks. Abdi henteu acan damel di daérah éta, tapi langkung saé upami aya sababaraha pamanggihan. Kuring sieun kuring teu boga nanaon deui pikeun nambahkeun.
ВладимирAya deui masalah. Anyar, jumlah RAM anu langkung ageung bakal mustahil pikeun pas kana CPU. Ku alatan éta, alatan watesan fisik, RAM ieu kudu diisolasi.
MichaelDi dieu, sagalana gumantung kana jumlah defects dina produksi sirkuit terpadu. Lamun éta mungkin nyieun wafers semikonduktor sagemblengna bébas tina defects, teras hiji microchip lengkep bisa dijieun ti aranjeunna. Tapi ayeuna, urang moal tiasa ngadamel microchip langkung ageung tibatan perangko.
ВладимирTapi urang masih ngobrol ngeunaan ukuran badag, séntiméter. Ieu inevitably mangaruhan latency.
Michael: Enya. Henteu aya anu tiasa anjeun lakukeun ngeunaan laju cahaya.
Владимир: Hanjakal.
Trend badag salajengna. Struktur data ganda. Hidra.
Vitali: Salaku kuring ngartos eta, anjeun gancang pisan nangkeup tren anyar. Anjeun salah sahiji anu pang mimiti dianggo dina mémori transaksional sareng salah sahiji anu munggaran dina mémori non-volatile. Kumaha saur anjeun bakal trend badag salajengna? Atawa éta meureun rusiah?
MichaelJujur, kuring henteu terang. Abdi ngarepkeun kuring bakal tiasa mendakan anu énggal nalika éta muncul. Kuring teu acan cukup untung mun single-handedly invent sagala widang anyar, tapi kuring geus cukup untung mun meunang sirah mimiti dina widang anyar dijieun ku batur. Kuring miharep kuring bisa neruskeun ngalakukeun kitu dina mangsa nu bakal datang.
АлексейPatarosan terakhir dina wawancara ieu ngeunaan presentasi anjeun di Hydra sareng kelas anjeun di sakola. Upami kuring ngartos leres, ceramah anjeun di sakola bakal ngeunaan algoritma bébas konci, sareng obrolan konperénsi anjeun bakal ngeunaan struktur data ganda. Naha anjeun tiasa nyarios sababaraha kecap ngeunaan ceramah ieu?
Michael: Kami parantos nyentuh sababaraha topik ieu dina wawancara ieu. Éta ngeunaan padamelan anu kuring lakukeun sareng murid kuring Bill Scherer. Anjeunna nyerat disertasi na, sareng Doug Lee ogé nyumbang kana éta, sareng pamustunganana janten bagian tina antrian sinkron multithreaded di perpustakaan Java. Anggap anjeun nuju maca sareng nyerat kana struktur data tanpa ngonci, hartosna unggal operasi ngagaduhan sababaraha petunjuk dina jalur kritis. Upami anjeun nyobian nyandak data tina wadah kosong, atanapi nyobian nyandak data khusus anu henteu aya dina wadah éta, anjeun langsung bébéja yén éta henteu tiasa dilakukeun. Tapi paripolah ieu tiasa henteu katampi upami benang leres-leres peryogi data ieu. Hal kahiji anu datang ka pikiran nya éta nyieun loop anu terus nanya lamun data diperlukeun geus anjog. Tapi éta nyiptakeun gangguan pikeun sadayana anu sanés. Saterusna, kalawan pendekatan ieu, anjeun bisa antosan 10 menit, lajeng sababaraha thread sejenna bisa datang sapanjang na ngahaja meunang data diperlukeun munggaran. Struktur data dual masih kakurangan konci, tapi aranjeunna ngidinan pikeun antosan thread ditangtoskeun. Istilah "dual" hartina struktur ngandung boh data atawa requests pikeun data-hayu urang nelepon aranjeunna anti-data. Janten, upami anjeun nyobian nyandak barang tina wadah kosong, pamundut bakal disimpen dina wadahna. Ayeuna benang tiasa ngantosan pamundut tanpa ngaganggu saha waé. Saterusna, struktur data prioritizes requests, ku kituna sanggeus narima, eta ngalirkeun aranjeunna dina thread luyu. Ieu ngakibatkeun mékanisme bébas konci nu boga spésifikasi formal jeung kinerja alus dina praktekna.
АлексейNaon ekspektasi anjeun pikeun struktur data ieu? Naha éta bakal ningkatkeun kinerja dina sadaya kasus umum, atanapi éta langkung cocog pikeun kaayaan khusus?
MichaelMangpaat lamun, kahiji, wadahna bébas konci diperlukeun, sarta kadua, antosan diperlukeun nalika data perlu dipulut tina wadahna nu teu acan aya. Sajauh anu kuring terang, struktur kami nyayogikeun paripolah anu optimal nalika dua kaayaan ieu kapendak. Ku alatan éta, kuring nyarankeun ngagunakeun éta dina kasus ieu. Kauntungan utama tina struktur data bébas konci nyaéta aranjeunna ngahindarkeun masalah kinerja. Sareng ngantosan penting pisan dina seueur algoritma nalika data ditransfer tina hiji benang ka anu sanés.
Vitali: Hayu atuh netelakeun: anjeun bakal ngobrol ngeunaan hal anu sarua boh di sakola jeung di konferensi?
Michael: Di sakola Palajaran ieu bakal difokuskeun struktur data multithreaded sacara umum, kalayan bubuka umum kana prinsip dasar di awal. Kuring nganggap panongton weruh naon threads sarta akrab jeung konci. Ngawangun yayasan ieu, kuring bakal ngabahas struktur data bébas konci. Kuring bakal masihan tinjauan ngeunaan masalah anu paling penting di daérah ieu, nyabak kana topik sapertos manajemén mémori. Abdi henteu nyangka bakal aya anu langkung rumit tibatan antrian MS.
Алексей: Dupi anjeun rencanana nutupan struktur data ganda di ahir kelas anjeun di sakola?
MichaelKuring bakal nyebatkeun aranjeunna, tapi kuring moal nyéépkeun waktos kanggo aranjeunna. Kuring bakal masihan ceramah ngeunaan Hydra ngeunaan aranjeunna. Ieu gé nutupan proyék nu antukna jadi bagian tina Java, kitu ogé karya kuring jeung Joe Israelevich dina nyieun varian dual-antrean tina LCRQ, sarta kreasi hiji ngawangun ampir universal pikeun struktur data dual.
Алексей: Janten, kuliah sakola tiasa disarankeun pikeun pamula, sareng ceramah ngeunaan struktur data ganda dina Hydra kanggo jalma anu gaduh pangalaman?
MichaelNgalereskeun kuring lamun Abdi lepat, tapi panongton on Hydra bakal rada rupa-rupa, kaasup loba ahli Java jeung jalma anu teu husus dianggo kalayan programming multithreaded.
Vitali: Leres, leres.
Алексей: Sahenteuna urang miharep kitu.
MichaelDina hal ieu, kuring bakal Nyanghareupan masalah anu sami sareng anu urang ngamimitian wawancara ieu: kumaha carana ngadamel laporan anu cukup beunghar ku detil téknis sareng tiasa diaksés ku sadaya pendengar.
VitaliNaha anjeun badé nganteurkeun presentasi anjeun sapertos ceramah? Maksudna, anjeun bakal kalibet sareng pamiarsa sareng adaptasi sareng kaayaan?
MichaelKuring sieun éta moal jalan sabab presentasi bakal gaduh slides. Slides penting lamun panongton mimitina speaks basa béda. Seueur anu bakal sesah ngartos kuring dina basa Inggris, khususna upami kuring nyarios gancang teuing. Kuring milih jejer ieu husus sabab Manéhna nanya kuring ngobrol ngeunaan struktur data bébas konci di Sakola SPTDC; lajeng aranjeunna diperlukeun Obrolan pikeun konferensi Java pamaké Grup, sarta kuring hayang milih hiji hal anu bakal dipikaresep husus pikeun programer Java. Cara panggampangna nyaéta ngobrol ngeunaan fitur perpustakaan Java anu ku kuring digarap dina hiji cara atanapi anu sanés.
АлексейKami nganggap yén panongton Hydra parantos terang ngeunaan program bébas konci sareng panginten gaduh pangalaman di daérah ieu. Tapi ieu ngan hiji asumsi; kaayaan bakal jadi jelas dina konferensi sorangan. Bisi wae, hatur nuhun pikeun waktos Anjeun. Kuring yakin pamiarsa urang bakal manggihan wawancara pisan metot. Hatur nuhun pisan!
Vitali: Hatur nuhun.
MichaelKuring bakal bungah pendak sareng anjeun di St.
Алексей: Urang ogé, urang boga kota geulis. Dupi anjeun kantos ka dieu?
MichaelHenteu, kuring henteu acan kantos ka Rusia. Tapi St. Petersburg sok aya dina daptar tempat-tempat anu kuring teu acan kantos angkat tapi hoyong pisan didatangan, janten kuring bungah nampi uleman.
АлексейKu jalan kitu, urang bakal nawiskeun program tur pikeun speaker. Hatur nuhun pisan pikeun wawancara, sarta boga dinten nice!
Anjeun tiasa neraskeun paguneman sareng Michael dina konferensi Hydra 2019, anu bakal dilaksanakeun 11-12 Juli 2019, di St. Anjeunna bakal nampilkeun laporan. . Tiket bisa dibeuli .
sumber: www.habr.com
