„Það er auðveldara að svara en að þegja“ - frábært viðtal við föður viðskiptaminni, Maurice Herlihy

Maurice Herlihy - eigandi tveggja Dijkstra verðlaunin. Sá fyrsti er til að vinna við "Biðlaus samstilling" (Brown University) og sá síðari, nýrri, - „Transactional Memory: Byggingarfræðilegur stuðningur við læsingarlausar gagnabyggingar“ (Virginia Tech University). Dijkstra-verðlaunin eru veitt fyrir verk þar sem þýðing og áhrif hafa verið sýnileg í að minnsta kosti tíu ár og Maurice er augljóslega einn frægasti sérfræðingur á þessu sviði. Hann starfar nú sem prófessor við Brown háskóla og hefur margvísleg afrek sem eru málsgrein löng. Hann er nú að rannsaka blockchain í samhengi við klassíska dreifða tölvu.

Áður hafði Maurice þegar komið til Rússlands fyrir SPTCC (myndbandsupptöku) og gerði frábæran fund með JUG.ru Java þróunarsamfélaginu í Sankti Pétursborg (myndbandsupptöku).

Þessi habrapost er frábært viðtal við Maurice Herlihy. Þar er fjallað um eftirfarandi efni:

  • Samspil fræðasviðs og atvinnulífs;
  • Foundation for Blockchain Research;
  • Hvaðan koma tímamótahugmyndir? Áhrif vinsælda;
  • PhD undir handleiðslu Barböru Liskov;
  • Heimurinn bíður eftir fjölkjarna;
  • Nýr heimur hefur í för með sér ný vandamál. NVM, NUMA og arkitektúr reiðhestur;
  • Þýðendur vs örgjörvar, RISC vs CISC, sameiginlegt minni vs skilaboðasending;
  • Listin að skrifa brothættan fjölþráðan kóða;
  • Hvernig á að kenna nemendum að skrifa flókinn margþráðan kóða;
  • Ný útgáfa bókarinnar „The Art of Multiprocessor Programming“;
  • Hvernig viðskiptaminni var fundið upp;   
  • Hvers vegna það er þess virði að stunda rannsóknir á sviði dreifðrar tölvunar;
  • Hefur þróun reiknirita stöðvast og hvernig á að halda áfram;
  • Vinn við Brown University;
  • Munurinn á rannsóknum við háskóla og innan fyrirtækis;
  • Hydra og SPTDC.

Viðtalið er tekið af:

Vitaly Aksenov — sem stendur eftir doktor við IST Austria og starfsmaður tölvutæknideildar ITMO háskólans. Framkvæmir rannsóknir á sviði kenninga og framkvæmda á samkeppnishæfum gagnagerðum. Áður en hann starfaði hjá IST, hlaut hann doktorsgráðu frá Diderot háskólanum í París og ITMO háskólanum undir handleiðslu prófessors Peter Kuznetsov.

Alexey Fedorov - Framleiðandi hjá JUG Ru Group, rússnesku fyrirtæki sem skipuleggur ráðstefnur fyrir þróunaraðila. Alexey tók þátt í undirbúningi meira en 50 ráðstefna og ferilskrá hans inniheldur allt frá stöðu þróunarverkfræðings hjá Oracle (JCK, Java Platform Group) til stöðu þróunaraðila hjá Odnoklassniki.

Vladimir Sitnikov - Verkfræðingur hjá Netcracker. Tíu ára vinna við frammistöðu og sveigjanleika NetCracker OS, hugbúnaðar sem fjarskiptafyrirtæki nota til að gera sjálfvirkan net- og netbúnaðarstjórnunarferli. Hef áhuga á frammistöðumálum Java og Oracle Database. Höfundur meira en tugi árangursbóta í opinbera PostgreSQL JDBC reklanum.

Samspil fræðasviðs og atvinnulífs

Alexey: Maurice, þú hefur starfað í akademísku umhverfi í mjög langan tíma og fyrsta spurningin er samspil fræðasviðs og iðnaðarsviðs. Gætirðu talað um hvernig samskipti þeirra á milli hafa breyst undanfarið? Hvað gerðist fyrir 20-30 árum og hvað er að gerast núna? 

Maurice: Ég hef alltaf reynt að vinna náið með viðskiptafyrirtækjum vegna þess að þau eiga við áhugaverð vandamál að etja. Þeir hafa að jafnaði ekki mikinn áhuga, hvorki á að birta niðurstöður sínar né ítarlegar útskýringar á vandamálum sínum fyrir heimssamfélaginu. Þeir hafa aðeins áhuga á að leysa þessi vandamál. Ég vann hjá slíkum fyrirtækjum í nokkurn tíma. Ég eyddi fimm árum í fullri vinnu í rannsóknarstofu hjá Digital Equipment Corporation, sem áður var stórt tölvufyrirtæki. Ég vann einn dag í viku hjá Sun, hjá Microsoft, hjá Oracle og vann smá vinnu hjá Facebook. Nú ætla ég að fara í leyfi (prófessor við bandarískan háskóla fær að taka slíkt leyfi í eitt ár um það bil einu sinni á sex ára fresti) og vinna í Algorand, þetta er dulmálsfyrirtæki í Boston. Það hefur alltaf verið ánægjulegt að vinna náið með fyrirtækjum því þannig lærir maður um nýja og áhugaverða hluti. Þú gætir jafnvel verið fyrsti eða annar aðilinn til að birta grein um valið efni, frekar en að vinna að því að bæta smám saman lausnir á vandamálum sem allir aðrir eru nú þegar að vinna að.

Alexey: Geturðu sagt okkur nánar hvernig þetta gerist?

Maurice: Auðvitað. Þú veist, þegar ég var að vinna hjá Digital Equipment Corporation, ég og Elliot Moss, fundum við upp viðskiptaminni. Það var mjög frjósamt tímabil þegar allir fóru að hafa áhuga á upplýsingatækni. Samhliða, þar á meðal, þó að fjölkjarnakerfi hafi ekki verið til ennþá. Á sólar- og véfréttadögum vann ég mikið við samhliða gagnauppbyggingu. Á Facebook vann ég að blockchain verkefninu þeirra, sem ég get ekki talað um, en ég vona að það verði opinbert fljótlega. Á næsta ári, hjá Algorand, mun ég starfa í rannsóknarhópi sem rannsakar snjalla samninga.

Alexey: Blockchain hefur orðið mjög vinsælt umræðuefni á síðustu árum. Mun þetta hjálpa rannsóknum þínum? Kannski auðveldar það að afla styrkja eða veita aðgang að fjármagni frá fyrirtækjum sem starfa í greininni?

Maurice: Ég fékk nú þegar lítinn styrk frá Ethereum Foundation. Vinsældir blockchain eru mjög gagnlegar til að hvetja nemendur til að vinna á þessu sviði. Þeir hafa mikinn áhuga á því og eru spenntir að taka þátt en gera sér stundum ekki grein fyrir því að rannsóknin sem hljómar spennandi að utan reynist fela í sér virkilega mikla vinnu. Hins vegar er ég mjög spenntur að nota alla þessa dulúð í kringum blockchain til að hjálpa til við að laða að nemendur. 

En það er ekki allt. Ég er í ráðgjafaráði nokkurra blockchain gangsetninga. Sum þeirra ná kannski árangri, önnur kannski ekki, en það er alltaf mjög áhugavert að sjá hugmyndir þeirra, kynna sér þær og ráðleggja fólki. Það sem er mest spennandi er þegar þú varar fólk við að gera eitthvað. Margt virðist vera góð hugmynd í fyrstu, en er það virkilega?

Stofnun fyrir Blockchain rannsóknir

Vitaly: Sumir halda að framtíðin liggi í blockchain og reikniritum hennar. Og annað fólk segir að þetta sé bara enn ein kúla. Getur þú deilt skoðun þinni á þessu máli?

Maurice: Margt af því sem er að gerast í blockchain heiminum er rangt, sumt er bara svindl, margt er ofmetið. Hins vegar held ég að það sé traustur vísindalegur grundvöllur fyrir þessum rannsóknum. Sú staðreynd að blockchain heimurinn er fullur af hugmyndafræðilegum mun sýnir hversu spennu og vígslu er. Á hinn bóginn er þetta ekki sérstaklega gagnlegt fyrir vísindarannsóknir. Nú, ef þú birtir grein sem fjallar um galla tiltekins reiknirits, eru viðbrögðin sem myndast ekki alltaf fullvísindaleg. Oft kastar fólk út tilfinningum sínum. Ég held að svona spenna á þessu sviði kann að virðast aðlaðandi fyrir suma, en þegar öllu er á botninn hvolft eru raunveruleg vísindaleg og verkfræðileg atriði sem þarf að taka á. Það er mikið af tölvunarfræði hér.

