„Reynsniðurstöður eru eingöngu til birtingar, raunverulegar ástæður verksins eru fagurfræðilegar. Frábært viðtal við Michael Scott

„Reynsniðurstöður eru eingöngu til birtingar, raunverulegar ástæður verksins eru fagurfræðilegar. Frábært viðtal við Michael Scott Michael Scott - í 34 ár sem prófessor í tölvunarfræði við háskólann í Rochester og við heimaháskólann í Wisconsin–Madison var hann deildarforseti í fimm ár. Hann rannsakar og kennir nemendum um samhliða og dreifða forritun og tungumálahönnun.

Heimurinn þekkir Michael úr kennslubókinni "Pagmatísk forritunarmál", hvað með vinnuna „Reiknirit fyrir stigstærða samstillingu á fjölgjörvum með sameiginlegu minni“ hlaut Dijkstra-verðlaunin sem ein af þeim frægustu á sviði dreifðrar tölvunar. Þú gætir líka þekkt hann sem höfund þessarar algríms Michael-Scott.

Ásamt Doug Lee þróaði hann ólokandi reiknirit og samstilltar biðraðir sem knýja Java bókasöfnin. Framkvæmd "tvöfalt gagnaskipulag" í JavaSE 6 bætti árangur um 10 sinnum ThreadPoolExecutor.

Efnisyfirlit:

  • Snemma feril, University of Rochester. Verkefni Charlotte, Lynx tungumál;
  • IEEE Scalable Coherent Interface, MCS læsing;
  • Lifun í síbreytilegum heimi;
  • Eru nemendur að verða heimskari? Hnattræn þróun, alþjóðavæðing;
  • Árangursrík vinna með nemendum;
  • Hvernig á að halda í við undirbúning nýrra námskeiða og bóka;
  • Tengsl milli viðskipta og háskóla;
  • Hagnýt útfærsla hugmynda. MCS, MS, CLH, JSR 166, vinna með Doug Lee og fleira;
  • Viðskiptaminni;
  • Nýr arkitektúr. Sigur viðskiptaminni er í nánd;
  • Óstöðugt minni, Optane DIMM, ofurhröð tæki;
  • Næsta stóra trend. Tvöfalt gagnaskipulag. Hydra.

Viðtalið er tekið af:

Vitaly Aksenov — nú sem nýdoktor við IST Austria og meðlimur í tölvutæknideild 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.

Snemma feril, University of Rochester. Charlotte verkefni, Lynx tungumál.

Alexey: Til að byrja með vildi ég segja þér að í Rússlandi elskum við öll tölvunarfræði, gagnafræði og reiknirit. Það er hreint út sagt ruddalegt. Við höfum lesið allt bók eftir Cormen, Leiserson og Rivest. Þess vegna ættu væntanleg ráðstefna, skólinn og þetta viðtal sjálft að njóta mikilla vinsælda. Við fengum margar spurningar í þetta viðtal frá nemendum, forriturum og meðlimum samfélagsins, svo við erum mjög þakklát fyrir þetta tækifæri. Fær tölvunarfræði sömu ástina í Bandaríkjunum?

Michael: Okkar svið er svo fjölbreytt, það hefur svo margar áttir og það hefur áhrif á samfélagið á svo marga mismunandi vegu að það er erfitt fyrir mig að gefa þér endanlegt svar. En staðreyndin er sú að hún hefur valdið gífurlegum breytingum í viðskiptum, iðnaði, listum og samfélaginu almennt á undanförnum 30 árum.

Виталий: Byrjum á einhverju fjarlægu. Í mörgum háskólum er eitthvað eins og sérhæfing á einu tilteknu sviði. Fyrir Carnegie Mellon háskólann er þetta samhliða tölvumál, fyrir MIT er það dulmál, vélmenni og fjölþráður. Er slík sérhæfing við háskólann í Rochester?

Michael: Satt að segja myndi ég segja að CMU ​​og MIT sérhæfa sig á öllum sviðum. Deildin okkar hefur alltaf lagt mesta áherslu á gervigreind. Helmingur þeirra sem starfar hjá okkur stundar gervigreind eða samskipti manna og tölvu - þetta hlutfall er hærra en í öðrum deildum og hefur alltaf verið svo. En þegar ég var í háskóla var ég ekki með neina kúrsa í gervigreind og vann aldrei á þessu sviði. Þannig að deildin mín sérhæfir sig í vandamáli sem ég hef ekkert með að gera. Huggunin er sú að annað mikilvægasta vandamál deildarinnar okkar er samhliða og fjölþráða forritun, það er mín sérhæfing.

Виталий: Þú byrjaðir að vinna í tölvunarfræði þegar svið fjölþráðrar forritunar var að koma fram. Listinn yfir ritin þín sýnir að fyrstu verkin þín fjölluðu um nokkuð breitt úrval af málum: minnisstjórnun í fjölþráðum kerfum, dreifðum skráarkerfum, stýrikerfum. Hvers vegna svona fjölhæfni? Hefur þú verið að reyna að finna þinn stað í rannsóknarsamfélaginu?

Michael: Sem nemandi tók ég þátt í Charlotte verkefni við háskólann í Wisconsin, þar sem eitt af fyrstu dreifðu stýrikerfunum var þróað. Þar vann ég saman með Rafael Finkel (Raphael Finkel) og Marvin Solomon (Marvin Solomon). Ritgerðin mín var helguð þróun tungumáls fyrir kerfishugbúnað fyrir dreifð kerfi - nú eru allir búnir að gleyma því og guði sé lof. Ég bjó til Lynx forritunarmálið sem ætlað var að gera það auðveldara að búa til netþjóna fyrir lauslega tengt dreift stýrikerfi. Þar sem ég var aðallega í stýrikerfum á þessum tíma gerði ég ráð fyrir að ferill minn myndi aðallega tengjast þeim. En Rochester var mjög lítill háskóli og vegna þessa höfðu hinir ólíku hópar þar mjög náið samskipti sín á milli. Það var ekki tugur annarra stýrikerfa þar sem ég gat talað við, þannig að öll samskipti mín voru við fólk sem starfaði á allt öðrum sviðum. Ég hafði mjög gaman af því, að vera alhliða leikmaður er mikill kostur fyrir mig. Ef við tölum sérstaklega um fjölþráða gagnastrúktúr og samstillingaralgrím, þá byrjaði ég að vinna í þeim algjörlega óvart.

IEEE Scalable Coherent Interface, MCS læsing.

Виталий: Geturðu sagt mér aðeins meira um þetta?

Michael: Þetta er skemmtileg saga sem ég þreytist aldrei á að segja öllum. Það gerðist á ráðstefnu ASPLOS í Boston - þetta var seint á níunda áratugnum eða byrjun þess tíunda. John Mellor-Crummey (John Mellor-Crummey), útskrifaður úr deild okkar. Ég þekkti hann, en við höfðum ekki framkvæmt sameiginlegar rannsóknir áður. Mary Vernon (Mary Vernon) frá Wisconsin hélt erindi um fjölgjörvakerfi sem þeir voru að þróa í Wisconsin: Wisconsin Multicube. Þessi Multicube var með samstillingarkerfi á vélbúnaðarstigi sem kallast Q on Sync Bit, og síðar var hann endurnefndur Q on Lock Bit vegna þess að hann hljómaði eins og Colby ostur, sem var orðaleikur. Ef þú hefur áhuga á fjölþráðaaðferðum, veistu líklega að Colby varð að lokum samstillingarvél fyrir IEEE Scalable Coherent Interface staðalinn. Þetta var læsingarbúnaður sem bjó til vísa frá einu skyndiminni til annars á vélbúnaðarstigi þannig að hver læsinghafi vissi hvers röðin var. Þegar við John fréttum af þessu horfðum við hvor á annan og sögðum: af hverju að gera þetta á vélbúnaðarstigi? Er ekki hægt að ná því sama með því að bera saman og skipta? Við tókum eina af minnisbókunum sem lá í kennslustofunni og krotuðum á hana MCS blokkun, en Mary hélt áfram skýrslu sinni. Í kjölfarið útfærðum við það, gerðum tilraunir, hugmyndin reyndist vel og við birtum greinina. Á þeim tíma, fyrir mig, virtist þetta umræðuefni bara skemmtileg truflun, eftir það ætlaði ég að fara aftur í stýrikerfi. En svo kom upp annað vandamál í sömu átt og að lokum varð samstilling, fjölþráður og gagnauppbygging mín sérgrein. Eins og þú sérð gerðist þetta allt óvart.

