"Empirical mhedzisiro ndeyekushambadza chete, zvikonzero chaizvo zvebasa ndezvekunaka." Hurukuro yakanaka naMichael Scott

"Empirical mhedzisiro ndeyekushambadza chete, zvikonzero chaizvo zvebasa ndezvekunaka." Hurukuro yakanaka naMichael Scott Michael Scott - kwemakore 34 sapurofesa weComputer Science paYunivhesiti yeRochester, uye kumba kwake University yeWisconsin-Madison aive dhipatimendi kwemakore mashanu. Anotsvagisa uye anodzidzisa vadzidzi nezve kuenderana uye kugovera hurongwa uye dhizaini yemutauro.

Nyika inoziva Michael kubva mubhuku "Programming Language Pragmatics", ko basa "Algorithms ye scalable synchronization pane yakagovaniswa-memory multiprocessors" akagamuchira Mubairo weDijkstra semumwe weanonyanya kuzivikanwa mumunda wekugoverwa komputa. Iwe unogona zvakare kumuziva semunyori weiyo algorithm chaiyo Michael-Scott.

Pamwe chete naDoug Lee, akagadzira iyo isingavharidzi algorithms uye synchronous mitsara inosimbisa maraibhurari eJava. Implementation "dual data structures" muJavaSE 6 yakavandudza kuita negumi nguva ThreadPoolExecutor.

Zviri Mukati:

  • Basa rekutanga, Yunivhesiti yeRochester. Project Charlotte, mutauro weLynx;
  • IEEE Scalable Coherent Interface, MCS kukiya;
  • Kupona munyika inogara ichichinja;
  • Vadzidzi vanova matube here? Global maitiro, internationalization;
  • Basa rinobudirira nevadzidzi;
  • Nzira yekuenderera mberi nekugadzirira kwezvidzidzo zvitsva uye mabhuku;
  • Kubatana pakati pebhizinesi nedzidzo;
  • Kuitwa kunoshanda kwemazano. MCS, MS, CLH, JSR 166, kushanda naDoug Lee nezvimwe;
  • Transactional memory;
  • Zvivakwa zvitsva. Kukunda kwekurangarira kwekutengeserana kuri pedyo;
  • Non-volatile memory, Optane DIMM, ultra-fast devices;
  • Chinotevera chikuru maitiro. Dual data zvimiro. Hydra.

Hurukuro dzinoitwa ne:

Vitaly Aksenov - parizvino postdoc kuIST Austria uye nhengo yeDhipatimendi reComputer Technologies paITMO University. Inoita tsvakiridzo mumunda wedzidziso uye tsika yemakwikwi data zvimiro. Asati ashanda kuIST, akagamuchira PhD yake kubva kuParis Diderot University uye ITMO University pasi pekutarisirwa kwaPurofesa Peter Kuznetsov.

Alexey Fedorov mugadziri paJUG Ru Group, kambani yeRussia inoronga misangano yevagadziri. Alexey akatora chikamu mukugadzirira kwemisangano inodarika makumi mashanu, uye tangidzo yake ine zvese kubva pachinzvimbo cheinjiniya weOracle (JCK, Java Platform Group) kusvika pachinzvimbo chemugadziri paOdnoklassniki.

Vladimir Sitnikov ndiinjiniya kuNetcracker. Kwemakore gumi anga achishanda pakuita uye scalability yeNetCracker OS, software inoshandiswa nevatyairi venhare kuita otomatiki network uye network michina manejimendi maitiro. Kufarira Java uye Oracle Database kuita nyaya. Munyori weanopfuura gumi nemaviri ekuita ekuvandudza mune yepamutemo PostgreSQL JDBC mutyairi.

Basa rekutanga, Yunivhesiti yeRochester. Charlotte chirongwa, mutauro weLynx.

Alexey: Kutanga, ndaida kukuudza kuti muRussia isu tese tinonyatsoda Computer Science, Data Science uye algorithms. Zvinonyadzisa. Takaverenga zvese bhuku raCormen, Leiserson naRivest. Naizvozvo, musangano unouya, chikoro uye iyi bvunzurudzo pachayo inofanirwa kuve yakakurumbira. Takagamuchira mibvunzo yakawanda yebvunzurudzo iyi kubva kuvadzidzi, vanogadzira mapurogiramu, uye nhengo dzenharaunda, saka tinotenda zvikuru nemukana uyu. Ko Computer Science inowana rudo rwakafanana muUS?

Michael: Munda wedu wakasiyana-siyana, une nzira dzakawanda, uye unobata nzanga nenzira dzakawanda dzakasiyana zvekuti zvakandiomera kuti ndikupe mhinduro chaiyo. Asi chokwadi ndechekuti yakaunza shanduko huru mubhizinesi, indasitiri, unyanzvi uye nzanga mune zvese mumakore makumi matatu apfuura.

Vitali: Ngatitange nechimwe chinhu chiri kure. Mumayunivhesiti mazhinji mune chimwe chinhu chakaita sehunyanzvi mune imwe nzvimbo. YeCarnegie Mellon University iyi yakafanana komputa, yeMIT ndeye cryptography, marobhoti uye multithreading. Pane hunyanzvi hwakadaro paYunivhesiti yeRochester here?

Michael: Kutaura chokwadi, ndingati CMU neMIT vanonyanya hunyanzvi munzvimbo dzese. Dhipatimendi redu ragara rakabhadhara zvakanyanya kune artificial intelligence. Hafu yevanhu vari kutishandira vari kuita zveAI kana kudyidzana kwevanhu-kombuta - mugove uyu wakakwirira kudarika mune mamwe madhipatimendi, uye zvagara zvakadaro. Asi pandakanga ndiri kuyunivhesiti, ndakanga ndisina chero kosi muAI, uye handina kumboshanda mundima iyi. Saka bazi rangu rinoona nezvedambudziko randisina chekuita naro. Chinyaradzo ndechekuti dambudziko rechipiri rakanyanya kukosha kune dhipatimendi redu rakafanana uye rakaomeswa-akawanda-tambo hurongwa, ndiko kuti, hunyanzvi hwangu.

Vitali: Wakatanga kushanda muComputer Science apo ndima ye-multi-threaded programming yakanga ichangobuda. Rondedzero yezvinyorwa zvako inoratidza kuti mabasa ako ekutanga aibata neyakasiyana siyana nyaya: ndangariro manejimendi mune akawanda-akarukwa masisitimu, akagoverwa mafaira masisitimu, anoshanda masisitimu. Nei zvichisiyana-siyana zvakadaro? Wanga uchiedza kutsvaga nzvimbo yako munharaunda yekutsvagisa?

Michael: Somudzidzi, ndakatora rutivi Charlotte chirongwa paYunivhesiti yeWisconsin, uko imwe yekutanga yakagoverwa masisitimu ekushanda yakagadziridzwa. Ikoko ndakashanda pamwe chete naRafael Finkel (Raphael Finkel) naMarvin Solomon (Marvin Solomon) Dissertation yangu yakazvipira kusimudzira mutauro wesoftware software yemasystem akagoverwa - zvino munhu wese akanganwa nezvazvo, uye tenda Mwari. Ini ndakagadzira iyo Lynx programming mutauro, iyo yaive yakagadzirirwa kuita kuti zvive nyore kugadzira maseva eiyo yakasununguka yakabatana yakagoverwa inoshanda sisitimu. Sezvo panguva iyoyo ndainyanya kubatanidzwa muzvirongwa zvokushandisa, ndakafunga kuti basa rangu raizonyanya kubatanidzwa nawo. Asi Rochester yaiva yunivhesiti duku zvikuru, uye nokuda kweizvi, mapoka akasiyana-siyana ikoko aifambidzana zvikuru. Pakanga pasina gumi nevaviri mamwe masisitimu ekushandisa vanhu vaivepo kuti nditaure navo, saka maitirwo angu ese aive nevanhu vaishanda munzvimbo dzakasiyana zvachose. Ndakanakidzwa nazvo, kuva munhu anotenderera-tenderera chinhu chikuru kwandiri. Kana tikataura zvakananga nezve akawanda-akarukwa data zvimiro uye synchronization algorithms, ipapo ndakatanga kushanda pazviri zvachose netsaona.

IEEE Scalable Coherent Interface, MCS kukiya.

Vitali: Unogona kundiudza zvishoma nezve izvi?

Michael: Iyi inyaya inonakidza yandisinganeti kuudza munhu wese. Zvakaitika pamusangano ASPLOS muBoston - uku kwaive mukupera kwema80s kana kutanga kwema90s. John Mellor-Crummey (John Mellor-Crummey), akapedza kudzidza pafaculty yedu. Ndaimuziva, asi takanga tisina kuita tsvakurudzo yakabatana kare. Mary Vernon (Mary Vernon) kubva kuWisconsin vakapa hurukuro nezve multiprocessor system yavakanga vachigadzira muWisconsin: Wisconsin Multicube. Iyi Multicube yaive nemuchina wekuwiriranisa padanho rehardware rainzi Q paSync Bit, uye gare gare yakanzizve Q paLock Bit nekuti yaiita kunge Colby chizi, yaive pun. Kana iwe uchifarira multithreading masisitimu, iwe ungangoziva kuti Colby yakazove iyo injini yekuwiriranisa yeiyo IEEE Scalable Coherent Interface standard. Iyi yaive nzira yekuvhara iyo yakagadzira mapoikira kubva kune imwe cache kuenda kune imwe padanho rehardware zvekuti yega yega yekuvhara yaiziva kuti yaive yani. Ini naJohn patakanzwa nezveizvi, takatarisana ndokuti: sei uchiita izvi padanho rehardware? Chinhu chimwe chete hachigone kuwanikwa uchishandisa kuenzanisa-uye-chinjana? Takatora kabook kaive mukirasi ndokunyora pamusoro paro MCS ichivharira, Maria achienderera mberi neshumo yake. Zvadaro, takazviita, takaedza, pfungwa yacho yakabudirira, uye takabudisa chinyorwa. Panguva iyoyo, kwandiri, nyaya iyi yaingoita sechinhu chinonakidza, mushure mezvo ndakaronga kudzokera kune masisitimu anoshanda. Asi ipapo rimwe dambudziko pamwe chete nemitsetse yakafanana rakamuka, uye pakupedzisira kuwiriranisa, kuverengera akawanda, uye data zvimiro zvakava hunyanzvi hwangu. Sezvaunogona kuona, izvi zvose zvakaitika netsaona.

