"Encamên ezmûnî tenê ji bo weşanê ne, mebestên rastîn ên xebatê estetîk in." Hevpeyvînek mezin bi Michael Scott re

"Encamên ezmûnî tenê ji bo weşanê ne, mebestên rastîn ên xebatê estetîk in." Hevpeyvînek mezin bi Michael Scott re Michael Scott - jixwe 34 salî ye wek profesorê Zanistên Kompîturê li zanîngeha Rochester, û li zanîngeha mala xwe ya Wisconsin–Madison pênc salan dekan bû. Ew li ser bernamesaziya paralel û belavbûyî û sêwirana zimanî lêkolîn dike û xwendekaran hîn dike.

Dinya Mikaîl ji pirtûka dersê nas dike "Pragmatîka Zimanê Bernameyê", çi li ser kar "Algorîtmayên ji bo hevdengkirina berbelav li ser multiprosesorên bîranîna hevpar" Xelata Dijkstra wekî yek ji navdartirîn di warê komputera belavkirî de wergirt. Hûn dikarin wî jî wekî nivîskarê wê algorîtmayê nas bikin Michael-Scott.

Bi Doug Lee re, wî algorîtmayên ne-astengker û rêzikên hevdem ên ku pirtûkxaneyên Java-yê hêzdar dikin pêşve xistin. Pêkanîna "strukturên daneya dualî" di JavaSE 6 de performansa 10 carî çêtir kir ThreadPoolExecutor.

Contains:

  • Kariyera destpêkê, Zanîngeha Rochester. Projeya Charlotte, zimanê Lynx;
  • IEEE Navbera Hevgirtî ya Scalable, Girtina MCS;
  • Di cîhanek ku her gav diguhere de saxbûn;
  • Ma xwendekar gêj dibin? Meylên gerdûnî, navneteweyîbûn;
  • Xebata bi bandor a bi xwendekaran re;
  • Meriv çawa bi amadekirina qurs û pirtûkên nû re mijûl dibe;
  • Têkiliyên di navbera karsazî û akademiyê de;
  • Pêkanîna pratîkî ya ramanan. MCS, MS, CLH, JSR 166, bi Doug Lee û bêtir dixebitin;
  • Bîra danûstandinê;
  • Mîmarên nû. Serkeftina bîranîna danûstandinê nêzîk e;
  • Bîra nehêle, Optane DIMM, cîhazên ultra-lez;
  • Meyla mezin a din. Avahiyên daneyên dualî. Hydra.

Hevpeyvîn ji hêla:

Vitaly Aksenov - niha li IST Avusturya postdoc û endamê Beşa Teknolojiyên Komputerê li Zanîngeha ITMO ye. Di warê teorî û pratîkê de strukturên daneya pêşbaziyê lêkolînan dike. Beriya ku li IST-ê bixebite, doktoraya xwe ji Zanîngeha Parîs Diderot û Zanîngeha ITMO di bin çavdêriya Profesor Peter Kuznetsov de wergirtiye.

Alexey Fedorov Li JUG Ru Group, pargîdaniyek rûsî ku konferansan ji bo pêşdebiran organîze dike, hilberîner e. Alexey beşdarî amadekirina zêdetirî 50 konferansan bû, û rezûma wî ji pozîsyona endezyarek pêşkeftinê li Oracle (JCK, Koma Platforma Java) heya pozîsyona pêşdebirkerek li Odnoklassniki her tiştî vedihewîne.

Vladimir Sitnikov li Netcracker endezyar e. Bi deh salan ew li ser performans û mezinbûna NetCracker OS-ê dixebite, nermalava ku ji hêla operatorên telekomê ve tê bikar anîn da ku pêvajoyên rêveberiya torgilok û torê otomatîk bike. Bi pirsgirêkên performansa Java û Oracle Database re eleqedar e. Nivîskarê zêdetirî bi dehan çêtirkirinên performansê di ajokera fermî ya PostgreSQL JDBC de.

Kariyera destpêkê, Zanîngeha Rochester. Projeya Charlotte, zimanê Lynx.

Алексей: Ji bo destpêkê, min xwest ji we re bibêjim ku li Rûsyayê em hemî bi rastî ji Zanistiya Kompîturê, Zanistiya Daneyê û algorîtmayan hez dikin. Ew bi tevahî bêaqil e. Me her tişt xwendiye pirtûka Cormen, Leiserson û Rivest. Ji ber vê yekê, konferans, dibistan û ev hevpeyvîn bixwe divê pir populer be. Me gelek pirs ji bo vê hevpeyvînê ji xwendekar, bernamenûs û endamên civakê wergirtin, ji ber vê yekê em ji bo vê derfetê gelek spasdar in. Zanistiya Komputerê li Dewletên Yekbûyî heman hezkirinê digire?

Michael: Qada me ewçend cihêreng e, gelek rêgezên wê hene, û bi gelek awayên cuda bandorê li civakê dike ku ez zehmetim ku ez bersivek teqez bidim we. Lê rastî ev e ku di van 30 salên borî de di karsazî, pîşesazî, huner û civakê de guhertinên pir mezin pêk anîne.

Vitali: Em bi tiştekî dûr dest pê bikin. Di gelek zanîngehan de tiştek mîna pisporiyê di yek qada taybetî de heye. Ji bo Zanîngeha Carnegie Mellon ev hesabkirina paralel e, ji bo MIT-ê ew krîptografî, robot û multithreading e. Li Zanîngeha Rochester pisporiyek wusa heye?

Michael: Bi rastî ez dibêjim ku CMU û MIT di hemû waran de pispor in. Daîreya me her tim herî zêde bala xwe daye îstîxbarata çêkirî. Nîvê mirovên ku ji bo me dixebitin bi têkiliya AI an mirov-komputerê re mijûl in - ev para ji beşên din zêdetir e, û her gav wusa bû. Lê dema ku ez li zanîngehê bûm, dersên min ên AI-ê tune bûn û min qet di vî warî de nexebitî. Ji ber vê yekê beşa min di pirsgirêkek ku tiştek pê re tune ye pispor e. Teselî ev e ku ji bo beşa me pirsgirêka duyemîn a herî girîng bernameya paralel û pir-tehlî ye, ango pisporiya min e.

Vitali: We di Zanista Kompîturê de dest bi xebatê kir dema ku qada bernamesaziya pir-têlan nû derdiket holê. Navnîşa weşanên we destnîşan dike ku karên weya yekem bi cûrbecûr pirsgirêkan re mijûl bûne: rêveberiya bîranînê di pergalên pir-mijarî de, pergalên pelan ên belavkirî, pergalên xebitandinê. Çima wisa piralî? Ma hûn hewl didin ku cîhê xwe di nav civata lêkolînê de bibînin?

Michael: Ez wek xwendekar beşdar bûm projeya Charlotte li Zanîngeha Wisconsin, ku yek ji yekem pergalên xebitandinê yên belavkirî hate pêşve xistin. Li wir ez bi Rafael Finkel re bi hev re xebitîm (Raphael Finkel) û Marvin Solomon (Marvin Solomon). Teza min ji bo pêşxistina zimanek ji bo nermalava pergalê ji bo pergalên belavbûyî ve girêdayî bû - naha her kesî ew ji bîr kiriye, û spas ji Xwedê re. Min zimanê bernamenûsê Lynx afirand, ku mebest jê ew bû ku çêkirina serverên ji bo pergala xebitandina belavkirî ya bêkêmasî hêsantir bike. Ji ber ku di wê demê de ez bi piranî di pergalên xebitandinê de mijûl bûm, min texmîn kir ku kariyera min dê bi giranî bi wan ve girêdayî be. Lê Rochester zanîngehek pir piçûk bû, û ji ber vê yekê, komên cihêreng ên li wir ji nêz ve bi hev re têkilî danî. Li wir bi dehan pergalên xebitandinê yên din tunebûn ku ez pê re biaxivim, ji ber vê yekê hemî têkiliyên min bi kesên ku di warên bi tevahî cûda de dixebitin re bûn. Ez bi rastî jê kêfa min hat, bûyîna tev-dorparêz ji bo min avantajek mezin e. Ger em bi taybetî li ser strukturên daneya pir-mijal û algorîtmayên hevdemkirinê biaxivin, wê hingê min bi tevahî bi tesadufî dest bi xebata li ser wan kir.

IEEE Navrûya Hevgirtî ya Scalable, Girtina MCS.

Vitali: Tu dikarî hinekî li ser vê yekê ji me re bibêjî?