Vitaly: Svo þú ert að reyna að leggja grunninn að rannsóknum á blockchain, ekki satt?

Maurice: Ég er að reyna að leggja grunn að traustri, vísindalega og stærðfræðilega traustri fræðigrein. Og hluti af vandamálinu er að stundum þarf að mótmæla sumum of harkalegum afstöðu annarra og hunsa þær. Stundum spyr fólk hvers vegna ég vinni á svæði þar sem eingöngu hryðjuverkamenn og eiturlyfjasmyglarar hafa áhuga. Slík viðbrögð eru jafn tilgangslaus og hegðun fylgjenda sem endurtaka orð þín í blindni. Ég held að sannleikurinn sé einhvers staðar í miðjunni. Blockchain mun hafa mikil áhrif á samfélagið og hagkerfi heimsins. En þetta mun líklega ekki gerast þökk sé nútímatækni. Nútímatækni mun þróast og það sem verður kallað blockchain í framtíðinni mun verða mjög mikilvægt. Það lítur kannski ekki einu sinni út eins og nútíma blockchains, það er opin spurning.

Ef fólk finnur upp nýja tækni mun það halda áfram að kalla það blockchain. Ég meina, alveg eins og Fortran í dag hefur ekkert með Fortran tungumálið frá sjöunda áratugnum að gera, en allir halda áfram að kalla það Fortran. Sama fyrir UNIX. Það sem er kallað „blockchain“ mun samt gera byltingu sína. En ég efast um að þessi nýja blockchain verði eitthvað í líkingu við það sem allir hafa gaman af að nota í dag.

Hvaðan koma tímamótahugmyndir? Áhrif vinsælda

Alexey: Hefur vinsældir blockchain leitt til nýrra niðurstaðna frá vísindalegu sjónarhorni? Meiri samskipti, fleiri nemendur, fleiri fyrirtæki á svæðinu. Er nú þegar einhver árangur af þessari aukningu á vinsældum?

Maurice: Ég fékk áhuga á þessu þegar einhver rétti mér opinberan flugmiða fyrir fyrirtæki sem var nýbúið að safna ansi miklum peningum. Það skrifaði um verkefni býsanska hershöfðingjanna, sem ég er meira en kunnugur. Það sem var skrifað í fylgiseðlinum var greinilega tæknilega rangt. Fólkið sem skrifaði allt þetta skildi í raun ekki fyrirmyndina á bak við vandamálið... og samt safnaði þetta fyrirtæki miklum peningum. Í kjölfarið skipti fyrirtækið þessum bæklingi út í hljóði fyrir mun réttari útgáfu - og ég skal ekki segja hvað þetta fyrirtæki hét. Þeir eru enn til og standa sig mjög vel. Þetta atvik sannfærði mig um að í fyrsta lagi er blockchain einfaldlega form dreifðrar tölvunar. Í öðru lagi var inngönguþröskuldurinn (allavega þá fyrir fjórum árum) frekar lágur. Fólkið sem starfaði á þessu sviði var mjög kraftmikið og gáfað en las ekki vísindarit. Þeir reyndu að finna upp þekkta hluti og gerðu það rangt. Í dag hefur dregið úr dramatíkinni.

Alexey: Þetta er mjög áhugavert, vegna þess að fyrir nokkrum árum höfðum við aðra þróun. Þetta er svolítið eins og framhliðarþróun, þegar vafrabundnir framhliðarframleiðendur fundu upp heila tækni sem þegar var vinsæl í bakhliðinni: smíða kerfi, stöðug samþættingu, svoleiðis. 

Maurice: Ég er sammála. En þetta kemur ekki á óvart, því sannarlega byltingarkenndar hugmyndir koma alltaf utan hins rótgróna samfélags. Það er ólíklegt að rótgrónir vísindamenn, sérstaklega rótgrónir fræðimenn, geri neitt raunverulega byltingarkennd. Það er auðvelt að skrifa erindi fyrir næstu ráðstefnu um hvernig þú bættir aðeins árangur fyrri vinnu þinnar. Farðu á ráðstefnu, hittu vini, talaðu um sömu hlutina. Og fólkið sem springur inn með tímamótahugmyndir kemur nánast alltaf utan frá. Þeir kunna ekki reglurnar, þeir kunna ekki tungumálið, en engu að síður... Ef þú ert innan rótgróins samfélags ráðlegg ég þér að huga að nýjum hlutum, einhverju sem passar ekki inn í heildarmyndina. Í vissum skilningi er hægt að reyna að sameina ytri, fljótari þróun með aðferðum sem við skiljum nú þegar. Reyndu sem fyrsta skref að koma á vísindalegum grunni og breyta honum svo þannig að hægt sé að beita honum á nýjar byltingarhugmyndir. Ég held að blockchain sé frábært fyrir að vera fersk, truflandi hugmynd.

Alexey: Af hverju heldurðu að þetta gerist? Vegna þess að fólk „utan“ hefur engar sérstakar hindranir sem felast í samfélaginu?

Maurice: Hér er mynstur í gangi. Ef þú lest sögu impressjónista í málaralist og list almennt, þá höfnuðu frægir listamenn á sínum tíma impressjónisma. Þeir sögðu að þetta væri soldið barnalegt. Kynslóð síðar varð þetta áður hafnað listform viðmið. Það sem ég sé á mínu sviði: uppfinningamenn blockchain höfðu ekki áhuga á völdum, á að auka útgáfur og tilvitnunarvísitölu, þeir vildu bara gera eitthvað gott. Svo settust þeir niður og byrjuðu að gera það. Það vantaði ákveðna tæknilega dýpt í þá, en það er hægt að laga. Það er miklu erfiðara að koma með nýjar skapandi hugmyndir en að leiðrétta og styrkja ófullnægjandi hugmyndir. Þökk sé þessum uppfinningamönnum hef ég nú eitthvað að gera!

Alexey: Þetta er svipað og munurinn á sprotafyrirtækjum og eldri verkefnum. Við erfðum margar takmarkanir hugsunar, hindranir, sérstakar kröfur og svo framvegis.

Maurice: Góð samlíking er dreifð tölvumál. Hugsaðu um blockchain eins og það væri gangsetning og dreifð tölvumál sem stórt, rótgróið fyrirtæki. Dreifð tölvumál eru í því ferli að verða keypt og sameinuð blockchain.

PhD undir handleiðslu Barböru Liskov

Vitaly: Við höfum enn margar spurningar! Við vorum að skoða bakgrunn þinn og fundum áhugaverða staðreynd um doktorsgráðuna þína. Já, þetta var fyrir löngu síðan, en þetta virðist vera mikilvægt umræðuefni. Þú fékkst doktorsgráðu þína undir leiðsögn sjálfs þíns Barbara Liskov! Barbara er mjög þekkt í forritunarmálssamfélaginu og mjög þekkt manneskja almennt. Það er rökrétt að rannsóknir þínar hafi verið á sviði forritunarmála. Hvernig fórstu yfir í samhliða tölvuvinnslu? Hvers vegna ákvaðstu að skipta um umræðuefni?

Maurice: Á þeim tíma voru Barbara og hópurinn hennar bara að skoða dreifða tölvu, sem var mjög ný hugmynd. Það voru líka þeir sem sögðu að dreifð tölvumál væri vitleysa og að tölvur í samskiptum sín á milli væru tilgangslausar. Eitt af þeim málum sem fjallað er um í dreifðri tölvuvinnslu sem aðgreinir hana frá miðlægri tölvuvinnslu er bilanaþol. Eftir miklar rannsóknir ákváðum við að dreifð tölvuforritunarmál þyrfti að hafa eitthvað eins og atómviðskipti vegna þess að þú getur aldrei verið viss um að fjarsímtal muni heppnast. Þegar þú hefur átt viðskipti kemur upp vandamálið við samhliðastjórnun. Þá var mikil vinna við að fá mjög samhliða viðskiptagagnauppbyggingu. Síðan, þegar ég útskrifaðist, fór ég í Carnegie Mellon og fór að leita að efni til að vinna með. Mér datt í hug að tölvumálin hafa færst úr einstökum tölvum yfir í net tölva. Fjölgjörvar væru eðlilegt framhald framfara - orðið „fjölkjarna“ var ekki enn til. Ég hugsaði: hvað er ígildi atómviðskipta fyrir fjölkjarna kerfi? Örugglega ekki venjuleg viðskipti því þau eru of stór og þung. Og þannig datt mér hugmyndin í hug línuhæfni og þannig komst ég að allri biðlausu samstillingunni. Þetta var tilraun til að svara spurningunni um hvað er hliðstæða atómviðskipta fyrir fjölgjörvakerfi með sameiginlegu minni. Við fyrstu sýn getur þetta verk litið allt öðruvísi út en í raun er þetta framhald af sama þema.