Vitali: Ndave ndichijairana neMCS blocking kwenguva yakareba, asi kusvika ikozvino handina kuziva kuti ibasa rako, uye handina kunzwisisa kuti yaive acronym yemazita ako ekupedzisira.

Nzira yekurarama sei munyika inogara ichichinja?

Alexey: Ndine mubvunzo pane imwe nyaya yakabatana. 30 kana 40 makore apfuura pakanga pane rusununguko rwakawanda muhunyanzvi hwakasiyana. Kana iwe uchida kutanga basa mumultithreading kana kugovera masisitimu, unogamuchirwa, kana iwe uchida kupinda mumasystem anoshanda, hapana dambudziko. Munzvimbo imwe neimwe maive nemibvunzo yakawanda yakavhurika uye nyanzvi shoma. Narrow specializations ikozvino yabuda: hapana chete nyanzvi dzekushandisa masisitimu kazhinji, kune nyanzvi pane yega masisitimu. Ndizvo zvakafanana nemultithreading uye distributed systems. Asi dambudziko nderekuti hupenyu hwedu hahuperi; munhu wese anogona kupa makumi mashoma emakore chete kutsvaga. Ungararama sei munyika itsva iyi?

Michael: Hatina kukosha mune izvi; zvimwe chete zvakaitika pane dzimwe nzvimbo. Ndakanga ndine rombo rakanaka kuti ndakatanga kushanda muComputer Science apo munda wakanga uri mumakore "ehuduku". Dzimwe nheyo dzakanga dzatoteyiwa, asi zvinhu zvose zvakanga zvisati zvakura. Mukana uyu hauuye kazhinji. Injiniya yemagetsi yave iripo kwenguva yakareba kwazvo, fizikisi yakatorebesa, masvomhu anenge kubvira pakutanga kwenguva. Asi izvi hazvireve kuti hapana ari kuwana zvinonakidza mumasvomhu zvakare. Pachine matambudziko akawanda akazaruka, asi panguva imwe chete, zvakawanda zvinoda kudzidzwa. Wakarurama kuziva kuti ikozvino kwave nehunyanzvi hwakawanda kupfuura hwaivepo kare, asi izvi zvinongoreva kuti tinozviwana tiri mumamiriro ezvinhu akafanana nedzimwe nzvimbo dzakawanda dzezviitiko zvevanhu.

Alexey: Ndiri kufarira mune zvimwe zvinoshanda zvenyaya pano. Ndine ruzivo rwemasvomhu, uye panguva yezvidzidzo zvangu ndaiwanzopinda misangano uye ndaishanda pane zvakasiyana-siyana zvesayenzi. Ndakaona kuti hapana muvateereri ainzwisisa mishumo yangu, uye nenzira imwe cheteyo, mishumo yavamwe vanhu yainzwisiswa bedzi kwavari vamene. Izvi hazvisizvo mumisoro yepamusoro-soro, asi paunongotanga kunyura mune chimwe chinhu, vateereri havachakwanisi kufambirana newe. Unoita sei nazvo?

Michael: Haisi kubudirira nguva dzose. Ini nguva pfupi yadarika ndakagadzira mushumo wandakapinda zvakanyanya muhunyanzvi hwehunyanzvi. Sezvo hurukuro yakapfuurira, zvakava pachena kuti vazhinjisa vavateereri vakanga vasingandinzwisisi, naizvozvo ndaifanira kuchinjira kumamiriro ezvinhu nokukurumidza. Masiraidhi haana kukwanisa kuchinjwa, saka hazvina kunyatsonaka - saka, kazhinji kutaura, ndinoedza kusashandisa masiraidhi. Pakazara, zano rangu nderekufunga vateereri vako. Iwe unofanirwa kuziva wauri kutaura naye, kuti ruzivo rwavo nderei, uye zvavanoda kunzwa kuti vakoshese basa rako.

Vitali: Mungatipewo zano rekuti hurukuro iyi yanga iri pamusoro pei?

Michael: Kutaura chokwadi, ndingade kusawedzera pamusoro penyaya iyi kuitira kuti ndisiye vanhu vari mubvunzo vasingazivikanwe. Chiripo ndechekuti isu tinowanzo dzika zvakanyanya mukuoma kunzwisisa kwedambudziko ratiri kugadzirisa, saka zvinova zvakaoma kuti titsanangure pakutanga kwehurukuro kuti sei dambudziko racho richinakidza uye rakakosha uye kuti rine chekuita sei nenyaya dzinoitwa vateereri vanotoziva. Maererano nekuona kwangu, vadzidzi vane nguva yakaoma zvikuru yekudzidza unyanzvi uhu. Uye iyi yaivewo nzvimbo isina simba yemushumo wangu wazvino. Chirevo chakanyatsorongeka chinofanira, kubvira pakutanga chaipo, kuwana kuonana nevateereri, kuvatsanangurira kuti chii chaizvo chiri dambudziko uye kuti chine chekuita sei nemisoro yagara ichizivikanwa kwairi. Kuti sumo iyi inyanzvi sei zvinoenderana nevateereri. Kana iri zvachose motley, ipapo mushumo unogona kuva multi-stage. Nhanganyaya inofanirwa kuwanikwa nemunhu wese, uye pakupera chidimbu chinogona kusakwanisa kuenderana newe, asi vanhu vane ruzivo nezvemunda wako vachakwanisa kuzvinzwisisa.

Vadzidzi vanova matube here? Global maitiro, internationalization.

Alexey: Wanga uchicherechedza vadzidzi kwemakumi emakore akati wandei. Vadzidzi vari kuwana dumber kana kungwara kubva pamakore gumi kusvika gumi kana gore negore? MuRussia, mapurofesa anogara achinyunyuta kuti vadzidzi vari kuwana dumber gore rega rega, uye hazvisi pachena zvekuita nezvazvo.

Michael: Unogona kunyatsonzwa zvakawanda zvisina kunaka kubva kwatiri isu vanhu vakuru. Tisingazive, isu tine tsika yekutarisira kuti vadzidzi vatore ese makumi matatu emakore echiitiko atakatove nawo. Kana ndine kunzwisisa kwakadzama kupfuura kwandakaita muna 30, sei vadzidzi vasina? Pamwe nekuti vane makore makumi maviri, munofungei? Ini ndinofunga shanduko dzakanyanya kukosha mumakumi emakore achangopfuura dzave mukuumbwa kwevanhu: isu tava nevadzidzi vakawanda vekunze, kunze kwevaCanada. Kwaimbove nevakawanda vekuCanada nekuti isu tiri padyo nemuganho weCanada uye vadzidzi vanobva ikoko vanogona kuenda kumba kupera kwevhiki. Asi ikozvino kune akawanda mayunivhesiti akanaka muCanada, uye vekuCanada vanofarira kudzidza pano; zvakanyanya vashoma vavo vanouya kuUSA.

Alexey: Iwe unofunga kuti iyi itsika yemuno kana yepasirese?

Michael: Handichayeuki kuti ndiani, asi mumwe munhu akati nyika yakati sandara. Munda wedu wave wepasi rose. ACM Conferences Kare, dzaiitwa chete mukati meUnited States, saka vakasarudza kuvabata kamwe chete makore mana mune dzimwe nyika, uye zvino vari kuitwa pasi rose. Kuchinja uku kwakatonyanya kukanganisa IEEE, sezvo ragara riri sangano renyika dzakawanda kupfuura ACM. Uye kune zvigaro zvepurogiramu kubva kuChina, India, Russia, Germany nedzimwe nyika dzakawanda, nokuti kune zvakawanda zviri kuitika kwose kwose ikozvino.

Alexey: Asi, pamwe, pane zvimwe zvakashata zvekudyidzana kwenyika kwakadai?

Michael: Ndingati zvese zvakashata zvine chekuita kwete tekinoroji, asi nezvematongerwo enyika. Pane imwe nguva, dambudziko guru raive chokwadi chekuti US yaive ichiba vanhu vakangwara uye vane tarenda kubva kunyika dzepasirese. Uye zvino dambudziko guru nderemitambo yezvematongerwo enyika pakati penyika dzakasiyana-siyana dzakapoteredza mavhiza uye kutamira kune dzimwe nyika.

Alexey: Ndiko, zvipingamupinyi nezvimwe zvakadaro. Zviri pachena.

Vladimir: Ini pachangu, ndinofarira nzira yaunotora paunenge uchidzidzisa chidzidzo chitsva kuvadzidzi. Kune akasiyana sarudzo: unogona kuedza kutanga kune zvese kuvakurudzira kuti vaedze chimwe chinhu chitsva, kana iwe unogona kutarisisa zvakanyanya kune ruzivo rwekuti imwe tekinoroji inoshanda sei. Unoda chii?