Michael: Ev çîrokeke pêkenok e ku ez qet ji her kesî bêjim. Di konferansekê de çêbû ASPLOS li Boston - ev di dawiya salên 80-an an destpêka salên 90-an de bû. John Mellor-Crummey (John Mellor-Crummey), mezûnê fakulteya me ye. Min ew nas dikir, lê me berê lêkolîneke hevpar nekiribû. Mary Vernon (Mary Vernon) ji Wisconsin axaftinek li ser pergalek pirpêvajoyê ya ku ew li Wisconsin pêşdixistin kir: Wisconsin Multicube. Ev Multicube di asta hardware de xwediyê mekanîzmayek hevdemkirinê bû ku jê re Q li ser Bit Syncê digotin, û dûv re navê wê hate guheztin Q li ser Lock Bit ji ber ku ew mîna penêrê Colby dixuya, ya ku ceribandî bû. Heke hûn bi mekanîzmayên pir-têkilî re eleqedar dibin, hûn belkî dizanin ku Colby di dawiyê de bû motora hevdengkirinê ji bo standarda Navbera Hevbeş a Scalable IEEE. Ev mekanîzmayek qefilandinê bû ku di asta hardware de ji cacheyekê ber bi yekî din ve nîşankeran diafirand da ku her xwediyê qeflê bizane dora kê ye. Gava ku min û Yûhenna li ser vê yekê bihîst, me li hev nihêrt û got: çima vê yekê di asta hardware de dikin? Ma heman tişt bi karanîna berhev-û-swap nayê bidestxistin? Me yek ji defterên li polê razayî girt û li ser nivîsand Astengkirina MCS, dema ku Meryem rapora xwe berdewam kir. Dûv re, me ew pêk anî, ceribandin, fikra serkeftî derket û me gotar weşand. Wê demê, ji bo min, ev mijar tenê xemgîniyek kêfê xuya bû, piştî ku min plan kir ku vegerim pergalên xebitandinê. Lê dûv re pirsgirêkek din a li ser heman xetê derket holê, û di dawiyê de hevdemkirin, pirzimanî, û strukturên daneyê bûn taybetmendiya min. Wekî ku hûn dibînin, ev hemî bi tesadufî qewimî.

Vitali: Demek dirêj e ku ez bi astengkirina MCS nas dikim, lê heya nuha min nizanibû ku ew karê we ye, û min fam nekir ku ew kurteya paşnavên we ye.

Meriv çawa di cîhanek ku her gav diguhere de bijî?

Алексей: Pirseke min li ser mijareke pêwendîdar heye. 30 an 40 sal berê di pisporên cuda de bêtir azadî hebû. Ger hûn dixwazin di pergalên pir-threading an belavkirî de kariyerek dest pê bikin, hûn bi xêr hatin, ger hûn dixwazin têkevin pergalên xebitandinê, pirsgirêk nîne. Di her warî de gelek pirsên vekirî û kêm pispor hebûn. Pisporên teng naha derketine holê: ne tenê pisporên pergalên xebitandinê bi gelemperî hene, li ser pergalên kesane pispor hene. Bi pergalên pirzimanî û belavbûyî re heman tişt e. Lê pirsgirêk ew e ku jiyana me ne bêdawî ye; Meriv çawa di vê cîhana nû de bijî?

Michael: Em ne taybet in di vî warî de heman tişt carekê li deverên din qewimîn. Ez bextewar bûm ku min dest bi xebatê di Zanistiya Kompîturê de kir dema ku ev qad di salên xwe yên "ciwaniyê" de bû. Jixwe hin bingeh hatibûn avêtin, lê her tişt hîn pir negihîştî bû. Ev fersend pir caran nayê. Endezyariya elektrîkê ji mêj ve ye, fîzîk hîn dirêjtir, matematîk hema ji destpêka zemanê ve. Lê ev nayê wê wateyê ku êdî kes di matematîkê de keşfên balkêş nake. Hîn gelek pirsgirêkên vekirî hene, lê di heman demê de, pêdivî ye ku bêtir fêr bibin. Hûn rast dizanin ku nuha gelek pisporî ji yên berê bêtir hene, lê ev tenê tê vê wateyê ku em xwe di heman rewşê de wekî piraniya deverên din ên çalakiya mirovî dibînin.

Алексей: Li vir aliyê pratîktir ê meseleyê bala min dikşîne. Paşerojeke min a matematîkê heye, û di dema xwendina xwe de ez gelek caran beşdarî konferansan bûm û li ser mijarên zanistî yên cihê xebitîm. Min kifş kir ku di temaşevanan de kes ji raporên min fam nekir, û bi heman rengî, raporên mirovên din tenê ji xwe re têne fam kirin. Ev di mijarên asta bilind de ne wusa ye, lê gava ku hûn dest pê bikin di nav tiştek de hûr bibin, temaşevan êdî nikare bi we re bisekine. Hûn bi vê yekê re çawa dikin?

Michael: Ne hertim serketî. Min herî dawî raporek amade kir ku tê de ez pir kûr ketim nav hûrguliyên teknîkî. Her ku axaftin bi pêş ve diçû, diyar bû ku piraniya temaşevanan ji min fêm nakin, ji ber vê yekê ez neçar bûm ku xwe bi rewşê re li ser piyan biguhezînim. Slayd nekarin werin guheztin, ji ber vê yekê ew pir baş derneket - ji ber vê yekê, bi gelemperî, ez hewl didim ku slaytan bikar neynin. Bi tevahî, şîreta min ev e ku hûn temaşevanên xwe bifikirin. Pêdivî ye ku hûn zanibin ku hûn bi kê re diaxivin, asta zanîna wan çi ye û ew hewce ne ku çi bibihîzin da ku xebata we binirxînin.

Vitali: Tu dikarî îşaretekê bikî ka ev ders li ser çi bû?

Michael: Bi rastî ez tercîh dikim ku vê mijarê berfireh nekim da ku kesên navborî bênavber bihêlin. Mesele ev e ku em gelek caran pir kûr dikevin nav tevliheviyên pirsgirêka ku em li ser dixebitin, ji ber vê yekê ji me re dijwar dibe ku em di destpêka axaftinê de rave bikin ka çima pirsgirêk balkêş û girîng e û ew çawa bi mijarên ku temaşevan jixwe dizane. Li gorî dîtinên min, hînbûna vê jêhatîbûnê dema herî dijwar a xwendekaran heye. Û ev jî xala lawaz a rapora min a dawî bû. Raporek bi rêkûpêk hatî çêkirin divê, ji destpêkê ve, bi temaşevanan re têkilî peyda bike, ji wan re rave bike ka bi rastî pirsgirêk çi ye û ew çawa bi mijarên ku berê jê re hatine zanîn ve têkildar e. Ev danasînê çiqas teknîkî ye bi temaşevanan ve girêdayî ye. Ger ew bi tevahî tevlihev be, wê hingê rapor dikare pir qonax be. Pêdivî ye ku danasîn ji her kesî re bigihîje, û heya dawiyê dibe ku perçe nikaribin bi we re bimeşin, lê mirovên ku bi warê we re têkildar dizanin dê karibin wê fêhm bikin.

Ma xwendekar gêj dibin? Meylên gerdûnî, navneteweyîbûn.

Алексей: Ev çend deh sal in ku hûn çavdêriya xwendekaran dikin. Ma xwendekar ji deh sal bi deh sal an sal bi sal gêjtir an jîrtir dibin? Li Rûsyayê, profesor bi domdarî gilî dikin ku xwendekar her sal lal dibin, û bi rastî ne diyar e ka meriv li ser vê yekê çi bike.

Michael: Bi rastî tu dikarî ji me kal û pîran gelek nerênî bibihîzî. Binehişmendî, meyla me heye ku em li bendê ne ku xwendekar hemî ezmûna 30-salî ya ku me berê heye, bikişîne. Ger têgihiştineke min ji ya sala 1985’an kûrtir hebe, çima xwendekar jê re nînin? Dibe ku ji ber ku ew 20 salî ne, hûn çi difikirin? Ez difikirim ku di dehsalên dawî de guhertinên herî girîng di pêkhateya demografîk de bûn: me niha bi girîngî bêtir xwendekarên navneteweyî hene, ji bilî Kanadayî. Berê gelek Kanadî hebûn ji ber ku em pir nêzî sînorê Kanadayê ne û xwendekar ji wir dikarin dawiya hefteyê biçin malên xwe. Lê niha li Kanada gelek zanîngehên baş hene, û Kanadayî tercîh dikin ku li vir bixwînin, ji wan pir hindiktir têne Dewletên Yekbûyî.

Алексей: Bi dîtina we ev meyleke herêmî ye yan ya cîhanî ye?

Michael: Tam nayê bîra min kê, lê yekî got ku dinya rût e. Qada me gelekî navneteweyî bûye. Konferansên ACM Berê, ew bi taybetî di nav Dewletên Yekbûyî de dihatin girtin, paşê wan biryar da ku her 4 salan carekê li welatên din werin lidarxistin, û niha li seranserê cîhanê têne girtin. Van guhertinan hîn zêdetir bandor kir IEEE, ji ber ku ew her dem ji ACM rêxistinek navneteweyî ye. Û ji Çîn, Hindistan, Rûsya, Almanya û gelek welatên din kursiyên bernameyê hene, ji ber ku niha li her derê gelek tişt diqewimin.

Алексей: Lê, belkî, hin aliyên neyînî yên navneteweyîbûna wiha hene?

Michael: Ez dibêjim hemû aliyên neyînî ne bi teknolojiyê ve, lê bi siyasetê ve girêdayî ne. Carekê, pirsgirêka sereke ev bû ku DYE mirovên herî jîr û jêhatî ji welatên cîhanê didizin. Û niha pirsgirêka sereke lîstikên siyasî yên di navbera welatên cuda de li ser vîze û koçberiyê ne.

Алексей: Yanî asteng û tiştên wiha. Diyar e.

Владимир: Ez bi xwe bala min dikişînim ku hûn di dema hînkirina mijarek nû ji xwendekaran re çi nêzîkatiyê digirin dest. Vebijarkên cihêreng hene: hûn dikarin berî her tiştî biceribînin ku wan teşwîq bikin ku tiştek nû biceribînin, an jî hûn dikarin bêtir bala xwe bidin hûrguliyên ka teknolojiyek çawa dixebite. Hûn çi tercîh dikin?

