«Ավելի հեշտ է պատասխանել, քան լռել» - հիանալի հարցազրույց գործարքային հիշողության հոր՝ Մորիս Հերլիհիի հետ։

«Ավելի հեշտ է պատասխանել, քան լռել» - հիանալի հարցազրույց գործարքային հիշողության հոր՝ Մորիս Հերլիհիի հետ։

Մորիս Հերլիհի - երկուսի սեփականատեր Dijkstra մրցանակներ. Առաջինը աշխատանքի համար է «Սպասեք առանց համաժամացման» (Բրաունի համալսարան) և երկրորդը, ավելի վերջերս, - «Գործարքային հիշողություն. ճարտարապետական ​​աջակցություն տվյալների կողպեքից զերծ կառուցվածքներին» (Վիրջինիայի տեխնիկական համալսարան): Դեյկստրայի մրցանակը տրվում է այն աշխատանքի համար, որի նշանակությունն ու ազդեցությունը տեսանելի են եղել առնվազն տասը տարի, և Մորիսն ակնհայտորեն ոլորտի ամենահայտնի մասնագետներից է։ Նա ներկայումս աշխատում է որպես պրոֆեսոր Բրաունի համալսարանում և ունի բազմաթիվ ձեռքբերումներ, որոնք մեկ պարբերություն են կազմում: Նա ներկայումս ուսումնասիրում է բլոկչեյնը դասական բաշխված հաշվարկի համատեքստում:

Նախկինում Մորիսն արդեն եկել էր Ռուսաստան SPTCC-ի համար (տեսագրություններ) և հիանալի հանդիպում անցկացրեց Սանկտ Պետերբուրգում JUG.ru Java ծրագրավորողների համայնքի հետ (տեսագրություններ).

Այս habrapost-ը հիանալի հարցազրույց է Մորիս Հերլիհիի հետ: Այն քննարկում է հետևյալ թեմաները.

  • Ակադեմիայի և արդյունաբերության փոխազդեցություն;
  • Բլոկչեյն հետազոտությունների հիմնադրամ;
  • Որտեղի՞ց են գալիս բեկումնային գաղափարները: Հանրաճանաչության ազդեցությունը;
  • բ.գ.թ.՝ Բարբարա Լիսկովի ղեկավարությամբ;
  • Աշխարհը սպասում է բազմամիջուկի.
  • Նոր աշխարհը նոր խնդիրներ է բերում։ NVM, NUMA և ճարտարապետության հաքեր;
  • Կոմպիլյատորներ ընդդեմ պրոցեսորների, RISC vs CISC, ընդհանուր հիշողություն ընդդեմ հաղորդագրությունների փոխանցման;
  • Փխրուն բազմաթելային ծածկագիր գրելու արվեստը;
  • Ինչպես սովորեցնել ուսանողներին գրել բարդ բազմաթելային ծածկագիր;
  • «Բազմապրոցեսորային ծրագրավորման արվեստը» գրքի նոր հրատարակությունը;
  • Ինչպես է հայտնագործվել գործարքային հիշողությունը.   
  • Ինչու՞ արժե ուսումնասիրություններ կատարել բաշխված հաշվարկների ոլորտում.
  • Արդյո՞ք դադարեցվել է ալգորիթմների զարգացումը և ինչպես շարունակել;
  • Աշխատել Brown University-ում;
  • Համալսարանում և կորպորացիայի ներսում հետազոտությունների միջև տարբերությունը.
  • Hydra և SPTDC:

Հարցազրույցը վարում է.

Վիտալի Ակսենով — ներկայումս՝ IST Ավստրիայի հետդոկտոր և ITMO համալսարանի համակարգչային տեխնոլոգիաների ամբիոնի աշխատակից: Իրականացնում է հետազոտություն մրցակցային տվյալների կառուցվածքների տեսության և պրակտիկայի ոլորտում: Մինչ IST-ում աշխատելը, նա PhD է ստացել Փարիզի Դիդրո համալսարանից և ITMO համալսարանից՝ պրոֆեսոր Պյոտր Կուզնեցովի ղեկավարությամբ։

Ալեքսեյ Ֆեդորով - Պրոդյուսեր JUG Ru Group-ում, ռուսական ընկերություն, որը կազմակերպում է կոնֆերանսներ մշակողների համար: Ալեքսեյը մասնակցել է ավելի քան 50 կոնֆերանսների պատրաստմանը, և նրա ռեզյումեն ներառում է ամեն ինչ՝ Oracle-ում (JCK, Java Platform Group) մշակողի պաշտոնից մինչև Odnoklassniki-ում ծրագրավորողի պաշտոնը։

Վլադիմիր Սիտնիկով - Ինժեներ Netcracker-ում: Տասը տարվա աշխատանք NetCracker OS-ի կատարողականության և մասշտաբայնության վրա, ծրագրակազմ, որն օգտագործվում է հեռահաղորդակցության օպերատորների կողմից ցանցի և ցանցային սարքավորումների կառավարման գործընթացները ավտոմատացնելու համար: Հետաքրքրված է Java-ի և Oracle տվյալների բազայի աշխատանքի հետ կապված խնդիրներով: Հեղինակ է ավելի քան մեկ տասնյակ կատարողականի բարելավումների պաշտոնական PostgreSQL JDBC վարորդում:

Ակադեմիայի և արդյունաբերության փոխազդեցությունը

Ալեքսեյ. Մորիս, դուք երկար ժամանակ աշխատել եք ակադեմիական միջավայրում, և առաջին հարցը ակադեմիական և արդյունաբերական ոլորտների փոխազդեցությունն է։ Կարո՞ղ եք խոսել այն մասին, թե ինչպես են վերջին շրջանում փոխվել նրանց փոխհարաբերությունները: Ի՞նչ է եղել 20-30 տարի առաջ և ի՞նչ է կատարվում հիմա։ 

Մորիս.- Ես միշտ փորձել եմ սերտ համագործակցել կոմերցիոն ընկերությունների հետ, քանի որ նրանք հետաքրքիր խնդիրներ ունեն: Նրանք, որպես կանոն, այնքան էլ շահագրգռված չեն ոչ իրենց արդյունքների հրապարակմամբ, ոչ էլ համաշխարհային հանրությանը իրենց խնդիրների մանրամասն բացատրությամբ։ Նրանք միայն շահագրգռված են այս խնդիրների լուծումով։ Որոշ ժամանակ աշխատել եմ նման ընկերություններում։ Ես հինգ տարի լրիվ դրույքով աշխատել եմ Digital Equipment Corporation-ի հետազոտական ​​լաբորատորիայում, որը նախկինում համակարգչային խոշոր ընկերություն էր: Ես աշխատում էի շաբաթական մեկ օր Sun-ում, Microsoft-ում, Oracle-ում և մի փոքր աշխատանք էի անում Facebook-ում: Հիմա ես պատրաստվում եմ արձակուրդ գնալ (ամերիկյան համալսարանի պրոֆեսորին թույլատրվում է մեկ տարի նման արձակուրդ վերցնել մոտ վեց տարին մեկ անգամ) և աշխատելու Ալգորանդ, սա կրիպտոարժույթի ընկերություն է Բոստոնում։ Ընկերությունների հետ սերտ համագործակցությունը միշտ էլ հաճելի է եղել, քանի որ այդպես ես սովորում նոր և հետաքրքիր բաների մասին: Դուք նույնիսկ կարող եք լինել առաջին կամ երկրորդ մարդը, ով հոդված է հրապարակում ընտրված թեմայի վերաբերյալ, այլ ոչ թե աշխատում է աստիճանաբար բարելավել այն խնդիրների լուծումները, որոնց վրա բոլորն արդեն աշխատում են:

Ալեքսեյ. Կարո՞ղ եք ավելի մանրամասն պատմել, թե ինչպես է դա տեղի ունենում:

Մորիս – Իհարկե: Գիտեք, երբ ես աշխատում էի Digital Equipment Corporation-ում, ես և Էլիոթ Մոսը, մենք հորինեցինք գործարքային հիշողություն: Շատ բեղմնավոր շրջան էր, երբ բոլորը սկսեցին հետաքրքրվել տեղեկատվական տեխնոլոգիաներով։ Զուգահեռություն, ներառյալ, թեև բազմամիջուկ համակարգեր դեռ գոյություն չունեին։ Sun-ի և Oracle-ի օրերին ես շատ էի աշխատում զուգահեռ տվյալների կառուցվածքների վրա: Facebook-ում ես աշխատել եմ նրանց բլոկչեյն նախագծի վրա, որի մասին չեմ կարող խոսել, բայց հուսով եմ, որ այն շուտով կհրապարակվի: Հաջորդ տարի Ալգորանդում ես կաշխատեմ խելացի պայմանագրերը ուսումնասիրող հետազոտական ​​խմբում:

Ալեքսեյ. Բլոկչեյնը վերջին մի քանի տարիների ընթացքում շատ տարածված թեմա է դարձել: Սա կօգնի՞ ձեր հետազոտությանը: Միգուցե դա կհեշտացնի դրամաշնորհներ ստանալը կամ ոլորտում գործող ընկերությունների ռեսուրսների հասանելիությունը:

Մորիս. Ես արդեն ստացել եմ փոքր դրամաշնորհ Ethereum հիմնադրամից: Բլոկչեյնի հանրաճանաչությունը շատ օգտակար է ուսանողներին այս ոլորտում աշխատելու ոգեշնչման համար: Նրանք շատ հետաքրքրված են դրանով և ոգևորված են ներգրավվելու համար, բայց երբեմն նրանք չեն գիտակցում, որ հետազոտությունը, որը դրսից հուզիչ է թվում, պարզվում է, որ իսկապես ծանր աշխատանք է ներառում: Այնուամենայնիվ, ես իսկապես ոգևորված եմ օգտագործելու այս ամբողջ առեղծվածը բլոկչեյնի շուրջ, որպեսզի օգնեմ ներգրավել ուսանողներին: 

Բայց սա դեռ ամենը չէ։ Ես մի քանի բլոկչեյն ստարտափների խորհրդատվական խորհրդի անդամ եմ: Նրանցից ոմանք կարող են հաջողության հասնել, ոմանց՝ ոչ, բայց միշտ շատ հետաքրքիր է տեսնել նրանց գաղափարները, ուսումնասիրել դրանք և խորհուրդ տալ մարդկանց։ Ամենահուզիչն այն է, երբ մարդկանց զգուշացնում ես ինչ-որ բան չանել։ Շատ բաներ սկզբում լավ գաղափար են թվում, բայց արդյո՞ք դրանք իսկապես:

Բլոկչեյն հետազոտությունների հիմնադրամ

Վիտալի. Ոմանք կարծում են, որ ապագան բլոկչեյնն է և դրա ալգորիթմները: Իսկ այլ մարդիկ ասում են, որ դա պարզապես հերթական փուչիկ է: Կարո՞ղ եք կիսվել ձեր կարծիքով այս հարցի վերաբերյալ:

Մորիս. Շատ բան, ինչ կատարվում է բլոկչեյն աշխարհում, սխալ է, որոշները պարզապես խաբեություն են, շատերը գերագնահատված են: Այնուամենայնիվ, կարծում եմ, որ այս ուսումնասիրությունների համար կա ամուր գիտական ​​հիմք: Այն փաստը, որ բլոկչեյն աշխարհը լի է գաղափարական տարբերություններով, ցույց է տալիս հուզմունքի և նվիրվածության մակարդակը։ Մյուս կողմից, սա առանձնապես ձեռնտու չէ գիտական ​​հետազոտությունների համար։ Այժմ, եթե դուք հոդված եք հրապարակում, որտեղ խոսվում է որոշակի ալգորիթմի թերությունների մասին, արդյունքի արձագանքը միշտ չէ, որ լիովին գիտական ​​է: Հաճախ մարդիկ դուրս են նետում իրենց զգացմունքները: Կարծում եմ, որ այս ոլորտում նման հուզմունքը կարող է ոմանց համար գրավիչ թվալ, բայց ի վերջո, կան իրական գիտական ​​և ինժեներական խնդիրներ, որոնք պետք է լուծվեն: Այստեղ շատ համակարգչային գիտություն կա:

Վիտալի. Այսպիսով, դուք փորձում եք հիմք դնել բլոկչեյնի հետազոտության համար, այնպես չէ՞:

Մորիս. Ես փորձում եմ հիմք դնել ամուր, գիտականորեն և մաթեմատիկորեն հիմնավորված կարգապահության համար: Եվ խնդրի մի մասն այն է, որ երբեմն պետք է հակադրվել այլ մարդկանց չափազանց կոշտ դիրքորոշմանը և անտեսել դրանք: Երբեմն մարդիկ հարցնում են, թե ինչու եմ ես աշխատում մի տարածքում, որտեղ հետաքրքրված են միայն ահաբեկիչներն ու թմրանյութերի առևտուրը: Նման արձագանքը նույնքան անիմաստ է, որքան քո խոսքերը կուրորեն կրկնող հետևորդների պահվածքը։ Ես կարծում եմ, որ ճշմարտությունը ինչ-որ տեղ մեջտեղում է: Բլոկչեյնը խորը ազդեցություն կունենա հասարակության և համաշխարհային տնտեսության վրա։ Բայց դա, հավանաբար, տեղի չի ունենա ժամանակակից տեխնոլոգիաների շնորհիվ։ Կզարգանան ժամանակակից տեխնոլոգիաները, և այն, ինչ ապագայում կկոչվի բլոկչեյն, շատ կարևոր կդառնա։ Այն կարող է նույնիսկ նման չլինի ժամանակակից բլոկչեյններին, դա բաց հարց է:

Եթե ​​մարդիկ նոր տեխնոլոգիաներ հորինեն, ապա կշարունակեն այն անվանել բլոկչեյն։ Նկատի ունեմ, ինչպես այսօրվա Fortran-ը ոչ մի կապ չունի 1960-ականների Fortran լեզվի հետ, բայց բոլորը շարունակում են այն անվանել Fortran: Նույնը UNIX-ի համար: Այն, ինչ կոչվում է «բլոկչեյն», դեռ կկատարի իր հեղափոխությունը։ Բայց ես կասկածում եմ, որ այս նոր բլոկչեյնը կլինի այնպիսին, ինչպիսին այսօր բոլորն են վայելում:

Որտեղի՞ց են գալիս բեկումնային գաղափարները: Հանրաճանաչության ազդեցությունը

Ալեքսեյ. Արդյո՞ք բլոկչեյնի հանրաճանաչությունը գիտական ​​տեսանկյունից հանգեցրել է նոր արդյունքների: Ավելի շատ փոխազդեցություն, ավելի շատ ուսանողներ, ավելի շատ ընկերություններ տարածքում: Հանրաճանաչության այս աճից արդեն արդյունքներ կա՞ն։

Մորիս. Ինձ սա հետաքրքրեց, երբ ինչ-որ մեկն ինձ պաշտոնական թռուցիկ հանձնեց մի ընկերության համար, որը բավականին մեծ գումար էր հավաքել: Այն մասին գրել է բյուզանդական զորավարների առաջադրանքը, որին ավելի քան ծանոթ եմ։ Թռուցիկում գրվածը ակնհայտորեն տեխնիկապես սխալ էր։ Մարդիկ, ովքեր գրել են այս ամենը, իրականում չեն հասկացել խնդրի մոդելը... և այնուամենայնիվ այս ընկերությունը մեծ գումար է հավաքել: Այնուհետև ընկերությունը հանգիստ փոխարինեց այս թերթիկը շատ ավելի ճիշտ տարբերակով, և ես չեմ ասի, թե ինչ էր այս ընկերության անունը: Նրանք դեռ շրջապատում են և շատ լավ են անում: Այս միջադեպն ինձ համոզեց, որ, առաջին հերթին, բլոկչեյնը պարզապես բաշխված հաշվարկի ձև է: Երկրորդ՝ մուտքի շեմը (համենայն դեպս այն ժամանակ՝ չորս տարի առաջ) բավականին ցածր էր։ Այս ոլորտում աշխատող մարդիկ շատ եռանդուն ու խելացի էին, բայց գիտական ​​աշխատություններ չէին կարդում։ Նրանք փորձեցին նորից հորինել հայտնի բաները և դա արեցին սխալ: Այսօր դրաման թուլացել է.

Ալեքսեյ. Սա շատ հետաքրքիր է, քանի որ մի քանի տարի առաջ մենք այլ միտում ունեինք։ Դա մի փոքր նման է «Front-End»-ի զարգացմանը, երբ բրաուզերի վրա հիմնված «Front-End» ծրագրավորողները նորից հայտնագործեցին ամբողջ տեխնոլոգիաները, որոնք արդեն հայտնի էին հետին պլանում՝ կառուցել համակարգեր, շարունակական ինտեգրում, նման բաներ: 

Մորիս – Համաձայն եմ: Բայց դա զարմանալի չէ, քանի որ իսկապես բեկումնային գաղափարները միշտ գալիս են կայացած համայնքից դուրս: Հաստատված հետազոտողները, հատկապես կայացած ակադեմիկոսները, դժվար թե իսկապես բեկումնային բան անեն: Հեշտ է հոդված գրել հաջորդ համաժողովի համար այն մասին, թե ինչպես եք մի փոքր բարելավել ձեր անցյալ աշխատանքի արդյունքները: Գնացեք կոնֆերանսի, հավաքվեք ընկերների հետ, խոսեք նույն բաների մասին: Իսկ մարդիկ, ովքեր ներխուժում են բեկումնային գաղափարներ, գրեթե միշտ գալիս են դրսից: Նրանք չգիտեն կանոնները, չգիտեն լեզուն, բայց այնուամենայնիվ... Եթե դուք կայացած համայնքում եք, խորհուրդ եմ տալիս ուշադրություն դարձնել նոր բաների վրա, մի բանի, որը չի տեղավորվում ընդհանուր պատկերի մեջ։ Ինչ-որ իմաստով կարելի է փորձ անել արտաքին, ավելի հեղհեղուկ զարգացումները համադրել արդեն իսկ հասկացած մեթոդների հետ։ Որպես առաջին քայլ, փորձեք ստեղծել գիտական ​​հիմք, այնուհետև փոխել այն, որպեսզի այն կիրառվի նոր բեկումնային գաղափարների վրա: Կարծում եմ, որ բլոկչեյնը հիանալի է թարմ, խանգարող գաղափար լինելու համար:

Ալեքսեյ: Ինչու եք կարծում, որ դա տեղի է ունենում: Որովհետև «դրսում» մարդիկ չունե՞ն որևէ հատուկ խոչընդոտ, որը բնորոշ է համայնքին:

Մորիս. Այստեղ մի օրինաչափություն է տեղի ունենում: Եթե ​​դուք կարդում եք իմպրեսիոնիստների պատմությունը գեղանկարչության և ընդհանրապես արվեստի մեջ, ապա ժամանակին հայտնի նկարիչները մերժում էին իմպրեսիոնիզմը։ Ասում էին, որ մի տեսակ մանկական է: Մեկ սերունդ անց այս նախկինում մերժված արվեստի ձևը դարձավ ստանդարտ: Այն, ինչ ես տեսնում եմ իմ ոլորտում. բլոկչեյնի գյուտարարները շահագրգռված չէին ուժով, հրապարակումների և մեջբերումների ինդեքսների ավելացմամբ, նրանք պարզապես ցանկանում էին ինչ-որ լավ բան անել: Եվ այսպես, նրանք նստեցին և սկսեցին դա անել։ Նրանք չունեին որոշակի տեխնիկական խորություն, բայց դա շտկելի է: Շատ ավելի դժվար է նոր կրեատիվ գաղափարներ հղանալը, քան ոչ բավականաչափ հասունները շտկելն ու ամրապնդելը։ Այս գյուտարարների շնորհիվ ես հիմա անելիք ունեմ:

Ալեքսեյ. Սա նման է ստարտափների և հին նախագծերի միջև եղած տարբերությանը: Մենք ժառանգում ենք մտածողության բազմաթիվ սահմանափակումներ, խոչընդոտներ, հատուկ պահանջներ և այլն:

Մորիս. Լավ անալոգիան բաշխված հաշվարկն է: Մտածեք բլոկչեյնի մասին, կարծես այն ստարտափ լիներ և բաշխեց հաշվողական համակարգը որպես խոշոր, կայացած ընկերություն: Բաշխված հաշվարկը ձեռքբերման և բլոկչեյնի հետ միաձուլման գործընթացում է:

բ.գ.թ.՝ Բարբարա Լիսկովի ղեկավարությամբ

Վիտալի. Մենք դեռ շատ հարցեր ունենք: Մենք ուսումնասիրում էինք ձեր պատմությունը և հանդիպեցինք ձեր դոկտորականի վերաբերյալ հետաքրքիր փաստի: Այո, սա վաղուց էր, բայց կարծես թե կարևոր թեմա է։ Դուք ստացել եք ձեր PhD ձեր ղեկավարության ներքո Բարբարա Լիսկով! Բարբարան շատ լավ հայտնի է ծրագրավորման լեզուների համայնքում, և ընդհանրապես շատ հայտնի մարդ: Տրամաբանական է, որ ձեր հետազոտությունները եղել են ծրագրավորման լեզուների ոլորտում։ Ինչպե՞ս անցաք զուգահեռ հաշվարկին: Ինչո՞ւ որոշեցիք փոխել թեման։

Մորիս. Այն ժամանակ Բարբարան և նրա խումբը պարզապես նայում էին բաշխված հաշվարկներին, ինչը շատ նոր գաղափար էր: Կային նաև այնպիսիք, ովքեր ասում էին, որ բաշխված հաշվարկները անհեթեթություն են, իսկ համակարգիչները միմյանց հետ շփվելն անիմաստ է։ Բաշխված հաշվարկում լուծվող խնդիրներից մեկը, որը տարբերում է այն կենտրոնացված հաշվարկից, սխալների հանդուրժողականությունն է: Շատ հետազոտություններից հետո մենք որոշեցինք, որ բաշխված հաշվողական ծրագրավորման լեզուն պետք է ունենա ատոմային գործարքների նման մի բան, քանի որ երբեք չեք կարող վստահ լինել, որ հեռակա զանգը կհաջողվի: Երբ դուք ունեք գործարքներ, առաջանում է համաժամանակյա կառավարման խնդիր: Այնուհետև մեծ աշխատանք է տարվել բարձր զուգահեռ գործարքային տվյալների կառուցվածքների ձեռքբերման ուղղությամբ: Հետո, երբ ավարտեցի, գնացի Կարնեգի Մելոն ու սկսեց աշխատել թեմա փնտրել։ Մտքովս ընկավ, որ հաշվարկները անհատական ​​համակարգիչներից տեղափոխվել են համակարգիչների ցանց: Բազմապրոցեսորները կլինեն առաջընթացի բնական շարունակությունը. «բազմամիջուկ» բառը դեռ գոյություն չուներ: Մտածեցի՝ ո՞րն է ատոմային գործարքների համարժեքը բազմամիջուկ համակարգի համար։ Հաստատ սովորական գործարքներ չեն, քանի որ դրանք չափազանց մեծ են և ծանր: Եվ ահա թե ինչպես ինձ մոտ առաջացավ միտքը գծայնացում և այդպես ես հանգեցի ամբողջ առանց սպասելու համաժամացմանը: Սա փորձ էր պատասխանել այն հարցին, թե որն է ատոմային գործարքների անալոգը ընդհանուր հիշողությամբ բազմապրոցեսորային համակարգի համար: Առաջին հայացքից այս աշխատանքը կարող է բոլորովին այլ տեսք ունենալ, բայց իրականում այն ​​նույն թեմայի շարունակությունն է։