Виталий: Ég hef lengi kannast við MCS blokkun, en hingað til vissi ég ekki að þetta væri þitt verk og skildi ekki að þetta væri skammstöfun fyrir eftirnöfnin þín.

Hvernig á að lifa af í síbreytilegum heimi?

Alexey: Ég er með spurningu um tengt efni. Fyrir 30 eða 40 árum var meira frelsi í mismunandi sérgreinum. Ef þú vilt hefja feril í fjölþráðum eða dreifðum kerfum, þá ertu velkominn, ef þú vilt komast inn í stýrikerfi, ekkert mál. Á hverju svæði voru margar opnar spurningar og fáir sérfræðingar. Þröngar sérhæfingar hafa nú komið fram: það eru ekki bara sérfræðingar á stýrikerfum almennt, það eru sérfræðingar í einstökum kerfum. Það er það sama með multithreading og dreifð kerfi. En vandamálið er að líf okkar er ekki endalaust, allir geta varið aðeins nokkrum áratugum til rannsókna. Hvernig á að lifa af í þessum nýja heimi?

Michael: Við erum ekkert sérstakir hvað þetta varðar, það sama gerðist einu sinni á öðrum sviðum. Ég var heppinn að ég byrjaði að vinna í tölvunarfræði þegar fagið var á „unglingsárum“. Það var þegar búið að leggja einhvern grunn en allt var enn mjög óþroskað. Þetta tækifæri kemur ekki oft. Rafmagnsverkfræði hefur verið til í mjög langan tíma, eðlisfræði enn lengur, stærðfræði nánast frá upphafi tímans. En þetta þýðir ekki að enginn sé lengur að gera áhugaverðar uppgötvanir í stærðfræði. Enn eru mörg opin vandamál en á sama tíma þarf að læra meira. Það er rétt hjá þér að taka fram að sérhæfingarnar eru nú miklu fleiri en áður voru, en þetta þýðir aðeins að við erum í sömu stöðu og flest önnur svið mannlegrar starfsemi.

Alexey: Ég hef áhuga á praktískari hlið málsins hér. Ég er með stærðfræðibakgrunn og í náminu fór ég oft á ráðstefnur og vann að ýmsum vísindalegum efnum. Ég komst að því að enginn í salnum skildi skýrslur mínar og á sama hátt voru skýrslur annarra skiljanlegar aðeins þeim sjálfum. Þetta er ekki raunin í efni á háu stigi, en um leið og þú byrjar að kafa ofan í eitthvað geta áhorfendur ekki lengur fylgst með þér. Hvernig bregst þú við þessu?

Michael: Ekki alltaf vel. Ég útbjó nýlega skýrslu þar sem ég fór of djúpt í tæknileg atriði. Eftir því sem leið á ræðuna kom í ljós að flestir áhorfenda skildu mig ekki og því varð ég að aðlagast aðstæðum á flugi. Það var ekki hægt að breyta glærunum, þannig að það kom ekkert sérstaklega vel út - þannig að almennt séð reyni ég að nota ekki glærur. Á heildina litið er ráð mitt að huga að áhorfendum þínum. Þú þarft að vita við hvern þú ert að tala, hvert þekkingarstig þeirra er og hvað þeir þurfa að heyra til að kunna að meta vinnu þína.

Виталий: Gætirðu gefið okkur vísbendingu um hvað þessi fyrirlestur fjallaði um?

Michael: Satt að segja vil ég helst ekki útskýra þetta efni til að láta viðkomandi fólk vera nafnlaust. Málið er að við komumst oft of djúpt inn í ranghala vandans sem við erum að vinna að, þannig að það verður erfitt fyrir okkur að útskýra í upphafi ræðu hvers vegna vandamálið er áhugavert og mikilvægt og hvernig það tengist málum sem áhorfendur vita það nú þegar. Samkvæmt athugunum mínum eiga nemendur erfiðast með að læra þessa færni. Og þetta var líka veiki punkturinn í nýlegri skýrslu minni. Rétt uppbyggð skýrsla ætti alveg frá upphafi að finna tengsl við áhorfendur, útskýra fyrir þeim hvað nákvæmlega er vandamálið og hvernig það tengist efni sem hann þegar hefur vitað. Hversu tæknileg þessi kynning er fer eftir áhorfendum. Ef hún er algjörlega brosótt getur skýrslan verið margþætt. Kynningin ætti að vera aðgengileg öllum og í lokin getur verkið ekki fylgst með þér, en fólk sem þekkir tiltölulega vel á þínu sviði mun geta fundið það út.

Eru nemendur að verða heimskari? Hnattræn þróun, alþjóðavæðing.

Alexey: Þú hefur fylgst með nemendum í nokkra áratugi. Eru nemendur að verða heimskari eða gáfaðari frá áratug til áratugar eða ár frá ári? Í Rússlandi kvarta prófessorar stöðugt yfir því að nemendur verði heimskari á hverju ári og það er í raun ekki ljóst hvað á að gera í því.

Michael: Það má alveg heyra mikla neikvæðni frá okkur gamla fólkinu. Í ómeðvitað höfum við tilhneigingu til að ætlast til þess að nemendur taki til sín alla þá 30 ára reynslu sem við höfum nú þegar. Ef ég hef dýpri skilning en ég gerði árið 1985, hvers vegna hafa nemendur það ekki? Sennilega vegna þess að þau eru 20 ára, hvað finnst þér? Ég held að mikilvægustu breytingarnar á undanförnum áratugum hafi verið í lýðfræðilegri samsetningu: við höfum nú umtalsvert fleiri alþjóðlega nemendur, að Kanadamönnum undanskildum. Áður var mikið af Kanadamönnum því við erum mjög nálægt kanadísku landamærunum og nemendur þaðan geta ferðast heim um helgar. En nú eru margir góðir háskólar í Kanada og Kanadamenn kjósa að læra hér; mun færri þeirra koma til Bandaríkjanna.

Alexey: Heldurðu að þetta sé staðbundin þróun eða alþjóðleg?

Michael: Ég man ekki nákvæmlega hver, en einhver sagði að heimurinn væri flatur. Okkar svið er orðið miklu alþjóðlegra. ACM ráðstefnur Áður voru þeir eingöngu haldnir innan Bandaríkjanna, síðan ákváðu þeir að halda þá einu sinni á 4 ára fresti í öðrum löndum og nú eru þeir haldnir um allan heim. Þessar breytingar höfðu enn meiri áhrif IEEE, enda hefur það alltaf verið alþjóðlegri stofnun en ACM. Og það eru dagskrárstjórar frá Kína, Indlandi, Rússlandi, Þýskalandi og mörgum öðrum löndum, því það er mikið að gerast alls staðar núna.

Alexey: En líklega eru einhverjar neikvæðar hliðar á slíkri alþjóðavæðingu?

Michael: Ég myndi segja að allar neikvæðu hliðarnar tengist ekki tækni, heldur stjórnmálum. Einu sinni var aðalvandamálið sú staðreynd að Bandaríkin voru að stela snjöllustu og hæfileikaríkustu fólki frá löndum um allan heim. Og nú er aðalvandamálið pólitískir leikir milli mismunandi landa um vegabréfsáritanir og innflytjendur.

Alexey: Það er að segja hindranir og svoleiðis. Það er skýrt.

Vladimir: Persónulega hef ég áhuga á hvaða nálgun þú tekur þegar þú kennir nemendum nýtt fag. Það eru mismunandi valkostir: þú getur fyrst og fremst reynt að hvetja þá til að prófa eitthvað nýtt, eða þú getur veitt meiri athygli að smáatriðum um hvernig ákveðin tækni virkar. Hvað kýst þú?

Árangursrík vinna með nemendum

Alexey: Og hvernig á að finna fjandans jafnvægið milli fyrsta og annars?