Basa rinobudirira nevadzidzi

Alexey: Uye sei kuwana dhizaini pakati pekutanga neyechipiri?

Michael: Dambudziko nderekuti makirasi haawanzofamba nenzira yandinoda. Ndinowanzopa vadzidzi zvokuverenga pachine nguva kuitira kuti vanyatsoongorora, vazvinzwisise nepose pavanogona napo, uye vagadzire mibvunzo pamusoro pezvikamu izvozvo zvavasinganzwisise. Zvadaro mukirasi unogona kutarisa panguva dzakaoma zvikuru uye uzviongorore pamwe chete. Aya ndiwo maitiro andinoda kudzidzisa makirasi zvakanyanya. Asi tichifunga nezvemutoro uripo pavadzidzi, ini handigarokwanisa kuve nechokwadi chekuti vanofanogadzirira. Nekuda kweizvozvo, iwe unofanirwa kupa nguva yakawanda kune kudzokororwa kwezvese kwezvinyorwa kupfuura zvaungada. Pasinei neizvi, ndinoedza kuchengeta makirasi edu achifambidzana. Zvikasadaro, zviri nyore kurekodha vhidhiyo kana vadzidzi vabva vaona kumba. Iyo poindi yemakirasi ehupenyu kudyidzana kwevanhu. Mukirasi, ndinosarudza kushandisa choko nebhodhi pane masiraidhi, kunze kwekunge pane dzimwe nguva kana dhayagiramu yanyanya kuoma kuti iratidzike pabhodhi. Nekuda kweizvi, ini handifanirwe kunamatira kune yakaoma chidzidzo chirongwa. Sezvo pasina kurongeka kwakasimba kwokupa mashoko acho, ikoku kunondibvumira kuaita kuti aenderane nevateereri zvichienderana nemibvunzo yandinogamuchira. Kazhinji, ndinoedza kuita makirasi seanopindirana sezvinobvira, kuitira kuti zvinyorwa zvandinopa zvinoenderana nemibvunzo inobvunzwa kwandiri.

Vladimir: Zvakanaka. Muchiitiko changu, zvakaoma kuti vateereri vabvunze mibvunzo. Kunyangwe iwe ukabvunza pachine nguva kuti ubvunze chero mibvunzo, zvisinei nekuti benzi kana kungwara sei, ivo vanongonyarara. Unoita sei nazvo?

Michael: Unoseka, asi kana ukamira wakanyarara kwenguva yakakwana, nokukurumidza kana kuti gare gare munhu wose achanzwa kusagadzikana uye mumwe munhu achabvunza mubvunzo. Kana kuti unogona kubvunza mubvunzo wakareruka wehunyanzvi uine hongu kana kwete mhinduro kuti uone kana vanhu vachinzwisisa zvabva kutaurwa. Semuenzaniso, pane nhangemutange yedata mumuenzaniso uri pamusoro? Ndiani anofunga kudaro? Ndiani asingafungi? Ndiani asinganzwisisi chero chinhu, nekuti muchidimbu chete hafu yemaoko yakasimudzwa?

Vitali: Uye kana wapindura zvisizvo, unodzingwa mukirasi :)

Michael: Kana usati wapindura chero chinhu, saka unofanirwa kubvunza mubvunzo. Ini ndinofanira kunzwisisa izvo chaizvo izvo mudzidzi anofanira kuziva kuti apindure mubvunzo wandichangobva kubvunza. Ndinoda kuti vandibatsire ndivabatsire. Ndakagadzirira kujairana navo kuti vanzwisise dambudziko. Asi kana ndisingazivi zviri kuitika mumusoro mavo, handikwanisi kuzviita. Uye kana iwe usingape vadzidzi rugare kwenguva yakareba yakakwana, dzimwe nguva pakupedzisira vanobvunza mibvunzo yakarurama, kureva, iyo inondibvumira kuona kuti chii chaizvo chiri kuitika mumisoro yevadzidzi. 

Alexey: Mibvunzo iyi dzimwe nguva inotungamira kupfungwa dzausina kumbofunga nezvadzo here? Hazvitarisirwi here? Vanokubvumira kuti utarise dambudziko nenzira itsva here?

Michael: Pane mibvunzo inovhura nzira itsva yekupa nayo mashoko. Panowanzova nemibvunzo inotungamira kumatambudziko anonakidza andisina kuronga kutaura nezvayo. Vadzidzi vanowanzondiudza kuti ndine katsika kekubuda kunze kwenyaya kana izvi zvaitika. Uye, maererano navo, kazhinji ichi ndicho chikamu chinonakidza chechidzidzo. Kashoma, nguva shoma, vadzidzi vakabvunza mibvunzo yakakurudzira gwara idzva mukutsvaga uye yakakura kuita chinyorwa. Izvi zvinoitika kakawanda muhurukuro nevadzidzi kwete panguva yemakirasi, asi pano neapo zvaiitika mumakirasi. 

Alexey: Saka vadzidzi vakakubvunza mibvunzo pahwaro hwazvaive zvinogoneka kuburitsa chinyorwa?

Michael: Ehe. 

Vitali: Kangani iwe uchiita hurukuro idzi nevadzidzi? Ndirini pavanoda kudzidza zvakawanda kupfuura zvakafukidzwa mukati mechidzidzo?

Michael: Nevadzidzi vangu vakapedza kudzidza - nguva dzese. Ndine vanenge 5 kana 6 vavo, uye tinokurukura chimwe chinhu navo nguva dzose. Uye hurukuro dzerudzi urwu nevadzidzi vanongopinda makirasi angu hadzina kunyanya kuwanda. Kunyangwe ndichishuvira kuti izvi zviitike kakawanda. Ndinofungidzira kuti vanongotya kuuya kuhofisi panguva yebasa. Semesita yega yega, vamwe vadzidzi vanogona kukunda chipingamupinyi ichi chepfungwa, uye zvinogara zvichinakidza kutaura navo mushure mekirasi. Chokwadi, kudai vadzidzi vose vakanga vakashinga kudaro, ndingadai ndisina nguva yakakwana. Saka pamwe zvinhu zvese zviri kushanda sezvazvinofanira. 

Vitali: Iwe unokwanisa sei kuwana nguva yekutaurirana nevadzidzi? Sekuziva kwangu, muUSA vadzidzisi vane basa rakawanda - kunyorera mibairo nezvimwe zvakadaro. 

Michael: Kutendeseka, kushanda nevadzidzi ndicho chikamu chebasa rangu randinonyanya kufarira. Saka ndine kurudziro yakakwana yeizvi. Nguva zhinji yandinopedza ndiri muhofisi mangu ndinopedzera pamisangano yemarudzi ose. Ichiri zhizha zvino, saka purogiramu yangu haina kunyanya kubatikana, asi mukati megore rechikoro, zuva rega rega kubva 9 kusvika 17 ndine zvese zvakarongedzwa. Basa rekutsvagisa, ongororo, zvipo - kune zvese izvi kune manheru uye kupera kwevhiki chete. 

Nzira yekuenderera mberi nekugadzirira kwezvidzidzo zvitsva nemabhuku.

Alexey: Uri kuenderera mberi nekudzidzisa chero makosi awange uchidzidzisa kwenguva yakareba? Chimwe chinhu senge sumo kuComputer Science.

Michael: Chinhu chekutanga chinouya mumusoro pano ikosi yemitauro yekuronga. 

Alexey: Kosi yanhasi yakasiyana sei nezvayaive makore gumi, makumi maviri, makumi matatu apfuura? Zvichida chinonyanya kufadza pano harisi ruzivo rweimwe kosi, asi maitiro akajairwa.

Michael: Kosi yangu yemitauro yekuronga yaive yakati wandei panguva yandakaigadzira. Ndakatanga kuriverenga mukupera kwema1980, ndichitsiva wandaishanda naye, Doug Baldwin (Doug Baldwin) Musoro wekosi uyu waingova wakabatana nehunyanzvi hwangu, asi paakaenda, ndini ndaive mukwikwidzi akanakisa kudzidzisa kosi. Ndakanga ndisisafarire chero bhuku rezvidzidzo raivepo panguva iyi, saka ndakapedzisira ndanyora bhuku rekosi iyi ini. (Chinyorwa chemupepeti: tiri kutaura nezve bhuku "Programming Language Pragmatics") Yave kushandiswa mumayunivhesiti anopfuura 200 pasi rese. Nzira yangu haina kujairika pakuti inosanganisa nemaune matambudziko ekugadzirwa kwemutauro nekuita, uye inobhadhara zvakanyanya kupindirana pakati pezvinhu izvi munzvimbo dzese dzinogoneka. Iyo yekutanga nzira yakaramba isina kuchinjika, sezvakaita akawanda ekutanga pfungwa: abstractions, namespaces, modularity, mhando. Asi seti yemitauro inoratidzwa nayo pfungwa idzi yachinja zvachose. Kosi payakatanga kusikwa, pakanga paine mienzaniso yakawanda muPascal, asi nhasi vazhinji vevadzidzi vangu havasati vatombonzwa nezvemutauro uyu. Asi ivo vanoziva Swift, Go, Rust, saka ndinofanira kutaura nezve mitauro iri kushandiswa nhasi. Zvakare, vadzidzi vava kunyatsogona mitauro yekunyora, asi pandakatanga kudzidzisa kosi iyi, yaive yemitauro yakaunganidzwa. Iye zvino tinoda zvinhu zvakawanda pamusoro pePython, Ruby uye kunyange Perl, nokuti iyi ndiyo code yakanyorwa mumazuva ano, uye kune zvinhu zvakawanda zvinonakidza zviri kuitika mumitauro iyi, kusanganisira mumunda wekugadzira mutauro. 