Աշխարհը սպասում է բազմամիջուկի

Վիտալի. Դուք նշեցիք, որ այն ժամանակ շատ քիչ բազմամիջուկ համակարգիչներ կային, չէ՞:

Մորիս. Նրանք պարզապես այնտեղ չէին: Կային մի քանի, այսպես կոչված, սիմետրիկ բազմապրոցեսորներ, որոնք հիմնականում միացված էին նույն ավտոբուսին։ Սա այնքան էլ լավ չէր աշխատում, քանի որ ամեն անգամ, երբ նոր ընկերություն ստեղծում էր նման բան, Intel-ը թողարկում էր մեկ պրոցեսոր, որը գերազանցում էր բազմապրոցեսորին:

Ալեքսեյ. Սա չի՞ նշանակում, որ այն հին ժամանակներում դա ավելի շատ տեսական ուսումնասիրություն էր:

Մորիս. Դա ոչ թե տեսական ուսումնասիրություն էր, այլ ավելի շուտ սպեկուլյատիվ ուսումնասիրություն: Այս ամենը շատ թեորեմների հետ աշխատելու մասին չէր, ավելի շուտ, մենք վարկածներ առաջ քաշեցինք մի ճարտարապետության մասին, որն այն ժամանակ գոյություն չուներ։ Ահա թե ինչի համար է հետազոտությունը: Ոչ մի ընկերություն նման բան չէր անի, այդ ամենը հեռավոր ապագայից էր: Իրականում այդպես էր մինչև 2004 թվականը, երբ հայտնվեցին իրական բազմամիջուկ պրոցեսորներ։ Քանի որ պրոցեսորները գերտաքանում են, դուք կարող եք պրոցեսորն էլ ավելի փոքրացնել, բայց չեք կարող ավելի արագացնել: Դրա պատճառով անցում կատարվեց դեպի բազմամիջուկ ճարտարապետություն: Եվ հետո դա նշանակում էր, որ հանկարծ կիրառություն եղավ այն բոլոր հասկացությունների համար, որոնք մենք մշակել էինք անցյալում:

Ալեքսեյ. Ինչո՞ւ եք կարծում, որ բազմամիջուկ պրոցեսորները հայտնվել են միայն XNUMX-ականներին: Ուրեմն ինչու է այդքան ուշ:

Մորիս. Դա պայմանավորված է ապարատային սահմանափակումներով: Intel-ը, AMD-ը և այլ ընկերություններ շատ լավ են կարողանում բարձրացնել պրոցեսորի արագությունը: Երբ ինչ-որ պահի պրոցեսորները բավական փոքրացան, որ նրանք այլևս չէին կարող բարձրացնել ժամացույցի արագությունը, քանի որ պրոցեսորները կսկսեն այրվել: Դուք կարող եք դրանք փոքրացնել, բայց ոչ ավելի արագ: Ինչն է նրանց ուժի մեջ. շատ փոքր պրոցեսորի փոխարեն նրանք կարող են ութ, տասնվեց կամ երեսուներկու պրոցեսոր տեղավորել պատյանի նույն ծավալի մեջ, որտեղ նախկինում միայն մեկը կարող էր տեղավորվել: Այժմ դուք ունեք բազմաթելային և արագ հաղորդակցություն նրանց միջև, քանի որ նրանք կիսում են քեշերը: Բայց դուք չեք կարող ստիպել նրանց ավելի արագ վազել. կա արագության շատ կոնկրետ սահմանափակում: Նրանք շարունակում են կամաց-կամաց կատարելագործվել, բայց արդեն ոչ այդքան։ Բարելավումների ճանապարհին կանգնեցին ֆիզիկայի օրենքները։

Նոր աշխարհը նոր խնդիրներ է բերում։ NUMA, NVM և ճարտարապետության հաքեր

Ալեքսեյ. Շատ խելամիտ է հնչում: Նոր բազմամիջուկ պրոցեսորների շնորհիվ նոր խնդիրներ առաջացան: Դուք և Ձեր գործընկերները սպասո՞ւմ էիք այս խնդիրներին: Միգուցե նախապես ուսումնասիրե՞լ եք դրանք։ Տեսական ուսումնասիրություններում հաճախ այնքան էլ հեշտ չէ կանխատեսել նման բաներ։ Երբ խնդիրներ առաջացան, ինչպե՞ս են դրանք արդարացրել ձեր և ձեր գործընկերների ակնկալիքները: Թե՞ դրանք բոլորովին նոր էին, և դուք և ձեր գործընկերները ստիպված էիք շատ ժամանակ տրամադրել խնդիրների լուծմանը, ինչպես դրանք հայտնվել էին:

Վիտալի. Ես կավելացնեմ Ալեքսեյի հարցին. ճի՞շտ եք կանխատեսել պրոցեսորի ճարտարապետությունը, երբ ուսումնասիրում էիք տեսությունը:

Մորիս: Ոչ 100%: Բայց ես կարծում եմ, որ ես և իմ գործընկերները լավ աշխատանք ենք կատարել՝ կանխատեսելով բազմամիջուկներ ընդհանուր հիշողությամբ: Կարծում եմ, մենք ճիշտ կանխատեսել ենք դժվարությունները զուգահեռ տվյալների կառուցվածքների մշակման հարցում, որոնք գործում են առանց կողպեքների: Տվյալների նման կառուցվածքները կարևոր են եղել բազմաթիվ հավելվածների համար, թեև ոչ բոլորի համար, բայց հաճախ այն, ինչ ձեզ իսկապես անհրաժեշտ է, չփակող տվյալների կառուցվածքն է: Երբ մենք հորինեցինք դրանք, շատերը պնդում էին, որ դա անհեթեթություն է, որ ամեն ինչ լավ է աշխատում կողպեքների հետ: Մենք բավականին լավ կանխատեսել էինք, որ ծրագրավորման բազմաթիվ խնդիրների և տվյալների կառուցվածքի խնդիրների համար կլինեն պատրաստի լուծումներ։ Կային նաեւ ավելի բարդ խնդիրներ, ինչպես, օրինակ ՆՈՒՄԱ - անհավասար մուտք դեպի հիշողություն: Իրականում, դրանք նույնիսկ չեն դիտարկվել մինչև բազմամիջուկ պրոցեսորների գյուտը, քանի որ դրանք չափազանց կոնկրետ էին: Հետազոտական ​​համայնքն աշխատում էր հարցերի վրա, որոնք ընդհանուր առմամբ կանխատեսելի էին: Որոշ ապարատային խնդիրներ, որոնք կապված են կոնկրետ ճարտարապետությունների հետ, պետք է սպասեին թեւերի մեջ, իրականում այս ճարտարապետությունների տեսքը: Օրինակ, ոչ ոք իրականում չի աշխատել GPU-ին հատուկ տվյալների կառուցվածքների վրա, քանի որ այն ժամանակ GPU-ները գոյություն չունեին: Թեև դրա վրա մեծ աշխատանք է կատարվել SIMD, այս ալգորիթմները պատրաստ էին օգտագործման, հենց որ համապատասխան սարքավորումը հասանելի դառնար: Սակայն ամեն ինչ հնարավոր չէ կանխատեսել։

Ալեքսեյ. Եթե ես ճիշտ եմ հասկանում, NUMA-ն մի տեսակ փոխզիջում է ծախսերի, կատարողականի և որոշ այլ բաների միջև: Կա՞ պատկերացում, թե ինչու NUMA-ն այդքան ուշ դուրս եկավ:

Մորիս. Կարծում եմ, որ NUMA-ն գոյություն ունի հիշողություն արտադրելու համար օգտագործվող սարքաշարի հետ կապված խնդիրների պատճառով. որքան հեռու են բաղադրիչները, այնքան դանդաղ է դրանց հասանելիությունը: Մյուս կողմից, այս աբստրակցիայի երկրորդ արժեքը հիշողության միատեսակությունն է։ Այսպիսով, զուգահեռ հաշվարկների բնութագրիչներից մեկն այն է, որ բոլոր աբստրակցիաները փոքր-ինչ կոտրված են: Եթե ​​մուտքը կատարյալ միատեսակ լիներ, ամբողջ հիշողությունը հավասար հեռավորության վրա կլիներ, բայց դա տնտեսապես, և գուցե նույնիսկ ֆիզիկապես անհնար է: Ուստի այս հակամարտությունն առաջանում է։ Եթե ​​դուք գրում եք ձեր ծրագիրը այնպես, կարծես հիշողությունը միատեսակ է, ապա այն, ամենայն հավանականությամբ, ճիշտ կլինի: Այն առումով, որ սխալ պատասխաններ չի տա։ Բայց նրա կատարումը նույնպես չի բռնի աստղերը երկնքից: Նմանապես, եթե դուք գրեք spinlocks Առանց քեշի հիերարխիան հասկանալու, արգելափակումն ինքնին ճիշտ կլինի, բայց դուք կարող եք մոռանալ կատարողականի մասին: Ինչ-որ իմաստով, դուք պետք է գրեք ծրագրեր, որոնք ապրում են շատ պարզ աբստրակցիայի վրա, բայց դուք պետք է գերազանցեք մարդկանց, ովքեր ձեզ տվել են այդ վերացականությունը. դուք պետք է իմանաք, որ աբստրակցիայի տակ կա հիշողության որոշակի հիերարխիա, որ կա. ավտոբուս քո և այս հիշողության միջև և այլն: Այսպիսով, առանձին-առանձին օգտակար աբստրակցիաների միջև որոշակի հակասություն կա, ինչը մեզ տանում է դեպի շատ կոնկրետ և պրագմատիկ խնդիրներ:

Վիտալի. Ի՞նչ կասեք ապագայի մասին: Կարո՞ղ եք կանխատեսել, թե ինչպես կզարգանան պրոցեսորները հաջորդիվ: Կարծիք կա, որ պատասխաններից մեկը գործարքային հիշողությունն է։ Դուք հավանաբար այլ բան ունեք պահեստում:

Մորիս. Առջևում կան մի քանի հիմնական մարտահրավերներ: Մեկն այն է, որ համահունչ հիշողությունը հրաշալի աբստրակցիա է, բայց այն սկսում է քայքայվել հատուկ դեպքերում: Այսպիսով, օրինակ, NUMA-ն մի բանի կենդանի օրինակ է, որտեղ դուք կարող եք շարունակել ձևացնել, որ գոյություն ունի միատեսակ հիշողություն: Իրականում ոչ, արտադրողականությունը ձեզ կստիպի լաց լինել: Ինչ-որ պահի, ճարտարապետները ստիպված կլինեն հրաժարվել մեկ հիշողության ճարտարապետության գաղափարից, դուք չեք կարող հավիտյան ձևացնել: Կպահանջվեն ծրագրավորման նոր մոդելներ, որոնք բավականաչափ հեշտ են օգտագործելու և բավականաչափ հզոր՝ հիմքում ընկած սարքաշարն արդյունավետ դարձնելու համար: Սա շատ դժվար փոխզիջում է, քանի որ եթե դուք ծրագրավորողներին ցույց տաք այն ճարտարապետությունը, որն իրականում օգտագործվում է սարքավորումներում, նրանք կխելագարվեն: Այն չափազանց բարդ է և շարժական չէ: Եթե ​​դուք չափազանց պարզ ինտերֆեյս ներկայացնեք, կատարումը վատ կլինի: Այսպիսով, շատ դժվար փոխզիջումներ պետք է արվեն՝ ապահովելու համար օգտակար ծրագրավորման մոդելներ, որոնք կիրառելի են իսկապես մեծ բազմամիջուկ պրոցեսորների համար: Ես վստահ չեմ, որ մասնագետից բացի որևէ մեկը ի վիճակի է ծրագրավորել 2000 միջուկանոց համակարգչի վրա: Եվ եթե դուք շատ մասնագիտացված կամ գիտական ​​հաշվարկներ կամ գաղտնագրություն կամ նման բան չեք անում, դեռևս պարզ չէ, թե ինչպես դա անել ճիշտ: 