Michael: Vandamálið er að námskeið fara ekki alltaf eins og ég myndi vilja. Venjulega gef ég nemendum lesefni fyrirfram svo þeir kafa ofan í það, skilja það eftir bestu getu og setja fram spurningar um þá hluta sem þeir gátu ekki skilið. Síðan í kennslustundinni er hægt að einbeita sér að erfiðustu augnablikunum og skoða þau saman. Svona finnst mér best að kenna námskeið. En miðað við það álag sem nú liggur á nemendum get ég ekki alltaf gengið úr skugga um að þeir undirbúi sig fyrirfram. Þar af leiðandi þarftu að verja mun meiri tíma í almenna endursögn efnisins en þú vilt. Þrátt fyrir þetta reyni ég að halda námskeiðunum okkar gagnvirkum. Annars er auðveldara að taka upp myndband einu sinni sem nemendur geta síðan horft á heima. Aðalatriðið með lifandi námskeiðum er mannleg samskipti. Í tímum kýs ég að nota krít og töflu frekar en glærur, nema í vissum tilvikum þegar skýringarmynd er of flókin til að sýna á töflunni. Þökk sé þessu þarf ég ekki að halda mig við stífa kennsluáætlun. Þar sem það er engin ströng röð sem ég gef efnið í, gerir þetta mér kleift að sníða það að áhorfendum eftir spurningunum sem ég fæ. Almennt reyni ég að gera kennslustundir eins gagnvirka og hægt er, þannig að efnið sem ég set fram fer eftir spurningum sem berast til mín.

Vladimir: Það er frábært. Mín reynsla er að það er frekar erfitt að fá hlustendur til að spyrja spurninga. Jafnvel ef þú biður fyrirfram um að spyrja spurninga, sama hversu heimskuleg eða klár, þá þegja þeir samt. Hvernig bregst þú við þessu?

Michael: Þú munt hlæja, en ef þú stendur í þögn nógu lengi, fyrr eða síðar verða allir óþægilegir og einhver spyr. Eða þú getur spurt einfaldrar tæknilegrar spurningar með já eða nei svari til að ákvarða hvort fólk skilji það sem var sagt. Til dæmis, er gagnakapphlaup í dæminu hér að ofan? Hver heldur það? Hver heldur ekki? Hver skilur ekki neitt, því alls fór aðeins helmingur handanna upp?

Виталий: Og ef þú svaraðir vitlaust þá er þér vísað úr bekknum :)

Michael: Ef þú hefur ekki svarað neinu, þá ættirðu að spyrja spurninga. Ég þarf að skilja hvað nákvæmlega nemandinn þarf að vita til að svara spurningunni sem ég spurði. Ég þarf þá til að hjálpa mér að hjálpa þeim. Ég er tilbúinn að laga mig að þeim svo þeir skilji vandamálið. En ef ég veit ekki hvað er að gerast í hausnum á þeim þá get ég það ekki. Og ef þú gefur nemendum ekki frið í nógu langan tíma, þá spyrja þeir stundum réttu spurninganna á endanum, það er að segja þeirra sem gera mér kleift að sjá hvað nákvæmlega er að gerast í hausnum á nemendum. 

Alexey: Leiða þessar spurningar stundum til hugmynda sem þú sjálfur hafði ekki hugsað um áður? Eru þær óvæntar? Leyfa þeir þér að líta á vandamál í nýju ljósi?

Michael: Það eru spurningar sem opna nýja leið til að koma efni á framfæri. Það eru oft spurningar sem leiða til áhugaverðra vandamála sem ég ætlaði ekki að tala um. Nemendur segja mér oft að ég hafi tilhneigingu til að fara út fyrir efnið þegar þetta gerist. Og, samkvæmt þeim, er þetta mjög oft áhugaverðasti hluti kennslunnar. Mjög sjaldan, bara nokkrum sinnum, spurðu nemendur spurninga sem ýttu nýja stefnu í rannsóknum og urðu að grein. Þetta gerist mun oftar í samtölum við nemendur frekar en í tímum, en einstaka sinnum kom þetta fyrir í tímum. 

Alexey: Þannig að nemendurnir spurðu þig spurninga á grundvelli þess sem síðan var hægt að birta grein?

Michael: Já. 

Виталий: Hversu oft átt þú þessi samtöl við nemendur? Hvenær vilja þeir læra meira en það sem fjallað var um í kennslustundinni?

Michael: Með útskriftarnemunum mínum - allan tímann. Ég á um 5 eða 6 af þeim og við ræðum alltaf eitthvað við þá. Og samtöl af þessu tagi við nemendur sem einfaldlega mæta í kennsluna mína eru ekki mjög algeng. Þó ég vildi að þetta gerðist oftar. Mig grunar að þeir séu einfaldlega hræddir við að koma í deildina á skrifstofutíma. Á hverri önn tekst sumir nemendur að yfirstíga þessa sálfræðilegu hindrun og það er alltaf mjög áhugavert að ræða við þá eftir kennslu. Að vísu hefði ég einfaldlega ekki nægan tíma ef allir nemendur væru jafn hugrakkir. Þannig að kannski virkar allt eins og það á að gera. 

Виталий: Hvernig tekst þér að finna tíma til að eiga samskipti við nemendur? Eftir því sem ég best veit þá hafa kennarar mikla vinnu í Bandaríkjunum - að sækja um styrki og þess háttar. 

Michael: Satt að segja er það að vinna með nemendum sá þáttur í starfi mínu sem mér finnst skemmtilegast. Þannig að ég hef næga hvatningu fyrir þessu. Mestur tími sem ég eyði á skrifstofunni minni fer í alls kyns fundi. Það er sumar núna, þannig að dagskráin mín er minna upptekin, en yfir skólaárið, alla daga frá 9 til 17, er allt pakkað. Rannsóknarvinna, umsagnir, styrkir - fyrir allt þetta eru bara kvöld og helgar. 

Hvernig á að fylgjast með undirbúningi nýrra námskeiða og bóka.

Alexey: Ertu núna að halda áfram að kenna einhver námskeið sem þú hefur kennt lengi? Eitthvað eins og kynning á tölvunarfræði.

Michael: Það fyrsta sem kemur upp í hugann hér er námskeið í forritunarmálum. 

Alexey: Hversu ólík er útgáfan af þessu námskeiði í dag frá því sem var fyrir 10, 20, 30 árum? Það sem er kannski áhugaverðara hér eru ekki upplýsingar um tiltekið námskeið, heldur almennar stefnur.

Michael: Námskeiðið mitt um forritunarmál var nokkuð óvenjulegt á þeim tíma sem ég bjó það til. Ég byrjaði að lesa hana seint á níunda áratugnum í stað kollega minn, Doug Baldwin (Doug Baldwin). Viðfangsefni námskeiðsins var aðeins í snertingu við sérgrein mína, en þegar hann hætti var ég besti umsækjandinn til að kenna námskeiðið. Mér líkaði ekkert af kennslubókunum sem voru til á þeim tíma, svo ég endaði á því að skrifa kennslubókina fyrir þetta námskeið sjálfur. (Athugasemd ritstjóra: við erum að tala um bókina "Pagmatísk forritunarmál") Það er nú notað í meira en 200 háskólum um allan heim. Nálgun mín er óvenjuleg að því leyti að hún blandar vísvitandi saman vandamálum málhönnunar og útfærslu og leggur mikla áherslu á samspil þessara þátta á öllum mögulegum sviðum. Grunnnálgunin hefur haldist óbreytt, eins og mörg grunnhugtök: abstrakt, nafnrými, mát, gerðir. En mengi tungumála sem þessi hugtök eru sýnd með hefur gjörbreyst. Þegar námskeiðið var fyrst búið til voru mörg dæmi í Pascal, en í dag hafa margir nemendur mínir ekki einu sinni heyrt um þetta tungumál. En þeir þekkja Swift, Go, Rust, svo ég verð að tala um tungumálin sem eru í notkun í dag. Einnig eru nemendur nú vel að sér í forskriftarmálum, en þegar ég byrjaði að kenna þetta námskeið snerist þetta allt um samansett tungumál. Nú vantar okkur mikið efni um Python, Ruby og jafnvel Perl, því þetta er það sem kóði er skrifaður í þessa dagana, og það er margt áhugavert að gerast á þessum tungumálum, þar á meðal á sviði málhönnunar. 

Виталий: Þá mun næsta spurning mín tengjast þeirri fyrri. Hvernig á að halda í við á þessu sviði? Mig grunar að uppfærsla á námskeiði sem þessum krefjist mikillar vinnu - þú þarft að skilja ný tungumál, skilja helstu hugmyndirnar. Hvernig gerir maður þetta?

Michael: Ég get ekki státað af því að ég nái alltaf 100% árangri. En oftast geri ég bara það sem allir aðrir gera - les netið. Ef ég vil skilja Rust, þá gúggla ég það, fer á Mozilla síðuna og les handbókina sem birt er þar. Þetta er hluti af því sem gerist í atvinnuuppbyggingu. Ef við tölum um vísindi, þá þarftu að fylgjast með skýrslum á helstu ráðstefnum. 