Vitali: Ipapo mubvunzo wangu unotevera unenge une chekuita newakapfuura. Nzira yekuchengeta sei munzvimbo ino? Ndinofungidzira kuti kugadzirisa kosi yakadai kunoda basa rakawanda - unofanirwa kunzwisisa mitauro mitsva, kunzwisisa pfungwa huru. Unoita sei izvi?

Michael: Handigoni kuzvirumbidza kuti ndinogara ndichibudirira 100%. Asi kazhinji yenguva ndinongoita zvinoitwa nevamwe vese - verenga Indaneti. Kana ini ndichida kunzwisisa Rust, ini Google, enda kune peji reMozilla uye uverenge bhuku rakatumirwa ipapo. Ichi chikamu chezvinhu zvinoitika mukusimudzira kutengeserana. Kana tikataura nezvesainzi, saka iwe unofanirwa kutevedzera mishumo pamisangano mikuru. 

Kubatana pakati pebhizinesi nedzidzo

Vitali: Ngatitaurei nezve kubatana pakati pebhizinesi nekutsvaga kwesainzi. Mune yako runyorwa rwemabasa, ini ndawana akati wandei zvinyorwa nezve cache coherence. Ini ndinonzwisisa kuti cache consistency algorithms yakanga isina kugadzikana panguva yayakadhindwa? Kana kuti haana kupararira zvakakwana. Pfungwa dzako dzaive dzakawanda sei pakuita?

Michael: Handina chokwadi chaicho kuti ndeapi mabhuku auri kutaura nezvawo. Ndakaita basa rakawanda nevadzidzi vangu Bill Bolosky (William Bolosky) uye Leonidas Kontotanassis (Leonidas Kontothanassis) mukutanga 1990s pandangariro manejimendi eNeumann michina. Panguva iyoyo, bhizinesi rakanga risati rave nekunzwisisa kwekuita nemazvo multiprocessor system: zvakakosha here kugadzira rutsigiro rwekusvika kure ndangariro padanho rehardware, zvakakosha here kuita kuti ndangariro iparadzirwe, zvinoita here kurodha cache kubva. ndangariro dziri kure, kana kuti zvinodikanwa kufambisa mapeji mukamuri yekushandisa? system. Bill naLeonidas vese vakashanda munzvimbo iyi uye vakaongorora nzira dzisina kuremerwa cache. Izvi zvanga zvisingaenderane zvakananga necache coherence, asi rakanga richiri basa paNUMA memory management, uye nzira dzechizvino-zvino dzekuisa peji mumashandisirwo emazuva ano dzakakura kubva pane izvi. Pakazara, Bill naLeonidas vakaita basa rinokosha, kunyange zvazvo vasiri ivo vainyanya kupesvedzera munharaunda iyi - kwaiva nevamwe vanhu vakawanda vaishanda pachinhu chimwe chete panguva iyoyo. Gare gare, ndakashanda pane imwe nyaya ine chekuita necache coherence mumamiriro ezvinhu ehardware transactional memory. Boka randakashanda naro padambudziko iri rakaguma rawana zvibvumirano zvakawanda. Kune mamwe mazano anonakidza kumashure kwavo, asi handifunge kuti anozopedzisira aitwa mukuita. Imwe nzira kana imwe, zvakandiomera kutonga purofiti yavo. 

Alexey: Panyaya iyi, mubvunzo wakanyanya wega: zvakakosha sei kwauri kuti pfungwa dzako dziitwe? Kana kuti hauzvifungi here?

Michael: Ndinoda kubvunza mubvunzo uyu mukubvunzurudzwa nevamwe vanhu, vanyoreri kana vakwikwidzi vari kuda kujoina fakaroti. Handifungi kuti pane mhinduro chaiyo kumubvunzo uyu. Vanhu vanoita zvinhu zvakanaka vanogona kuva nezvikonzero zvakasiyana zvikuru. Ndinokwezvwa nezvinetso nokuti ini pachangu ndinoawana achifadza, kwete nemhaka yebetsero dzawo dzinoshanda. Asi kune rimwe divi, kana chimwe chinhu chinonakidza chichiri kuwana application, ndinochifarira chaizvo. Saka hazvisi nyore pano. Asi pakutanga kwebasa rangu, ini ndichiri kutungamirirwa kwete nepfungwa yekuguma kushandiswa munyika, asi nekuwirirana kwepfungwa uye chido chekuiongorora uye kuona zvinouya nazvo. Kana pakupedzisira ichipa mhedzisiro inoshanda, yakakura. 

Alexey: Nemhaka yedzidzo yako noruzivo rwokuzviwanira, unokwanisa zviri nani kupfuura vakawanda kuona ukoshi hwemifungo yavamwe vanhu. Iwe unogona kuzvienzanisa uye kuona kuti ndeipi inoshanda zviri nani nei. Ndine chokwadi chekuti une maonero pamusoro pezvinhu zviri kushandiswa parizvino mukuita nevagadziri vakakura seIntel. Semaonero ako, kosi iri kutora makambani aya ndeyechokwadi sei?

Michael: Kudzidzira nguva dzose kunotenderera kune izvo zvinogona kubudirira mune zvekutengeserana, ndiko kuti, kugadzira purofiti, uye iwe zviri nani kubvunza mumwe munhu nezvazvo. Basa rangu rinonyanya kukonzera zvinyorwa, uye mumunda wekushanda maitiro anoongororwa zvichienderana nezviratidzo zvekushanda: kukurumidza, kushandiswa kwesimba, kukura kwekodhi. Asi nguva dzose kwandiri zvaiita sekuti izvi zvinobuda muunyanzvi zvinowedzerwa kuzvinyorwa chete kuti zvibudiswe, uye vavariro chaidzo dzevanhu dzebasa ndedzorunako. Vatsvaguri vanoongorora mhinduro kubva pakuona kwehunyanzvi, vane hanya nekunaka kwakaita mazano, uye vanoedza kugadzira chimwe chinhu chiri nani pane maitiro aripo. Vatsvakurudzi vanotungamirirwa nehupenyu hwemunhu, hutsika, hwekunaka. Asi haugone kunyora nezve izvi muchinyorwa pachacho; zvinhu izvi hazvisi nharo dzekomiti yechirongwa. Neraki, mhinduro dzakanaka dzinowanzo kukurumidza uye dzakachipa. Vane gumi nevaviri vevandaishanda navo neni takakurukura nyaya iyi makore gumi nemashanu apfuura uye takaguma tanyora chinyorwa nezvazvo. Ndinofunga iwe unogona kuiwana ikozvino, inonzi "Maitiro ekuongorora masisitimu research" kana chimwe chinhu chakadaro, ine vanyori vanopfuura gumi nevaviri. Ichi ndicho chinyorwa chega chandiri munyori pamwe chete Sasha Fedorova, saka kana ukatsvaga zita rake mune yangu runyorwa rwezvinyorwa, uchawana zvaunoda. Inotaura nezve kuongorora masisitimu tsvakiridzo uye kukosha kwekunaka kwakadii. 

Alexey: Saka pane musiyano pakati pechiyero chezvinonzi zvakanaka musainzi uye mubhizinesi. Sayenzi inoongorora mashandiro, mashandisiro emagetsi, TDP, nyore kuita, uye zvimwe zvakawanda. Iwe une mukana wekuitisa rudzi urwu rwekutsvagisa kuyunivhesiti? Iwe une rabhoritari ine michina yakasiyana uye akasiyana ezvivakwa maungaite ongororo?

Michael: Ehe, dhipatimendi redu rine akawanda akasiyana anonakidza michina. Kazhinji kazhinji iwo madiki, isu tine diki sumbu uye akawanda akawanda masystem masisitimu ane akasiyana accelerator. Uye zvakare, iyo kambasi ine hombe komputa nzvimbo inoshandira masayendisiti kubva akati wandei gumi nemaviri edzidziso. Iyo inosvika chiuru node uye zviuru makumi maviri cores, ese paLinux. Kana kudikanwa kukamuka, unogona kugara uchitenga mamwe maAWS. Saka isu hatina zvakakosha zvirambidzo nehardware. 

Alexey: Zvakanga zvakaita sei makore makumi matatu apfuura? Paive nematambudziko ipapo?

Michael: Zvakanga zvasiyana zvishoma ipapo. Pakati-kusvika-pakupedzisira 1980s, sainzi yaionekwa seyakapfupika yezvekushandisa komputa. Kugadzirisa mamiriro aya, National Science Foundation (National Science Foundation) yakagadzira chirongwa chekuongorora kwakarongeka (Coordinated Experimental Research, CER). Chinangwa chechirongwa ichi chaive chekupa macomputer emadhipatimendi eComputer Science, uye yakawana shanduko huru. Nemari yaakapa, isu paYunivhesiti yeRochester takatenga 1984-knot BBN Butterfly muna 128, iri rakanga riri gore ndisati ndasvika ikoko. Panguva iyoyo yaive yakakura kwazvo multiprocessor system ine ndangariro dzakagovana. Yakanga iine 128 processors, imwe neimwe iri pabhodhi reamai, uye yaigara mareki mana. Imwe neimwe processor yaive ne megabyte yendangariro, 128 megabytes ye RAM yaive yakawanda isingafungidzike panguva iyoyo. Pamuchina uyu takaisa kukiya kweMCS kekutanga. 

Alexey: Saka, kana ndikakunzwisisa nemazvo, saka panguva ino dambudziko nehardware rakagadziriswa? 