Մեկ այլ նմանատիպ ոլորտ մասնագիտացված ճարտարապետությունն է: Գրաֆիկական արագացուցիչները գոյություն ունեն երկար ժամանակ, բայց դրանք դարձել են դասական օրինակ, թե ինչպես կարելի է վերցնել մասնագիտացված տեսակի հաշվարկներ և գործարկել այն հատուկ չիպի վրա: Սա ավելացնում է իր մարտահրավերները՝ ինչպես եք շփվում նման սարքի հետ, ինչպես եք այն ծրագրավորում: Ես վերջերս աշխատում էի տարածքում առկա խնդիրների վրա մոտ հիշողության հաշվարկման. Դուք վերցնում եք մի փոքր պրոցեսոր և սոսնձում այն ​​հիշողության հսկայական մասի վրա, որպեսզի հիշողությունը աշխատի L1 քեշի արագությամբ և այնուհետև հաղորդակցվի այնպիսի սարքի հետ, ինչպիսին է. TPU – պրոցեսորը զբաղված է ձեր հիշողության միջուկում նոր առաջադրանքներ բեռնելով: Այս տեսակի իրերի համար տվյալների կառուցվածքների և հաղորդակցության արձանագրությունների նախագծումը ևս մեկ հետաքրքիր օրինակ է: Այսպիսով, մաքսային պրոցեսորներն ու սարքավորումները դեռ երկար ժամանակ կշարունակեն կատարելագործվել:

Ալեքսեյ. Ինչ վերաբերում է ոչ անկայուն հիշողությանը (ոչ անկայուն հիշողություն)?

Մորիս. Օ՜, սա ևս մեկ հիանալի օրինակ է: NVM-ն մեծապես կփոխի մեր հայացքը այնպիսի բաների, ինչպիսիք են տվյալների կառուցվածքները: Ոչ անկայուն հիշողությունը, ինչ-որ իմաստով, խոստանում է իսկապես արագացնել իրադարձությունները: Բայց դա չի դյուրացնի կյանքը, քանի որ պրոցեսորների, քեշերի և ռեգիստրների մեծ մասը դեռ անկայուն է: Երբ դուք սկսում եք վթարից հետո, ձեր վիճակը և ձեր հիշողության վիճակը նույնը չեն լինի, ինչ վթարից առաջ: Ես շատ երախտապարտ եմ NVM-ում աշխատող մարդկանց. շատ բան կլինի, որ հետազոտողները երկար ժամանակ անեն՝ փորձելով պարզել ճշտության պայմանները: Հաշվարկները ճիշտ են, եթե դրանք կարող են գոյատևել վթարից, որի ժամանակ քեշերի և ռեգիստրների բովանդակությունը կորչում է, բայց հիմնական հիշողությունը մնում է անձեռնմխելի:

Կոմպիլյատորներ ընդդեմ պրոցեսորների, RISC-ն ընդդեմ CISC-ի, ընդհանուր հիշողությունն ընդդեմ հաղորդագրությունների փոխանցման

Վլադիմիր. Ի՞նչ եք կարծում «կոմպիլյատորներն ընդդեմ պրոցեսորների» երկընտրանքի մասին հրահանգների հավաքածուի տեսանկյունից: Թույլ տվեք բացատրել նրանց, ովքեր տեղյակ չեն. եթե մենք գնում ենք շեղված հիշողության կամ նման բանի, մենք կարող ենք օգտագործել շատ պարզ հրամանների հավաքածու և խնդրել կոմպիլյատորին ստեղծել բարդ կոդ, որը կարող է օգտվել հայտնաբերված առավելություններից: Կամ մենք կարող ենք գնալ այլ ճանապարհով. իրականացնել բարդ հրահանգներ և խնդրել պրոցեսորին վերադասավորել հրահանգները և կատարել այլ մանիպուլյացիաներ դրանցով: Ինչ եք մտածում այդ մասին?

Մորիս. Ես իսկապես այդ հարցին պատասխան չունեմ: Այս բանավեճը շարունակվում է արդեն չորս տասնամյակ։ Կար ժամանակ, երբ միջեւ կրճատված մի շարք հրամաններ և համալիր քաղաքացիական պատերազմները տեղի էին ունենում մի շարք հրամանների միջոցով: Որոշ ժամանակ RISC-ի մարդիկ հաղթեցին, բայց հետո Intel-ը վերակառուցեց իրենց շարժիչներն այնպես, որ հրահանգների կրճատված փաթեթը օգտագործվեց ներսում, իսկ ամբողջական փաթեթը արտահանվեց արտաքինից: Սա, հավանաբար, մի թեմա է, որտեղ յուրաքանչյուր նոր սերունդ պետք է գտնի իր փոխզիջումները և կայացնի իր որոշումները։ Շատ դժվար է կանխատեսել, թե այս բաներից որն ավելի լավ կլինի։ Այսպիսով, իմ ցանկացած կանխատեսում որոշակի ժամանակ ճշմարիտ կլինի, այնուհետև որոշ ժամանակ նորից կեղծ, իսկ հետո նորից ճշմարիտ:

Ալեքսեյ. Արդյունաբերության համար որքանո՞վ է սովորական, որ որոշ գաղափարներ հաղթում են մի քանի տասնամյակ, իսկ հաջորդում պարտվում: Կա՞ն նման պարբերական փոփոխությունների այլ օրինակներ։

Մորիս. Բաշխված հաշվարկների թեմայի շուրջ կան մարդիկ, ովքեր հավատում են դրան ընդհանուր հիշողություն և մարդիկ, ովքեր հավատում են դրան հաղորդագրությունների փոխանակում. Սկզբում, բաշխված հաշվարկում, զուգահեռ հաշվարկը նշանակում է հաղորդագրության փոխանցում: Հետո ինչ-որ մեկը պարզեց, որ շատ ավելի հեշտ է ծրագրավորել ընդհանուր հիշողությամբ: Հակառակ կողմն ասաց, որ ընդհանուր հիշողությունը չափազանց բարդ է, քանի որ այն պահանջում է կողպեքներ և այլն, ուստի արժե անցնել այն լեզուներին, որտեղ հաղորդագրությունների փոխանցումից բացի ոչինչ չկա: Ինչ-որ մեկը նայեց, թե ինչ ստացվեց դրանից և ասաց. «Վա՜յ, այս հաղորդագրությունների իրականացումը շատ նման է ընդհանուր հիշողության, քանի որ դուք ստեղծում եք շատ ու շատ այս փոքրիկ մոդուլներ, նրանք հաղորդագրություններ են ուղարկում միմյանց, և նրանք բոլորը: խճճվել«Եկեք ստեղծենք ավելի լավ ընդհանուր հիշողության տվյալների բազա»: Այս ամենը կրկնվում է նորից ու նորից, ու չի կարելի ասել, որ կողմերից մեկը միանշանակ իրավացի է։ Մի կողմը միշտ գերիշխելու է, քանի որ հենց որ նրանցից մեկը գրեթե հաղթում է, մարդիկ նորից ու նորից ուղիներ են հորինում մյուսին բարելավելու համար:

Փխրուն բազմաթելային ծածկագիր գրելու արվեստը

Ալեքսեյ. Սա շատ հետաքրքիր է: Օրինակ, երբ մենք գրում ենք կոդ, անկախ նրանից, թե որ ծրագրավորման լեզվով, մենք սովորաբար պետք է ստեղծենք աբստրակցիաներ, ինչպիսիք են բջիջները, որոնք կարելի է կարդալ և գրել: Բայց իրականում, որոշ ֆիզիկական մակարդակում, սա կարող է թվալ հաղորդագրություն ուղարկելու ապարատային ավտոբուսի միջոցով տարբեր համակարգիչների և այլ սարքերի միջև: Ստացվում է, որ աբստրակցիայի երկու մակարդակներում էլ միանգամից աշխատանք է կատարվում։

Մորիս. Միանգամայն ճիշտ է, որ ընդհանուր հիշողությունը կառուցված է հաղորդագրությունների փոխանցման վրա՝ ավտոբուսներ, քեշեր և այլն: Բայց դժվար է ծրագրեր գրել՝ օգտագործելով հաղորդագրությունների փոխանցում, ուստի սարքավորումը միտումնավոր ստում է՝ ձևացնելով, որ դուք ունեք միատեսակ հիշողություն: Սա ձեզ համար կհեշտացնի պարզ, ճիշտ ծրագրեր գրելը, նախքան կատարողականի վատթարացումը: Այնուհետև կասեք. Կարծես թե քեշի հետ ընկերանալու ժամանակն է։ Եվ հետո դուք սկսում եք անհանգստանալ քեշի գտնվելու վայրից, և այնտեղից այն գնում է: Ինչ-որ իմաստով, դուք կոտրում եք աբստրակցիան. դուք գիտեք, որ դա պարզապես հարթ, միատեսակ հիշողություն չէ, և դուք կօգտագործեք այդ գիտելիքները քեշի համար հարմար ծրագրեր գրելու համար: Սա այն է, ինչ դուք ստիպված կլինեք անել իրական խնդիրներում: Քեզ տրված քաղցր, պարզ, գեղեցիկ աբստրակցիայի և հիմքում ընկած սարքաշարի սարսափելի բարդ իրականացման միջև եղած այս հակամարտությունն այն է, որտեղ յուրաքանչյուրը կգնա իր փոխզիջման: Ես մի գիրք ունեմ բազմապրոցեսորների և համաժամացման մասին, և մի պահ ես պատրաստվում էի գլուխ գրել տվյալների կառուցվածքների մասին java.util.concurrent. Եթե ​​նայեք նրանց, նման բաներ բացթողումներով ցուցակներ Սրանք արվեստի զարմանալի գործեր են։ (Խմբագրի նշում. Java լեզվին ծանոթները պետք է գոնե մի հայացք գցեն իրականացմանը ConcurrentSkipListMap, կարող եք դիտել հղումները API и աղբյուր կոդը). Բայց իմ տեսանկյունից, անպատասխանատու կլինի դրանք ցույց տալ ուսանողներին, քանի որ տվյալների նման կառուցվածքը նման է կրկեսի մի տղայի, որը վազում է լարախաղաց արջի փոսի վրայով: Եթե ​​փոխեք թեկուզ մի փոքր դետալ, ապա ամբողջ կառույցը կփլուզվի։ Այս կոդը շատ արագ և էլեգանտ է միայն այն պատճառով, որ այն գրված է կատարյալ, բայց ամենափոքր փոփոխությունը կհանգեցնի լիակատար ձախողման: Եթե ​​ես այս ծածկագիրը որպես օրինակ տամ ուսանողներին, նրանք անմիջապես կասեն՝ ես նույնպես կարող եմ դա անել: Եվ հետո ինչ-որ ինքնաթիռ կկործանվի կամ միջուկային ռեակտորը կպայթի, և ես մեղավոր կլինեմ, որ սխալ ժամանակին նրանց չափազանց շատ տեղեկատվություն եմ հաղորդել:

Ալեքսեյ. Երբ ես մի փոքր ավելի երիտասարդ էի, շատ անգամներ փորձեցի ուսումնասիրել Դագ Լիի սկզբնական կոդը, օրինակ. java.util.concurrent, քանի որ բաց կոդով է, շատ հեշտ է գտնել ու փորձել հասկանալ, թե ինչ է այնտեղ կատարվում։ Դա այնքան էլ լավ չէր ստացվում. հաճախ բոլորովին անհասկանալի է, թե ինչու Դագը որոշեց ինչ-որ բան անել այսպես, երբ բոլորն այլ կերպ են անում: Ինչպե՞ս եք բացատրում այս բաները ձեր ուսանողներին: Կա՞ որոշակի ճիշտ միջոց՝ նկարագրելու հարդքոր ալգորիթմի կոնկրետ մանրամասները, օրինակ: Ինչպե՞ս եք դա անում:

Մորիս. Նկարչության ուսուցիչներն ունեն մի կլիշե, որը նրանք առաջինը հիշում են. եթե ցանկանում եք նկարել Պիկասոյի պես, նախ պետք է սովորեք, թե ինչպես նկարել պարզ իրատեսական նկարներ, և միայն երբ իմանաք կանոնները, կարող եք սկսել դրանք խախտել: Եթե ​​դուք սկսում եք անմիջապես խախտելով կանոնները, դուք հայտնվում եք խառնաշփոթի մեջ: Նախ, ես սովորեցնում եմ ուսանողներին, թե ինչպես գրել պարզ, ճիշտ կոդ՝ առանց անհանգստանալու կատարողականի մասին: Իմ ասածն այն է, որ այստեղ թաքնված են ժամանակի բարդ խնդիրներ, այնպես որ մի անհանգստացեք քեշերի մասին, մի անհանգստացեք հիշողության մոդելների մասին, պարզապես համոզվեք, որ ամեն ինչ ճիշտ է աշխատում: Սա արդեն բավական բարդ է. ժամանակակից ծրագրավորումն ինքնին հեշտ չէ, հատկապես նոր ուսանողների համար: Եվ երբ նրանք ունեն ինտուիցիա, թե ինչպես գրել ճիշտ ծրագրեր, ես ասում եմ. նայեք այս երկու spinlock իրականացումներին. մեկը շատ դանդաղ է, իսկ երկրորդը նույնպես ոչ շատ, բայց ավելի լավ է: Այնուամենայնիվ, մաթեմատիկորեն երկու ալգորիթմները նույնն են: Փաստորեն, նրանցից մեկն օգտագործում է քեշի տեղայնությունը: Դրանցից մեկն աշխատում է տեղային քեշավորված տվյալների վրա, իսկ մյուսը բազմիցս գործողություններ է կատարում ավտոբուսի միջով: Դուք չեք կարող արդյունավետ կոդ գրել, եթե չեք հասկանում, թե դա ինչ է, և չգիտեք, թե ինչպես կոտրել վերացականությունը և նայել հիմքում ընկած կառուցվածքին: Բայց դուք չեք կարողանա անմիջապես սկսել դա անել: Կան մարդիկ, ովքեր սկսում են դա անել անմիջապես և հավատում են սեփական հանճարին, սովորաբար դա վատ է ավարտվում, քանի որ նրանք չեն հասկանում սկզբունքները։ Ոչ ոք չի նկարում Պիկասոյի պես կամ Դագ Լիի նման ծրագրեր չի գրում քոլեջից առաջին շաբաթվա ընթացքում: Գիտելիքների այս մակարդակին հասնելու համար տարիներ են պահանջվում:

Ալեքսեյ- Ստացվում է, որ խնդիրը բաժանում եք երկու մասի. առաջինը կոռեկտությո՞ւնն է, երկրորդը՝ կատարո՞ւմը։

Մորիս: Ճիշտ է: Եվ հենց այդ հերթականությամբ. Խնդիրի մի մասն այն է, որ նոր ուսանողները չեն հասկանում, որ կոռեկտության հասնելը դժվար է: Առաջին հայացքից ասում են՝ սա ակնհայտորեն ճիշտ է, մնում է արագացնել։ Այսպիսով, երբեմն ես նրանց պատմում եմ ի սկզբանե սխալ ալգորիթմի մասին, կարծես այն ճիշտ է:

Ինչպես սովորեցնել ուսանողներին գրել բարդ բազմաթելային ծածկագիր

Ալեքսեյ. Պարզապես տեսնելու համար, թե արդյոք նրանք կարող են զգալ բռնումը:

Մորիս. Ես միշտ նախապես զգուշացնում եմ, որ երբեմն սխալ ալգորիթմներ կառաջարկեմ։ Պետք չէ մարդկանց խաբել. Ես առաջարկում եմ, որ տեղեկատվությունը աղիքի հետ վերցնեն։ Եթե ​​ես ինչ-որ բան ասեմ և ասեմ. «տեսեք, սա ակնհայտորեն ճիշտ է», սա ազդանշան է, որ ինչ-որ տեղ նրանք փորձում են ձեզ խաբել, և դուք պետք է սկսեք հարցեր տալ: Այնուհետև ես փորձում եմ խրախուսել ուսանողներին շարունակել հարցեր տալ, իսկ հետո առաջարկում եմ. «Ի՞նչ կլինի, եթե մենք թողնենք իրերն այնպես, ինչպես կան»: Եվ նրանք անմիջապես տեսնում են սխալը։ Բայց ուսանողներին համոզելը, որ նրանք պետք է անհանգստանան կոռեկտության համար, շատ ավելի դժվար է, քան թվում է առաջին հայացքից: Այս ուսանողներից շատերը գալիս են ավագ դպրոցում ծրագրավորման փորձով, ոմանք աշխատանք են գտել և այնտեղ ծրագրավորում են արել, և նրանք բոլորն էլ լի են վստահությամբ: Սա բանակի պես բան է՝ նախ պետք է փոխել նրանց տրամադրությունը, որպեսզի համոզես համբերատար մոտենալ ծագած խնդիրների լուծմանը։ Կամ գուցե դա նման է բուդդայական վանականներին. նախ նրանք սովորում են տրամաբանել կոռեկտության մասին, և երբ նրանք հասկանում են կոռեկտության մասին պատճառաբանելու ձևերը, նրանց թույլ է տրվում անցնել հաջորդ մակարդակ և սկսել անհանգստանալ կատարողականի համար:

Ալեքսեյ. Այսինքն՝ երբեմն ուսանողներին ցույց ես տալիս ոչ աշխատանքային օրինակներ, որոնց շնորհիվ հետադարձ կապ ես ստանում՝ ցույց տալով, թե արդյոք նրանք հասկանում են խնդրի էությունը, կարո՞ղ են գտնել սխալ ծածկագիր և սխալ արդյունք: Այսպիսով, սովորողները սովորաբար ձեզ ուրախացնում են, թե տխուր:

Մորիս. Ուսանողները գրեթե միշտ ի վերջո գտնում են սխալը: Եթե ​​նրանք շատ դանդաղ են որոնում, ես առաջատար հարցեր եմ տալիս, և այստեղ կարևոր է հասկանալ, որ եթե երբեք չխաբեք նրանց, նրանք կսկսեն անմիտ կերպով ընկալել ձեր խոսքերը որպես վերջնական ճշմարտություն: Հետո նրանք կձանձրանան ու դասի ժամանակ նոթբուքով ֆեյսբուք կարդալիս կսկսեն քնել։ Բայց երբ նախօրոք ասում ես, որ իրենց կխաբեն, և նրանք հիմար տեսք կունենան, եթե հնարք չզգան, նրանք շատ ավելի զգոն են դառնում։ Սա լավ է տարբեր ձևերով: Կցանկանայի, որ ուսանողները ոչ միայն հարցականի տակ դնեն հարցի իրենց ըմբռնումը, այլև կասկածի տակ դնեն ուսուցչի հեղինակությունը: Գաղափարն այն է, որ ուսանողը ցանկացած պահի կարող է ձեռք բարձրացնել և ասել. Դա կարևոր ուսումնական գործիք է: Ես չեմ ուզում, որ ուսանողներից որևէ մեկը նստի և լուռ մտածի իր մտքում. այս ամենը լրիվ անհեթեթություն է թվում, բայց ձեռք բարձրացնելը չափազանց սարսափելի է, և, այնուամենայնիվ, նա պրոֆեսոր է, ուստի այն ամենը, ինչ ասում է, ճշմարտություն է: Ուստի, եթե նախապես զգուշացվեն, որ ամեն ինչ չէ, որ ասվում է, անպայման ճիշտ է, նրանք նյութին ավելի մեծ ուշադրություն դարձնելու խթան ունեն։ Ես հասկացնում եմ, որ նորմալ է ձեռք բարձրացնել և հարցեր տալ: Ձեր հարցը կարող է հիմար կամ միամիտ թվալ, բայց հաճախ հենց այսպես են ծագում լավագույն հարցերը:

Ալեքսեյ: Շատ հետաքրքիր է: Սովորաբար մարդիկ ունենում են ինչ-որ հոգեբանական արգելք, որը թույլ չի տալիս հարց տալ պրոֆեսորին։ Հատկապես եթե սենյակում շատ մարդիկ կան, և բոլորը վախենում են, որ ձեր հիմար հարցի քննարկումը կխլի այս մարդկանց ամբողջ ժամանակը: Կա՞ն ինչ-որ հնարքներ սրանով զբաղվելու համար:

Մորիս.- Ես հաճախ կանգ եմ առնում և դասական հարցեր տալիս: Արդյո՞ք մի հայտարարությունը ճիշտ կլինի, թե ինչպես կլուծեն քննարկվող խնդիրը։ Սա առանցքային գործողություն է, հատկապես դասի սկզբում, երբ մարդիկ ամաչում են նույնիսկ ամենափոքր բանն ասել: Դուք ուսանողներին հարց եք տալիս և ոչինչ չեք ասում: Լռություն է, բոլորը մի փոքր լարվում են, լարվածությունը մեծանում է, հետո հանկարծ ինչ-որ մեկը չի դիմանում, կոտրվում է և ասում է պատասխանը. Ահա թե ինչպես եք շրջում իրավիճակը. շարունակել լռելն ավելի դժվար ու անհարմար է դառնում, քան պատասխանելը։ Սա ստանդարտ մանկավարժական հնարք է։ Աշխարհի յուրաքանչյուր ուսուցիչ պետք է իմանա, թե ինչպես դա անել:

Ալեքսեյ. Այժմ մենք հիանալի վերնագիր ունենք այս հարցազրույցի համար. «Ավելի հեշտ է պատասխանել, քան լռել»:

Վիտալի. Թույլ տվեք նորից հարցնել. Դուք աշխատում եք տոպոլոգիական ապացույցների վրա։ Ինչպե՞ս նույնիսկ ներգրավվեցիք դրան, որովհետև բաշխված հաշվարկն ու տոպոլոգիան բոլորովին տարբեր բաներ են:

Մորիս – Այնտեղ թաքնված կապ կա: Երբ ես մաթեմատիկա սովորող ուսանող էի, մաքուր մաթեմատիկա էի սովորում։ Ես իրական հետաքրքրություն չունեի համակարգիչների նկատմամբ, մինչև որ ուսումս ավարտվեց, և ես հայտնվեցի աշխատանք փնտրելու հրատապ անհրաժեշտության առաջ: Որպես ուսանող սովորել եմ հանրահաշվական տոպոլոգիա։ Շատ տարիներ անց, երբ աշխատում էր խնդրի վրա, որը կոչվում էր «k-Set համաձայնագրի խնդիր», ես օգտագործել եմ գրաֆիկները՝ խնդիրը մոդելավորելու համար և, ինչպես թվում էր այն ժամանակ, ես գտել էի լուծումը։ Պարզապես պետք էր նստել և շրջանցել հաշվարկը: Փորձեք գտնել համապատասխան պատասխան այս գրաֆիկի վրա: Բայց իմ ալգորիթմը չաշխատեց. պարզվեց, որ նա ընդմիշտ կվազի շրջանակների մեջ: Ցավոք, այս ամենը հնարավոր չէր բացատրել գրաֆիկների տեսության պաշտոնական լեզվով, որը գիտեն բոլոր համակարգչային գիտնականները: Եվ հետո հիշեցի, որ շատ տարիներ առաջ, դեռ տոպոլոգիայի դասերին, մենք օգտագործում էինք հայեցակարգը «Պարզ համալիր», որը գրաֆիկների ընդհանրացումն է դեպի ավելի բարձր չափումներ։ Հետո ինքս ինձ հարցրի. ի՞նչ կլիներ, եթե խնդիրը վերաձեւակերպեինք պարզագույն բարդույթների առումով։ Սա դարձավ առանցքային պահը։ Օգտագործելով ավելի հզոր ֆորմալիզմ՝ խնդիրը հանկարծ շատ ավելի պարզ է դառնում։ Մարդիկ երկար ժամանակ պայքարում էին դրա դեմ՝ օգտագործելով գրաֆիկներ, բայց ոչինչ անել չկարողացան։ Եվ նույնիսկ հիմա նրանք չեն կարող, ճիշտ պատասխանը պարզվեց, որ ոչ թե ալգորիթմ է, այլ խնդրի լուծման անհնարինության ապացույց: Այսինքն՝ նման ալգորիթմ պարզապես գոյություն չունի։ Բայց անհնարինության յուրաքանչյուր ապացույց հիմնված կա՛մ պարզ բարդույթների վրա, կա՛մ այն ​​բաների վրա, որոնք մարդիկ ձևացնում էին, թե չեն համարում պարզ բարդույթներ: Միայն այն պատճառով, որ ինչ-որ բան նոր անուն եք կոչում, այն չի կորցնում իր էությունը:

Վիտալի. Պարզվում է, որ ձեր բախտը բերել է:

Մորիս. Բախտից բացի, դա նույնպես պատրաստակամություն. Սա նշանակում է, որ դուք չպետք է մոռանաք ավելի վաղ սովորած «անպետք» բաները։ Որքան շատ անպետք բաներ եք սովորում, այնքան ավելի շատ գաղափարներ կարող եք հանել, երբ բախվում եք նոր խնդրի: Այս տեսակի ինտուիտիվ օրինաչափությունների համընկնումը կարևոր է, քանի որ... Եկեք դա անենք, սա շղթա է. սկզբում ես հայտնաբերեցի, որ գրաֆիկները ընդհանրապես չեն աշխատում կամ ընդհանրապես չեն աշխատում, դա ինձ ինչ-որ բան հիշեցրեց ութի իրադարձություններից: տարիներ առաջ և իմ ուսանողական տարիները, երբ մենք ուսումնասիրեցինք այս բոլոր պարզ բարդույթները: Սա իր հերթին թույլ տվեց ինձ գտնել իմ հին տոպոլոգիայի դասագիրքը և նորից բեռնել այն իմ գլխում: Բայց եթե չլինեին այդ հին գիտելիքները, ես երբեք առաջընթաց չէի գրանցի սկզբնական խնդրի լուծման հարցում։

«Բազմապրոցեսորային ծրագրավորման արվեստը» գրքի նոր հրատարակությունը

Ալեքսեյ- Դուք մի քանի խոսք ասացիք ձեր գրքի մասին: Հավանաբար ամենավատ գաղտնիքը չէ, որ դուք գրել եք աշխարհի ամենահայտնի գիրքը բազմաթելերի մասին, «Բազմապրոցեսորային ծրագրավորման արվեստը». Այն արդեն մոտ 11 տարեկան է և այդ ժամանակվանից միայն թողարկվել է  վերանայված վերատպ. Կլինի՞ երկրորդ հրատարակություն։

Մորիս – Լավ է, որ հարցրիր: Դա կլինի շատ շուտով, երեք ամսից կամ քիչ հետո։ Եվս երկու հեղինակ կա, մենք շատ ավելի շատ նյութեր ավելացրինք, բարելավեցինք «fork/join parallelism» բաժինը, մի հատված գրեցինք MapReduce-ում, ավելացրինք շատ նոր բաներ և դուրս նետեցինք ավելորդ բաներ. մի բան, որը շատ հետաքրքիր էր գրելու պահին: առաջին հրատարակությունը, բայց այսօր այլևս չկա: Արդյունքը շատ լուրջ վերանայված գիրք էր:

Ալեքսեյ. Ամեն ինչ արդեն արված է, մնում է ազատ արձակե՞լ:

Մորիս. Մի քանի գլուխ դեռ որոշակի աշխատանքի կարիք ունի: Մեր հրատարակիչը (որը, կարծում եմ, արդեն ատում է մեզ) դեռ փորձում է փոխանցել այն հաղորդագրությունը, որ մենք պետք է ավելի արագ աշխատենք: Մենք շատ հետ ենք գրաֆիկից։ Տեսականորեն մենք կարող էինք այս գիրքը պատրաստել մի քանի տարի առաջ:

Ալեքսեյ. Ծննդյան տոներից առաջ գրքի նոր տարբերակը ստանալու հնարավորություն կա՞:

Մորիս. Սա է մեր նպատակը: Բայց ես այնքան եմ կանխագուշակել հաղթանակը, որ ինձ այլեւս ոչ ոք չի հավատում: Այս հարցում, հավանաբար, չպետք է ինձ շատ վստահել:

Ալեքսեյ. Ամեն դեպքում, սա ֆանտաստիկ նորություն է: Ինձ շատ դուր եկավ գրքի առաջին հրատարակությունը։ Կարելի է ասել, որ ես երկրպագու եմ:

Մորիս. Հուսով եմ, որ նոր հրատարակությունը արժանի կլինի ձեր ջերմեռանդ ոգևորությանը, շնորհակալություն:

Ինչպես է հայտնագործվել գործարքային հիշողությունը

Վիտալի. Հաջորդ հարցը վերաբերում է գործարքային հիշողությանը: Ինչքան հասկացա, դու էս ասպարեզում առաջամարտիկ ես, հորինել ես մի ժամանակ, երբ ոչ ոք նման բաների մասին չէր մտածում։ Ինչո՞ւ որոշեցիք տեղափոխվել այս ոլորտ: Ինչո՞ւ են ձեզ կարևոր թվում գործարքները: Մտածում էիք, որ մի օր դրանք կներդրվեն ապարատային:

Մորիս. Ես գործարքների մասին գիտեի իմ ասպիրանտուրայի օրերից:

Վիտալի. Այո, բայց դրանք տարբեր գործարքներ են:

Մորիս. Ես աշխատել եմ Էլիոթ Մոսի հետ չարգելափակող աղբահանության վրա: Մեր խնդիրն այն էր, որ մենք ուզում էինք ատոմային կերպով փոխել մի քանի բառ հիշողության մեջ, և այդ ժամանակ ալգորիթմները կդառնան շատ պարզ, և գոնե դրանցից մի քանիսը կդառնան ավելի արդյունավետ: Օգտագործելով համեմատել և փոխանակել համար բեռնել-հղում/խանութ-պայմանականԶուգահեռ ճարտարապետությամբ տրամադրված, հնարավոր է ինչ-որ բան անել, բայց դա շատ անարդյունավետ և տգեղ է, քանի որ ստիպված կլինեք գործ ունենալ անուղղակի շերտերի հետ: Ես ուզում եմ փոխել հիշողության բառերը և պետք է փոխեմ, քանի որ կարող եմ փոխել միայն մեկ ցուցիչ, ուստի դրանք պետք է մատնանշեն ինչ-որ գրացուցակի նման կառուցվածք: Մենք խոսեցինք այն մասին, թե որքան հիանալի կլիներ, եթե մենք կարողանայինք փոխել ապարատը, որպեսզի այն կարողանա միաժամանակ ձայնագրել: Էլիոթը, կարծես, նկատել է սա. եթե նայեք քեշի համահունչ արձանագրություններին, դրանք արդեն ապահովում են պահանջվող ֆունկցիոնալության մեծ մասը: Լավատեսական գործարքի ժամանակ քեշի համահունչ արձանագրությունը կնկատի, որ ժամանակի հակասություն կա, և քեշը կդառնա անվավեր. Ի՞նչ է պատահում, եթե սպեկուլյատիվ կերպով գործարք կատարեք ձեր քեշի վրա և օգտագործեք համահունչ արձանագրության մեխանիզմները կոնֆլիկտները հայտնաբերելու համար: Սպեկուլյատիվ ապարատային ճարտարապետությունը հեշտ էր նախագծել: Այսպիսով, մենք գրեցինք այդ մեկը հենց առաջին հրապարակումը գործարքային հիշողության մասին. Միևնույն ժամանակ, ընկերությունը, որտեղ ես աշխատում էի, Digital Equipment Corporation-ը, ստեղծում էր նոր 64-բիթանոց պրոցեսոր, որը կոչվում էր Alpha: Այսպիսով, ես գնացի և ներկայացրեցի Alpha-ի զարգացման խմբին մեր զարմանալի գործարքային հիշողության մասին, և նրանք հարցրին. Որքա՞ն լրացուցիչ եկամուտ կստանար մեր ընկերությունը, եթե մենք այս ամենը ավելացնենք անմիջապես պրոցեսորին: Եվ ես սրա պատասխանը բացարձակապես չունեի, քանի որ ես տեխնոլոգ եմ, ես մարքեթինգի մասնագետ չեմ։ Ես իսկապես պատասխանելու ոչինչ չունեի։ Նրանք այնքան էլ տպավորված չէին, որ ես ոչինչ չգիտեի։

Վիտալի. Միլիարդներ: Պարզապես ասեք միլիարդներ:

Մորիս – Այո, ես այդպես պետք է ասեի: Հիմա, ստարտափների և ամեն ինչի դարաշրջանում, ես գիտեմ, թե ինչպես գրել բիզնես պլան։ Որ դուք կարող եք մի փոքր ստել ձեր հնարավոր շահույթի չափի մասին: Բայց այդ օրերին դա միամիտ էր թվում, ուստի ես պարզապես ասացի. «Չգիտեմ»: Եթե ​​նայեք գործարքային հիշողության մասին հրապարակման պատմությանը, ապա կնկատեք, որ մեկ տարի անց մի քանի հիշատակումներ եղան դրան, իսկ հետո մոտ տասը տարի ոչ ոք ընդհանրապես չէր մեջբերում այս հոդվածը: Մեջբերումները հայտնվեցին մոտ 2004 թվականին, երբ հայտնվեցին իսկական բազմամիջուկներ: Երբ մարդիկ հայտնաբերեցին, որ զուգահեռ կոդ գրելը կարող է գումար վաստակել, սկսվեցին նոր հետազոտություններ: Ռավի Ռաջվար հոդված է գրել, որը ինչ-որ կերպ շրջանառության մեջ է դրել գործարքային հիշողության հայեցակարգը: (Խմբագրի նշում. Կա այս հոդվածի երկրորդ տարբերակը, որը թողարկվել է 2010 թվականին և անվճար հասանելի է որպես PDF) Հանկարծ մարդիկ հասկացան, թե ինչպես կարելի է օգտագործել այս ամենը, ինչպես կարելի է արագացնել կողպեքներով ավանդական ալգորիթմները: Լավ օրինակ մի բանի, որը նախկինում թվում էր պարզապես հետաքրքիր ակադեմիական խնդիր: Եվ այո, եթե այն ժամանակ ինձ հարցնեիք, թե կարծում եմ, որ այս ամենը կարևոր կլինի ապագայում, ես կասեի. իհարկե, բայց կոնկրետ երբ՝ պարզ չէ։ Միգուցե 50 տարի հետո? Գործնականում պարզվեց, որ սա ընդամենը մեկ տասնամյակ է։ Շատ հաճելի է, երբ ինչ-որ բան ես անում, և ընդամենը տասը տարի հետո մարդիկ դա նկատում են։