Tengsl milli viðskipta og háskóla

Виталий: Við skulum tala um tengsl viðskipta og vísindarannsókna. Í listanum þínum yfir verk, fann ég nokkrar greinar um skyndiminni samræmi. Mér skilst að skyndiminnissamkvæmni reikniritin hafi verið óstöðug á þeim tíma sem þau voru birt? Eða ekki nógu útbreidd. Hversu algengar voru hugmyndir þínar í framkvæmd?

Michael: Ég er ekki alveg viss um hvaða útgáfur þú ert að tala um. Ég hef unnið talsverða vinnu með nemendum mínum Bill Bolosky (William Bolosky) og Leonidas Kontotanassis (Leonidas Kontothanassis) snemma á tíunda áratugnum um minnisstjórnun á Neumann vélum. Á þeim tíma höfðu fyrirtæki ekki enn skilning á því hvernig ætti að búa til fjölgjörvakerfi á réttan hátt: er það þess virði að búa til stuðning til að fá aðgang að fjarlægu minni á vélbúnaðarstigi, er það þess virði að dreifa minninu, er hægt að hlaða skyndiminni frá fjarminni, eða er nauðsynlegt að færa síður í skurðstofukerfi? Bill og Leonidas unnu báðir á þessu svæði og könnuðu aðferðir án þess að hlaða skyndiminni fjarri. Þetta var ekki beint tengt skyndiminni samræmi, en þetta var samt vinna við NUMA minnisstjórnun og í kjölfarið óx nútíma aðferðir við staðsetningu síðu í nútíma stýrikerfum upp úr þessu. Á heildina litið unnu Bill og Leonidas mikilvæg störf, þó ekki þau áhrifamestu á þessu sviði - það voru margir aðrir sem unnu við sama hlutinn á þeim tíma. Seinna vann ég að efni sem tengist skyndiminni samhengi í samhengi við viðskiptaminni vélbúnaðar. Hópurinn sem ég vann með við þetta vandamál endaði á því að fá nokkur einkaleyfi. Það eru nokkuð áhugaverðar hugmyndir á bak við þær, en ég held að þær verði ekki útfærðar í framkvæmd. Á einn eða annan hátt er erfitt fyrir mig að dæma arðsemi þeirra. 

Alexey: Í þessu sambandi, persónulegri spurningu: hversu mikilvægt er það fyrir þig að hugmyndir þínar verði hrint í framkvæmd? Eða hugsarðu ekki um það?

Michael: Ég elska að spyrja þessarar spurningar í viðtölum við annað fólk, umsækjendur eða umsækjendur sem vilja ganga í deildina. Ég held að það sé ekki til rétt svar við þessari spurningu. Fólk sem gerir flotta hluti getur haft mjög mismunandi hvata. Ég laðast að vandamálum vegna þess að mér finnst þau persónulega áhugaverð, ekki vegna hagnýtra ávinninga þeirra. En á hinn bóginn, þegar einhver áhugaverður hlutur kemst enn í gagnið, þá líkar mér það mjög vel. Svo það er ekki auðvelt hér. En í upphafi vinnu minnar er ég samt ekki knúin áfram af hugmyndinni um lokanotkun í heiminum, heldur af samhljómi hugmyndarinnar og lönguninni til að kanna hana og sjá hvað kemur út úr henni. Ef það gefur raunhæfan árangur á endanum, frábært. 

Alexey: Vegna menntunar þinnar og reynslu geturðu betur en flestir dæmt um gildi hugmynda annarra. Þú getur borið þær saman og ákvarðað hver virkar betur með hverjum. Ég er viss um að þú hefur skoðun á hlutum sem eru nú notaðir í reynd af stórum framleiðendum eins og Intel. Frá þínu sjónarhorni, hversu rétt er stefnan sem þessi fyrirtæki eru að taka?

Michael: Æfingin snýst alltaf um það sem getur verið viðskiptalega farsælt, það er að skapa hagnað, og það er betra að spyrja einhvern annan um það. Vinna mín skilar sér að mestu í útgáfum og á sviði stýrikerfa eru þau metin út frá frammistöðuvísum: hraða, orkunotkun, kóðastærð. En mér virtist alltaf sem þessar reynsluniðurstöður bætist við greinar eingöngu til að hægt sé að birta þær og raunverulegar hvatir fólks til vinnu eru fagurfræðilegar. Rannsakendur meta lausnir út frá listrænu sjónarhorni, þeim er annt um hversu glæsilegar hugmyndirnar eru og þeir reyna að skapa eitthvað betra en núverandi nálgun. Rannsakendur eru knúnir áfram af persónulegum, huglægum, fagurfræðilegum hvötum. En það er ekki hægt að skrifa um þetta í greininni sjálfri, þetta eru ekki rök fyrir dagskrárnefndinni. Sem betur fer eru glæsilegar lausnir oft líka fljótar og ódýrar. Ég og tugur samstarfsmanna minna ræddum þetta efni fyrir um 15 árum og enduðum á því að skrifa grein um það. Ég held að þú getir enn fundið það núna, það heitir það „Hvernig á að meta kerfisrannsóknir“ eða eitthvað svoleiðis, það hefur meira en tugi höfunda. Þetta er eina greinin sem ég er höfundur með Sasha Fedorova, þannig að ef þú leitar að nafni hennar á listanum mínum yfir útgáfur muntu finna það sem þú þarft. Þar er talað um mat á kerfisrannsóknum og hversu mikilvægur glæsileiki er. 

Alexey: Þannig að það er munur á stöðlunum um hvað telst gott í vísindum og í viðskiptum. Vísindin meta frammistöðu, orkunotkun, TDP, auðveld framkvæmd og margt fleira. Hefur þú tækifæri til að stunda þessa tegund rannsókna við háskólann? Ertu með rannsóknarstofu með mismunandi vélum og mismunandi arkitektúr þar sem þú gætir gert tilraunir?

Michael: Já, deildin okkar hefur mikið af mismunandi áhugaverðum vélum. Oftast eru þau lítil, við erum með lítinn klasa og mörg fjölgjörvakerfi með mismunandi hröðum. Að auki hefur háskólasvæðið risastóra tölvumiðstöð sem þjónar vísindamönnum frá nokkrum tugum mismunandi greinum. Það hefur um þúsund hnúta og tuttugu þúsund kjarna, allt á Linux. Ef þörf krefur geturðu alltaf keypt AWS. Þannig að við höfum engar verulegar takmarkanir á vélbúnaði. 

Alexey: Hvernig var það fyrir þrjátíu árum? Voru þá vandamál?

Michael: Það var svolítið öðruvísi þá. Um miðjan og seint á níunda áratugnum var talið að vísindi skorti tölvuauðlindir. Til að bæta úr þessu ástandi, National Science Foundation (National Science Foundation) búið til áætlun um samræmdar tilraunarannsóknir (Coordinated Experimental Research, CER). Hlutverk námsins var að útvega tölvuinnviði fyrir tölvunarfræðideildir og það hefur náð verulegum breytingum. Fyrir peningana sem hún lagði fram keyptum við í háskólanum í Rochester 1984 hnúta BBN fiðrildi árið 128, þetta var ári áður en ég kom þangað. Á þeim tíma var það stærsta fjölgjörvakerfi heims með sameiginlegu minni. Það var með 128 örgjörva, hver á sérstöku móðurborði, og tók fjóra rekki. Hver örgjörvi var með megabæti af minni, 128 megabæt af vinnsluminni var ólýsanlegt magn á þeim tíma. Á þessari vél innleiddum við MCS læsingu í fyrsta skipti. 

Alexey: Svo, ef ég skil þig rétt, þá hefur vandamálið með vélbúnaðinn verið leyst í augnablikinu? 

Michael: Almennt, já. Það eru nokkrir fyrirvarar: Í fyrsta lagi, ef þú ert að gera tölvuarkitektúr á flísstigi, er erfitt að gera það í akademísku umhverfi vegna þess að það eru miklu betri tæki til að gera það í viðskiptum. Ef þig vantar eitthvað minna en 10 nanómetra þarftu að panta það frá einhverjum öðrum. Á þessu sviði er miklu auðveldara að vera rannsakandi hjá Intel. Ef þú ert að vinna við sjónsamskipti á flísum eða á solid-state minni muntu finna tækni í viðskiptum sem er ekki enn í vísindum, svo þú verður að búa til bandalög. Til dæmis, Stephen Swanson (Steven Swanson) búin til slíkt samstarf fyrir nýja minnistækni. Þetta form virkar ekki alltaf, en í sumum tilfellum getur það verið nokkuð vel. Að auki, í vísindum er þróun öflugustu tölvukerfa erfiðari. Stærstu ofurtölvuverkefnin sem nú eru í Bandaríkjunum, Japan og Kína beinast öll að viðskiptum. 