Michael: Kazhinji, hongu. Kune mashoma mashoma: chekutanga, kana iwe uri kuita komputa dhizaini padanho rechip, zvakaoma kuita munzvimbo yezvidzidzo nekuti kune maturusi ari nani ekuzviita mubhizinesi. Kana iwe uchida chero chinhu chidiki pane gumi nanometers, uchafanirwa kuodha kubva kune mumwe munhu. Munzvimbo iyi zviri nyore kwazvo kuve muongorori paIntel. Kana iwe uri kushanda pa optical kutaurirana pamachipisi kana pane yakasimba-state memory, iwe unowana matekinoroji mubhizinesi ayo asati ave musainzi, saka unofanirwa kugadzira mibatanidzwa. Somuenzaniso, Stephen Swanson (Steven Swanson) yakagadzirwa kudyidzana kwakadaro yehunyanzvi hutsva hwekuyeuka. Iyi fomu haishande nguva dzose, asi mune dzimwe nguva inogona kunyatsobudirira. Pamusoro pezvo, musainzi kuvandudzwa kwemakomputa ane simba zvakanyanya kuoma. Mapurojekiti makuru makuru epakombiyuta parizvino muUS, Japan neChina ese akatarisana nebhizinesi. 

Kuitwa kunoshanda kwemazano. MCS, MS, CLH, JSR 166, kushanda naDoug Lee nezvimwe.

Vitali: Iwe watotaura nezve kuti wakatanga sei kushanda pakuyananisa algorithms. Une zvinyorwa zviviri zvakakurumbira pamusoro MCS ichivharira ΠΈ Michael-Scott queue (MS), iyo neimwe nzira yakaitwa muJava. (Chinyorwa chemupepeti: zvese zvinyorwa zvinogona kutariswa batanidzo) Ikoko kuvharika uku kwakashandiswa nedzimwe shanduko uye zvakazoitika CLH kukiya, uye mutsara wakaitwa sezvawaida. Asi makore akawanda akapfuura pakati pokubudiswa kwezvinyorwa zvenyu nokushanda kwazvo. 

Alexey: Zvinoita senge makore gumi mune iyo mutsara.

Michael: Izvi zvisati zvaonekwa muJava standard library?

Vitali: Ehe. Chii chawakaita kuti izvi zviitike? Kana kuti hapana chavakaita?

Michael: Ndinogona kukuudza kuti MS Queue yakapinda sei muJava 5. Makore mashomanana isati yabuda, ndakashanda neboka raMark Moyers paSun Microsystems murabhoritari yavo pedyo neBoston. Akaronga musangano wevanhu vaaiziva vari kushanda pamatambudziko anonakidza mumultithreading nekuti aida kuwana misoro yaaigona kutengesa kukambani yavo. Ndiko kwandakatanga kusangana naDoug Lea. Ini naDoug nevamwe vanhu vangangosvika makumi maviri nevashanu vekuSun takanga tiri pamwechete tichikurukura nezvemharidzo yaDoug JSR 166, iyo yakazove java.util.concurrent. Ari munzira, Doug akataura kuti angade kushandisa mutsara weMS, asi nekuda kweizvi aida counter yehuwandu hwezvinhu mumutsara weiyo interface. Ndiko kuti, izvi zvaifanira kunge zvakaitwa neimwe nzira, atomu, yakarurama uye nekukurumidza. Ini ndakurudzira kungowedzera nhamba dzesiriri kumanodhi, kutora nhamba yekutanga node uye yekupedzisira uye kubvisa imwe kubva kune imwe. Doug akakwenya musoro wake, akati β€œnei,” ndokuguma aita izvozvo chaizvo. Takakurukura kushandisa nzira iyi muraibhurari, asi Doug akaita rakawanda rebasa pachake. Nekuda kweizvozvo, akakwanisa kumisikidza yakanakisa multithreading rutsigiro muJava. 

Alexey: Saka, kana ndichinzwisisa zvakanaka, iyo .size() nzira yaifanira kunge iri chikamu chechimiro chemutsetse, uye yaifanira kunge iine algorithmic yakaoma yeO(1)?

Michael: Hongu, uye kuwedzera kune izvi, imwe counter counter inodiwa.

Alexey: Nokuti kana iwe ukadana .size () nzira muJava, chigumisiro chinotarisirwa kuwanikwa pakarepo uye kwete maererano nehukuru chaihwo hwekuunganidza. Ndaona, ndatenda.

Michael: Makore mashoma gare gare ndanga ndichishanda pane mbiri mbiri data zvimiro nemudzidzi wangu Bill Scherer - kutaura zvazviri, izvi ndizvo zvandichange ndichitaura nezvazvo. report pamusoro peHydra. Doug akauya kwatiri akati aigona kuzvishandisa muJava Executor Framework. Pamwe chete naBill, vakagadzira maviri ekushandisa, ayo anonzi akarurama uye asina kunaka mitsara. Ndakavayambira nezvechirongwa ichi, kunyangwe ndisina kutora chikamu mukunyora kodhi chaiyo. Nekuda kweizvozvo, kumhanya kwevaiti kwakawedzera zvakanyanya. 

Vladimir: Wakambosangana nemashandisirwo asiriwo ealgorithms ako kana zvikumbiro zvekuwedzera zvitsva? Kazhinji, tsika dzinofanira kuenderana nedzidziso, asi kazhinji dzinosiyana. Ngatiti iwe wakanyora algorithm, uye pabepa inoshanda, asi vanhu vanobatanidzwa mukuitwa vakatanga kukukumbira mamwe maficha kana imwe mhando yekugadzirisa algorithm. Wakambova nemamiriro ezvinhu akadaro here?

Michael: Muenzaniso chete umo mumwe munhu akauya kwandiri ndokubvunza "nzira yekuzviita" yaiva mubvunzo waDoug, wandakatotaura nezvazvo. Asi kwave kune zviitiko zvishoma apo chinjo dzinofadza dzakaitwa kuti dzienderane nezvinodikanwa zvinoshanda. Semuyenzaniso, timu yeK42 kuIBM yakashandura kiyi yeMCS ikaita kuti ive yemhando yepamusoro saka pakanga pasina chikonzero chekupfuudza mutsara node kuenda kunotora nekuburitsa maitiro. Kutenda kune iyi yakajairika interface, imwe pfungwa yaive yakanaka mudzidziso yakatanga kushanda mukuita. Zvinoshamisa kuti havana kumboburitsa chinyorwa nezvazvo, uye kunyangwe vakagamuchira patent, vakazoisiya. Pfungwa yacho yainakidza, uye ndinoedza kutaura nezvayo pose pazvinoita. 

Pakave nedzimwe nyaya apo vanhu vakaita kuvandudzwa kune maalgorithms andakaburitsa. Semuenzaniso, iyo MS queue ine nhanho mbiri yekuisa michina, izvo zvaireva kuti paive nemaCAS maviri munzira yakakosha yemutsetse. Pamotokari dzechikuru, CAS yaidhura zvakanyanya. Intel nevamwe vagadziri vakanyatsovagadzirisa zvakanaka nguva pfupi yadarika, asi pane imwe nguva iyi yaive 30-kutenderera mirairo, saka kuva nevanopfuura imwe munzira yakaoma kwaisada. Nekuda kweizvozvo, mutsara wakasiyana wakagadzirwa waive wakafanana nemutsara weMS, asi waingova neatomu imwe chete yekushanda munzira yakakosha. Izvi zvakawanikwa nekuda kwekuti pane imwe nguva yenguva kuvhiya kwaigona kutora O(n) nguva, pane O(1). Zvaisaita, asi zvaigoneka. Izvi zvakaitika nekuda kwekuti pane dzimwe nguva algorithm yaiyambuka mutsara kubva pakutanga kusvika panzvimbo iripo mumutsara uyu. Kazhinji, iyo algorithm yakave yakabudirira kwazvo. Sekuziva kwangu, haishandiswe zvakanyanya, muchidimbu nekuti mashandiro eatomu anoda zviwanikwa zvishoma kupfuura kare. Asi pfungwa yacho yakanga yakanaka. Ini zvakare ndinoda chaizvo basa raDave Dice kubva kuOracle. Zvese zvaanoita zvinoshanda chaizvo uye anoshandisa simbi zvine hungwaru. Aive neruoko mune yakawanda yeNUMA-aware synchronization algorithms uye akawanda-akarukwa data zvimiro. 

Vladimir: Paunonyora maalgorithms kana kudzidzisa vadzidzi, mhedzisiro yebasa rako haisi kuoneka. Nharaunda inoda imwe nguva yekujairana, toti, chinyorwa chitsva. Iyo itsva algorithm haigone kuwana application. 