Heimurinn bíður eftir fjölkjarna

Vitaly: Þú nefndir að á þeim tíma væru mjög fáar fjölkjarna tölvur, ekki satt?

Maurice: Þeir voru bara ekki þarna. Það voru nokkrir svokallaðir samhverfir fjölgjörvar, sem voru í grundvallaratriðum tengdir við sama strætó. Þetta virkaði ekki mjög vel vegna þess að í hvert sinn sem nýtt fyrirtæki bjó til eitthvað svipað, gaf Intel út einn örgjörva sem var betri en fjölgjörvi.

Alexey: Þýðir þetta ekki að á þessum fornu tímum hafi þetta verið meira fræðilegt nám?

Maurice: Þetta var ekki fræðileg rannsókn, heldur íhugandi rannsókn. Allt þetta snerist ekki um að vinna með margar setningar heldur settum við fram tilgátur um byggingarlist sem ekki var til á þeim tíma. Til þess eru rannsóknir! Ekkert fyrirtæki hefði gert eitthvað eins og þetta, þetta var allt eitthvað úr fjarlægri framtíð. Þetta var raunar allt til ársins 2004 þegar raunverulegir fjölkjarna örgjörvar birtust. Vegna þess að örgjörvar ofhitna geturðu gert örgjörvann enn minni, en þú getur ekki gert hann hraðari. Vegna þessa urðu umskipti yfir í fjölkjarna arkitektúr. Og svo þýddi það að allt í einu var not fyrir öll hugtökin sem við höfðum þróað í fortíðinni.

Alexey: Af hverju heldurðu að fjölkjarna örgjörvar hafi aðeins komið fram á XNUMX? Svo hvers vegna er það svona seint?

Maurice: Þetta er vegna takmarkana á vélbúnaði. Intel, AMD og önnur fyrirtæki eru mjög góð í að auka örgjörvahraða. Þegar á einhverjum tímapunkti urðu örgjörvarnir það litlir að þeir gátu ekki lengur aukið klukkuhraðann því örgjörvarnir myndu byrja að brenna út. Þú getur gert þær minni, en ekki hraðar. Hvað er í þeirra valdi - í stað mjög lítillar örgjörva geta þeir passað átta, sextán eða þrjátíu og tvo örgjörva í sama rúmmál hulstrsins, þar sem áður gat aðeins einn passað. Nú hefurðu fjölþráða og hröð samskipti á milli þeirra vegna þess að þeir deila skyndiminni. En þú getur ekki þvingað þá til að hlaupa hraðar - það er mjög ákveðin hraði. Þeir halda áfram að bæta sig smátt og smátt, en ekki svo mikið lengur. Lögmál eðlisfræðinnar stóðu í vegi fyrir umbótum.

Nýr heimur hefur í för með sér ný vandamál. NUMA, NVM og arkitektúr hakk

Alexey: Hljómar mjög sanngjarnt. Með nýjum fjölkjarna örgjörvum komu ný vandamál. Áttir þú og samstarfsmenn þínir von á þessum vandamálum? Hefurðu kannski kynnt þér þær fyrirfram? Í bóklegu námi er oft ekki mjög auðvelt að spá fyrir um slíkt. Þegar vandamál komu upp, hvernig stóðust þau væntingar þínar og samstarfsmanna þinna? Eða voru þeir alveg nýir og þú og samstarfsmenn þínir þurftu að eyða miklum tíma í að leysa vandamál eins og þau birtust?

Vitaly: Ég skal bæta við spurningu Alexey: spáðir þú rétt fyrir um örgjörvaarkitektúrinn á meðan þú varst að læra kenninguna?

Maurice: Ekki 100%. En ég held að við samstarfsmenn mínir höfum gert gott starf við að spá fyrir um fjölkjarna með sameiginlegu minni. Ég held að við höfum spáð rétt fyrir um erfiðleikana við að þróa samhliða gagnakerfi sem starfa án læsinga. Slík gagnauppbygging hefur verið mikilvæg fyrir mörg forrit, þó ekki öll, en oft er það sem þú þarft í raun og veru ólæst gagnabygging. Þegar við fundum upp þá héldu margir því fram að þetta væri bull, að allt virkaði vel með lása. Við spáðum því nokkuð vel að það yrðu tilbúnar lausnir fyrir mörg forritunarvandamál og gagnauppbyggingarvandamál. Einnig voru flóknari vandamál, ss NUMA - misjafn aðgangur að minni. Reyndar komu þeir ekki einu sinni til greina fyrr en fjölkjarna örgjörvar voru fundnir upp vegna þess að þeir voru of sérstakir. Rannsóknarsamfélagið var að vinna að spurningum sem voru almennt fyrirsjáanlegar. Sum vélbúnaðarvandamál tengd sérstökum arkitektúr þurftu að bíða í vænginn - í raun útlit þessara arkitektúra. Til dæmis, enginn vann í raun á GPU-sértækum gagnabyggingum vegna þess að GPU voru ekki til þá. Þó mikið hafi verið unnið að SIMD, voru þessi reiknirit tilbúin til notkunar um leið og viðeigandi vélbúnaður varð fáanlegur. Hins vegar er ómögulegt að sjá allt fyrir.

Alexey: Ef ég skil rétt þá er NUMA nokkurs konar málamiðlun milli kostnaðar, frammistöðu og sumra annarra hluta. Einhverjar hugmyndir af hverju NUMA kom svona seint út?

Maurice: Ég held að NUMA sé til vegna vandamála með vélbúnaðinn sem notaður er til að framleiða minni: því lengra sem íhlutirnir eru, því hægar er að fá aðgang að þeim. Á hinn bóginn er annað gildi þessarar útdráttar einsleitni minni. Þannig að eitt af einkennum samhliða tölvuvinnslu er að allar útdrættir eru aðeins brotnar. Ef aðgengi væri fullkomlega einsleitt væri allt minni fjarlægt, en þetta er efnahagslega, og jafnvel líkamlega, ómögulegt. Þess vegna skapast þessi átök. Ef þú skrifar forritið þitt eins og minni væri einsleitt, þá mun það líklegast vera rétt. Í þeim skilningi að það mun ekki gefa röng svör. En frammistaða hennar mun heldur ekki ná stjörnunum af himni. Sömuleiðis ef þú skrifar spinlocks Án þess að skilja skyndiminni stigveldið mun lokunin sjálf vera rétt, en þú getur gleymt frammistöðu. Í vissum skilningi þarftu að skrifa forrit sem búa ofan á mjög einfaldri abstraktmynd, en þú verður að yfirbuga fólkið sem gaf þér þessa abstrakt: þú verður að vita að undir abstraktinni er einhver stigveldi minnis, að það er rútu á milli þín og þessarar minningar og svo framvegis. Þannig eru nokkur árekstrar á milli gagnlegra útdrátta hvers og eins, sem leiðir okkur að mjög áþreifanlegum og raunsæjum vandamálum.

Vitaly: Hvað með framtíðina? Geturðu spáð fyrir um hvernig örgjörvar munu þróast næst? Það er hugmynd að eitt af svörunum sé viðskiptaminni. Þú átt líklega eitthvað annað á lager.

Maurice: Það eru nokkrar stórar áskoranir framundan. Ein er sú að samhangandi minni er dásamleg abstrakt, en hún byrjar að brotna niður í sérstökum tilfellum. Svo, til dæmis, NUMA er lifandi dæmi um eitthvað þar sem þú getur haldið áfram að láta eins og samræmt minni sé til. Reyndar nei, framleiðni mun fá þig til að gráta. Á einhverjum tímapunkti verða arkitektar að yfirgefa hugmyndina um einn minnisarkitektúr; þú getur ekki þykjast að eilífu. Það þarf ný forritunarlíkön sem eru nógu auðveld í notkun og nógu öflug til að gera undirliggjandi vélbúnað skilvirkan. Þetta er mjög erfið málamiðlun, því ef þú sýnir forriturum arkitektúrinn sem raunverulega er notaður í vélbúnaðinum verða þeir brjálaðir. Það er of flókið og ekki flytjanlegt. Ef þú setur fram viðmót sem er of einfalt verður árangurinn lélegur. Þannig þarf að gera margar mjög erfiðar málamiðlanir til að útvega gagnleg forritunarlíkön sem eiga við raunverulega stóra fjölkjarna örgjörva. Ég er ekki viss um að einhver annar en sérfræðingur sé fær um að forrita á 2000 kjarna tölvu. Og nema þú sért að gera mjög sérhæfða eða vísindalega tölvuvinnslu eða dulritun eða eitthvað slíkt - það er samt alls ekki ljóst hvernig á að gera það rétt. 