Hagnýt útfærsla hugmynda. MCS, MS, CLH, JSR 166, vinna með Doug Lee og fleira.

Виталий: Þú hefur þegar talað um hvernig þú byrjaðir að vinna að samstillingarreikniritum. Þú ert með tvær mjög frægar greinar um MCS blokkun и Michael-Scott biðröð (MS), sem í vissum skilningi voru útfærð í Java. (Athugasemd ritstjóra: hægt er að skoða öll rit по ссылке). Þar var þessi blokkun útfærð með nokkrum breytingum og það varð úr CLH læsing, og röðin var útfærð eins og til var ætlast. En mörg ár liðu frá birtingu greina þinna og þar til þær voru notaðar í raun. 

Alexey: Það virðist um 10 ár í tilfelli biðröðarinnar.

Michael: Áður en þessir eiginleikar birtust í Java staðlaða bókasafninu?

Виталий: Já. Hvað gerðir þú til að láta þetta gerast? Eða gerðu þeir ekkert?

Michael: Ég get sagt þér hvernig MS Queue komst inn í Java 5. Nokkrum árum áður en það kom út vann ég með hópi Mark Moyers hjá Sun Microsystems í rannsóknarstofu þeirra nálægt Boston. Hann skipulagði vinnustofu fyrir fólk sem hann þekkti sem var að vinna að áhugaverðum vandamálum í fjölþráðum vegna þess að hann vildi finna efni sem hann gæti selt fyrirtækinu þeirra. Þar hitti ég Doug Lea fyrst. Ég og Doug og um 25 aðrir frá Sun vorum saman að ræða kynningu Doug um JSR 166, sem síðar varð java.util.concurrent. Í leiðinni sagðist Doug vilja nota MS biðröðina, en til þess þyrfti hann teljara fyrir fjölda þátta í biðröðinni fyrir viðmótið. Það er að segja að þetta hefði átt að vera gert með sérstakri aðferð, atómbundinni, nákvæmri og hröðum. Ég stakk upp á því að bæta einfaldlega raðnúmerum við hnútana, taka númer fyrsta hnútsins og síðasta og draga einn frá hinum. Doug klóraði sér í hausnum, sagði „af hverju ekki,“ og endaði á því að gera það. Við ræddum um að innleiða þessa nálgun á bókasafninu, en Doug vann að mestu leyti sjálfur. Fyrir vikið tókst honum að koma á frábærum fjölþráðastuðningi í Java. 

Alexey: Svo, ef ég skil rétt, hefði .size() aðferðin átt að vera hluti af venjulegu biðröðviðmóti og hún hefði átt að vera með reikniritflækjustigið O(1)?

Michael: Já, og til viðbótar þessu þarf sérstakan teljara.

Alexey: Vegna þess að ef þú kallar á .size() aðferðina í Java er búist við að niðurstaðan verði tiltæk strax og ekki byggð á raunverulegri stærð safnsins. Ég skil, þakka þér fyrir.

Michael: Nokkrum árum síðar var ég að vinna að tvöföldu gagnaskipulagi með nemanda mínum Bill Scherer - reyndar er þetta það sem ég ætla að tala um skýrslu um Hydra. Doug kom til okkar og sagði að hann gæti notað þá í Java Executor Framework. Ásamt Bill bjuggu þeir til tvær útfærslur, svokallaðar sanngjarnar og ósanngjarnar biðraðir. Ég ráðlagði þeim í þessu verkefni, þó ég hafi ekki tekið þátt í að skrifa raunverulegan kóða. Fyrir vikið hefur hraði framkvæmdastjóra aukist verulega. 

Vladimir: Hefur þú rekist á rangar útfærslur á reikniritunum þínum eða beiðnir um að bæta við nýjum eiginleikum? Almennt séð ætti æfing að falla saman við kenningu, en þau eru oft ólík. Segjum sem svo að þú hafir skrifað reiknirit og á pappírnum virkar það, en þeir sem taka þátt í útfærslunni fóru að biðja þig um fleiri eiginleika eða einhvers konar lagfæringu á reikniritinu. Hefur þú einhvern tíma lent í slíkum aðstæðum?

Michael: Eina dæmið þar sem einhver kom til mín og spurði „hvernig á að útfæra það“ var spurning Doug, sem ég var þegar að tala um. En það hafa verið nokkur tilvik þar sem áhugaverðar breytingar hafa verið gerðar til að mæta hagnýtum þörfum. Til dæmis breytti K42 teymið hjá IBM MCS lásnum og gerði hann að stöðluðu viðmóti svo það var engin þörf á að senda biðröðhnútinn fram og til baka í öflun og losunarrútínuna. Þökk sé þessu staðlaða viðmóti fór hugmynd sem var falleg í orði að virka í reynd. Það kemur á óvart að þeir birtu aldrei grein um það, og þó að þeir hafi fengið einkaleyfi, yfirgáfu þeir það síðar. Hugmyndin var dásamleg og ég reyni að tala um hana þegar ég get. 

Það hafa komið upp önnur tilvik þar sem fólk hefur gert endurbætur á reikniritunum sem ég hef birt. Til dæmis er MS biðröð með tveggja þrepa uppsetningarkerfi, sem þýddi að það voru tvö CAS á mikilvægu leiðinni í biðröðinni. Á eldri bílum var CAS frekar dýrt. Intel og aðrir framleiðendur hafa hagrætt þeim nokkuð vel nýlega, en einu sinni voru þetta 30 lota leiðbeiningar, þannig að það var óæskilegt að hafa fleiri en einn á mikilvægu leiðinni. Fyrir vikið var þróuð önnur biðröð sem var svipuð MS biðröðinni, en sem hafði aðeins eina atómaðgerð á mikilvægu leiðinni. Þetta náðist vegna þess að á tilteknu tímabili gat aðgerðin tekið O(n) tíma, frekar en O(1). Það var ólíklegt, en mögulegt. Þetta gerðist vegna þess að á ákveðnum augnablikum fór reikniritið yfir biðröðina frá upphafi til núverandi stöðu í þessari biðröð. Almennt séð reyndist reikniritið mjög vel. Eftir því sem ég best veit er það ekki mjög mikið notað, meðal annars vegna þess að kjarnorkuaðgerðir krefjast verulega færri auðlinda en áður. En hugmyndin var frábær. Mér líkar líka mjög vel við verk Dave Dice frá Oracle. Allt sem hann gerir er mjög hagnýtt og hann notar járn mjög snjallt. Hann hafði hönd í bagga með mikið af NUMA-meðvituðum samstillingaralgrímum og margþráðum gagnauppbyggingum. 

Vladimir: Þegar þú skrifar reiknirit eða kennir nemendum er árangur vinnu þinnar ekki sýnilegur strax. Samfélagið þarf smá tíma til að kynnast til dæmis nýrri grein. Nýja reikniritið finnur ekki umsókn strax. 

Michael: Það er langt í frá alveg ljóst hvort greinin verður marktæk eða ekki. Ég held að það væri áhugavert að gera rannsókn á erindum sem unnið hafa til verðlauna á ráðstefnum. Það er að segja að skoða þær greinar sem menn í dagskrárnefndum á sínum tíma töldu bestar. Þú þarft að reyna að reikna út með fjölda tengla og áhrifum á viðskipti hversu áhrifamiklar þessar greinar reyndust raunverulega hafa eftir 10, 20, 25 ár. Ég efast um að það væri sterk fylgni þarna á milli. Það verður ekki núll, en líklegast mun það vera mun veikara en við viljum. Margar hugmyndir eru ósóttar í langan tíma áður en þær verða útbreiddar. Tökum til dæmis viðskiptaminni. Meira en 10 ár liðu frá því upphaflega greinin var birt þar til menn fóru að smíða vélar með henni. Og áður en þetta minni birtist í auglýsingum - og allt 20. Í mjög langan tíma veitti enginn greininni athygli og síðan fjölgaði tenglunum á hana verulega. Það væri erfitt að spá fyrir um þetta fyrirfram. Aftur á móti finna hugmyndir stundum útfærslu strax. Fyrir nokkrum árum skrifaði ég ritgerð með Joe Izraelevitz fyrir DISC sem lagði til nýja formlega skilgreiningu á réttmæti fyrir viðvarandi gagnauppbyggingu sem hægt væri að nota eftir að tölvan sem keyrir þau hrundi. Mér fannst greinin alveg frá byrjun en hún reyndist mun vinsælli en ég bjóst við. Það var notað af nokkrum mismunandi hópum og varð að lokum staðlað skilgreining á þrautseigju mannvirkjum. Sem er auðvitað ágætt.