Bi xwendekaran re xebatek bi bandor

Алексей: Û çawa meriv hevsengiya lanet di navbera ya yekem û ya duyemîn de bibîne?

Michael: Pirsgirêk ev e ku ders her gav bi awayê ku ez dixwazim naçin. Ez bi gelemperî materyalên xwendinê di pêş de didim xwendekaran, da ku ew tê de bikolin, li gorî îmkanên xwe jê fam bikin, û li ser wan beşên ku nekarîn fam bikin pirsan formule bikin. Dûv re di dersê de hûn dikarin li ser demên herî dijwar bisekinin û bi hev re wan bikolin. Bi vî awayî ez herî zêde hez dikim ku dersan bidim. Lê ji ber barê ku naha li ser xwendekaran heye, ez her gav nekarim piştrast bikim ku ew pêşwext amade dikin. Wekî encamek, pêdivî ye ku hûn ji ya ku hûn dixwazin pir zêdetir wext bidin veguheztina gelemperî ya materyalê. Tevî vê yekê, ez hewl didim ku dersên me înteraktîf bihêlim. Wekî din, hêsantir e ku meriv carekê vîdyoyek tomar bike ku xwendekar wê hingê li malê temaşe bikin. Xala dersên zindî têkiliya mirovan e. Di sinifê de, ez tercîh dikim ku ji slaytan çeq û tabloyek reş bikar bînim, ji bilî hin rewşan dema ku diyagramek pir tevlihev e ku meriv li ser tabloyê xêz bike. Bi saya vê, ne hewce ye ku ez li ser plansaziyek dersê ya hişk bimînim. Ji ber ku rêzek hişk a ku ez materyalê didim tune ye, ev dihêle ku ez li gorî pirsên ku ez distînim wê li gorî temaşevanan biguhezînim. Bi gelemperî, ez hewl didim ku dersan bi qasî ku gengaz be înteraktîf bikim, da ku materyalê ku ez pêşkêş dikim bi pirsên ku ji min têne pirsîn ve girêdayî be.

Владимир: Baş e. Li gorî ezmûna min, pir dijwar e ku guhdarvanan bipirsin. Her çend hûn pêşwext bipirsin ku hûn her pirsek bipirsin, çiqas bêaqil an jîr be jî, ew dîsa jî bêdeng in. Hûn bi vê yekê re çawa dikin?

Michael: Hûnê bikenin, lê ger hûn têra xwe bêdeng bisekinin, zû yan dereng dê her kes nerehet bibe û kesek dê pirsekê bike. An jî hûn dikarin pirsek teknîkî ya hêsan bi bersivek erê an na bipirsin da ku diyar bikin ka mirov tiştê ku tenê hatî gotin fam dikin. Mînakî, di mînaka jorîn de pêşbaziyek daneyê heye? Kî wisa difikire? Kî nafikire? Ma kî qet tiştek fam nake, ji ber ku bi tevahî tenê nîvê destan bilind bûne?

Vitali: Û eger te xelet bersiv da, tu ji polê tê avêtin :)

Michael: Eger te bersiv nedaye, wê demê divê tu pirsekê bikî. Divê ez fêhm bikim ku xwendekar bi rastî çi hewce dike ku bizanibe da ku bersiva pirsa ku min tenê pirsî bide. Ez hewce dikim ku ew alîkariya min bikin ku alîkariya wan bikin. Ez amade me ku bi wan re biguncim da ku ew pirsgirêkê fêm bikin. Lê eger ez nizanim çi di serê wan de ye, ez nikarim bikim. Û heke hûn ji bo demek têra xwe dirêj aramiyê nedin xwendekaran, carinan di dawiyê de ew pirsên rast dipirsin, ango yên ku dihêlin ez bibînim ka bi rastî di serê xwendekaran de çi diqewime. 

Алексей: Gelo ev pirs carinan dibin sedema ramanên ku te bi xwe berê nefikirîne? Ma ew nediyar in? Ma ew dihêlin ku hûn bi rengek nû li pirsgirêkê binêrin?

Michael: Pirs hene ku rêyeke nû ya pêşkêşkirina materyalê vedikin. Pir caran pirs hene ku dibin sedema pirsgirêkên balkêş ên ku min plan nedikir ku li ser biaxivim. Xwendekar bi gelemperî ji min re dibêjin ku gava ku ev diqewime meyla min heye ku ji mijarê derkevim. Û, li gorî wan, pir caran ev beşa dersê ya herî balkêş e. Pir kêm, tenê çend caran, xwendekaran pirsên ku di lêkolînê de rêgezek nû derxistin û di gotarek de mezin bûn pirsîn. Ev di sohbetên bi xwendekaran re ne di dema dersan de pir caran diqewime, lê carinan di dema dersan de çêdibe. 

Алексей: Yanî xwendekaran pirs ji we kirin ku li ser wê bingehê îmkana weşandina gotarekê heye?

Michael: Erê. 

Vitali: Tu çend caran van sohbetan bi xwendekaran re dikî? Kengê ew dixwazin ji tiştên ku di dersê de hatine nixumandin bêtir fêr bibin?

Michael: Li gel xwendekarên xwe yên mezûn - her dem. Nêzîkî 5 an 6 ji wan hene, û em her dem bi wan re tiştek nîqaş dikin. Û sohbetên bi vî rengî bi xwendekarên ku bi tenê beşdarî dersên min dibin, ne pir gelemperî ne. Her çend ez dixwazim ku ev pir caran biqewime. Ez guman dikim ku ew tenê ditirsin ku di demjimêrên kargehê de werin fakulteyê. Di her semesterê de, hin xwendekar vê astengiya psîkolojîk derbas dikin, û her gav pir balkêş e ku meriv piştî dersê bi wan re biaxive. Rast e, ger hemî xwendekar ewqas wêrek bûna, dê wextê min têr nedikir. Ji ber vê yekê dibe ku her tişt wekî ku divê dixebite. 

Vitali: Hûn çawa dikarin wextê ji bo danûstandina bi xwendekaran re peyda bikin? Bi qasî ku ez dizanim, li Dewletên Yekbûyî yên Amerîkayê gelek karên mamosteyan hene - serîlêdana alîkariyê û yên wekî. 

Michael: Bi rastî, karkirina bi xwendekaran re aliyekî karê min e ku herî zêde kêfa min jê re tê. Ji ber vê yekê têra xwe motîvasyona vê yekê heye. Piraniya wextê ku ez li ofîsa xwe derbas dikim ji bo her cûre civînên xwe derbas dikim. Niha havîn e, ji ber vê yekê bernameya min hindiktir e, lê di sala xwendinê de, her roj ji 9 heta 17 min her tişt tije ye. Xebatên lêkolînê, nirxandin, bexş - ji bo van hemûyan tenê êvar û dawiya hefteyê hene. 

Meriv çawa bi amadekirina qurs û pirtûkên nû re mijûl dibe.

Алексей: Tu niha berdewamî li dersdana wan kursan ku ev demeke dirêje te ders didin? Tiştek mîna danasîna Zanista Komputerê.

Michael: Li vir yekem tiştê ku tê bîra min kursa zimanên bernamesaziyê ye. 

Алексей: Guhertoya îro ya vê qursê ji ya 10, 20, 30 sal berê çiqas cuda ye? Belkî ya ku li vir balkêştir e ne hûrguliyên qursek taybetî ye, lê meyla gelemperî ye.

Michael: Kursa min a li ser zimanên bernamekirinê di dema ku min ew afirand hinekî neasayî bû. Min di dawiya salên 1980-an de dest bi xwendina wê kir, li şûna hevkarê xwe, Doug Baldwin (Doug Baldwin). Mijara qursê tenê bi taybetmendiya min ve girêdayî bû, lê dema ku ew çû, ez namzedê herî baş bûm ku ez ders bidim. Min ji pirtûkên dersê yên ku wê demê hebûn hez nedikir, ji ber vê yekê min bixwe pirtûka dersê ji bo vê qursê nivîsand. (Nîşeya edîtor: em behsa pirtûkê dikin "Pragmatîka Zimanê Bernameyê") Niha li seranserê cîhanê li zêdetirî 200 zanîngehan tê bikaranîn. Nêzîkatiya min ne asayî ye ji ber ku ew bi zanetî pirsgirêkên sêwirandin û bicihanîna ziman tevlihev dike, û girîngiyek mezin dide danûstendina van aliyan di hemî warên gengaz de. Nêzîkatiya bingehîn neguherî maye, wekî gelek têgehên bingehîn: abstractions, navan, modularity, celeb. Lê koma zimanên ku bi van têgînan têne destnîşan kirin bi tevahî guherî. Dema ku qurs yekem car hat afirandin, di Pascal de gelek nimûne hebûn, lê îro gelek xwendekarên min jî ev ziman nebihîstin. Lê ew Swift, Go, Rust dizanin, ji ber vê yekê divê ez li ser zimanên ku îro têne bikar anîn biaxivim. Di heman demê de, xwendekar niha bi zimanên nivîsandinê baş dizanin, lê gava ku min dest bi hînkirina vê qursê kir, ew hemî li ser zimanên berhevkirî bû. Naha di derbarê Python, Ruby û tewra Perl de hewcedariya me bi gelek materyalan heye, ji ber ku di van rojan de mirov kodê dinivîse ev e, û di van zimanan de gelek tiştên balkêş diqewimin, di nav de di warê sêwirana ziman de jî. 