Michael: Hazvisi kure nekukasika kujeka kana chinyorwa chichave chakakosha kana kwete. Ndinofunga zvingave zvinonakidza kuita ongororo yemapepa akahwina mibairo pamisangano. Kureva kuti, tarisai zvinyorwa izvo vanhu vaive mumakomiti ehurongwa pane imwe nguva vaizviona seakanakisa. Iwe unofanirwa kuyedza kuverenga nehuwandu hwezvinongedzo uye nemhedzisiro pabhizinesi kuti zvinyorwa izvi zvakanyatsoita sei mu10, 20, 25 makore. Ini ndinokahadzika kuti panogona kuve nekuwirirana kwakasimba pakati pezviviri izvi. Haizove zero, asi kazhinji ichave isina kusimba kupfuura zvatingade. Pfungwa dzakawanda dzinoramba dzisina kutaurwa kwenguva refu dzisati dzapararira. Semuenzaniso, ngatitorei transactional memory. Makore anopfuura gumi akapfuura kubva panguva yakatsikiswa chinyorwa chekutanga kusvika panguva iyo vanhu vakatanga kugadzira michina nayo. Uye kusati kwaonekwa chiyeuchidzo ichi mune zvigadzirwa zvekutengeserana - uye zvose 10. Kwenguva yakareba kwazvo hapana akateerera nyaya yacho, uye ipapo nhamba yezvibatanidza nayo yakawedzera zvakanyanya. Zvingava zvakaoma kufanotaura izvi pachine nguva. Kune rimwe divi, dzimwe nguva pfungwa dzinowana kuitiswa nekukasira. Makore mashoma apfuura, ndakanyora bepa naJoe Izraelevitz yeDISC iyo yakaronga tsananguro nyowani yechokwadi yeanoramba ari data zvimiro zvinogona kushandiswa mushure mekunge komputa yaimhanyisa yaparara. Ndakafarira nyaya yacho kubva pakutanga, asi yakazova yakakurumbira kupfuura zvandaitarisira. Yakashandiswa nemapoka akasiyana-siyana uye pakupedzisira yakave tsananguro yakajairwa yezvimiro zvekushingirira. Izvo, zvechokwadi, zvakanaka.

Vladimir: Pane here nzira dzaunoshandisa pakuongorora? Iwe unotoedza kuongorora zvinyorwa zvako uye vadzidzi vako? Panyaya yekuti munhu wawakadzidzisa ari kuenda negwara chairo here.

Michael: Kufanana nevamwe vanhu vose, ndinonyanya kukoshesa zvandiri kuita panguva ino. Zvekare, sevamwe vese, ndinopota ndichitarisa Google Scholar kuti ndione kana mapepa angu apfuura ari kutaurwa, asi zviri kunze kwekuda kuziva. Kunyanya ini ndinobatikana mune izvo vadzidzi vangu vari kuita ikozvino. Kana zvasvika pakuongorora basa razvino, chikamu charo ndechekutarisisa, izvo zvinoyevedza uye izvo zvisiri. Uye padanho remazuva ese, mibvunzo yakavhurika inoita basa guru. Semuenzaniso, mudzidzi anouya kwandiri aine girafu yezvimwe mhedzisiro, uye isu tiri kuedza kunzwisisa kwakabva humwe hunhu hunoshamisa hwegirafu. Kazhinji, mubasa redu tinoramba tichiedza kunzwisisa zvinhu zvatisati tanzwisisa. 

Transactional memory

Vitali: Pamwe isu tinogona kutaura zvishoma nezve transactional memory?

Michael: Ndinofunga zvakakodzera kutaura zvishoma nokuti ndinoisa simba rakawanda mazviri. Uyu ndiwo musoro wandine zvinyorwa zvakawanda kupfuura chero imwe. Asi panguva imwecheteyo, zvisingaite, ndaigara ndichikahadzika nezve ndangariro yekutengeserana. Mukufunga kwangu, chinyorwa naHerlihy naMoss (M. Herlihy, J. E. B. Moss) rakabudiswa nguva yacho isati yasvika. Mukutanga ma1990s, ivo vakakurudzira kuti ndangariro yekushandura inogona kubatsira vane tarenda programmers kushanda pane akawanda-akarukwa data zvimiro, kuitira kuti zvimiro izvi zvinozoshandiswa seraibhurari nevaya vakajaira zvirongwa. Ndiko kuti, zvingava rubatsiro kuna Doug Lee kuita JSR 166 yake. Asi ndangariro yekutengeserana yakanga isina kuitirwa kuita kuti multi-threaded programming zvive nyore. Asi izvi ndizvo chaizvo zvakatanga kuonekwa mukutanga kwema2000, pazvakapararira. Yakashambadzirwa senzira yekugadzirisa dambudziko reparallel programming. Iyi nzira yagara ichiratidzika kuva isina tariro kwandiri. Transactional memory inogona kungoita kuti zvive nyore kunyora parallel data zvimiro. Izvi, zvinoratidzika kwandiri, ndizvo zvaakaita. 

Nezve kuomerwa kwekunyora kodhi yakawanda-tambo

Alexey: Zvinonakidza chaizvo. Panoratidzika kunge paine chipingamupinyi pakati pevagadziri vezvirongwa nevaya vanogona kunyora akawanda-tambo kodhi. Gore rakapera, ndakataura kakawanda nevanhu vakanga vachiita imwe algorithmic framework. Semuenzaniso, naMartin Thomson, pamwe nevagadziri vepurogiramu vanoshanda pamaraibhurari ane tambo dzakawanda. (Chinyorwa chemupepeti: Martin Thompson mugadziri ane mukurumbira, akanyora Kushungurudza ΠΈ Aeron. Uye anewo chirevo pamusangano wedu weJoker 2015, kurekodha vhidhiyo inowanikwa paYouTube. Ndiye mumwe chete yakavhurwa musangano uyu keynote kurekodha zvakare iripo). Dambudziko guru, ivo vanodaro, kuita maalgorithms nekukurumidza uye nyore kushandisa. Ndiko kuti, vari kuedza kukunda chipingamupinyi ichi uye kukwezva vanhu vakawanda sezvinobvira kunzvimbo iyi. Unofungei nazvo?

Michael: Iri ndiro dambudziko guru rekuverengera: maitiro ekuita basa repamusoro pasina kuwedzera kuoma kwehurongwa. 

Alexey: Nekuti pavanoyedza kudzivirira kuomarara, iyo algorithm inova shoma pasirese.

Michael: Kiyi apa yakanyatsogadzirwa zvibodzwa. Zvinoratidzika kwandiri kuti ichi ndicho chinhu chikuru chemakomputa masisitimu semunda. Butler Lampson anofarira kushandisa izwi iri, uye anotidaidza "vatengesi vezvekutorwa." Michina yakapfava haipo nhasi. Iwo ma processor atinoshandisa ane mabhiriyoni gumi transistors-kureruka hakuna mubvunzo. Panguva imwecheteyo, ISA iri nyore kupfuura processor, sezvo takashanda kwenguva yakareba kuti tipe nekuita kwepamusoro uye chimiro chiri nyore. Asi hazvisi zvese zviri mutsetse naye zvakare. Dambudziko rimwe chete ndere maaccelerator ave kuoneka pamusika. Mibvunzo inomuka - maitiro ekugadzira iyo chaiyo interface yeGPU, encryption meshini, compression, transcoding mashini, mutsara algebra meshini, kana kunyange inoshanduka FPGA. Nzira yekugadzira sei interface inoita kuti chishandiso chive nyore kushandisa uye kuvanza kuoma? Izvo hazvizozvibvise, asi zviri nani kuzvivanza kubva kune ari nyore programmer. 

Alexey: Sekuzvinzwisisa kwandinoita, tichine chipingamupinyi mukunzwisisa zvipfupi. Ngatitorei modhi yekurangarira; padanho redu rekusimudzira sainzi uye tekinoroji, ichi ndicho chimwe chezvakakosha zvekubvisa. Kutenda kwazviri, vese vanogadzira mapurogiramu vakakamurwa kuita mapoka maviri: chikamu chikuru ndeavo vasingachinzwisise, uye chikamu chidiki ndevaya vanonzwisisa, kana vanofunga kuti vanonzwisisa. 

Michael: Uyu mubvunzo wakanaka - pane mumwe wedu anonzwisisa chaizvo muenzaniso wekurangarira?

Vitali: Kunyanya muC++.

Michael: Taura naHans Boehm imwe nguva. Ndiye mumwe wevanhu vakangwara vandinoziva, nyanzvi inotungamira yemhando dzendangariro. Achakuudza pakarepo kuti pane zvakawanda zvaasinganzwisise. Asi kana isu tikadzokera kunyaya yekubvisa, saka, mumaonero angu, iyo inonyanya kukosha pfungwa mumunda wekurangarira mamodheru mukati memakore makumi matatu apfuura yakaratidzwa. mune dissertation yaSarita Adve. (Chinyorwa chemupepeti: runyoro rwakakwana rwezvinyorwa zviripo batanidzo).

Alexey: Mubvunzo wangu ndewekuti: ichi chipingamupinyi chinobva kune iyo chaiyo yepfungwa? 

Michael: Aihwa. Sarita akasvika pakugumisa kuti nenzira yakarurama, unogona kubudirira kuvanza zvose zvakaoma, kuwana kushanda kwepamusoro uye kupa mugadziri API iri nyore. Uye kana iwe uchitevera iyi API, unogona kuwana kuenderana. Ndinofunga kuti uyu ndiwo muenzaniso wakanaka. Nyora kodhi pasina mijaho yedata uye uwane kutevedzana kunoenderana. Hongu, kuitira kuderedza mikana yekumhanya, maturusi anokosha anodiwa, asi imwe nyaya. 

Vladimir: Pane dzimwe nguva here mubasa rako apo dambudziko raiita serakagadziriswa rakangoerekana rava njodzi, kana kuti zvakazoitika kuti dambudziko iri rakanga risingagadzirisiki? Semuenzaniso, mune dzidziso, unogona kuverengera chero nhamba kana kuona kana nhamba iri yekutanga. Asi mukuita izvi zvinogona kunetsa kuita; neiyo hardware yazvino zvinonetsa kuverengera nhamba. Zvakafanana zvakaitika kwauri here?