Vladimir: Eru einhverjar aðferðir sem þú notar við mat? Reynir þú jafnvel að meta greinar þínar og nemendur þína? Hvað varðar það hvort sá sem þú kenndir er að fara í rétta átt.

Michael: Eins og allir aðrir tek ég meiri athygli á því sem ég er að gera í augnablikinu. Aftur, eins og allir aðrir, skoða ég stundum Google Scholar til að sjá hvort verið sé að vitna í fyrri blöð mín, en það er meira af forvitni. Aðallega er ég upptekinn af því sem nemendur mínir eru að gera núna. Þegar kemur að því að leggja mat á núverandi verk er hluti af því fagurfræðileg sjónarmið, hvað er glæsilegt og hvað ekki. Og á hversdagsleikanum spila opnar spurningar stórt hlutverk. Til dæmis kemur nemandi til mín með línurit með einhverjum niðurstöðum og við erum að reyna að skilja hvaðan einhver undarleg hegðun línuritsins kom. Almennt séð erum við í starfi okkar stöðugt að reyna að skilja hluti sem við skiljum ekki enn. 

Viðskiptaminni

Виталий: Kannski getum við talað aðeins um viðskiptaminni?

Michael: Ég held að það sé þess virði að segja að minnsta kosti aðeins því ég legg mikið upp úr því. Þetta er efni sem ég hef fleiri rit um en nokkur önnur. En á sama tíma, einkennilega nóg, var ég alltaf mjög efins um viðskiptaminni. Að mínu mati, grein eftir Herlihy og Moss (M. Herlihy, J. E. B. Moss) kom út á undan sinni samtíð. Snemma á tíunda áratugnum lögðu þeir til að viðskiptaminni gæti hjálpað hæfileikaríkum forriturum að vinna á fjölþráðum gagnabyggingum, þannig að þessi kerfi gætu síðan verið notuð sem bókasöfn af venjulegum forriturum. Það er, það væri hjálp fyrir Doug Lee að gera JSR 1990. En viðskiptaminni var ekki ætlað að gera fjölþráða forritun auðvelda. En þetta er nákvæmlega hvernig það byrjaði að vera skynjað í upphafi 166, þegar það varð útbreitt. Það var auglýst sem leið til að leysa vandamál samhliða forritun. Þessi nálgun hefur alltaf þótt vonlaus í mínum augum. Viðskiptaminni gæti aðeins gert það auðveldara að skrifa samhliða gagnaskipulag. Þetta sýnist mér vera það sem hún náði. 

Um erfiðleikana við að skrifa margþráða kóða

Alexey: Mjög áhugavert. Það virðist vera ákveðin hindrun á milli venjulegra forritara og þeirra sem geta skrifað margþráðan kóða. Á síðasta ári talaði ég nokkrum sinnum við fólk sem var að innleiða einhvern algrím. Til dæmis með Martin Thomson, sem og með forriturum sem vinna að fjölþráðum bókasöfnum. (Athugasemd ritstjóra: Martin Thompson er mjög frægur verktaki, skrifaði hann Truflun и Aeron. Og hann hefur líka skýrsla á Joker 2015 ráðstefnunni okkar, myndbandsupptaka fáanleg á YouTube. Hann er eins opnaði þessari ráðstefnu aðalupptöku einnig fáanlegt). Helsta áskorunin, segja þeir, sé að gera reikniritin bæði hröð og auðveld í notkun. Það er, þeir eru að reyna að yfirstíga þessa hindrun og laða sem flesta á þetta svæði. Hvað finnst þér um það?

Michael: Þetta er aðalvandamál fjölþráða: hvernig á að ná háum afköstum án þess að auka flókið kerfi. 

Alexey: Vegna þess að þegar þeir reyna að forðast flókið, verður reikniritið minna algilt.

Michael: Lykillinn hér er rétt hönnuð abstrakt. Mér sýnist að þetta sé almennt aðalatriðið fyrir tölvukerfi sem svið. Butler Lampson vill gjarnan nota þetta hugtak og hann kallar okkur „kaupmenn abstrakts“. Einföld tækni er ekki til í dag. Örgjörvarnir sem við notum eru með 10 milljarða smára — einfaldleiki kemur ekki til greina. Á sama tíma er ISA mun einfaldari en örgjörvinn, þar sem við unnum mjög lengi að því að veita honum mikla afköst og tiltölulega einfalt viðmót. En ekki er líka allt með felldu hjá henni. Sama vandamál er með hraðalana sem eru nú að koma á markaðinn. Spurningar vakna - hvernig á að búa til rétt viðmót fyrir GPU, dulkóðunarkerfi, þjöppun, umkóðunkerfi, línulegt algebrukerfi eða jafnvel sveigjanlegri FPGA. Hvernig á að búa til viðmót sem gerir tólið auðvelt í notkun og felur flókið? Það mun ekki losna við það, heldur fela það fyrir einföldum forritara. 

Alexey: Eins og ég skil það, höfum við enn hindrun í skilningi á abstraktum. Tökum minnislíkanið; á þróunarstigi okkar vísinda og tækni er þetta ein helsta útdrátturinn. Þökk sé því er öllum forriturum skipt í tvo hópa: Stærsti hlutinn eru þeir sem skilja það ekki og minni hlutinn eru þeir sem skilja eða halda að þeir skilji. 

Michael: Það er góð spurning - skilur eitthvað okkar raunverulega minnislíkanið?

Виталий: Sérstaklega í C++.

Michael: Talaðu við Hans Boehm einhvern tíma. Hann er einn gáfaðasti maður sem ég þekki, leiðandi sérfræðingur í minnislíkönum. Hann mun segja þér strax að það er margt sem hann skilur ekki. En ef við snúum okkur aftur að efni abstrakts, þá var að mínu mati mikilvægasta hugmyndin á sviði minnislíkana undanfarin 30 ár sett fram. í ritgerð Sarita Adve. (Athugasemd ritstjóra: heildarlisti yfir rit er fáanlegur по ссылке).

Alexey: Spurning mín er: kemur þessi hindrun frá eðli hugtaksins? 

Michael: Nei. Sarita komst að þeirri niðurstöðu að með réttri nálgun er hægt að fela allt flókið með góðum árangri, ná miklum afköstum og gefa forritaranum einfalt API. Og ef þú fylgir þessu API geturðu náð stöðugu samræmi. Ég held að þetta sé rétta módelið. Skrifaðu kóða án gagnahlaupa og fáðu samkvæmni í röð. Til þess að minnka líkurnar á kappakstri þarf auðvitað sérstök verkfæri en það er annað mál. 

Vladimir: Hafa verið tímar á ferlinum þegar vandamál sem virtist leyst breyttust skyndilega í stórslys eða það kom í ljós að þetta vandamál var óleysanlegt? Til dæmis, í orði, getur þú þátt hvaða tölu sem er eða ákvarðað hvort einhver tala sé prímtal. En í reynd getur verið erfitt að gera þetta; með núverandi vélbúnaði er erfitt að þátta tölur. Hefur eitthvað svipað komið fyrir þig?

Michael: Ég man ekki eftir neinu slíku strax. Það hafa komið tímar þar sem mér virtist sem ekkert væri eftir að gera á ákveðnu svæði, en svo gerðist eitthvað nýtt og áhugavert þar. Til dæmis hélt ég að svæðið með ótakmarkaðri biðröð hefði þegar náð þroska. Eftir nokkrar endurbætur á MNS biðröðinni gerðist ekkert mikið lengur. Og svo fundu Morrison (Adam Morrison) og Afek (Yehuda Afek) upp LCRQ biðröð. Það varð ljóst að ótakmörkuð fjölþráða biðröð var möguleg, þar sem oftast var aðeins sótt-og-hækka fyrirmæli á mikilvægu leiðinni. Og þetta gerði það mögulegt að ná stærðargráðu betri frammistöðu. Það er ekki það að við vitum ekki að sækja-og-hækka er mjög gagnlegur hlutur. Eric Freudenthal skrifaði um þetta í vinnu sinni um Ultracomputer með Allan Gottlieb seint á níunda áratugnum, en það var um takmarkaðar biðraðir. Morrison og Afek gátu notað sækja-og-hækka á ótakmarkaða biðröð.