Vitali: Wê demê pirsa min ê bê dê bi ya berê re têkildar be. Meriv çawa di vê deverê de bisekine? Ez guman dikim ku nûvekirina qursek bi vî rengî gelek kar hewce dike - hûn hewce ne ku zimanên nû fam bikin, ramanên sereke fam bikin. Hûn vê yekê çawa dikin?

Michael: Ez nikarim pesnê xwe bidim ku ez her dem 100% bi serdikim. Lê pir caran ez tenê tiştê ku her kesê din dike dikim - Înternetê bixwînim. Ger ez dixwazim Rust fam bikim, ez Google-ê dikim, diçim rûpela Mozilla û manuala ku li wir hatî şandin dixwînim. Ev beşek ji tiştên ku di pêşveçûna bazirganî de diqewimin e. Ger em li ser zanistê biaxivin, wê hingê hûn hewce ne ku raporên konferansên sereke bişopînin. 

Têkiliya di navbera karsaziyê û akademiyê de

Vitali: Ka em behsa pêwendiya karsazî û lêkolîna zanistî bikin. Di navnîşa xebata we de, min çend gotar li ser hevrêziya cache dîtin. Ez fêm dikim ku algorîtmayên domdariya cache di dema ku ew hatin weşandin de ne aram bûn? An jî têra xwe belav nebûye. Ramanên we di pratîkê de çiqas hevpar bûn?

Michael: Ez tam ne bawer im tu behsa kîjan weşanên dikî. Min bi xwendekarên xwe Bill Bolosky re gelek xebat kir (William Bolosky) û Leonidas Kontotanassis (Leonidas Kontothanassis) di destpêka salên 1990-an de li ser rêveberiya bîra makîneyên Neumann. Wê demê, karsazî hîna têgihiştinek nebû ku meriv çawa bi rêkûpêk pergalek pirprosesor çêdike: gelo hêja ye ku piştgirî ji bo gihîştina bîranîna dûr di asta hardware de were afirandin, gelo hêja ye ku bîranîn were belav kirin, gelo gengaz e ku meriv cache ji bîranîna dûr, an pêdivî ye ku rûpelan di pergala xebatê de biguhezîne? Bill û Leonidas hem di vê deverê de xebitîn û hem jî nêzîkatiyên bêyî barkirina cache ya dûr vekolîn. Ev ne rasterast bi hevrêziya cache-ê re têkildar bû, lê ew hîn jî li ser rêveberiya bîranîna NUMA xebitî bû, û dûv re nêzîkatiyên nûjen ên cîhkirina rûpelê di pergalên xebitandinê yên nûjen de ji vê yekê mezin bûn. Bi tevayî, Bill û Leonidas karên girîng kirin, her çend di vî warî de ne yên herî bibandor bûn - wê demê gelek kesên din jî li ser heman tiştî dixebitin. Dûv re, min li ser mijarek têkildarî hevrêziya cache di çarçoweya bîranîna danûstendina hardware de xebitî. Koma ku ez pê re li ser vê pirsgirêkê xebitîm, çend patentan wergirt. Li pişt wan ramanên balkêş hene, lê ez bawer nakim ku ew ê di pratîkê de bi dawî bibin. Bi rengekî din, ji min re dijwar e ku ez dadbarkirina berjewendiya wan bikim. 

Алексей: Di vî warî de, pirsek bêtir kesane: ji bo we çiqas girîng e ku ramanên we di pratîkê de bin? An jî hûn li ser nafikirin?

Michael: Ez hez dikim ku vê pirsê di hevpeyivînên bi kesên din, serîlêder an berendamên ku dixwazin beşdarî fakulteyê bibin de bipirsim. Ez bawer nakim ku bersivek rast ji vê pirsê re hebe. Kesên ku tiştên xweş dikin dikarin xwedan motîvasyonên pir cûda bin. Ez dikişînim ser pirsgirêkan ji ber ku ez bi xwe wan balkêş dibînim, ne ji ber feydeyên wan ên pratîkî. Lê ji hêla din ve, gava ku tiştek balkêş hîn jî serîlêdanê dibîne, ez bi rastî jê hez dikim. Ji ber vê yekê li vir ne hêsan e. Lê di destpêka xebata xwe de, ez hîn jî ne ji ramana karanîna dawîn a li cîhanê, lê ji hêla ahenga ramanê û xwestina vekolîna wê û bibînim ka çi jê tê. Ger di dawiyê de encamên pratîkî bide, mezin e. 

Алексей: Ji ber perwerde û ezmûna xwe, hûn ji piran çêtir dikarin nirxa ramanên kesên din dadbar bikin. Hûn dikarin wan bidin ber hev û diyar bikin ka kîjan bi kîjan çêtir dixebite. Ez bawer im ku nêrînek we li ser tiştên ku niha di pratîkê de ji hêla hilberînerên mezin ên mîna Intel ve têne bikar anîn hene. Li gorî nêrîna we, kursa ku van pargîdaniyan digirin çiqas rast e?

Michael: Pratîk her gav li dora tiştê ku dikare ji hêla bazirganî ve serfiraz be, ango qezencê çêbike, dizivire, û çêtir e ku hûn li ser vê yekê ji kesek din bipirsin. Karê min bi piranî di weşanan de encam dide, û di warê pergalên xebitandinê de ew li ser bingeha nîşaneyên performansê têne nirxandin: lez, xerckirina enerjiyê, mezinahiya kodê. Lê her gav ji min re xuya bû ku ev encamên ampîrîkî tenê li gotaran têne zêdekirin da ku werin weşandin, û mebestên rastîn ên xebatê estetîkî ne. Lekolînwan çareseriyan ji perspektîfek hunerî dinirxînin, ew bala xwe didin ku raman çiqas xweşik in, û ew hewl didin ku ji nêzîkatiyên heyî çêtir tiştek biafirînin. Lêkolîner bi mebestên kesane, subjektîf, estetîk têne meşandin. Lê hûn nikarin di gotara xwe de li ser vê yekê binivîsin ev tişt ji bo komîteya bernameyê ne arguman in. Xweşbextane, çareseriyên elegant bi gelemperî zû û erzan in. Min û bi dehan hevalên xwe 15 sal berê li ser vê mijarê nîqaş kir û me gotarek li ser vê yekê nivîsand. Ez difikirim ku hûn hîn jî dikarin wê nuha bibînin, jê re tê gotin "Çawa meriv lêkolîna pergalê binirxîne" an tiştekî wisa, ji dehan zêdetir nivîskarên wê hene. Ev tenê gotara ku ez bi hev re nivîskar im Sasha Fedorova, ji ber vê yekê heke hûn di navnîşa weşanên min de navê wê bigerin, hûn ê tiştê ku hûn hewce ne bibînin. Ew li ser nirxandina lêkolîna pergalê û çiqas zerafetê girîng e diaxive. 

Алексей: Ji ber vê yekê di navbera pîvana ku di zanist û karsaziyê de baş tê hesibandin de cûdahî heye. Zanist performansê, xerckirina hêzê, TDP, hêsankirina pêkanînê, û hêj bêtir dinirxîne. Derfeta we heye ku hûn li zanîngehê bi vî rengî lêkolînan bikin? Ma we laboratûwarek bi makîneyên cihêreng û mîmarên cihêreng heye ku hûn tê de ceribandinan bikin?

Michael: Erê, beşa me gelek makîneyên balkêş ên cihêreng hene. Bi gelemperî ew piçûk in, me komek piçûk û gelek pergalên pirpêvajoyê yên bi lezkerên cihêreng hene. Wekî din, li kampusê navendek hesabkerî ya mezin heye ku ji zanyarên ji çend dehan dîsîplînên cihêreng re xizmet dike. Nêzîkî hezar nod û bîst hezar core hene, hemî li ser Linux. Ger hewce bike, hûn dikarin her gav hin AWS bikirin. Ji ber vê yekê di warê hardware de ti astengiyên me yên girîng tune. 

Алексей: Berî sî salan çawa bû? Wê demê pirsgirêk hebûn?

Michael: Wê demê hinekî cuda bû. Di nîvê salên 1980-an de, zanist wekî kêmbûna çavkaniyên komputerê hate hesibandin. Ji bo çareserkirina vê rewşê, Weqfa Zanistiya Neteweyî (Weqfa Zanistiya Neteweyî) bernameyek lêkolîna ceribandinê ya hevrêz (Coordinated Experimental Research, CER) çêkir. Mîsyona bernameyê peydakirina binesaziya komputerê ji bo beşên Zanistiya Komputerê bû, û ew guhertinek girîng bi dest xist. Bi pereyên ku wê dabîn kir, me li Zanîngeha Rochester di sala 1984-an de BBN Butterflyek 128 girêk kirî, ev salek beriya ku ez hatim wir bû. Di wê demê de ew pergala pirprosesorê ya herî mezin a cîhanê bû ku bi bîranîna hevbeş bû. 128 pêvajoyên wê hebûn, her yek li ser dayikek veqetandî, û çar refik dagir kiribû. Her pêvajoyek megabyte bîra xwe hebû, 128 megabayt RAM di wê demê de mîqdarek nediyar bû. Li ser vê makîneyê me yekem car girtina MCS bicîh kir. 

Алексей: Ji ber vê yekê, heke ez we rast fêm dikim, wê gavê pirsgirêka hardware çareser bûye? 