Michael: Ini handisi kuyeuka chero chinhu chakadaro. Pave pane dzimwe nguva apo kwakaratidzika kwandiri kuti kwakanga kusina chinhu chakasara chokuita munzvimbo yakati, asi ipapo chimwe chinhu chitsva nechinofadza chakaitika imomo. Semuenzaniso, ndakafunga kuti nzvimbo yekumisa mutsara isingaperi yakanga yatosvika pakukura. Mushure mekuvandudzwa kwakati wandei kumutsara weMNS, hapana chakanyanya kuitika. Uye ipapo Morrison (Adam Morrison) uye Afek (Yehuda Afek) vakagadzira LCRQ mutsara. Zvakava pachena kuti mutsara usina muganhu we-multi-threaded queue wakanga uchibvira, apo nguva yakawanda yaingova nemurairo wekutora-uye-kuwedzera panzira yakaoma. Uye izvi zvakaita kuti zvikwanise kuwana kurongeka kwehukuru hwekuita zvirinani. Hakusi kuti hatizivi kuti kutora-uye-kuwedzera chinhu chinobatsira zvikuru. Eric Freudenthal akanyora nezve izvi mubasa rake paUltracomputer naAllan Gottlieb mukupera kwema1980, asi yaive mitsetse mishoma. Morrison naAfek vakakwanisa kushandisa kutora-uye-kuwedzera pamutsara usina kuganhurwa.

Zvivakwa zvitsva. Kukunda kwekurangarira kwekutengeserana kuri pedyo here?

Vladimir: Uri kutsvaga mhinduro nyowani dzekuvaka dzinogona kubatsira kune algorithms? 

Michael: Chokwadi, pane zvinhu zvakawanda zvandinoda kuona zvichiitwa. 

Vladimir: Somuenzaniso, rudzii?

Michael: Chekutanga pane zvese, mashoma akareruka ekuwedzera kune yedu hardware-level transactional memory muIntel uye IBM processors. Kunyanya, ndinoda iyo isiri-yekutengesa mutoro uye chitoro chakangoitika kuti chiwanikwe nekukurumidza mukati mekutengesa. Ivo vanobva vangotungamira kune zvishwe mune zvinoitika-kusati kwateerana, saka vanogona kuoma. Asi kana iwe ukachengeta akaturikidzana ekubvisa, pane zvakawanda zvezvinhu zvinonakidza zvaunogona kuita kunze kwekutengeserana uku kuri kuitika. Handizivi kuti izvi zvingave zvakaoma sei kuita, asi zvingave zvinobatsira zvikuru. 

Chimwe chinhu chinobatsira kurodha cache kubva kure kure memory. Ndinofunga kuti nokukurumidza kana kuti gare gare izvi zvichaitwa. Iyi tekinoroji inobvumira kusikwa kwemasisitimu ane disaggregated memory. Zvingave zvichigoneka kuchengeta, toti, 100 terabytes yenonvolatile memory murack, uye sisitimu yekushandisa pachayo yaizosarudza zvine simba kuti ndezvipi zvikamu zvendangariro iyoyo zvinofanirwa kuenderana nenzvimbo yekero yenzvimbo yevagadziri. Izvi zvingave zvakanyanya kubatsira kune cloud computing, sezvo zvaizobvumira huwandu hukuru hwendangariro kupihwa kumabasa anoida. Ndinofunga kuti mumwe munhu achazviita.

Vitali: Kuti ndipedze kutaura nezve transactional memory, ndine mumwe mubvunzo pamusoro penyaya iyi. Ko transactional memory inozotsiva yakajairwa akawanda-akarukwa data zvimiro?

Michael: Aihwa. Kutengeserana inzira yekufungidzira. Padanho rehurongwa aya makiyi eatomu, asi mukati mune fungidziro. Kufembera kwakadaro kunoshanda kana fungidziro zhinji dziri dzechokwadi. Naizvozvo, transactional memory inoshanda nemazvo kana tambo dzisinga dyidzane, uye unongoda kuve nechokwadi chekuti hapana kupindirana. Asi kana meseji ikatanga pakati peshinda, kutengeserana hakuna zvakunobatsira. Rega nditsanangure, tiri kutaura nezve nyaya kana matransaction akaputirwa pakuita kwese kweatomu. Iwo anogona achiri kushandiswa zvinobudirira sezvikamu zveakawanda-akarukwa data zvimiro. Semuenzaniso, kana iwe uchida matatu-mazwi CAS, uye iwe unofanirwa kuverengera zvinhu zvidiki zvitatu pakati pechokwadi multithreaded algorithm inoshanda netambo makumi maviri panguva imwe chete. Kazhinji, kutengeserana kunogona kubatsira, asi hazvizobvisi kudiwa kwekugadzira nemazvo akawanda-akarukwa data zvimiro. 

Isiri-inovhurika ndangariro, Optane DIMM, ekupedzisira-nekukurumidza zvishandiso.

Vitali: Chinhu chekupedzisira chandinoda kutaura nezvacho ndicho chinyorwa chetsvakiridzo yako yazvino: ndangariro dzisiri-dzinoshanduka. Chii chatinogona kutarisira munyaya iyi munguva pfupi iri kutevera? Pamwe iwe unoziva nezve chero inoshanda inoshanda yatovepo? 

Michael: Ini handisi nyanzvi yehardware, ndinongoziva zvandinoverenga munhau uye zvandinoudzwa nevandinoshanda navo. Wese munhu akatonzwa kuti Intel inotengesa Optane DIMM, iyo ine kanenge katatu kuverenga latency uye 3 nguva yekunyora latency pane ine simba RAM. Vachakurumidza kuwanikwa mumavhoriyamu makuru kwazvo. Zvinosekesa kufunga kuti iwe unogona kuve nelaptop ine akati wandei terabytes yebyte-addressable RAM. Zvingangoita kuti mumakore gumi isu tichafunga kushandisa iyi tekinoroji nyowani, sezvo isu tichishandisa DRAM - ingowedzera huwandu. Asi nekuda kwekuzvimirira kwesimba, mikana mitsva yakakwana inotizarurira. Isu tinokwanisa kunyatso shandura iyo yekuchengetedza stack kuitira kuti pasave nekuparadzaniswa pakati pe-byte-addressable inoshanda ndangariro uye block-yakarongeka inoenderera ndangariro. Nekudaro, isu hatizodi kurongedza zvese zvinoda kuendeswa kubva kune imwe chirongwa ichienda kune imwe kuita block-yakaumbwa mafaera. Kubva pane izvi tinogona kutora akawanda akakosha masisitimu anobata masisitimu anoshanda, nharaunda yenguva yekumhanya, uye akagovera data zvitoro. Nzvimbo iyi inofadza zvikuru kushanda mairi. Ini pachangu, zvakandiomera kufanotaura kuti izvi zvese zvichatungamira kunei, asi matambudziko ari pano anonyanya kuvaraidza. Panogona kunge paine shanduko yekuchinja pano, uye ivo vanotevera chaizvo kubva kubasa rekuverenga akawanda, sezvo kutadza kudzoreredza kuri "multithreading" maitiro ari padivi peyakajairika kushanda kwehurongwa. 

Musoro wechipiri mukuru wandiri kushanda pauri parizvino kutonga zvishandiso zvinokurumidza uye nekuchengetedzeka kuwana kumidziyo kubva kunzvimbo yemushandisi ine systemic policy control. Mumakore achangopfuura, kwave nemaitiro ekufambisa kupinda kune mudziyo kuenda kunzvimbo yekushandisa. Izvi zvinoitwa nekuti TCP-IP kernel stack haigone kushanda pamusoro petiweki interface inoda pakiti nyowani yega yega 5 microseconds; haingorambe iripo. Nokudaro, vagadziri vanopa ruzivo rwakananga kune zvigadzirwa. Asi izvi zvinoreva kuti sisitimu yekushandisa inorasikirwa nekutonga kwemaitiro uye haigone kupa mukana wakakodzera kune mudziyo wekukwikwidza maapplication. Boka redu rekutsvagisa rinotenda kuti kukanganisa uku kunogona kudzivirirwa. Tichava nechinyorwa pane izvi kuUSENIX ATC mwedzi uno. Izvo zvine hukama nekushanda pakushingirira, sezvo kwenguva yakareba-yakagara byte-inogadziriswa inoenderera ndangariro iri, muchokwadi, mudziyo une Ultra-inokurumidza I/O inoda kuwanikwa munzvimbo yevashandisi. Tsvagiridzo iyi inoita nzira nyowani dzema microkernels, exokernels, uye kumwe kuyedza kwechinyakare kufambisa zvakachengeteka kushanda kubva kuOS kernel kuenda kunzvimbo yekushandisa. 

Vladimir: Byte-addressable memory yakanaka, asi pane kudzora kwemuviri - kumhanya kwechiedza. Izvi zvinoreva kuti pachave nekunonoka kunenge kuine kana uchidyidzana nemudziyo. 

Michael: Ndizvozvo chaizvo.

Vladimir: Pachave nekwaniso yakakwana yekutsungirira mitoro mitsva?

Michael: Uyu mubvunzo wakanaka chose, asi zvichandiomera kupindura. Iyo pfungwa yekugadzirisa mundangariro yave iripo kwenguva yakati rebei, inonakidza kwazvo, asi zvakare yakaoma kwazvo. Ini handina kushanda munzvimbo ino, asi zvingave zvakanaka kana zvimwe zvakawanikwa zvikaitwa ipapo. Ndinotya kuti handina chimwezve chekuwedzera. 

Vladimir: Pane rimwezve dambudziko. Nyowani, yakakura zvakanyanya huwandu hwe RAM hazvigone kukwana muCPU. Naizvozvo, nekuda kwekuremerwa kwemuviri, iyi RAM inofanirwa kuve yega. 