Nýr arkitektúr. Er sigur viðskiptaminni nálægt?

Vladimir: Ertu að leita að nýjum byggingarlausnum sem gætu verið gagnlegar fyrir reiknirit? 

Michael: Auðvitað er margt sem ég myndi vilja sjá útfært. 

Vladimir: Hvers konar, til dæmis?

Michael: Fyrst af öllu, nokkrar einfaldar viðbætur á viðskiptaminni okkar á vélbúnaðarstigi í Intel og IBM örgjörvum. Sérstaklega vildi ég gjarnan að álag og verslun án viðskipta sem kom upp væri strax aðgengileg innan viðskipta. Þeir leiða strax til lykkjur í gerist-áður röðinni, svo þeir geta verið erfiðir. En ef þú heldur uppi óhlutbundnum lögum, þá er margt mjög áhugavert sem þú getur gert fyrir utan viðskiptin á meðan þau eiga sér stað. Ég veit ekki hversu erfitt þetta væri í framkvæmd, en það væri mjög gagnlegt. 

Annar gagnlegur hlutur er að hlaða skyndiminni úr fjarlægu minni. Ég held að þetta verði gert fyrr eða síðar. Þessi tækni gerir kleift að búa til kerfi með sundurliðað minni. Það væri hægt að geyma td 100 terabæta af óstöðugu minni í rekki og stýrikerfið sjálft myndi á kraftmikinn hátt ákveða hvaða hlutar þess minnis ættu að samsvara líkamlegu vistfangarými örgjörvanna. Þetta væri afar gagnlegt fyrir tölvuský, þar sem það myndi gera kleift að útvega miklu minni fyrir þau verkefni sem þurfa á því að halda. Ég held að einhver geri það.

Виталий: Til að klára að tala um viðskiptaminni hef ég eina spurningu í viðbót um þetta efni. Mun viðskiptaminni að lokum koma í stað venjulegs margþráðra gagnaskipulags?

Michael: Nei. Viðskipti eru spákaupmennska. Á forritunarstigi eru þetta atómlæsingar, en inni í þeim eru vangaveltur. Slík spá virkar ef flestar getgátur eru réttar. Þess vegna virkar viðskiptaminni vel þegar þræðir hafa varla samskipti sín á milli og þú þarft bara að ganga úr skugga um að það séu engin samskipti. En ef skilaboð byrja á milli þráða eru viðskipti til lítils. Leyfðu mér að útskýra, við erum að tala um málið þegar viðskipti eru vafið um alla atómaðgerðina. Þeir geta samt verið notaðir með góðum árangri sem íhluti fyrir margþráða gagnabyggingu. Til dæmis, ef þú þarft þriggja orða CAS, og þú þarft að fjölþráða þrjá litla hluti í miðju raunverulega fjölþráða reiknirit sem vinnur með tuttugu þræði á sama tíma. Almennt séð geta viðskipti verið gagnleg, en þau munu ekki útiloka þörfina á að hanna fjölþráða gagnaskipulag á réttan hátt. 

Óstöðugt minni, Optane DIMM, ofurhröð tæki.

Виталий: Það síðasta sem mig langar að tala um er efnið í núverandi rannsóknum þínum: óstöðugt minni. Hvað getum við búist við á þessu sviði á næstunni? Kannski veistu um einhverjar árangursríkar útfærslur sem þegar eru til? 

Michael: Ég er ekki sérfræðingur í vélbúnaði, ég veit bara það sem ég les í fréttum og hvað samstarfsmenn mínir segja mér. Allir hafa þegar heyrt að Intel selur Optane DIMM, sem hafa um það bil 3 sinnum lestrarleynd og 10 sinnum skrifleynd en kraftmikið vinnsluminni. Þeir verða fljótlega fáanlegir í mjög stórum útgáfum. Það er fyndið að hugsa til þess að þú gætir átt fartölvu með nokkrum terabætum af bæti-aðgangshæfu vinnsluminni. Það er líklegt að eftir 10 ár munum við ákveða að nota þessa nýju tækni, þar sem við notum DRAM - bara auka hljóðstyrkinn. En þökk sé orkusjálfstæði opnast alveg ný tækifæri fyrir okkur. Við getum í grundvallaratriðum breytt geymslustaflanum þannig að það sé enginn aðskilnaður á milli bæta-aðgangshæft vinnsluminni og blokkuppbyggt viðvarandi minni. Þannig þurfum við ekki að raðgreina allt sem þarf að flytja frá einu forriti sem keyrt er í annað í blokkuppbyggðar skrár. Af þessu getum við dregið margar mikilvægar meginreglur sem hafa áhrif á stýrikerfi, keyrsluumhverfi og dreifðar gagnageymslur. Þetta svæði er mjög áhugavert að vinna á. Persónulega er erfitt fyrir mig að spá fyrir um hvað þetta mun leiða til, en vandamálin hér eru mjög skemmtileg. Hér kunna að verða byltingarkenndar breytingar og þær fylgja mjög eðlilega af vinnu við fjölþráða, þar sem bilunarbati er „margþráður“ ferli við hliðina á eðlilegri starfsemi kerfisins. 

Annað meginviðfangsefnið sem ég er að vinna að núna er að stjórna ofurhröðum tækjum og öruggum aðgangi að tækjum frá notendasvæðinu með kerfisbundinni stefnustýringu. Undanfarin ár hefur verið sú þróun að færa aðgang að tækinu yfir á notendasvæðið. Þetta er gert vegna þess að TCP-IP kjarnastaflan getur ekki virkað ofan á netviðmóti sem þarf nýjan pakka á 5 míkrósekúndna fresti; hann mun einfaldlega ekki halda í við. Þess vegna veita framleiðendur beinan aðgang að tækjum. En þetta þýðir að stýrikerfið missir stjórn á ferlinu og það getur ekki veitt réttan aðgang að tækinu fyrir samkeppnisforrit. Rannsóknarteymið okkar telur að hægt sé að forðast þennan galla. Við munum hafa grein um þetta á USENIX ATC í þessum mánuði. Það tengist vinnu við þrautseigju, þar sem langlíft bæta-viðfangshæft viðvarandi minni er í raun tæki með ofurhröðu I/O sem þarf að nálgast í notendarýminu. Þessar rannsóknir gera mögulegar nýjar aðferðir við örkjarna, exokernela og aðrar hefðbundnar tilraunir til að færa virkni á öruggan hátt frá OS kjarnanum yfir í notendarýmið. 

Vladimir: Bætamiðlaranlegt minni er frábært, en það er líkamleg takmörkun - ljóshraðinn. Þetta þýðir að það verður óhjákvæmilega seinkun á samskiptum við tækið. 

Michael: Algerlega rétt.

Vladimir: Verður næg bolmagn til að takast á við nýja álagið?

Michael: Þetta er frábær spurning, en það verður erfitt fyrir mig að svara. Hugmyndin um að vinna í minni hefur verið til í nokkuð langan tíma, hún er mjög áhugaverð en líka mjög flókin. Ég hef ekki unnið á þessu sviði en það væri frábært ef einhverjar uppgötvanir yrðu gerðar þar. Ég er hræddur um að ég hafi engu meira við að bæta. 

Vladimir: Það er eitt vandamál í viðbót. Nýtt, umtalsvert meira magn af vinnsluminni verður ómögulegt að passa inn í örgjörvann. Þess vegna, vegna líkamlegra takmarkana, verður þetta vinnsluminni að vera einangrað. 

Michael: Það veltur allt á fjölda galla í framleiðslu samþættra hringrása. Ef hægt væri að búa til hálfleiðaraplötur algjörlega gallalausar, þá væri hægt að búa til heila örrás úr því. En nú vitum við ekki hvernig á að gera örrásir stærri en frímerki. 

Vladimir: En við erum samt að tala um risastórar stærðir, um sentimetra. Þetta hefur óhjákvæmilega áhrif á leynd. 

Michael: Já. Það er ekkert sem þú getur gert við ljóshraða. 

Vladimir: Því miður. 