Michael: Bi giştî erê. Çend hişyarî hene: Yekem, heke hûn mîmariya komputerê di asta çîpê de dikin, dijwar e ku meriv di hawîrdorek akademîk de bike ji ber ku ji bo kirina wê di karsaziyê de amûrên pir çêtir hene. Ger ji we re tiştek ji 10 nanometre piçûktir hewce bike, hûn ê neçar bibin ku wê ji kesek din re ferman bikin. Di vî warî de pir hêsantir e ku meriv li Intel lêkolîner be. Ger hûn li ser pêwendiya optîkî ya li ser çîp an li ser bîranîna hişk dixebitin, hûn ê di karsaziyê de teknolojiyên ku hîn di zanistiyê de ne bibînin, ji ber vê yekê hûn neçar in ku hevalbendan biafirînin. Ji bo nimûne, Stephen Swanson (Steven Swanson) afirandin hevkariyeke wisa ji bo teknolojiyên nû yên bîranînê. Ev form her gav naxebite, lê di hin rewşan de ew dikare pir serketî be. Wekî din, di zanistiyê de pêşkeftina pergalên komputerê yên herî hêzdar dijwartir e. Projeyên herî mezin ên superkomputerê ku niha li DY, Japonya û Chinaînê ne hemî li ser karsaziyê ne. 

Pêkanîna pratîkî ya ramanan. MCS, MS, CLH, JSR 166, bi Doug Lee û bêtir dixebitin.

Vitali: We berê jî behsa wê kir ku we çawa dest bi xebata li ser algorîtmayên hevdemkirinê kir. Li ser we du gotarên pir navdar hene Astengkirina MCS и Dora Michael-Scott (MS), ku di wateyekê de di Java de hatine bicîh kirin. (Têbînîya edîtor: hemî weşan dikarin bêne dîtin link). Li wir ev astengî bi hin guhertinan pêk hat û derket holê CLH lock, û rêz wekî ku tê xwestin hate bicîh kirin. Lê di navbera weşandina gotarên te û pêkanîna wan a pratîk de gelek sal derbas bûn. 

Алексей: Di doza dorê de nêzîkî 10 sal xuya dike.

Michael: Berî ku ev taybetmendî di pirtûkxaneya standard Java de xuya bibin?

Vitali: Erê. We çi kir ku ev yek bibe? An jî wan tiştek nekir?

Michael: Ez dikarim ji we re bibêjim ka MS Queue çawa ket Java 5. Çend sal beriya ku ew derkeve, min bi koma Mark Moyers re li Sun Microsystems di laboratûara wan a li nêzî Bostonê de xebitî. Wî ji bo kesên ku wî dizanibû ku li ser pirsgirêkên balkêş di pirzimanî de dixebitin, atolyeyek organîze kir ji ber ku wî dixwest mijarên ku ew bikaribe bifiroşe pargîdaniya wan bibîne. Li wir min yekem car Doug Lea nas kir. Ez û Doug û bi qasî 25 kesên din ji Sun bi hev re li ser pêşkêşiya Doug nîqaş dikirin JSR 166, ku paşê bû java.util.concurrent. Di rê de, Doug got ku ew dixwaze rêza MS-ê bikar bîne, lê ji bo vê yekê ji bo navbeynkariyê ji bo hejmara hêmanên di rêzê de jimareyek hewce dike. Yanî divê ev yek bi rêbazeke cihê, atomî, rast û bilez bihata kirin. Min pêşniyar kir ku bi tenê hejmarên rêzefîlmê li girêkan zêde bikin, hejmara girêka yekem û ya paşîn bigirin û yek ji ya din derxînin. Doug serê xwe xar kir, got "çima na," û bi dawî bû ku tenê wiya kir. Me li ser pêkanîna vê rêbazê di pirtûkxaneyê de nîqaş kir, lê Doug piraniya kar bi xwe kir. Wekî encamek, wî karî ku di Java-yê de piştgirîyek pirtirkêmtir ava bike. 

Алексей: Ji ber vê yekê, heke ez rast fêm bikim, divê rêbaza .size() beşek ji navrûya rêza standard bûya, û diviyabû ku tevliheviyek algorîtmîkî ya O(1) hebe?

Michael: Belê, û ji bilî vê, jimarvanek cuda jî pêwîst e.

Алексей: Ji ber ku ger hûn di Java de bangî rêbaza .size() bikin, tê çaverêkirin ku encam tavilê peyda bibe û ne li gorî mezinahiya rastîn a berhevokê be. Ez dibînim, spas.

Michael: Çend sal şûnda ez bi xwendekarê xwe Bill Scherer re li ser strukturên daneya dualî dixebitim - bi rastî, ev tiştê ku ez ê qala wê bikim rapor li ser Hydra. Doug hat ba me û got ku ew dikare wan di Çarçoveya Java-ê de bikar bîne. Bi Bill re, wan du pêkanîn çêkirin, ku jê re tê gotin rêzên adil û neheq. Min ji wan re li ser vê projeyê şîret kir, her çend ez beşdarî nivîsandina koda rastîn nebûm. Di encamê de leza îcrakaran gelekî zêde bûye. 

Владимир: Ma hûn rastî pêkanînên nerast ên algorîtmayên xwe an daxwazên lê zêdekirina taybetmendiyên nû hatine? Bi gelemperî, pratîk divê bi teoriyê re hevûdu be, lê pir caran ew ji hev cûda dibin. Bifikirin ku we algorîtmayek nivîsî, û li ser kaxezê ew kar dike, lê kesên ku di cîbicîkirinê de beşdar in dest pê kirin ji we bêtir taybetmendî an cûreyek guheztina algorîtmê dipirsin. Ma tu carî rewşên wiha hebûn?

Michael: Yekane mînaka ku tê de kesek hat ba min û jê pirsî "çawa bicihanîn" pirsa Doug bû, ku min berê li ser axifî. Lê çend rewş hene ku guhertinên balkêş li gorî hewcedariyên pratîkî hatine çêkirin. Mînakî, tîmê K42 li IBM qefila MCS veguherand û ew kir navgînek standard, ji ber vê yekê ne hewce bû ku girêka rêzê bi paş û paş ve ji rûtînên wergirtin û berdanê re derbas bike. Bi saya vê navbeynkariya standard, ramanek ku di teoriyê de xweşik bû di pratîkê de dest bi xebatê kir. Ecêb e ku wan tu carî gotarek li ser wê neşand, û her çend wan patentek stend jî, wan paşê dev jê berda. Fikir ecêb bû, û ez hewl didim ku gava ku gengaz be li ser biaxivim. 

Bûyerên din jî hene ku mirovan di algorîtmayên ku min weşandine de çêtir kirine. Mînakî, rêza MS xwedan mekanîzmayek sazkirinê ya du-gavekî ye, ku tê vê wateyê ku li ser riya krîtîk a dorê du CAS hene. Li ser otomobîlên kevn, CAS pir biha bûn. Intel û hilberînerên din di van demên dawî de wan pir baş xweştir kirine, lê carekê ev rêwerzên 30-çerx bûn, ji ber vê yekê hebûna bêtir ji yekê li ser riya krîtîk nexwestî bû. Wekî encamek, rêzek cûda hate pêşve xistin ku dişibihe rêza MS-ê, lê ku tenê yek operasyona atomê li ser riya krîtîk hebû. Ev yek ji ber wê yekê hat bidestxistin ku di heyamek diyarkirî de operasyon dikare O(n) wext bigire, ji O(1). Ne mimkûn bû, lê mimkûn bû. Ev ji ber vê yekê çêbû ku di hin kêliyan de algorîtmayê ji destpêkê heya rewşa heyî ya di vê dorê de rêzê derbas kir. Bi gelemperî, algorithm pir serfiraz derket. Bi qasî ku ez dizanim, ew pir bi berfirehî nayê bikar anîn, hinekî jî ji ber ku operasyonên atomî ji berê pir kêmtir çavkaniyan hewce dike. Lê fikra mezin bû. Ez ji karê Dave Dice ji Oracle jî pir hez dikim. Her tiştê ku dike pir bikêr e û hesin pir jîr bi kar tîne. Destê wî di pir algorîtmayên hevdemkirinê yên NUMA-hişyar û strukturên daneya pir-mijarî de hebû. 

Владимир: Dema ku hûn algorîtmayan dinivîsin an fêrî xwendekaran dikin, encama xebata we yekser nayê xuyang kirin. Ji civatê re hinek dem lazim e ku bi gotarek nû re bibe nas. Algorîtmaya nû tavilê serîlêdanê nabîne. 

Michael: Ji zû de ne diyar e ka dê gotar girîng be an na. Ez difikirim ku ew ê balkêş be ku meriv lêkolînek li ser gotarên ku di konferansan de xelat wergirtine bikin. Ango, li gotarên ku kesên di komîteyên bernameyê de yek carî çêtirîn dihesibînin binihêrin. Pêdivî ye ku hûn hewl bidin ku ji hêla hejmara girêdan û bandora li ser karsaziyê ve hesab bikin ka ev gotar bi rastî di 10, 20, 25 salan de çiqas bandorker bûne. Ez guman dikim ku dê di navbera her duyan de têkiliyek xurt hebe. Ew ê ne sifir be, lê bi îhtîmaleke mezin ew ê ji ya ku em dixwazin pir qelstir be. Gelek raman berî ku belav bibin, demek dirêj bê daxwaz dimînin. Mînakî, em bîranîna danûstendinê bigirin. Zêdetirî 10 sal ji dema ku gotara orîjînal hate weşandin heya dema ku mirov bi rastî dest bi çêkirina makîneyên bi wê kirin re derbas bûn. Û berî xuyabûna vê bîranînê di hilberên bazirganî de - û hemî 20. Demek pir dirêj kesî guh neda gotarê, û dûv re hejmara lînkên wê pir zêde bû. Pêşbînîkirina vê yekê dê dijwar be. Ji aliyê din ve, carinan raman tavilê bicîh dibin. Çend sal berê, min bi Joe Israelevitz re kaxezek ji bo DISC nivîsand ku tê de pênaseyek fermî ya nû ya rastdariyê ji bo strukturên daneya domdar ku dikare piştî têkçûna komputera ku wan dixebitîne were bikar anîn pêşniyar kir. Min ji destpêkê ve gotar jê hez kir, lê ew ji ya ku min hêvî dikir pir populertir derket. Ew ji hêla çend komên cûda ve hate bikar anîn û di dawiyê de bû pênase standard a strukturên domdar. Ya ku, bê guman, xweş e.