Annað svipað svæði er sérhæfður arkitektúr. Grafískir hraðlar hafa verið til í langan tíma, en þeir eru orðnir að einhverju klassísku dæmi um hvernig hægt er að taka sérhæfða tegund af tölvum og keyra hana á sérstökum flís. Þetta bætir við eigin áskorunum: hvernig þú átt samskipti við slíkt tæki, hvernig þú forritar það. Ég hef nýlega unnið að vandamálum á svæðinu nálægt minnistölvu. Þú tekur lítinn örgjörva og límir hann við stóran hluta af minni þannig að minnið keyrir á L1 skyndiminni hraða og hefur síðan samskipti við tæki eins og TPU – örgjörvinn er upptekinn við að hlaða nýjum verkefnum inn í minniskjarnann þinn. Að hanna gagnaskipulag og samskiptareglur fyrir svona hluti er annað áhugavert dæmi. Þannig að sérsniðnir örgjörvar og vélbúnaður munu halda áfram að sjá umbætur í nokkuð langan tíma.

Alexey: Hvað með óstöðugt minni (óstöðugt minni)?

Maurice: Ó, þetta er annað frábært dæmi! NVM mun breyta miklu hvernig við lítum á hluti eins og gagnaskipulag. Óstöðugt minni, í vissum skilningi, lofar að hraða hlutunum virkilega. En það mun ekki gera lífið auðveldara vegna þess að flestir örgjörvar, skyndiminni og skrár eru enn óstöðug. Þegar þú byrjar eftir hrun verður ástand þitt og ástand minnis þíns ekki nákvæmlega það sama og fyrir hrun. Ég er mjög þakklátur fólkinu sem vinnur við NVM - það verður nóg fyrir rannsakendur að gera í langan tíma við að reyna að átta sig á réttmætisskilyrðum. Útreikningar eru réttar ef þeir geta lifað af hrun þar sem innihald skyndiminni og skráa glatast, en aðalminnið er ósnortið.

Þýðendur vs örgjörvar, RISC vs CISC, sameiginlegt minni vs skilaboðasending

Vladimir: Hvað finnst þér um „þýðendur vs. örgjörva“ vandamálið frá sjónarhóli leiðbeiningasetts? Leyfðu mér að útskýra fyrir þá sem ekki vita: ef við förum í skekkt minni eða eitthvað álíka gætum við notað mjög einfalt sett af skipunum og beðið þýðandann um að búa til flókinn kóða sem getur nýtt sér nýju kostina. Eða við getum farið í hina áttina: innleiða flóknar leiðbeiningar og biðja vinnsluaðilann að endurraða leiðbeiningunum og gera aðrar aðgerðir með þeim. Hvað finnst þér um það?

Maurice: Ég hef í rauninni ekki svar við þeirri spurningu. Þessi umræða hefur staðið í fjóra áratugi. Það var tími þegar á milli skammstafað sett af skipunum og flókið borgarastyrjöld voru háð með skipunum. Um tíma unnu RISC-menn, en svo endurbyggði Intel vélarnar sínar þannig að minni leiðbeiningar voru notaðar innbyrðis og allt settið var flutt út að utan. Þetta er líklega umræðuefni þar sem hver ný kynslóð verður að finna sínar eigin málamiðlanir og taka sínar eigin ákvarðanir. Það er mjög erfitt að spá fyrir um hvor af þessum hlutum verður betri. Þannig að allar spár sem ég geri mun vera sönn í ákveðinn tíma, og síðan röng aftur um stund, og svo aftur sönn.

Alexey: Hversu algengt er það fyrir iðnaðinn að sumar hugmyndir sigri í nokkra áratugi og tapi á þeim næstu? Eru önnur dæmi um slíkar reglubundnar breytingar?

Maurice: Hvað varðar dreifða tölvumál, þá er til fólk sem trúir á sameiginlegt minni og fólk sem trúir á skilaboð. Upphaflega, í dreifðri tölvuvinnslu, þýðir samhliða tölfræði að senda skilaboð. Svo uppgötvaði einhver að það var miklu auðveldara að forrita með sameiginlegu minni. Hin hliðin sagði að sameiginlegt minni væri of flókið, vegna þess að það krefst læsinga og þess háttar, svo það er þess virði að færa sig yfir á tungumál þar sem ekkert nema skilaboðasending er einfaldlega til. Einhver horfði á það sem kom út úr þessu og sagði: „vá, þessi skilaboðaútfærsla lítur mjög út eins og sameiginlegt minni, vegna þess að þú býrð til fullt af þessum litlu einingum, þær senda skilaboð hvert til annars og þær allar samlæsing„Við skulum búa til betri samnýtt minnisgagnagrunn! Allt er þetta endurtekið aftur og aftur og það er ómögulegt að segja að einhver flokkanna hafi örugglega rétt fyrir sér. Ein hliðin mun alltaf ráða því um leið og önnur þeirra næstum vinnur, finna menn aftur og aftur upp leiðir til að bæta hina.

Listin að skrifa brothættan fjölþráðan kóða

Alexey: Þetta er mjög áhugavert. Til dæmis, þegar við skrifum kóða, sama hvaða forritunarmál, þurfum við venjulega að búa til abstrakt eins og frumur sem hægt er að lesa og skrifa. En í raun, á einhverju líkamlegu stigi, gæti þetta litið út eins og að senda skilaboð yfir vélbúnaðarrútu á milli mismunandi tölva og annarra tækja. Það kemur í ljós að vinna er að gerast á báðum abstraktstigum í einu.

Maurice: Það er alveg rétt að sameiginlegt minni er byggt á skilaboðasendingum - rútum, skyndiminni og svo framvegis. En það er erfitt að skrifa forrit með því að senda skilaboð, svo vélbúnaðurinn lýgur vísvitandi og lætur eins og þú hafir einhvers konar einsleitt minni. Þetta mun auðvelda þér að skrifa einföld, rétt forrit áður en árangur fer að versna. Þá muntu segja: það lítur út fyrir að það sé kominn tími til að eignast vini með skyndiminni. Og þá byrjarðu að hafa áhyggjur af staðsetningu skyndiminni og þaðan fer það. Í vissum skilningi ertu að hakka í abstrakt: þú veist að þetta er ekki bara flatt, samræmt minni og þú ætlar að nota þá þekkingu til að skrifa skyndiminni-væn forrit. Þetta er það sem þú verður að gera í raunverulegum vandamálum. Þessi átök milli ljúfu, einföldu, fínu útdráttar sem þú hefur fengið og hræðilega flókinnar útfærslu undirliggjandi vélbúnaðar er þar sem allir munu gera sína eigin málamiðlun. Ég á bók um fjölgjörva og samstillingu og á einum tímapunkti ætlaði ég að skrifa kafla um uppbyggingu gagna í java.util.samhliða. Ef þú horfir á þá, hluti eins og listar með aðgerðum Þetta eru mögnuð listaverk. (Athugasemd ritstjóra: Þeir sem þekkja Java tungumálið ættu að minnsta kosti að kíkja á útfærsluna ConcurrentSkipListMap, þú getur skoðað tenglana á API и frumkóða). En frá mínu sjónarhorni væri óábyrgt að sýna nemendum þær, því svona gagnastrúktúr er svona eins og gaur í sirkus sem keyrir á járnum yfir bjarnargryfju. Ef þú breytir jafnvel einu litlu smáatriði mun öll uppbyggingin hrynja. Þessi kóði er mjög fljótur og glæsilegur bara vegna þess að hann er skrifaður fullkomlega, en minnsta breyting mun leiða til algjörrar bilunar. Ef ég gef þessum kóða sem dæmi fyrir nemendur munu þeir strax segja: Ég get líka gert það! Og þá mun einhver flugvél hrapa eða kjarnaofn springur og ég verð sekur um að gefa þeim of miklar upplýsingar á röngum tíma.

Alexey: Þegar ég var aðeins yngri reyndi ég oft að rannsaka frumkóðann Doug Lee, til dæmis, java.util.samhliða, vegna þess að það er opinn uppspretta, það er mjög auðvelt að finna og reyna að skilja hvað er að gerast þar. Það kom ekki mjög vel út: oft er algjörlega óljóst hvers vegna Doug ákvað að gera eitthvað á þennan hátt þegar allir aðrir gera það öðruvísi. Hvernig útskýrir þú þessa hluti fyrir nemendum þínum? Er til einhver sérstök rétt leið til að lýsa sérstökum upplýsingum um harðkjarna algrím, til dæmis? Hvernig gerir maður þetta?