Næsta stóra trend. Tvöfalt gagnaskipulag. Hydra.

Виталий: Eftir því sem ég skil þá nærðu nýjum trendum mjög fljótt. Þú varst einn af þeim fyrstu til að vinna í viðskiptaminni og einn af þeim fyrstu til að vinna í óstöðugu minni. Hvað heldurðu að verði næsta stóra trendið? Eða er það kannski leyndarmál?

Michael: Satt að segja veit ég það ekki. Vonandi get ég tekið eftir því þegar eitthvað nýtt kemur upp. Ég hef ekki verið svo heppin að finna upp nein ný svið á eigin spýtur, en ég hef haft nokkra heppni og getað byrjað að vinna frekar snemma á nýjum sviðum sem aðrir hafa búið til. Ég vona að ég geti gert þetta í framtíðinni.

Alexey: Síðasta spurningin í þessu viðtali mun snúast um frammistöðu þína hjá Hydra og starfsemi þína í skólanum. Ef ég skil rétt mun skýrslan í skólanum fjalla um blokkunarlausa reiknirit og á ráðstefnunni um tvöföld gagnastrúktúr. Gætirðu sagt nokkur orð um þessar skýrslur?

Michael: Að hluta til höfum við þegar komið inn á þessi efni með þér í þessu viðtali. Hún fjallar um vinnuna sem ég vann með Bill Scherer nemanda mínum. Hann skrifaði ritgerð um það og Doug Lee lagði líka sitt af mörkum til þess og það varð að lokum hluti af margþráðum samstilltum biðröðum í Java bókasafninu. Gerum ráð fyrir að gagnauppbyggingin sé lesin og skrifuð án lokunar, það er að hver aðgerð hefur takmarkaðan fjölda leiðbeininga um mikilvæga leiðina. Ef þú reynir að fjarlægja gögn úr tómum íláti, eða reynir að fjarlægja ákveðin gögn sem eru ekki í þessum íláti, færðu strax tilkynningu um að það sé ekki hægt að gera það. En þessi hegðun er kannski ekki ásættanleg ef þráðurinn þarf virkilega þessi gögn. Þá er það fyrsta sem kemur upp í hugann að búa til lykkju sem spyr stöðugt hvort nauðsynleg gögn hafi birst. En svo er truflun fyrir alla aðra. Að auki, með þessari nálgun, geturðu beðið í 10 mínútur, og þá kemur einhver annar þráður, og hann mun óvart fá nauðsynleg gögn fyrst. Tvöfalt gagnaskipulag er enn ekki með læsingar, en þeir leyfa þráðum að bíða rétt. Hugtakið "tvöfaldur" þýðir að uppbyggingin inniheldur annað hvort gögn eða beiðnir um gögn, við skulum kalla þau and-gögn. Þannig að ef þú reynir að sækja eitthvað úr tómum íláti verður beiðni sett í ílátið í staðinn. Nú getur þráðurinn beðið eftir beiðni án þess að trufla neinn. Að auki úthlutar gagnaskipan beiðnum forgangsröðun þannig að þegar þær eru mótteknar sendir hún þær áfram til rétta aðila. Niðurstaðan er ólæsandi vélbúnaður sem enn hefur formlega forskrift og góða frammistöðu í reynd. 

Alexey: Hverjar eru væntingar þínar frá þessari gagnauppbyggingu? Mun það bæta árangur í öllum algengum tilvikum, eða hentar það betur fyrir ákveðnar aðstæður? 

Michael: Það er gagnlegt ef þú þarft í fyrsta lagi gám án læsingar og í öðru lagi þarftu að bíða í aðstæðum þar sem þú þarft að sækja gögn úr gámnum sem er ekki í honum. Eftir því sem ég best veit veitir umgjörð okkar bestu hegðun þegar þessi tvö skilyrði eru uppfyllt. Þess vegna mæli ég með því að nota það í þessum tilvikum. Helsti kosturinn við læsalausa gagnabyggingu er að þau forðast frammistöðuvandamál. Og bið er mjög mikilvæg í mörgum reikniritum ef gögn eru flutt frá einum þræði til annars.

Виталий: Leyfðu mér að útskýra: ætlarðu að tala um það sama bæði í skólanum og á ráðstefnunni?

Michael: Í skólanum Ég mun tala almennt um fjölþráða gagnauppbyggingu, með grunnreglunum sem lýst er í upphafi kennslustundar. Ég geri ráð fyrir að áhorfendur viti hvað þræðir eru og þekki lása. Byggt á þessari grunnþekkingu mun ég tala um læsingarlausar gagnabyggingar. Ég mun gefa yfirlit yfir mikilvægustu vandamálin á þessu sviði og snerta efni eins og minnisstjórnun. Ég held að það verði ekkert flóknara en MS biðröð.

Alexey: Ætlarðu að kenna um tvöfalda gagnastrúktúr í lok tímans í skólanum?

Michael: Ég mun nefna þá, en ég mun ekki eyða miklum tíma í þá. Hydra skýrslan verður tileinkuð þeim. Það mun fjalla um verkefnið sem að lokum komst í Java, auk þess að vinna með Joe Israelevich að því að búa til tvöfalt afbrigði af LCRQ biðröðinni og búa til næstum alhliða hönnun fyrir tvöfalda gagnabyggingu.

Alexey: Svo má mæla með fyrirlesturinn í skólanum fyrir byrjendur, og fyrirlesturinn um tvöfalda gagnastrúktúr á Hydra - fyrir fólk sem þegar hefur einhverja reynslu?

Michael: Leiðréttið mig ef ég hef rangt fyrir mér, en áhorfendur á Hydra verða ansi fjölbreyttir, þar á meðal margir Java sérfræðingar, og almennt fólk sem tekur ekki sérstaklega þátt í fjölþráða forritun. 

Виталий: Já það er satt.

Alexey: Við vonum það allavega.

Michael: Í þessu tilfelli mun ég standa frammi fyrir sama vandamáli og við hófum þetta viðtal með: hvernig á að gera skýrslu bæði nægilega ríka af tæknilegum upplýsingum og aðgengilega öllum hlustendum.

Виталий: Ætlarðu að gefa skýrslu á sama hátt og þú heldur fyrirlestra? Semsagt tala við áhorfendur og laga sig að aðstæðum?

Michael: Ég er hræddur um að það muni ekki ganga þannig, því skýrslan verður með glærum. Glærur eru mikilvægar þegar hlustendur tala mismunandi tungumál í upphafi. Margir munu eiga erfitt með að skilja mig á ensku, sérstaklega ef ég tala of hratt. Ég valdi þessi efni vegna þess Pétur Kuznetsov bað mig að tala um læsingarlausar gagnauppbyggingar í SPTDC skóla; og svo þurfti ég skýrslu fyrir Java notendahóparáðstefnu og ég vildi velja eitthvað sem væri sérstaklega áhugavert fyrir Java forritara. Auðveldasta leiðin var að tala um þá hluti í Java bókasafninu sem ég hafði hönd í bagga með á einn eða annan hátt. 

Alexey: Við gerum ráð fyrir að áhorfendur á Hydra viti nú þegar eitthvað um láslausa forritun og hafi kannski einhverja reynslu á þessu sviði. En þetta er aðeins forsenda, staðan mun skýrast betur á ráðstefnunni sjálfri. Engu að síður, takk fyrir tíma þinn. Ég er viss um að viðtalið verður mjög áhugavert fyrir lesendur okkar. Kærar þakkir!

Виталий: Þakka þér fyrir. 

Michael: Það mun gleðja mig að hitta þig í Pétursborg. 

Alexey: Við líka, við eigum fallega borg. Hefur þú einhvern tíma verið hér?

Michael: Nei, ég hef aldrei komið til Rússlands. En Sankti Pétursborg hefur alltaf verið á listanum yfir staði þar sem ég hef ekki verið enn, en þangað sem ég vil endilega fara, svo ég var mjög ánægður með boðið. 

Alexey: Við the vegur, við munum vera með dagskrá skoðunarferðir fyrir fyrirlesara. Takk kærlega fyrir viðtalið og eigðu góðan dag!

Þú getur haldið áfram samtali þínu við Michael á Hydra 2019 ráðstefnunni sem haldin verður 11.-12. júlí 2019 í St. Pétursborg. Hann mun koma með skýrslu „Tvöfalt gagnaskipulag“. Hægt er að kaupa miða á opinberu heimasíðunni.

Heimild: www.habr.com

Bæta við athugasemd