Владимир: Ma teknîkên ku hûn ji bo nirxandinê bikar tînin hene? Ma hûn jî hewl didin ku gotarên xwe û xwendekarên xwe binirxînin? Di warê ka kesê ku we hîn kiriye di rêça rast de diçe.

Michael: Weke her kesî ez jî zêdetir bala xwe didim karê ku ez vê gavê dikim. Dîsa, mîna her kesê din, ez carinan Google Scholar kontrol dikim da ku bibînim ka kaxezên min ên paşîn têne navnîş kirin, lê ew bêtir ji meraqê ye. Bi piranî ez bi tiştên ku xwendekarên min niha dikin ve mijûl dibim. Dema bahsa nirxandina xebatên heyî tê kirin, beşek jê nêrînên estetîk e, çi xweş e û çi ne. Û di asta rojane de, pirsên vekirî rolek mezin dileyzin. Mînakî, xwendekarek bi grafikek hin encaman tê ba min, û em hewl didin ku fêm bikin ku hin tevgerên xerîb ên grafîkê ji ku derê hatine. Bi gelemperî, di xebata xwe de em bi berdewamî hewl didin ku tiştên ku em hîn fam nakin fam bikin. 

bîra Transactional

Vitali: Dibe ku em hinekî behsa bîranîna kiryaran bikin?

Michael: Bi dîtina min bi kêmasî hêjayî gotinê ye ji ber ku min gelek hewl da. Ev mijarek e ku ji yên din bêtir weşanên min li ser hene. Lê di heman demê de, pir ecêb, ez her gav di derbarê bîranîna danûstendinê de pir bi guman bûm. Min bê hêvî nekin, gotara Herlihy û Moss (M. Herlihy, J. E. B. Moss) berî dema xwe hat çapkirin. Di destpêka salên 1990-an de, wan pêşniyar kir ku bîranîna danûstendinê dikare ji bernamenûsên jêhatî re bibe alîkar ku li ser strukturên daneya pir-mijarî bixebitin, da ku ev avahî piştre ji hêla bernamenûsên asayî ve wekî pirtûkxane werin bikar anîn. Ango, ew ê ji bo Doug Lee arîkariyek be ku JSR 166-a xwe bike. Lê bîranîna danûstendinê ne armanc bû ku bernamekirina pir-mijarî hêsan bike. Lê bi vî rengî di destpêka salên 2000-an de, dema ku ew berbelav bû, dest pê kir. Ew wekî rêyek ji bo çareserkirina pirsgirêka bernameya paralel hate reklam kirin. Ev nêzîkatî her tim ji min re bêhêvî xuya bû. Bîra danûstendinê tenê dikaribû nivîsandina strukturên daneya paralel hêsantir bike. Ya ku wê bi dest xist, ji min re xuya dike ev e. 

Di derbarê dijwariya nivîsandina koda pir-mijarî de

Алексей: Gelek balkêş. Wusa dixuye ku di navbera bernamenûsên birêkûpêk û yên ku dikarin koda pir-mijarî binivîsin de astengiyek heye. Sala borî, min çend caran bi kesên ku hin çarçoveyek algorîtmîkî bicîh dikirin re peyivî. Mînakî, bi Martin Thomson re, û hem jî bi bernamenûsan re ku li ser pirtûkxaneyên pir-mijarî dixebitin. (Nîşeya edîtor: Martin Thompson pêşdebirek pir navdar e, wî nivîsand Nerazîbûn и Aeron. Û wî jî heye nûçe di konferansa me ya Joker 2015 de, tomarkirina vîdyoyê li ser YouTube heye. Ew heman e vekirin vê konferansê tomarkirina sereke jî heye). Pirsgirêka sereke, ew dibêjin, çêkirina algorîtmayan hem zû û hem jî hêsan e ku bikar bînin. Yanî hewl didin vê astengiyê derbas bikin û bi qasî ku pêkan e gel bikişînin vê qadê. Hûn li ser wê çi difikirin?

Michael: Pirsgirêka sereke ya pirzimanî ev e: meriv çawa bigihîje performansa bilind bêyî zêdekirina tevliheviya pergalê. 

Алексей: Ji ber ku gava ew hewl didin ku ji tevliheviyê dûr bikevin, algorîtm kêmtir gerdûnî dibe.

Michael: Ya sereke li vir abstractions bi rêkûpêk hatine sêwirandin. Ji min re xuya dike ku ev bi gelemperî ji bo pergalên komputerê wekî zeviyek sereke ye. Butler Lampson hez dike ku vê têgehê bikar bîne, û ew ji me re dibêje "bazirganên abstractions". Teknolojiyên hêsan îro tune. Prosesorên ku em bikar tînin 10 mîlyar transîstor hene - sadebûn ji pirsê dernakeve. Di heman demê de, ISA ji pêvajoyê pir hêsan e, ji ber ku em ji bo demek pir dirêj xebitîn ku wê bi performansa bilind û pêwendiyek bi hêsanî hêsan peyda bikin. Lê her tişt bi wê re jî ne xweş e. Heman pirsgirêk bi lezkerên ku naha li sûkê xuya dibin re heye. Pirs çêdibin - meriv çawa ji bo GPU, mekanîzmayek şîfrekirinê, pêvekirin, mekanîzmayek veguheztinê, mekanîzmayek cebraya xêzkirî, an jî FPGA-ya maqûltir, pêwendiya rast çêdike. Meriv çawa navgîniyek ku amûrê bikar tîne û tevliheviyê vedişêre biafirîne? Ew ê jê xilas nebe, lê ji bernamenûsek hêsan veşêre. 

Алексей: Bi qasî ku ez têdigihim, hîna jî di têgihîştina abstractionan de astengiyek me heye. Werin em modela bîranînê ya di qonaxa me ya pêşkeftina zanist û teknolojiyê de bigirin dest, ev yek ji abstraksiyonên sereke ye. Bi saya wê, hemû bernamenûs di du koman de têne dabeş kirin: beşa mezin ew in ku jê fam nakin, û beşa piçûk jî ew in ku fêm dikin, an difikirin ku ew fam dikin. 

Michael: Pirseke baş e - gelo yek ji me bi rastî modela bîranînê fam dike?

Vitali: Bi taybetî di C++ de.

Michael: Carekê bi Hans Boehm re biaxive. Ew yek ji mirovên herî jîr e ku ez nas dikim, pisporek pêşeng a modelên bîranînê ye. Ew ê di cih de ji we re bêje ku gelek tişt hene ku ew fam nake. Lê eger em vegerin ser mijara abstractions, wê demê, bi dîtina min, di warê modelên bîranînê de di van 30 salên borî de ramana herî girîng hate vegotin. di teza Sarita Adve de. (Nîşeya edîtor: navnîşek bêkêmasî ya weşanan heye link).

Алексей: Pirsa min ev e: gelo ev asteng ji cewhera têgehê tê? 

Michael: Na. Sarita gihîşt wê encamê ku bi nêzîkatiya rast, hûn dikarin bi serfirazî hemî tevliheviyê veşêrin, performansa bilind bistînin û API-yek hêsan bidin bernamenûs. Û heke hûn vê API-ê bişopînin, hûn dikarin hevgiriyek domdar bi dest bixin. Ez difikirim ku ev modela rast e. Kodê bêyî pêşbaziyên daneyê binivîsin û hevrêziya rêzdar bistînin. Bê guman, ji bo kêmkirina îhtîmala pêşbaziyê, amûrên taybetî hewce ne, lê ew mijarek din e. 

Владимир: Gelo di karîyera we de carek çêbûye ku pirsgirêkek ku ji nişka ve hatî çareser kirin veguherî felaketekê, an jî derket holê ku ev pirsgirêk nayê çareser kirin? Mînakî, di teorîyê de hûn dikarin her jimarekê faktor bikin an diyar bikin ka hejmarek yekem e. Lê di pratîkê de ev dikare dijwar be ku bi hardware-ya heyî ve were jimartin. Tiştekî wisa hatiye serê te?