Maurice: Teiknakennarar eru með klisju sem þeir muna fyrst: ef þú vilt teikna eins og Picasso þarftu fyrst að læra að teikna einfaldar raunsæjar myndir og aðeins þegar þú þekkir reglurnar geturðu byrjað að brjóta þær. Ef þú byrjar á því að brjóta reglurnar strax þá lendirðu í rugli. Í fyrsta lagi kenni ég nemendum hvernig á að skrifa einfaldan, réttan kóða án þess að hafa áhyggjur af frammistöðu. Það sem ég er að segja er að það eru flókin tímasetningarvandamál sem leynast hér, svo ekki hafa áhyggjur af skyndiminni, ekki hafa áhyggjur af minnislíkönum, bara vertu viss um að allt virki rétt. Þetta er nú þegar nógu erfitt: nútíma forritun er ekki auðveld í sjálfu sér, sérstaklega fyrir nýja nemendur. Og þegar þeir hafa innsæi um hvernig eigi að skrifa réttu forritin, segi ég: líttu á þessar tvær spinlock útfærslur: önnur er mjög hæg og hin er heldur ekki mjög, en betri. Hins vegar, stærðfræðilega, eru reikniritarnir tveir eins. Reyndar notar einn þeirra skyndiminni. Annar þeirra keyrir á staðbundnum gögnum í skyndiminni og hinn framkvæmir endurtekið aðgerðir yfir rútuna. Þú getur ekki skrifað skilvirkan kóða ef þú skilur ekki hvað það er og veist ekki hvernig á að brjóta útdráttinn og skoða undirliggjandi uppbyggingu. En þú munt ekki geta byrjað að gera þetta strax. Það er fólk sem byrjar að gera þetta strax og trúir á sína eigin snilld, yfirleitt endar það illa því það skilur ekki lögmálin. Enginn teiknar eins og Picasso eða skrifar forrit eins og Doug Lee nýkominn úr háskóla fyrstu vikuna sína. Það tekur mörg ár að ná þessu þekkingarstigi.

Alexey: Það kemur í ljós að þú skiptir vandamálinu í tvo hluta: sá fyrsti er réttmæti, hinn er frammistaða?

Maurice: Nákvæmlega. Og, nákvæmlega í þessari röð. Hluti af vandamálinu er að nýnemar skilja ekki að erfitt er að ná réttmæti. Við fyrstu sýn segja þeir: þetta er augljóslega rétt, það eina sem er eftir er að flýta þessu. Svo stundum segi ég þeim frá upphaflega rangu reikniriti eins og það væri rétt.

Hvernig á að kenna nemendum að skrifa flókinn fjölþráðan kóða

Alexey: Bara til að sjá hvort þeir skynja gripinn?

Maurice: Ég vara alltaf fyrirfram við því að stundum mun ég stinga upp á röngum reikniritum. Þú ættir ekki að blekkja fólk. Ég legg til að þeir taki upplýsingum með fyrirvara. Ef ég segi eitthvað og segi: "sjáðu, þetta er augljóslega rétt" - þetta er merki um að einhvers staðar séu þeir að reyna að blekkja þig og þú ættir að byrja að spyrja spurninga. Næst reyni ég að hvetja nemendur til að halda áfram að spyrja spurninga og þá legg ég til: „Hvað gerist ef við látum hlutina eins og þeir eru?“ Og þeir sjá strax mistökin. En að sannfæra nemendur um að þeir þurfi að hafa áhyggjur af réttmæti er miklu erfiðara en það virðist við fyrstu sýn. Margir þessara nemenda koma með reynslu af forritun í menntaskóla, sumir hafa fengið vinnu og stundað forritun þar og allir eru þeir fullir af sjálfstrausti. Þetta er eitthvað eins og herinn: þú verður fyrst að skipta um skap þeirra til að sannfæra þá um að nálgast þolinmóður að leysa vandamál sem upp koma. Eða kannski er þetta eins og búddamunkar: fyrst læra þeir að rökræða um réttmæti, og þegar þeir skilja leiðir til að rökræða um réttmæti, þá er þeim leyft að fara á næsta stig og byrja að hafa áhyggjur af frammistöðu.

Alexey: Það er að segja, stundum sýnirðu nemendum óvirk dæmi, þökk sé því færðu endurgjöf sem sýnir hvort þeir skilji kjarna vandamálsins, hvort þeir geti fundið rangan kóða og ranga niðurstöðu. Svo, gera nemendur þig venjulega ánægða eða sorgmædda?

Maurice: Nemendur finna næstum alltaf mistökin á endanum. Ef þeir leita of hægt spyr ég leiðandi spurninga og hér er mikilvægt að skilja að ef þú blekkir þá aldrei, þá munu þeir hugsalaust skynja orð þín sem hinn endanlega sannleika. Þá leiðast þeim og fara að sofna á meðan þeir lesa Facebook á fartölvunni sinni í kennslustund. En þegar þú segir þeim fyrirfram að þeir verði sviknir, og þeir munu líta heimskulega út ef þeir skynja ekki bragð, verða þeir miklu vakandi. Þetta er gott á mismunandi hátt. Ég vil að nemendur efist ekki aðeins um skilning sinn á málinu heldur efist um vald kennarans. Hugmyndin er sú að nemandi geti rétt upp hönd hvenær sem er og sagt: Ég held að það sem þú sagðir núna sé rangt. Það er mikilvægt námstæki. Ég vil ekki að neinn af nemendunum sitji og hugsi þegjandi með sjálfum sér: allt virðist þetta algjört bull, en að rétta upp hönd er of skelfilegt, og alla vega, hann er prófessor, svo allt sem hann segir er sannleikurinn. Þess vegna, ef þeir eru varaðir við því fyrirfram að ekki sé allt sem sagt er endilega satt, hafa þeir hvata til að gefa efninu meiri gaum. Ég tek það skýrt fram að það er í lagi að rétta upp hönd og spyrja spurninga. Spurningin þín kann að hljóma heimskulega eða barnaleg, en þannig vakna oft bestu spurningarnar.

Alexey: Mjög áhugavert. Venjulega er fólk með einhvers konar sálræna hindrun sem gerir því ekki kleift að spyrja prófessors. Sérstaklega ef það er mikið af fólki í salnum og allir eru hræddir um að það taki allan tíma þessa fólks að ræða þessa heimskulegu spurningu þína. Eru einhverjar brellur til að takast á við þetta?

Maurice: Ég stoppa oft og spyr klassískra spurninga. Hvort fullyrðing væri rétt eða hvernig þau myndu leysa vandamálið sem rætt er um. Þetta er lykilaðgerð, sérstaklega í upphafi kennslustundar þegar fólk skammast sín fyrir að segja jafnvel það minnsta. Þú spyrð nemendur spurningar og segir ekkert meira. Það er þögn, allir verða svolítið spenntir, spennan eykst, svo skyndilega þolir einhver þetta ekki, brotnar niður og segir svarið. Svona snýrðu dæminu við: að halda áfram að þegja verður erfiðara og óþægilegra en að svara! Þetta er venjulegt uppeldisbragð. Sérhver kennari í heiminum ætti að vita hvernig á að gera þetta.

Alexey: Nú höfum við frábæran titil fyrir þetta viðtal: "það er auðveldara að svara en að þegja."

Vitaly: Leyfðu mér að spyrja aftur. Þú ert að vinna að staðfræðilegum sönnunum. Hvernig fórstu að taka þátt í þessu, því dreifð tölvumál og staðfræði eru allt aðrir hlutir!