Ինչու արժե ուսումնասիրություններ կատարել բաշխված հաշվարկների ոլորտում

Վիտալի. Եթե խոսենք նոր հետազոտության մասին, ի՞նչ խորհուրդ կտաք ընթերցողներին՝ բաշխված հաշվարկի՞, թե՞ բազմամիջուկային և ինչու: 

Մորիս. Մեր օրերում հեշտ է ստանալ բազմամիջուկ պրոցեսոր, բայց ավելի դժվար է ստեղծել իրական բաշխված համակարգ: Ես սկսեցի աշխատել դրանց վրա, քանի որ ուզում էի ինչ-որ բան անել, որը տարբերվում էր իմ թեկնածուական թեզից: Սա այն խորհուրդն է, որը ես միշտ տալիս եմ նոր ուսանողներին. մի գրեք ձեր ատենախոսության շարունակությունը, փորձեք գնալ նոր ուղղությամբ: Եվ նաև, բազմաթելային աշխատանքը հեշտ է: Ես կարող եմ փորձարկել իմ սեփական պատառաքաղը, որն աշխատում է իմ նոութբուքի վրա՝ առանց մահճակալից դուրս գալու: Բայց եթե հանկարծ ուզենայի իրական բաշխված համակարգ ստեղծել, պետք է մեծ աշխատանք կատարեի, ուսանողներին գրավեի և այլն։ Ես ծույլ մարդ եմ և կնախընտրեի աշխատել բազմամիջուկի վրա: Բազմամիջուկ համակարգերի վրա փորձարկելը նույնպես ավելի հեշտ է, քան բաշխված համակարգերի վրա փորձարկումները, քանի որ նույնիսկ հիմար բաշխված համակարգում չափազանց շատ գործոններ կան, որոնք պետք է վերահսկվեն:

Վիտալի. Ի՞նչ եք անում այժմ՝ ուսումնասիրելով բլոկչեյնը: Ո՞ր հոդվածներին պետք է առաջին հերթին ուշադրություն դարձնել:

Մորիս. Վերջերս հայտնվեց շատ լավ հոդված, որը գրել եմ աշակերտիս՝ Վիկրամ Սարաֆի հետ միասին, հատուկ զրույցի համար Tokenomcs կոնֆերանս երեք շաբաթ առաջ Փարիզում։ Սա գործնական բաշխված համակարգերի մասին հոդված է, որում առաջարկում ենք Ethereum-ը դարձնել բազմաշերտ: Ներկայումս խելացի պայմանագրերը (կոդը, որն աշխատում է բլոկչեյնում) կատարվում են հաջորդաբար: Ավելի վաղ մենք գրել էինք հոդված, որտեղ խոսվում էր գործընթացն արագացնելու համար սպեկուլյատիվ գործարքների օգտագործման եղանակի մասին: Մենք շատ գաղափարներ վերցրինք ծրագրային գործարքային հիշողությունից և ասացինք, որ եթե այս գաղափարները դարձնեք Etherium վիրտուալ մեքենայի մաս, ապա ամեն ինչ ավելի արագ կաշխատի: Բայց դրա համար անհրաժեշտ է, որ պայմանագրերում տվյալների հակասություններ չլինեն։ Եվ հետո մենք ենթադրեցինք, որ իրական կյանքում նման հակամարտություններ իսկապես չկան։ Բայց մենք ճանապարհ չունեինք պարզելու։ Այնուհետև մտքովս անցավ, որ մենք ունենք գրեթե մեկ տասնամյակի իրական պայմանագրային պատմություն մեր ձեռքերում, ուստի մենք նետեցինք Ethereum բլոկչեյնը և հարցրինք ինքներս մեզ. ի՞նչ կլիներ, եթե այս պատմական գրառումները կատարվեին զուգահեռ: Մենք հայտնաբերել ենք արագության զգալի աճ։ Ethereum-ի սկզբնական շրջանում արագությունը շատ էր ավելացել, բայց այսօր ամեն ինչ մի փոքր ավելի բարդ է, քանի որ ավելի քիչ պայմանագրեր կան, և սերիականացում պահանջող տվյալների շուրջ կոնֆլիկտների հավանականությունը մեծացել է: Բայց այս ամենը իրական պատմական տվյալներով փորձարարական աշխատանք է։ Բլոկչեյնի լավն այն է, որ այն հավերժ հիշում է ամեն ինչ, այնպես որ մենք կարող ենք հետ գնալ ժամանակի մեջ և ուսումնասիրել, թե ինչ կլիներ, եթե օգտագործեինք տարբեր ալգորիթմներ կոդը գործարկելու համար: Ինչպե՞ս կցանկանային անցյալում մարդկանց դուր գալ մեր նոր գաղափարը: Նման հետազոտությունը շատ ավելի հեշտ և հաճելի է անել, քանի որ կա մի բան, որը վերահսկում է ամեն ինչ և գրանցում է ամեն ինչ։ Սա արդեն ավելի շատ նման է սոցիոլոգիային, քան ալգորիթմների մշակմանը:

Արդյո՞ք դադարեցվել է ալգորիթմների զարգացումը և ինչպե՞ս շարունակել առաջ գնալ:

Վիտալի. Վերջին տեսական հարցի ժամանակն է: Արդյո՞ք զգացվում է, որ մրցակցային տվյալների կառուցվածքում առաջընթացը նվազում է ամեն տարի: Ի՞նչ եք կարծում, մենք հասել ենք տվյալների կառուցվածքների մեր ըմբռնման բարձր մակարդակի, թե՞ լուրջ բարելավումներ կլինեն: Գուցե կան որոշ խելացի գաղափարներ, որոնք կարող են ամբողջությամբ փոխել ամեն ինչ:

Մորիս. Մենք, հավանաբար, հասել ենք ավանդական ճարտարապետությունների տվյալների կառուցվածքի բարձրավանդակի: Սակայն նոր ճարտարապետությունների համար տվյալների կառուցվածքները դեռ շատ խոստումնալից տարածք են: Եթե ​​ցանկանում եք տվյալների կառուցվածքներ ստեղծել, ասենք, ապարատային արագացուցիչների համար, ապա GPU-ի տվյալների կառուցվածքները շատ տարբեր են պրոցեսորի տվյալների կառուցվածքներից: Երբ դուք մշակում եք տվյալների կառուցվածքներ բլոկչեյնների համար, դուք պետք է հաշեք տվյալների կտորները, այնուհետև դրանք տեղադրեք նման բանի մեջ Մերկլի ծառ, կեղծումը կանխելու համար։ Վերջին շրջանում այս ոլորտում ակտիվություն է նկատվում, շատերը շատ լավ աշխատանք են կատարում: Բայց, կարծում եմ, ինչ կլինի, որ նոր ճարտարապետություններն ու նոր հավելվածները կհանգեցնեն տվյալների նոր կառուցվածքների: Ժառանգական կիրառություններ և ավանդական ճարտարապետություն. հետախուզման համար այլևս շատ տեղ կարող է չլինել: Բայց եթե դուք դուրս գաք անհաջող ուղուց և նայեք եզրերից այն կողմ, կտեսնեք խելահեղ բաներ, որոնց հիմնական հոսքը լուրջ չի վերաբերվում. ահա, որտեղ իսկապես տեղի են ունենում բոլոր հուզիչ բաները:

Վիտալի. Հետևաբար, շատ հայտնի հետազոտող լինելու համար ես ստիպված էի հորինել իմ սեփական ճարտարապետությունը :)

Մորիս. Դուք կարող եք «գողանալ» ուրիշի նոր ճարտարապետությունը, դա շատ ավելի հեշտ է թվում:

Աշխատում է «Brown University»-ում

Վիտալի. Կպատմե՞ք ավելին դրա մասին Բրաունի համալսարանՈրտեղ ես դու աշխատում? Նրա մասին տեղեկատվական տեխնոլոգիաների համատեքստում շատ բան հայտնի չէ։ Ավելի քիչ, քան MIT-ի մասին, օրինակ:

Մորիս. Բրաունի համալսարանը Միացյալ Նահանգների ամենահին համալսարաններից է: Կարծում եմ՝ միայն Հարվարդն է մի փոքր մեծ։ Բրաունը այսպես կոչվածի մի մասն է բաղեղ լիգաներ, որը ութ ամենահին համալսարանների հավաքածու է։ Հարվարդ, Բրաուն, Քորնել, Յեյլ, Կոլումբիա, Դարթմութ, Փենսիլվանիա, Փրինսթոն: Դա մի տեսակ հին, փոքր և մի քիչ արիստոկրատական ​​համալսարան է: Հիմնական ուշադրությունը կենտրոնացված է ազատական ​​արվեստի կրթության վրա: Դա չի փորձում նմանվել MIT-ին, MIT-ը շատ մասնագիտացված է և տեխնիկական: Բրաունը հիանալի վայր է ռուս գրականություն կամ դասական հունարեն և, իհարկե, համակարգչային գիտություն սովորելու համար: Այն կենտրոնանում է համապարփակ կրթության վրա: Մեր ուսանողների մեծ մասը հաճախում է Facebook, Apple, Google, այնպես որ, կարծում եմ, որ մեր ուսանողները որևէ խնդիր չունեն աշխատանք գտնելու ոլորտում: Ես գնացի աշխատելու Բրաունում, քանի որ նախկինում աշխատել էի Բոստոնի Digital Equipment Corporation-ում: Սա մի ընկերություն էր, որը շատ հետաքրքիր բաներ հորինեց, բայց հերքեց անհատական ​​համակարգիչների կարևորությունը: Դժվար ճակատագիր ունեցող մի ընկերություն, որի հիմնադիրները ժամանակին երիտասարդ հեղափոխականներ էին, նրանք ոչինչ չսովորեցին ու ոչինչ չմոռացան, և այդ պատճառով մոտ մեկ տասնյակ տարվա ընթացքում հեղափոխականներից վերածվեցին ռեակցիոների։ Նրանք սիրում էին կատակել, թե անհատական ​​համակարգիչները պատկանում են ավտոտնակում, իհարկե, լքված ավտոտնակ: Միանգամայն ակնհայտ է, որ դրանք ոչնչացվել են ավելի ճկուն ընկերությունների կողմից։ Երբ պարզ դարձավ, որ ընկերությունը դժվարության մեջ է, ես զանգահարեցի իմ ընկերոջը Բրաունում, որը մոտ մեկ ժամ է Բոստոնից դուրս: Այն ժամանակ ես չէի ուզում հեռանալ Բոստոնից, քանի որ այլ համալսարաններում բացումներ շատ չեն եղել: Սա մի ժամանակ էր, երբ համակարգչային գիտության ոլորտում այնքան աշխատատեղ չկար, որքան հիմա: Եվ Բրաունը բացվեց, ես ստիպված չէի տեղափոխել իմ տունը, ես ստիպված չէի տեղափոխել իմ ընտանիքը, և ես իսկապես սիրում եմ ապրել Բոստոնում: Այդպես որոշեցի գնալ Բրաուն։ Ինձ դուր է գալիս: Ուսանողները հրաշալի են, ուստի ես երբեք չեմ էլ փորձել որևէ այլ տեղ գնալ։ Իմ շաբաթօրյակի ընթացքում ես մեկ տարի աշխատեցի Microsoft-ում, մեկ տարի գնացի Հայֆայի Technion, իսկ հիմա կլինեմ Ալգորանդում: Ես ամենուր շատ գործընկերներ ունեմ, և, հետևաբար, մեր դասարանների ֆիզիկական գտնվելու վայրը այդքան էլ կարևոր չէ: Բայց ամենակարեւորը ուսանողներն են, նրանք այստեղ լավագույնն են։ Ես երբեք չեմ փորձել այլ տեղ գնալ, քանի որ այստեղ բավականին երջանիկ եմ:

Այնուամենայնիվ, չնայած Բրաունի համբավին Միացյալ Նահանգներում, նա զարմանալիորեն անհայտ է արտասահմանում: Ինչպես տեսնում եք, ես հիմա անում եմ հնարավոր ամեն ինչ այս վիճակը շտկելու համար։

Տարբերությունը համալսարանում և կորպորացիայի ներսում հետազոտությունների միջև

Վիտալի. Լավ, հաջորդ հարցը թվային սարքավորումների մասին է: Դուք այնտեղ էիք որպես հետազոտող։ Ո՞րն է տարբերությունը խոշոր ընկերության R&D բաժնում աշխատելու և համալսարանում աշխատելու միջև: Որո՞նք են առավելություններն ու թերությունները:

Մորիս. Քսան տարի ես աշխատել եմ Microsoft-ում, սերտորեն աշխատել եմ Sun Microsystems-ի, Oracle-ի, Facebook-ի և այժմ Algorand-ի աշխատակիցների հետ: Ելնելով այս ամենից՝ ուզում եմ ասել, որ թե՛ ընկերություններում, թե՛ համալսարաններում հնարավոր է իրականացնել առաջին կարգի հետազոտություններ։ Կարևոր տարբերությունն այն է, որ ընկերությունում աշխատում ես գործընկերների հետ։ Եթե ​​հանկարծ ինձ մոտ գաղափար առաջանա մի նախագծի մասին, որը դեռ գոյություն չունի, ես պետք է համոզեմ իմ հասակակիցներին, որ դա լավ գաղափար է: Եթե ​​ես Բրաունում եմ, ապա կարող եմ ասել իմ ուսանողներին. եկեք աշխատենք հակագրավիտացիայի վրա: Նրանք կա՛մ կմեկնեն ուրիշի մոտ, կա՛մ ինչ-որ նախագիծ կստանձնեն: Այո, ինձ անհրաժեշտ կլինի ֆինանսավորում գտնել, պետք է գրեմ դրամաշնորհի դիմում և այլն: Ամեն դեպքում, ուսանողները միշտ շատ կլինեն, եւ դուք կկարողանաք որոշումներ կայացնել միակողմանի։ Բայց համալսարանում, ամենայն հավանականությամբ, չեք աշխատի ձեր մակարդակի մարդկանց հետ: Արդյունաբերական հետազոտությունների աշխարհում դուք նախ պետք է համոզեք բոլորին, որ ձեր նախագիծն արժե վերցնել: Ես ոչ մեկին ոչինչ չեմ կարող պատվիրել։ Եվ աշխատելու այս երկու ձևերն էլ արժեքավոր են, քանի որ եթե դուք իսկապես խելահեղ բանի վրա եք աշխատում, և ձեր գործընկերներին դժվար է համոզել, ավելի հեշտ է համոզել ասպիրանտներին, հատկապես, եթե վճարում եք նրանց: Եթե ​​դուք աշխատում եք մի բանի վրա, որը պահանջում է մեծ փորձ և խորը փորձ, ապա ձեզ պետք են գործընկերներ, ովքեր կարող են ասել «ոչ, այնպես է պատահում, որ ես հասկանում եմ այս ոլորտում, և ձեր գաղափարը վատ է, այն չի աշխատի»: Սա շատ օգտակար է ժամանակ կորցնելու առումով։ Բացի այդ, եթե արդյունաբերական լաբորատորիաներում դուք շատ ժամանակ եք ծախսում հաշվետվություններ գրելու վրա, ապա համալսարանում այս ժամանակը ծախսում եք գումար գտնելու համար: Եթե ​​ես ուզում եմ, որ ուսանողները կարողանան ինչ-որ տեղ գնալ, ես պետք է դրա համար գումար գտնեմ մեկ այլ տեղ: Եվ որքան կարևոր է քո պաշտոնը համալսարանում, այնքան ավելի շատ ժամանակ պետք է ծախսես գումար հայթայթելու վրա: Այսպիսով, հիմա դուք գիտեք, թե ինչի համար եմ աշխատում՝ պրոֆեսիոնալ մուրացկանի: Այն վանականներից մեկի պես, ով շրջում է ընծաների ափսեով: Ընդհանուր առմամբ, այս երկու գործողությունները լրացնում են միմյանց։ Դրա համար ես երկու աշխարհներում էլ փորձում եմ ապրել ու ոտքս գետնին պահել։

Վիտալի. Թվում է, թե ընկերությանը համոզելն ավելի դժվար է, քան այլ գիտնականների:

Մորիս. Ավելի դժվար և շատ ավելին: Ավելին, տարբեր ոլորտներում դա տարբեր է. ոմանք իրականացնում են լայնածավալ հետազոտություն, իսկ մյուսները կենտրոնանում են իրենց թեմայի վրա: Եթե ​​գնայի Մայքրոսոֆթ կամ ֆեյսբուք ու ասեի՝ արի հակագրավիտացիա սարքենք, դժվար թե գնահատեն։ Բայց եթե ես ճիշտ նույն բանն ասեի իմ ասպիրանտներին, նրանք, ամենայն հավանականությամբ, անմիջապես կաշխատեին, չնայած հիմա ես խնդիրներ կունենայի, ի վերջո, ես դրա համար գումար պետք է գտնեմ: Բայց քանի դեռ դուք ցանկանում եք անել մի բան, որը համահունչ է ընկերության նպատակներին, այդ ընկերությունը կարող է շատ լավ տեղ լինել հետազոտություններ անելու համար:

Hydra և SPTDC

Վիտալի. Հարցերս ավարտվում են, ուստի եկեք մի փոքր խոսենք Ռուսաստան առաջիկա ուղևորության մասին:

Մորիս. Այո, ես անհամբեր սպասում եմ Սանկտ Պետերբուրգ վերադառնալուն:

Ալեքսեյ. Ինձ համար մեծ պատիվ է այս տարի ձեզ հետ լինել: Սա ձեր երկրորդ անգամն է Սանկտ Պետերբուրգում, այնպես չէ՞:

Մորիս. Արդեն երրորդը:

Ալեքսեյ – Հասկանում եմ, բայց SPTDC – հաստատ երկրորդը։ Անցյալ անգամ դպրոց է կանչվել SPTCC, մենք այժմ փոխել ենք մեկ տառ (C-ից D, միաժամանակ՝ բաշխված)՝ ընդգծելու, որ այս տարի կան ավելի շատ ոլորտներ, որոնք կապված են հատուկ բաշխված հաշվարկների հետ: Կարո՞ղ եք մի քանի խոսք ասել Դպրոցում ձեր զեկույցների մասին և Hydra կոնֆերանս?

Մորիս. Դպրոցում ես ուզում եմ խոսել բլոկչեյնի հիմունքների և այն մասին, թե ինչ կարող ես անել դրա հետ: Ես կցանկանայի ցույց տալ, որ բլոկչեյնները շատ նման են մեզ ծանոթ բազմաթելային ծրագրավորմանը, բայց ունեն իրենց նրբությունները, և այս տարբերությունները հասկանալը կարևոր է: Եթե ​​սխալ եք թույլ տալիս սովորական վեբ հավելվածում, դա պարզապես զայրացնում է: Եթե ​​դուք գրում եք խելագարված կոդ ֆինանսական հավելվածում, ինչ-որ մեկը հաստատ կգողանա ձեր ամբողջ գումարը: Սրանք պատասխանատվության և հետևանքների բոլորովին տարբեր մակարդակներ են։ Ես մի փոքր կխոսեմ աշխատանքի ապացույցի, խելացի պայմանագրերի, տարբեր բլոկչեյնների միջև գործարքների մասին:

Կողքիս կաշխատեն այլ բանախոսներ, ովքեր նույնպես ասելիք կունենան բլոկչեյնի մասին, և մենք պայմանավորվեցինք համակարգել միմյանց հետ, որպեսզի մեր պատմությունները լավ տեղավորվեն։ Բայց ինժեներական զեկույցի համար ես ուզում եմ լայն լսարանին հասկանալի բացատրություն տալ, թե ինչու չպետք է հավատալ այն ամենին, ինչ լսում եք բլոկչեյնների մասին, ինչու են բլոկչեյնները հիանալի ոլորտ, ինչպես է այն համապատասխանում այլ հայտնի գաղափարներին և ինչու պետք է համարձակորեն նայենք: դեպի ապագա:

Ալեքսեյ. Բացի այդ, ես ուզում եմ ասել, որ դա տեղի չի ունենա հանդիպման կամ օգտվողների խմբի ձևաչափով, ինչպես երկու տարի առաջ էր: Որոշեցինք փոքրիկ կոնֆերանս անցկացնել դպրոցի մոտ։ Պատճառն այն է, որ Պյոտր Կուզնեցովի հետ շփվելուց հետո հասկացանք, որ դպրոցը սահմանափակվում է ընդամենը հարյուր, գուցե 120 հոգով։ Միևնույն ժամանակ, կան շատ ինժեներներ, ովքեր ցանկանում են շփվել ձեզ հետ, մասնակցել շնորհանդեսներին և ընդհանրապես հետաքրքրված են թեմայով: Այդ իսկ պատճառով մենք ստեղծել ենք նոր համաժողով կոչվում է Hydra. Ի դեպ, գաղափարներ կան, թե ինչու Hydra?

Մորիս. Որովհետև յոթ խոսնակներ կլինեն: Իսկ նրանց գլուխները կարելի է կտրել, իսկ նրանց փոխարեն նոր բարձրախոսներ կաճե՞ն։

Ալեքսեյ. Հիանալի գաղափար նոր բանախոսներ աճեցնելու համար: Բայց իրականում այստեղ մի պատմություն կա. Հիշեք Ոդիսևսի լեգենդը, որտեղ նա պետք է նավարկեր Սկիլա և Խարիբդիս? Hydra-ն նման է Charybdis-ին: Պատմությունն այն է, որ մի անգամ ես խոսեցի կոնֆերանսի ժամանակ և խոսեցի բազմաթելերի մասին: Այս կոնֆերանսում ընդամենը երկու հետք կար: Զեկույցի սկզբում ես դահլիճում ներկաներին ասացի, որ նրանք այժմ ընտրություն ունեն Սկիլլայի և Չարիբդիսի միջև: Իմ ոգեղեն կենդանին Քարիբդիսն է, քանի որ Քարիբդիսը շատ գլուխներ ունի, և իմ թեման բազմաթելային է: Այսպես են հայտնվում համաժողովների անվանումները.

Ամեն դեպքում, մենք սպառել ենք հարցերն ու ժամանակը։ Այսպիսով, շնորհակալություն, ընկերներ, հիանալի հարցազրույցի համար և կհանդիպենք SPTDC School-ում և Hydra 2019-ում:

Մորիսի հետ զրույցը կարող եք շարունակել Hydra 2019 կոնֆերանսում, որը կանցկացվի 11 թվականի հուլիսի 12-2019-ը Սանկտ Պետերբուրգում։ Նա կգա զեկույցով «Բլոկչեյնները և բաշխված հաշվարկների ապագան». Տոմսերը կարելի է ձեռք բերել պաշտոնական կայքում.

Source: www.habr.com

Добавить комментарий