Michael: Tiştekî wiha yekser nayê bîra min. Carinan ji min re xuya bû ku li deverek diyarkirî tiştek nema ku ez bikim, lê paşê tiştek nû û balkêş li wir qewimî. Mînakî, min fikir kir ku qada rêza bêsînor jixwe gihîştiye gihîştîbûnê. Piştî çend çêtirkirinên rêza MNS, êdî tiştek zêde çênebû. Û paşê Morrison (Adam Morrison) û Afek (Yehuda Afek) îcad kirin. rêza LCRQ. Eşkere bû ku rêzek pir-mijalek bêsînor mimkun bû, ku pir caran li ser riya krîtîk tenê rêwerzek girtin-û-zêdebûnê hebû. Û vê yekê mimkun kir ku meriv fermanek mezinahiya performansa çêtir bi dest bixe. Ne ew e ku em nizanin ku hilanîn-û-zêdebûn tiştek pir bikêr e. Eric Freudenthal di dawiya salên 1980-an de di xebata xwe ya li ser Ultracomputerê de bi Allan Gottlieb re li ser vê yekê nivîsî, lê ew li ser rêzên sînorkirî bû. Morrison û Afek karîbûn li ser rêzek bêsînor fetch-û-zêdebûn bikar bînin.

Mîmarên nû. Ma serketina bîranîna danûstendinê nêzîk e?

Владимир: Ma hûn li çareseriyên mîmarî yên nû digerin ku dikarin ji algorîtmayan re bikêr bin? 

Michael: Helbet gelek tişt hene ku ez dixwazim bibînim cîbicîkirin. 

Владимир: Mînak çi cure?

Michael: Berî her tiştî, çend pêvekirinên hêsan ên bîranîna meya danûstendinê ya asta hardware di pêvajoyên Intel û IBM de. Bi taybetî, ez dixwazim barkirin û dikana ne-danûstandinê ya ku nû derketiye tavilê di nav danûstendinan de peyda bibe. Ew tavilê di rêza diqewime-berî de rê li lûleyan digirin, ji ber vê yekê ew dikarin dijwar bibin. Lê heke hûn qatên abstractionê biparêzin, gelek tiştên pir balkêş hene ku hûn dikarin li derveyî danûstendinê dema ku ew diqewime bikin. Ez nizanim ev ê çiqas dijwar be ku bicîh bikin, lê ew ê pir bikêr be. 

Tiştek din a kêrhatî barkirina cache ji bîranîna dûr e. Ez difikirim ku zû an dereng dê ev yek were kirin. Ev teknolojî dê destûrê bide afirandina pergalên bi bîranîna veqetandî. Dê mimkun be ku, bêje, 100 terabytes bîranîna nerazî di rafikê de bimîne, û pergala xebitandinê bixwe dê bi dînamîk biryar bide ka kîjan beşên wê bîranînê divê bi cîhê navnîşana laşî ya pêvajoyan re têkildar be. Ev ê ji bo hesabkirina ewr zehf bikêr be, ji ber ku ew ê dihêle ku mîqdarên mezin ên bîranînê ji karên ku jê re hewce ne re were peyda kirin. Ez difikirim ku kesek wê bike.

Vitali: Ji bo dawîhatina axaftina li ser bîranîna danûstendinê, li ser vê mijarê pirsek min a din heye. Dê bîranîna danûstendinê di dawiyê de li şûna strukturên daneya pir-têkilî yên standard bigire?

Michael: Na. Danûstandin mekanîzmayek spekulatîf e. Di asta bernamekirinê de ev qefleyên atomî ne, lê di hundurê wan de spekulasyon in. Heke piraniya texmînan rast bin, pêşbînkirina wusa dixebite. Ji ber vê yekê, bîranîna danûstendinê dema ku mijar bi zor bi hevûdu re têkilî daynin baş dixebite, û hûn tenê hewce ne ku pê ewle bin ku têkiliyek tune. Lê heke mesajek di navbera mijaran de dest pê dike, danûstendin bikêrhatî ne. Bihêle ez rave bikim, em behsa rewşa ku danûstandin li dora tevahiya operasyona atomê têne pêçandin. Ew hîn jî dikarin bi serfirazî wekî pêkhateyên ji bo strukturên daneya pir-mijarî werin bikar anîn. Mînakî, heke hûn hewceyê CAS-ek sê-peyvan be, û hûn hewce ne ku sê tiştên piçûk di nîvê algorîtmayek bi rastî pirzimanî de ku di heman demê de bi bîst mijaran re dixebite, pirzimanî bikin. Bi gelemperî, danûstendin dikarin bikêr bin, lê ew ê hewcedariya bi rêkûpêk sêwirana strukturên daneya pir-mijadî ji holê ranekin. 

Bîra nehêle, Optane DIMM, cîhazên ultra-lez.

Vitali: Tişta dawî ku ez dixwazim li ser biaxivim, mijara lêkolîna we ya niha ye: Bîra ne-volatile. Di demeke nêzîk de di vî warî de em dikarin çi hêvî bikin? Dibe ku hûn ji pêkanînên bi bandor ên ku jixwe hene dizanin? 

Michael: Ez ne pisporê hardware me, ez tenê dizanim ku ez di nûçeyan de dixwînim û hevkarên min ji min re dibêjin. Jixwe her kesî bihîstiye ku Intel difiroşe Optane DIMM, ku li gorî RAM-a dînamîkî 3 carî derengiya xwendinê û 10 carî derengiya nivîsandinê heye. Ew ê di demek nêzîk de di guhertoyên pir mezin de peyda bibin. Pir xweş e ku meriv bifikire ku hûn dikarin laptopek bi çend terabytes RAM-a-adresa-byte hebin. Dibe ku di nav 10 salan de em ê biryar bidin ku vê teknolojiya nû bikar bînin, ji ber ku em DRAM-ê bikar tînin - tenê deng zêde bikin. Lê bi saya serxwebûna enerjiyê, bi tevahî derfetên nû ji me re vedibin. Em dikarin di bingeh de stûna hilanînê biguhezînin da ku di navbera bîranîna xebatê ya navnîşan-byte û bîranîna domdar a blokê de veqetînek çênebe. Ji ber vê yekê, em ê ne hewce ne ku her tiştê ku hewce dike ku ji bernameyek bernameyek berbi yekî din veguhezîne nav pelên blokê-sazkirî de serialîze bikin. Ji vê yekê em dikarin gelek prensîbên girîng ên ku bandorê li pergalên xebitandinê, hawîrdorên dema xebitandinê, û firotgehên daneya belavkirî dikin derxînin. Ev herêm ji bo xebatê pir balkêş e. Bi kesane, ji min re dijwar e ku ez pêşbîn bikim ku ev ê hemî berbi çi ve bibe, lê pirsgirêkên li vir pir balkêş in. Dibe ku li vir guheztinên şoreşgerî hebin, û ew pir xwezayî ji xebata li ser pirzimanî dişopînin, ji ber ku vegerandina têkçûn pêvajoyek "pirtirî" ye li kêleka xebata normal a pergalê. 

Mijara sereke ya duyemîn ku ez niha li ser dixebitim birêvebirina cîhazên ultra-lez û gihîştina ewledar a cîhazên ji cîhê bikarhêner bi kontrola polîtîkaya pergalî ye. Di van salên dawî de, meylek heye ku meriv gihîştina cîhazê berbi cîhê bikarhêneran veguhezîne. Ev yek tê kirin ji ber ku stûna kernelê ya TCP-IP nikare li ser navgîniya torê ya ku her 5 mîkroçîrkan de pakêtek nû hewce dike bixebite. Ji ber vê yekê, hilberîner rasterast gihîştina cîhazan peyda dikin. Lê ev tê vê wateyê ku pergala xebitandinê kontrola pêvajoyê winda dike û ew nikare ji bo serîlêdanên pêşbaziyê gihandina rast peyda bike. Tîma me ya lêkolînê di wê baweriyê de ye ku ev kêmasî dikare were dûr xistin. Em ê vê mehê li USENIX ATC gotarek li ser vê hebe. Ew bi xebata li ser domdariyê ve girêdayî ye, ji ber ku bîranîna domdar a bite-navnîşankirî ya dirêj-dirêj e, di eslê xwe de, amûrek bi I/O ultra-lez e ku pêdivî ye ku di cîhana bikarhêneran de were gihîştin. Vê lêkolînê nêzîkatiyên nû ji mîkrokernel, exokernels, û hewildanên din ên kevneşopî re gengaz dike ku bi ewlehî fonksiyonê ji kernel OS-ê berbi cîhê bikarhêner veguhezîne. 

Владимир: Bîra navnîşan-byte mezin e, lê sînorek laşî heye - leza ronahiyê. Ev tê vê wateyê ku dema ku bi cîhazê re têkilî daynin bê guman dê derengiyek hebe. 

Michael: Bi rastî rast e.

Владимир: Dê kapasîteya têr hebe ku bi bargiraniyên nû re rû bi rû bimîne?

Michael: Ev pirseke pir baş e, lê dê zehmet be ku ez bersiv bidim. Fikra pêvajoyê di bîranînê de demek dirêj heye, ew pir balkêş e, lê di heman demê de pir tevlihev e. Min di vî warî de nexebitî, lê ger hin vedîtin li wir çêbibin dê pir baş be. Ez ditirsim ku ez tiştekî zêde bikim tune. 

Владимир: Pirsgirêkek din jî heye. Dê mîqdarên nû, pir mezin ên RAM-ê ne gengaz be ku di CPU-yê de cih bigirin. Ji ber vê yekê, ji ber sînorên laşî, divê ev RAM were veqetandin. 

Michael: Ew hemî bi hejmara kêmasiyan ve girêdayî ye di hilberîna dorhêlên yekbûyî de. Ger gengaz bû ku pêlên nîvconductor bi tevahî bêyî kêmasiyan biafirînin, wê hingê dê mimkun be ku meriv ji wê mîkroşûrek tevahî çêbike. Lê naha em nizanin ka meriv çawa mîkrocircuitan ji pûlên posteyê mezintir çêbike. 