Maurice: Það er falin tenging þarna. Þegar ég var nemandi í stærðfræði lærði ég hreina stærðfræði. Ég hafði engan áhuga á tölvum fyrr en náminu lauk og ég stóð frammi fyrir því að þurfa að leita mér að vinnu. Sem nemandi lærði ég algebruíska staðfræði. Mörgum árum síðar, á meðan unnið var að vandamáli sem hringt var í "k-Set samningsvandamál", ég notaði línurit til að líkja vandamálinu og eins og það leit út á þeim tíma hafði ég fundið lausn. Það þurfti bara að setjast niður og fara í kringum talninguna. Reyndu að finna viðeigandi svar á þessu grafi. En reikniritið mitt virkaði ekki: það kom í ljós að hann myndi hlaupa í hringi að eilífu. Því miður var ekki hægt að útskýra allt þetta á formlegu máli graffræðinnar - því sem allir tölvunarfræðingar þekkja. Og svo minntist ég þess að fyrir mörgum árum, aftur í staðfræðitímum, notuðum við hugtakið "einfalt flókið", sem er alhæfing á línuritum í hærri víddir. Þá spurði ég sjálfan mig: hvað myndi gerast ef við endurformuðum vandamálið í skilmálar af einföldum fléttum? Þetta varð lykilstundin. Með því að nota öflugri formhyggju verður vandamálið allt í einu miklu einfaldara. Menn börðust gegn því í langan tíma og notuðu línurit, en gátu ekki gert neitt. Og jafnvel núna geta þeir það ekki - rétta svarið reyndist ekki vera reiknirit, heldur sönnun þess að ómögulegt væri að leysa vandamálið. Það er, slíkt reiknirit er einfaldlega ekki til. En öll sönnun um ómöguleika byggt annaðhvort á einföldum fléttum eða á hlutum sem menn þóttust ekki telja einfaldar fléttur. Bara vegna þess að þú kallar eitthvað nýtt nafn, tapar það ekki kjarna sínum.

Vitaly: Það kemur í ljós að þú varst bara heppinn?

Maurice: Fyrir utan heppni, er það líka reiðubúin. Þetta þýðir að þú ættir ekki að gleyma „gagnslausu“ hlutunum sem þú lærðir áðan. Því ónýtari hlutir sem þú lærir, því fleiri hugmyndir geturðu dregið fram þegar þú stendur frammi fyrir nýju vandamáli. Svona leiðandi mynstursamsvörun er mikilvæg vegna þess að... Við skulum gera þetta, þetta er keðja: í fyrstu uppgötvaði ég að línuritin virkuðu alls ekki eða virkuðu alls ekki, það minnti mig á eitthvað frá atburðunum átta. árum síðan og námsárin mín, þegar við rannsökuðum allar þessar einföldu fléttur. Þetta gerði mér aftur á móti kleift að finna gömlu fræðibókina mína og hlaða henni aftur inn í hausinn á mér. En ef ekki hefði verið fyrir þessi gamla vitneskju hefði ég aldrei náð neinum árangri í að leysa upprunalega vandamálið.

Ný útgáfa bókarinnar „The Art of Multiprocessor Programming“

Alexey: Þú sagðir nokkur orð um bókina þína. Það er líklega ekki versta leyndarmálið að þú skrifaðir frægustu bók heims um fjölþráða, "Listin að fjölgjörva forritun". Það er nú þegar um 11 ára gamalt og síðan þá hefur það aðeins verið gefið út  endurskoðuð endurútgáfa. Verður önnur útgáfa?

Maurice: Það er gott að þú spurðir! Það verður mjög fljótlega, eftir þrjá mánuði eða svo. Höfundar eru tveir í viðbót, við bættum við miklu meira efni, bættum kaflann um fork/join parallelism, skrifuðum kafla um MapReduce, bættum við fullt af nýjum hlutum og hentum út óþarfa hlutum - eitthvað sem var mjög áhugavert þegar þetta var skrifað fyrsta útgáfan, en er ekki lengur til í dag. Útkoman var mjög alvarlega endurskoðuð bók.

Alexey: Allt hefur þegar verið gert, allt sem er eftir er að gefa það út?

Maurice: Nokkrir kaflar vantar enn vinnu. Útgefandi okkar (sem ég held nú þegar hatar okkur) er enn að reyna að koma þeim skilaboðum á framfæri að við ættum að vinna hraðar. Við erum langt á eftir áætlun. Fræðilega séð hefðum við getað gert þessa bók nokkrum árum fyrr.

Alexey: Er einhver möguleiki á að fá nýja útgáfu af bókinni fyrir jól?

Maurice: Þetta er markmið okkar! En ég hef spáð sigri svo oft að enginn trúir mér lengur. Þú ættir líklega ekki að treysta mér of mikið í þessu máli heldur.

Alexey: Í öllum tilvikum eru þetta frábærar fréttir. Mér leist mjög vel á fyrstu útgáfu bókarinnar. Það má segja að ég sé aðdáandi.

Maurice: Ég vona að nýja útgáfan verði verðug eldmóðs þíns, takk fyrir!

Hvernig viðskiptaminni var fundið upp

Vitaly: Næsta spurning er um viðskiptaminni. Eftir því sem mér skilst ertu brautryðjandi á þessu sviði, þú fann þetta upp á þeim tíma sem enginn var að hugsa um slíkt. Hvers vegna ákvaðstu að flytja inn á þennan vettvang? Hvers vegna virtust viðskipti mikilvæg fyrir þig? Hélt þú að einhvern tíma yrðu þau innleidd í vélbúnað?

Maurice: Ég hef vitað um viðskipti síðan ég útskrifaðist á rannsóknardögum mínum.

Vitaly: Já, en þetta eru mismunandi viðskipti!

Maurice: Ég vann með Elliott Moss við sorphirðu sem ekki hindrar. Vandamálið okkar var að við vildum breyta nokkrum orðum í minninu frumeindafræðilega og þá myndu reikniritin verða mjög einföld og að minnsta kosti sum þeirra verða skilvirkari. Notar bera saman-og-skipta í hleðsla-tengil/verslun-skilyrtsem samhliða arkitektúrinn veitir, það er hægt að gera eitthvað, en það er mjög óhagkvæmt og ljótt vegna þess að þú þyrftir að takast á við óstefnulög. Mig langar að breyta minnisorðum og ég þarf að skipta því ég get bara breytt einum bendili, þannig að þau þurfa að benda á einhvers konar möppulíka uppbyggingu. Við töluðum um hversu frábært það væri ef við gætum breytt vélbúnaðinum þannig að hann gæti tekið upp samtímis. Elliott virðist hafa tekið eftir þessu: ef þú horfir á samhengisreglur skyndiminni, þá veita þær nú þegar flesta nauðsynlega virkni. Í bjartsýnum viðskiptum mun skyndiminnissamræmissamskiptareglur taka eftir því að það eru tímasetningarátök og skyndiminni verður ógilt. Hvað gerist ef þú keyrir færslu í skyndiminninu þínu í vangaveltum og notar samhengisreglur til að greina árekstra? Íhugandi vélbúnaðararkitektúr var auðvelt að hanna. Svo við skrifuðum þetta allra fyrstu útgáfuna um viðskiptaminni. Á sama tíma var fyrirtækið sem ég var að vinna hjá, Digital Equipment Corporation, að búa til nýjan 64-bita örgjörva sem heitir Alpha. Svo ég fór og hélt kynningu fyrir Alpha þróunarhópnum um ótrúlegt viðskiptaminni okkar og þeir spurðu: Hversu miklar aukatekjur myndi fyrirtækið okkar fá ef við bættum þessu öllu beint við örgjörvann? Og ég hafði nákvæmlega ekkert svar við þessu, því ég er tæknifræðingur, ég er ekki markaðsfræðingur. Ég hafði í raun engu að svara. Þeir voru ekki mjög hrifnir af því að ég vissi ekki neitt.

Vitaly: Milljarðar! Segðu bara milljarða!

Maurice: Já, það er það sem ég hefði átt að segja. Núna á tímum sprotafyrirtækja og alls kyns veit ég hvernig á að skrifa viðskiptaáætlun. Að þú getir logið aðeins til um stærð hugsanlegs hagnaðar þíns. En í þá daga virtist þetta barnalegt, svo ég sagði bara: "Ég veit það ekki." Ef þú skoðar sögu útgáfunnar um viðskiptaminni muntu taka eftir því að eftir eitt ár voru nokkrar tilvísanir í það og síðan í um tíu ár vitnaði enginn í þetta blað. Tilvitnanir birtust í kringum 2004, þegar sannir fjölkjarna birtust. Þegar fólk uppgötvaði að það að skrifa samhliða kóða gæti þénað peninga, hófust nýjar rannsóknir. Ravi Rajwar skrifaði grein, sem á einhvern hátt kynnti hugtakið viðskiptaminni fyrir almennum straumi. (Athugasemd ritstjóra: Það er til önnur útgáfa af þessari grein, gefin út árið 2010 og ókeypis aðgengileg sem PDF). Allt í einu áttaði fólk sig á því nákvæmlega hvernig hægt væri að nota þetta allt, hvernig hægt væri að flýta fyrir hefðbundnum reikniritum með læsingum. Gott dæmi um eitthvað sem áður fyrr virtist bara áhugavert fræðilegt vandamál. Og já, ef þú hefðir spurt mig á þeim tíma hvort ég teldi að þetta allt yrði mikilvægt í framtíðinni, þá hefði ég sagt: auðvitað, en hvenær nákvæmlega er ekki ljóst. Kannski eftir 50 ár? Í reynd reyndist þetta aðeins vera áratugur. Það er mjög gott þegar maður gerir eitthvað og eftir aðeins tíu ár tekur fólk eftir því.