Michael: Zvose zvinoenderana nehuwandu hwekukanganisa mukugadzirwa kwemasekete akabatanidzwa. Dai zvaikwanisika kugadzira semiconductor wafers zvachose pasina kukanganisa, saka zvaizogoneka kugadzira iyo microcircuit yakazara kubva mairi. Asi iye zvino hatizivi kuti tingagadzira sei microcircuits yakakura kudarika zvitambi zvekutumira. 

Vladimir: Asi isu tichiri kutaura nezvehukuru hukuru, nezve masendimita. Izvi zvine mhedzisiro pane latency. 

Michael: Ehe. Hapana chaungaite nekumhanya kwechiedza. 

Vladimir: Nehurombo. 

Chinotevera chikuru maitiro. Dual data zvimiro. Hydra.

Vitali: Sekunzwisisa kwandinoita, unobata maitiro matsva nekukurumidza. Iwe waive mumwe wekutanga kushanda mukurangarira ndangariro, uye mumwe wekutanga kushanda mundangariro dzisiri-dzinoshanduka. Iwe unofunga kuti chii chichava chiitiko chikuru chinotevera? Kana kuti zvimwe chakavanzika?

Michael: Kutaura chokwadi, handizivi. Ndinovimba ndichakwanisa kuona kana chimwe chinhu chitsva chauya. Handina kuita rombo rakanaka rekugadzira chero munda mutsva ndega, asi ndakava nerombo rakanaka uye ndakakwanisa kutanga kushanda kare kare muminda mitsva yakagadzirwa nevamwe. Ndinovimba ndichakwanisa kuita izvi mune ramangwana.

Alexey: Mubvunzo wekupedzisira mubvunzurudzo ino uchave wekuita kwako paHydra nezviitwa zvako kuchikoro. Kana ndikanzwisisa nemazvo, mushumo pachikoro uchave wekuvharira-yemahara algorithms, uye pamusangano nezve kaviri data zvimiro. Unogona here kutaura mazwi mashoma pamusoro pemishumo iyi?

Michael: Muchidimbu, takatobata nemi misoro iyi muhurukuro ino. Zviri pamusoro pebasa randakaita nemudzidzi wangu Bill Scherer. Akanyora thesis pairi, uye Doug Lee akapawo chikamu kwairi, uye yakazopedzisira yave chikamu chemitsetse yakawanda-yakapetwa mitsara muraibhurari yeJava. Ngatifungei kuti iyo data data inoverengwa uye yakanyorwa pasina kuvhara, ndiko kuti, kushanda kwega kwega kune nhamba shoma yemirairo panzira yakaoma. Kana iwe ukaedza kubvisa data kubva mumudziyo usina chinhu, kana kuedza kubvisa imwe data isiri mumudziyo uyu, iwe unoziviswa pakarepo kuti izvi hazvigone kuitwa. Asi maitiro aya anogona kusagamuchirwa kana shinda ichinyatsoda iyi data. Zvadaro chinhu chekutanga chinouya mupfungwa ndechekugadzira loop iyo inogara ichibvunza kana data inodiwa yaonekwa. Asi ipapo pane kupindira kune vamwe vose. Mukuwedzera, neiyi nzira, unogona kumirira maminetsi gumi, uyezve imwe tambo ichauya, uye ichangoerekana yagamuchira iyo data inodiwa kutanga. Dual data maumbirwo haasati ave nemakiyi, asi anobvumira tambo kuti dzimirire nemazvo. Izwi rekuti "kaviri" rinoreva kuti chimiro chine data kana zvikumbiro zve data, ngativadaidze anti-data. Saka kana iwe ukaedza kutora chimwe chinhu kubva mumudziyo usina chinhu, chikumbiro chinoiswa mumudziyo panzvimbo. Iye zvino tambo inogona kumirira chikumbiro pasina kukanganisa mumwe munhu. Pamusoro pezvo, chimiro chedata chinopa zvakakosha kune zvikumbiro kuitira kuti kana zvagamuchirwa, zviendese kune munhu akakodzera. Mhedzisiro iyi isiri yekuvhara nzira iyo ichine chirevo chepamutemo uye kuita kwakanaka mukuita. 

Alexey: Ndezvipi zvaunotarisira kubva pane iyi data chimiro? Ichavandudza mashandiro mune ese akajairwa kesi, kana kuti inokodzera zvirinani kune mamwe mamiriro? 

Michael: Inobatsira kana, chekutanga, iwe uchida mudziyo usina kuvhara, uye, chechipiri, unofanirwa kumirira mumamiriro ezvinhu apo iwe unoda kutora data kubva mumudziyo usiri mairi. Sekuziva kwangu, chimiro chedu chinopa maitiro akakwana kana aya maviri mamiriro asangana. Naizvozvo, muzviitiko izvi ndinokurudzira kuishandisa. Mukana mukuru wekukiya isina data zvimiro ndeyekuti ivo vanonzvenga matambudziko ekuita. Uye kumirira kwakakosha mune akawanda algorithms kana data richitamiswa kubva kune imwe shinda kuenda kune imwe.

Vitali: Rega ndijekese: ungataura nezve chinhu chimwe chete kuchikoro uye kumusangano?

Michael: Kuchikoro ndichataura zvakazara nezve akawanda-akarukwa data maumbirwo, ane misimboti yekutanga yakatsanangurwa pakutanga kwechidzidzo. Ndinofungidzira kuti vateereri vanoziva kuti shinda chii uye vanoziva makiyi. Zvichienderana neruzivo urwu rwekutanga, ini ndichataura nezve kukiya-yemahara data zvimiro. Ini ndichapa mhedziso yematambudziko akanyanya kukosha munzvimbo ino, kubata misoro senge memory management. Ini handifunge kuti pachave nechinhu chakaoma kupfuura iyo MS queue.

Alexey: Uri kuronga kudzidzisa nezve mbiri mbiri data zvimiro pakupera kwekirasi yako muchikoro?

Michael: Ndichazvitaura, asi handisi kuzopedza nguva yakawanda pazviri. Chirevo cheHydra chichakumikidzwa kwavari. Ichavhara purojekiti yakazoita kuti ive Java, pamwe nekushanda naJoe Israelevich kugadzira maviri akasiyana emutsara weLCRQ, uye kugadzira iri pedyo-yepasirese dhizaini yezviviri data zvimiro.

Alexey: Saka hurukuro kuchikoro inogona kukurudzirwa kune vanotanga, uye hurukuro yezvinyorwa zviviri zve data paHydra - kune vanhu vanotova neruzivo?

Michael: Ndiruramisei kana ndakanganisa, asi vateereri paHydra vachange vakasiyana, kusanganisira nyanzvi dzakawanda dzeJava, uye kazhinji vanhu vasina kunyanya kubatanidzwa muhurongwa hwematambo akawanda. 

Vitali: Hongu, ichokwadi.

Alexey: At least tinovimba kudaro.

Michael: Panyaya iyi, ini ndichasangana nedambudziko rakafanana ratakatanga naro bvunzurudzo iyi: maitiro ekuita kuti mushumo upfume zvakakwana muhunyanzvi hwekuita uye kuwanikwa kune vese vateereri.

Vitali: Uchapa rondedzero nenzira imwechete yaunopa hurukuro? Ndiko kuti, taura nevateereri uye uchinje kumamiriro acho ezvinhu?

Michael: Ndinotya kuti hazvizoshande saizvozvo, nekuti mushumo uchange uine masiraidhi. Masiraidhi akakosha apo vateereri pavanotanga kutaura mitauro yakasiyana. Vanhu vakawanda vachawana zvakaoma kundinzwisisa muchiRungu, kunyanya kana ndikataura ndichikurumidza. Ndakasarudza nyaya idzi nekuti Peter Kuznetsov akandikumbira kuti nditaure nezve kukiya-yemahara data zvimiro paSPTDC Chikoro; uyezve ndaida rondedzero yemusangano weboka revashandisi veJava, uye ndaida kusarudza chimwe chinhu chaizonyanya kufarira Java programmers. Nzira iri nyore yaive yekutaura nezve izvo zvinhu muraibhurari yeJava izvo ndakaita ruoko neimwe nzira. 

Alexey: Isu tinofungidzira kuti vateereri paHydra vatoziva chimwe chinhu nezve kukiya-yemahara hurongwa uye pamwe vane ruzivo munzvimbo ino. Asi uku kungofungidzira chete; mamiriro acho achajeka pamusangano wacho. Zvakadaro, thanks nenguva yenyu. Ndine chokwadi chekuti bvunzurudzo ichave inonakidza kune vaverengi vedu. Kutenda kwazvo!

Vitali: Ndatenda. 

Michael: Ndichafara kusangana newe muSt. 

Alexey: Nesuwo tine guta rakanaka. Wakambosvika pano here?

Michael: Kwete, handina kumbobvira ndaenda kuRussia zvachose. Asi St. Petersburg yakagara iri pandaza yenzvimbo dzandisati ndasvika, asi kwandinoda kuenda chaizvoizvo, naizvozvo ndakafara zvikuru pamusoro pekokero. 

Alexey: Tichava nepurogiramu yenzendo dzevakurukuri. Ndinokutendai zvikuru nokuda kwebvunzurudzo, uye ivai nezuva rakanaka!

Iwe unogona kuenderera mberi nehurukuro yako naMichael pamusangano weHydra 2019, uchaitwa muna July 11-12, 2019 muSt. Achauya nereport "Dual data zvimiro". Matikiti anogona kutengwa pane webhusaiti yepamutemo.

Source: www.habr.com

Voeg