Владимир: Lê em hîn jî behsa mezinahiyên mezin, li ser santîmetreyan dikin. Ev bêguman bandorek li ser derengiyê dike. 

Michael: Erê. Li ser leza ronahiyê tiştek tune ku hûn bikin. 

Владимир: Mixabin. 

Meyla mezin a din. Avahiyên daneyên dualî. Hydra.

Vitali: Bi qasî ku ez fêm dikim, hûn pir zû meylên nû digirin. Hûn yek ji wan ên pêşîn bûn ku di bîranîna danûstendinê de xebitîn, û yek ji wan ên pêşîn bûn ku di bîranîna ne-volatile de xebitîn. Hûn difikirin ku dê meyla mezin a pêşeroj çi be? An jî dibe ku ew veşartî ye?

Michael: Bi rastî ez nizanim. Hêvîdarim ku gava tiştek nû derkeve ez ê bibînim. Bextê min nebû ku ez bi tena serê xwe qadeke nû îcad bikim, lê çend bextê min hebû û karîbû ji zû de dest bi xebatê bikim di warên nû yên ku ji hêla kesên din ve hatine afirandin. Ez hêvî dikim ku ez ê di pêşerojê de bikaribim vî karî bikim.

Алексей: Pirsa dawî di vê hevpeyvînê de dê li ser performansa we li Hydra û çalakiyên we li dibistanê be. Ger ez rast fêm bikim, raporta li dibistanê dê li ser algorîtmayên bê astengkirin, û di konferansê de li ser strukturên daneya ducar be. Hûn dikarin li ser van raporan çend peyvan bibêjin?

Michael: Beşek, me di vê hevpeyvînê de berê jî bi we re behsa van babetan kiriye. Ew li ser xebata ku min bi xwendekarê xwe Bill Scherer re kir. Wî tezek li ser wê nivîsand, û Doug Lee jî beşdarî wê bû, û ew di dawiyê de bû beşek ji rêzikên hevdemî yên pir-têkilî di pirtûkxaneya Java de. Ka em bihesibînin ku avahiya daneyê bêyî astengkirinê tê xwendin û nivîsandin, ango, her operasyon li ser riya krîtîk hejmarek rêwerzên sînordar hene. Ger hûn hewl bidin ku daneyan ji konteynirek vala derxînin, an jî hewl bidin ku hin daneyên ku di vê konteynerê de ne derxînin, hûn tavilê têne agahdar kirin ku ev nayê kirin. Lê dibe ku ev tevger neyê pejirandin heke mijar bi rastî hewceyê van daneyan be. Dûv re yekem tiştê ku tê bîra me ev e ku meriv pêçekek biafirîne ku dê bi domdarî bipirse gelo daneyên pêwîst xuya bûne. Lê paşê ji bo her kesî mudaxele heye. Digel vê yekê, bi vê nêzîkbûnê re, hûn dikarin 10 hûrdeman li bendê bin, û dûv re hin mijarek din dê were, û ew ê pêşî bi xeletî daneyên pêwîst werbigire. Strukturên daneya dualî hîn jî xwedan kilît nînin, lê ew dihêlin ku bi rêkûpêk li bendê bimînin. Têgîna "ducar" tê vê wateyê ku avahî an daneyan an jî daxwazên daneyan dihewîne, em ji wan re bibêjin antî-dane. Ji ber vê yekê heke hûn hewl bidin ku tiştek ji konteynirek vala derxînin, dê li şûna wê daxwazek di konteynerê de were danîn. Naha mijar dikare li benda daxwazek be bêyî ku kesek din aciz bike. Digel vê yekê, strukturên daneyê pêşîniyan dide daxwaziyan da ku dema ku were wergirtin, ew wan ji kesê rast re derbas dike. Encam mekanîzmayek ne-girtî ye ku hîn jî di pratîkê de xwedan taybetmendiyek fermî û performansa baş e. 

Алексей: Hêviyên we ji vê avahiya daneyê çi ne? Ma ew ê di hemî rewşên gelemperî de performansê baştir bike, an ew ji bo hin rewşan çêtir e? 

Michael: Kêrhatî ye heke, yekem, ji we re konteynirek bê qefilandin hewce ye, û ya duyemîn jî, hûn hewce ne ku li rewşek bisekinin ku hûn hewce ne ku daneyan ji konteynera ku ne tê de ne bistînin. Li gorî zanîna min çêtirîn, çarçoveya me dema ku ev her du şert têne bicîh kirin tevgerek çêtirîn peyda dike. Ji ber vê yekê, di van rewşan de ez pêşniyar dikim ku wê bikar bînin. Feydeya sereke ya strukturên daneya bê kilît ev e ku ew ji pirsgirêkên performansê dûr dikevin. Û bendewarî di gelek algorîtmayan de pir girîng e heke dane ji yek mijarek din were veguheztin.

Vitali: Bihêle ez zelal bikim: Hûnê hem li dibistanê û hem jî li konferansê li ser heman mijarê biaxivin?

Michael: Li dibistanê Ez ê biaxivim bi gelemperî di derbarê strukturên daneya pir-mijarî de, bi prensîbên bingehîn ên ku di destpêka dersê de hatine destnîşan kirin. Ez texmîn dikim ku temaşevan zane ku têlan çi ne û bi qefleyan nas e. Li ser bingeha vê zanîna bingehîn, ez ê li ser strukturên daneya bê kilît biaxivim. Ez ê li ser pirsgirêkên herî girîng ên di vî warî de, li ser mijarên wekî rêveberiya bîranînê bisekinim. Ez nafikirim ku dê ji rêza MS-ê tevlihevtir tiştek hebe.

Алексей: Ma hûn plan dikin ku di dawiya pola xwe de li dibistanê der barê strukturên daneya dualî de hîn bikin?

Michael: Ez ê behsa wan bikim, lê ez zêde wextê li ser wan nadim. Rapora Hydra dê ji wan re were veqetandin. Ew ê projeya ku di dawiyê de ew çêkir Java veşêre, û hem jî bi Joe Israelevich re bixebite da ku guhertoyek dualî ya rêza LCRQ biafirîne, û sêwiranek nêzîk-gerdûnî ji bo strukturên daneya dualî biafirîne.

Алексей: Ji ber vê yekê dersa li dibistanê dikare ji bo destpêkan were pêşniyar kirin, û ders li ser strukturên daneya ducarî li ser Hydra - ji bo kesên ku berê xwedan ezmûnek in?

Michael: Ger ez xelet bim min rast bike, lê temaşevanên li Hydra dê pir cihêreng bin, di nav de gelek pisporên Java, û bi gelemperî mirovên ku bi taybetî di bernamesaziya pir-tehlî de ne beşdar in. 

Vitali: Belê rast e.

Алексей: Qe nebe em hêvî dikin.

Michael: Di vê rewşê de, ez ê bi heman pirsgirêka ku me dest bi vê hevpeyivînê kiriye re rû bi rû bim: ka meriv çawa raporek hem ji hêla hûrguliyên teknîkî ve têra xwe dewlemend û hem jî ji hemî guhdaran re bigihîne çêbike.

Vitali: Ma hûn ê bi heman awayê ku hûn dersan bidin raporekê jî bidin? Yanî bi temaşevanan re biaxive û xwe bi rewşê re adapte bike?

Michael: Ez ditirsim ku bi vî awayî nebe, ji ber ku raport dê slaytên xwe hebin. Dema ku guhdar di destpêkê de bi zimanên cihê diaxivin slayd girîng in. Gelek kes dê zehmet bibin ku min bi Englishngilîzî fêm bikin, nemaze ku ez pir zû biaxivim. Min ev mijar hilbijart ji ber ku Peter Kuznetsov ji min xwest ku ez li Dibistana SPTDC li ser strukturên daneya bê kilît biaxivim; û dûv re ji min re ji bo konferansek koma bikarhêner a Java-yê raporek hewce bû, û min xwest ku tiştek ku bi taybetî ji bernamenûsên Java-ê re eleqedar be hilbijêrin. Rêya herî hêsan ew bû ku ez li ser wan tiştan di pirtûkxaneya Java-yê de biaxivim ku destê min bi vî rengî an yekî din hebû. 

Алексей: Em texmîn dikin ku temaşevanên li ser Hydra jixwe tiştek di derheqê bernamesaziya bê kilît de dizanin û dibe ku di vî warî de xwedan ezmûnek be. Lê ev tenê texmînek e ku dê di konferansê de rewş zelaltir bibe. Herçi jî, spas ji bo dema we. Ez bawer im hevpeyvîn dê ji bo xwendevanên me pir balkêş be. Gelek sipas!

Vitali: Sipas ji were. 

Michael: Ez ê bi dîtina te li St. 

Алексей: Em jî, bajarekî me yê xweş heye. Ma tu qet li vir bûyî?

Michael: Na, ez qet neçûme Rûsyayê. Lê St. 

Алексей: Bi xatirê te, emê bernameyeke geryanên axaftvanan hebin. Gelek spas ji bo hevpeyvînê, û roja we xweş be!

Hûn dikarin sohbeta xwe bi Michael re di konferansa Hydra 2019 de, ku dê di 11-12 Tîrmeh 2019 de li St. Ew ê bi raporekê were "Strukturên daneya dualî". Bilêt dikarin bên kirîn li ser malpera fermî.

Source: www.habr.com

Add a comment