Hvers vegna það er þess virði að stunda rannsóknir á sviði dreifðrar tölvunar

Vitaly: Ef við tölum um nýjar rannsóknir, hvað myndir þú ráðleggja lesendum - dreifð tölvumál eða fjölkjarna og hvers vegna? 

Maurice: Þessa dagana er auðvelt að fá fjölkjarna örgjörva, en það er erfiðara að setja upp raunverulegt dreift kerfi. Ég byrjaði að vinna í þeim vegna þess að mig langaði að gera eitthvað annað en doktorsritgerðina mína. Þetta er ráðið sem ég gef alltaf nýjum nemendum: ekki skrifa framhald af ritgerðinni þinni - reyndu að fara í nýja átt. Og líka, multithreading er auðvelt. Ég get gert tilraunir með minn eigin gaffal í gangi á fartölvunni minni án þess að fara fram úr rúminu. En ef ég vildi allt í einu búa til alvöru dreifð kerfi þyrfti ég að vinna mikið, laða að nemendur o.s.frv. Ég er latur manneskja og vil frekar vinna á fjölkjarna. Það er líka auðveldara að gera tilraunir á fjölkjarna kerfum en að gera tilraunir á dreifðum kerfum, því jafnvel í heimskulegu dreifðu kerfi eru of margir þættir sem þarf að stjórna.

Vitaly: Hvað ertu að gera núna, að rannsaka blockchain? Hvaða greinar ættir þú að borga eftirtekt til fyrst?

Maurice: Nýlega birtist mjög góð grein, sem ég skrifaði ásamt nemanda mínum, Vikram Saraf, sérstaklega fyrir erindi kl Tokenomcs ráðstefna í París fyrir þremur vikum. Þetta er grein um hagnýt dreifð kerfi, þar sem við leggjum til að Ethereum sé margþráður. Eins og er eru snjallir samningar (kóði sem keyrir á blockchain) framkvæmdir í röð. Við skrifuðum grein áðan sem talaði um leið til að nota spákaupmennsku til að flýta fyrir ferlinu. Við tókum fullt af hugmyndum úr viðskiptaminni hugbúnaðar og sögðum að ef þú gerir þessar hugmyndir að hluta af Etherium sýndarvélinni, þá mun allt virka hraðar. En til þess er nauðsynlegt að ekki séu gagnaátök í samningunum. Og þá gerðum við ráð fyrir að í raunveruleikanum væru í raun engin slík átök. En við áttum enga leið til að komast að því. Svo datt okkur í hug að við hefðum næstum áratug af raunverulegri samningssögu í höndunum, svo við hentum Ethereum blockchain og spurðum okkur sjálf: hvað myndi gerast ef þessar sögulegu færslur væru framkvæmdar samhliða? Við fundum verulega aukningu á hraða. Í árdaga Ethereum jókst hraðinn mjög mikið, en í dag er allt nokkuð flóknara, vegna þess að það eru færri samningar og líkurnar á átökum um gögn sem krefjast raðgreiningar hafa orðið meiri. En allt er þetta tilraunavinna með raunveruleg söguleg gögn. Það skemmtilega við blockchain er að það man allt að eilífu, svo við getum farið aftur í tímann og rannsakað hvað hefði gerst ef við hefðum notað mismunandi reiknirit til að keyra kóðann. Hvernig hefði fólki í fortíðinni líkað nýja hugmyndin okkar? Slíkar rannsóknir er miklu auðveldara og skemmtilegra að gera, því það er hlutur sem fylgist með öllu og skráir allt. Þetta er nú þegar eitthvað líkara félagsfræði en þróun reiknirita.

Hefur þróun reiknirita stöðvast og hvernig á að halda áfram?

Vitaly: Kominn tími á síðustu fræðilegu spurninguna! Finnst þér eins og framfarir í samkeppnishæfni gagnaskipulagi minnki með hverju ári? Telur þú að við séum komin á hásléttu í skilningi okkar á uppbyggingu gagna eða verða einhverjar meiriháttar umbætur? Kannski eru einhverjar sniðugar hugmyndir sem geta gjörbreytt öllu?

Maurice: Við gætum hafa náð hásléttu í gagnauppbyggingu fyrir hefðbundinn arkitektúr. En gagnauppbygging fyrir nýja arkitektúr er enn mjög efnilegt svæði. Ef þú vilt búa til gagnaskipulag fyrir, til dæmis, vélbúnaðarhraðla, þá eru gagnauppbyggingin fyrir GPU mjög frábrugðin gagnauppbyggingunni fyrir CPU. Þegar þú þróar gagnaskipulag fyrir blokkakeðjur þarftu að hassa gagnastykki og setja þau síðan í eitthvað eins og Merkle tré, til að koma í veg fyrir fölsun. Mikil umsvif hafa verið á þessu svæði undanfarið og hafa margir unnið mjög gott starf. En ég held að það sem muni gerast sé að ný arkitektúr og ný forrit muni leiða til nýrra gagnaskipulags. Eldri forrit og hefðbundinn arkitektúr - það er kannski ekki mikið pláss fyrir könnun lengur. En ef þú ferð af alfaraleið og lítur út fyrir brúnirnar, muntu sjá brjálaða hluti sem almenningur tekur ekki alvarlega - þar gerist í raun allt spennandi.

Vitaly: Þess vegna, til þess að vera mjög frægur rannsakandi, þurfti ég að finna upp minn eigin arkitektúr :)

Maurice: Þú getur "stelað" nýjum arkitektúr einhvers annars - það virðist miklu auðveldara!

Vinnur við Brown University

Vitaly: Gætirðu sagt okkur meira um Brown háskólahvar vinnur þú? Ekki er mikið vitað um hann í tengslum við upplýsingatækni. Minna en um MIT, til dæmis.

Maurice: Brown University er einn af elstu háskólum Bandaríkjanna. Ég held að aðeins Harvard sé aðeins eldri. Brown er hluti af svokölluðu Ivy League, sem er safn átta elstu háskóla. Harvard, Brown, Cornell, Yale, Columbia, Dartmouth, Pennsylvania, Princeton. Þetta er svona gamall, lítill og svolítið aristókratískur háskóli. Megináherslan er á frjálsa listkennslu. Það er ekki að reyna að vera eins og MIT, MIT er mjög sérhæft og tæknilegt. Brown er frábær staður til að læra rússneskar bókmenntir eða klassískar grísku, og auðvitað tölvunarfræði. Þar er lögð áhersla á alhliða menntun. Flestir nemendur okkar fara á Facebook, Apple, Google - þannig að ég held að nemendur okkar eigi ekki í neinum vandræðum með að finna vinnu í greininni. Ég fór að vinna hjá Brown vegna þess að ég hafði áður unnið hjá Digital Equipment Corporation í Boston. Þetta var fyrirtæki sem fann upp marga áhugaverða hluti en afneitaði mikilvægi einkatölva. Fyrirtæki með erfið örlög, stofnendur þess voru einu sinni ungir byltingarmenn, þeir lærðu ekkert og gleymdu engu, og þannig breyttust þeir frá byltingarmönnum í afturhaldsmenn innan um tugi ára. Þeim fannst gaman að grínast með að einkatölvur ættu heima í bílskúrnum - auðvitað yfirgefinn bílskúr. Það er alveg augljóst að þau voru eyðilögð af sveigjanlegri fyrirtækjum. Þegar ljóst var að fyrirtækið var í vandræðum hringdi ég í vin minn í Brown, sem er um klukkutíma fyrir utan Boston. Ég vildi ekki fara frá Boston á þessum tíma vegna þess að það var ekki mikið af lausum í öðrum háskólum. Þetta var tími þegar það voru ekki eins mörg störf í tölvunarfræði og nú. Og Brown átti opið, ég þurfti ekki að flytja heimilið mitt, ég þurfti ekki að flytja fjölskylduna mína og ég elska virkilega að búa í Boston! Þannig ákvað ég að fara til Brown. Mér líkar það. Nemendurnir eru yndislegir, svo ég hef aldrei reynt að fara annað. Á hvíldarleyfinu mínu vann ég hjá Microsoft í eitt ár, fór í Technion í Haifa í eitt ár og núna verð ég hjá Algorand. Ég á marga samstarfsmenn alls staðar og því skiptir líkamleg staðsetning kennslustofanna okkar ekki svo miklu máli. En það sem skiptir mestu máli eru nemendurnir, þeir eru bestir hér. Ég hef aldrei reynt að fara eitthvað annað því ég er mjög ánægður hér.

En þrátt fyrir frægð Brown í Bandaríkjunum er hann furðu óþekktur erlendis. Eins og þið sjáið geri ég nú allt sem hægt er til að leiðrétta þessa stöðu mála.

Munur á rannsóknum við háskóla og innan fyrirtækis

Vitaly: Allt í lagi, næsta spurning er um stafrænan búnað. Þú varst þarna sem rannsakandi. Hver er munurinn á því að vinna í R&D deild stórfyrirtækis og að vinna í háskóla? Hverjir eru kostir og gallar?

Maurice: Í tuttugu ár vann ég hjá Microsoft, vann náið með starfsmönnum Sun Microsystems, Oracle, Facebook og nú Algorand. Út frá þessu öllu vil ég meina að hægt sé að stunda fyrsta flokks rannsóknir bæði í fyrirtækjum og í háskólum. Mikilvægi munurinn er sá að í fyrirtæki vinnur þú með samstarfsfólki. Ef ég er skyndilega með hugmynd að verkefni sem er ekki enn til þá verð ég að sannfæra jafnaldra mína um að þetta sé góð hugmynd. Ef ég er í Brown, þá get ég sagt nemendum mínum: við skulum vinna að andþyngdarafl! Þeir munu annað hvort fara til einhvers annars eða taka að sér verkefni. Já, ég þarf að finna styrki, ég þarf að skrifa styrkumsókn og svo framvegis. Í öllu falli verða nemendur alltaf margir og þú munt geta tekið ákvarðanir einhliða. En í háskóla muntu líklegast ekki vinna með fólki á þínu stigi. Í heimi iðnaðarrannsókna þarftu fyrst að sannfæra alla um að verkefnið þitt sé þess virði að taka að sér. Ég get ekki pantað neinum neitt. Og báðar þessar vinnuaðferðir eru dýrmætar, því ef þú ert að vinna að einhverju virkilega brjáluðu og erfitt er að sannfæra samstarfsmenn þína, þá er auðveldara að sannfæra útskriftarnema - sérstaklega ef þú ert að borga þeim. Ef þú ert að vinna að einhverju sem krefst mikillar reynslu og djúprar sérfræðikunnáttu, þá þarftu samstarfsmenn sem geta sagt „nei, það vill svo til að ég skil á þessu sviði og hugmyndin þín er slæm, hún mun ekki virka.“ Þetta er mjög gagnlegt hvað varðar tímasóun. Einnig, ef þú eyðir miklum tíma á iðnaðarrannsóknarstofum í að skrifa skýrslur, þá eyðirðu þessum tíma í háskóla í að reyna að finna peninga. Ef ég vil að nemendur geti farið eitthvað verð ég að finna peningana fyrir það annars staðar. Og því mikilvægari sem staða þín í háskólanum er, því meiri tíma þarftu að eyða í að safna peningum. Svo nú veistu við hvað ég vinn - faglegur betlari! Eins og einn af þessum munkum sem gengur um með fórnardisk. Almennt séð bæta þessar tvær aðgerðir hvor aðra upp. Þess vegna reyni ég að lifa og halda fótunum á jörðinni í báðum heimum.

Vitaly: Það virðist sem erfiðara sé að sannfæra fyrirtæki en að sannfæra aðra vísindamenn.

Maurice: Erfiðara og miklu meira. Þar að auki, á mismunandi sviðum er það öðruvísi: Sumir stunda heildarrannsóknir, á meðan aðrir einblína á efni þeirra. Ef ég færi á Microsoft eða Facebook og segði: við skulum gera andstæðingur-þyngdarafl, þá myndu þeir varla meta það. En ef ég segði nákvæmlega það sama við útskriftarnema mína, þá myndu þeir líklegast fara að vinna strax, þó að nú myndi ég lenda í vandræðum - þegar allt kemur til alls þarf ég að finna peninga fyrir þessu. En svo lengi sem þú vilt gera eitthvað sem samræmist markmiðum fyrirtækisins getur það fyrirtæki verið mjög góður staður til að gera rannsóknir.

Hydra og SPTDC

Vitaly: Spurningum mínum er að ljúka, svo við skulum tala aðeins um væntanlega ferð til Rússlands.

Maurice: Já, ég hlakka til að fara aftur til Pétursborgar.

Alexey: Það er mér heiður að hafa þig hjá okkur á þessu ári. Þetta er í annað skiptið sem þú ert í Sankti Pétursborg, ekki satt?

Maurice: Nú þegar sá þriðji!

Alexey: Ég skil, en SPTDC - örugglega sá seinni. Síðast var hringt í skólann SPTCC, við höfum nú breytt einum staf (C í D, Samhliða í Dreift) til að undirstrika að það eru fleiri svæði sem tengjast sérstaklega dreifðri tölvuvinnslu á þessu ári. Geturðu sagt nokkur orð um skýrslur þínar í skólanum og Hydra ráðstefna?

Maurice: Í skólanum langar mig að tala um grunnatriði blockchain og hvað þú getur gert við það. Mig langar að sýna fram á að blokkkeðjur eru mjög svipaðar fjölþráða forrituninni sem við þekkjum, en með sínum eigin blæbrigðum og það er mikilvægt að skilja þennan mun. Ef þú gerir mistök í venjulegu vefforriti er það bara pirrandi. Ef þú skrifar gallakóða í fjárhagsforriti mun einhver örugglega stela öllum peningunum þínum. Þetta eru allt mismunandi stig ábyrgðar og afleiðinga. Ég mun tala aðeins um vinnusönnun, um snjalla samninga, um viðskipti milli mismunandi blokkakeðja.

Það verða aðrir fyrirlesarar sem vinna við hliðina á mér sem hafa líka eitthvað að segja um blockchain og við komumst að samkomulagi um að samræma hvert annað svo sögurnar okkar passi vel saman. En fyrir verkfræðiskýrsluna vil ég segja breiðum áhorfendum skiljanlega útskýringu á því hvers vegna þú ættir ekki að trúa öllu sem þú heyrir um blokkakeðjur, hvers vegna blokkkeðjur eru frábært svið, hvernig það passar öðrum þekktum hugmyndum og hvers vegna við ættum að líta djarflega. til framtíðar.

Alexey: Þar að auki vil ég segja að þetta mun ekki eiga sér stað í formi fundi eða notendahóps eins og það var fyrir tveimur árum. Við ákváðum að halda litla ráðstefnu nálægt skólanum. Ástæðan er sú að eftir að hafa átt samskipti við Peter Kuznetsov komumst við að því að skólinn er takmarkaður við hundrað, kannski 120 manns. Á sama tíma eru margir verkfræðingar sem vilja eiga samskipti við þig, mæta á kynningar og hafa almennt áhuga á efninu. Af þessum sökum höfum við stofnað nýja ráðstefnu heitir Hydra. Við the vegur, einhverjar hugmyndir hvers vegna Hydra?

Maurice: Vegna þess að það verða sjö ræðumenn? Og hægt er að höggva höfuðið af þeim og nýir hátalarar munu vaxa í þeirra stað?

Alexey: Frábær hugmynd til að rækta nýja hátalara. En í raun er hér saga. Munið eftir goðsögninni um Ódysseif, þar sem hann þurfti að sigla á milli Scylla og Charybdis? Hydra er eitthvað eins og Charybdis. Sagan er sú að einu sinni talaði ég á ráðstefnu og talaði um multithreading. Það voru aðeins tvö lög á þessari ráðstefnu. Í upphafi skýrslunnar sagði ég við áhorfendur í salnum að þeir ættu nú að velja á milli Scylla og Charybdis. Andadýrið mitt er Charybdis vegna þess að Charybdis hefur mörg höfuð og þemað mitt er margþráður. Svona birtast nöfn ráðstefnur.

Hvað sem því líður erum við uppiskroppa með spurningar og tíma. Svo, takk, vinir, fyrir frábært viðtal, og sjáumst í SPTDC School og Hydra 2019!

Þú getur haldið áfram samtali þínu við Maurice á Hydra 2019 ráðstefnunni sem haldin verður 11.-12. júlí 2019 í St. Pétursborg. Hann mun koma með skýrslu „Blokkakeðjur og framtíð dreifðrar tölvunar“. Hægt er að kaupa miða á opinberu heimasíðunni.

Heimild: www.habr.com

Bæta við athugasemd