"Empirik natijalar faqat nashr uchun mo'ljallangan, ishning haqiqiy motivlari estetikdir." Maykl Skott bilan ajoyib intervyu

"Empirik natijalar faqat nashr uchun mo'ljallangan, ishning haqiqiy motivlari estetikdir." Maykl Skott bilan ajoyib intervyu Maykl Skott - 34 yil davomida Rochester universitetida kompyuter fanlari professori va o'z uyi Viskonsin-Madison universitetida besh yil davomida dekan bo'lgan. U parallel va taqsimlangan dasturlash va til dizayni bo'yicha tadqiqotlar olib boradi va talabalarga o'rgatadi.

Dunyo Mayklni darslikdan biladi "Dasturlash tili pragmatikasi", ish haqida nima deyish mumkin "Umumiy xotirali multiprotsessorlarda kengaytiriladigan sinxronizatsiya algoritmlari" taqsimlangan hisoblash sohasida eng mashhurlaridan biri sifatida Dijkstra mukofotini oldi. Siz uni o'sha algoritm muallifi sifatida ham bilishingiz mumkin Maykl-Skott.

Dug Li bilan birgalikda u Java kutubxonalarini quvvatlaydigan bloklanmaydigan algoritmlar va sinxron navbatlarni ishlab chiqdi. Amalga oshirish "ikki tomonlama ma'lumotlar tuzilmalari" JavaSE 6 da unumdorlikni 10 barobarga oshirdi ThreadPoolExecutor.

Mundarija:

  • Erta martaba, Rochester universiteti. Project Charlotte, Lynx tili;
  • IEEE Scalable Coherent Interface, MCS blokirovkasi;
  • Har doim o'zgarib turadigan dunyoda omon qolish;
  • Talabalar ahmoq bo'lib qolishyaptimi? Global tendentsiyalar, xalqarolashuv;
  • Talabalar bilan samarali ishlash;
  • Yangi kurslar va kitoblarni tayyorlashdan qanday xabardor bo'lish kerak;
  • Biznes va akademiya o'rtasidagi aloqalar;
  • G'oyalarni amaliy amalga oshirish. MCS, MS, CLH, JSR 166, Dug Li va boshqalar bilan ishlash;
  • Transaktsion xotira;
  • Yangi arxitekturalar. Tranzaksiya xotirasining g'alabasi yaqin;
  • O'zgaruvchan xotira, Optane DIMM, o'ta tezkor qurilmalar;
  • Keyingi katta tendentsiya. Ikki tomonlama ma'lumotlar tuzilmalari. Gidra.

Suhbat quyidagi tomonidan o'tkaziladi:

Vitaliy Aksenov β€” hozirda IST Avstriyada postdok va ITMO universiteti kompyuter texnologiyalari kafedrasi aΚΌzosi. Raqobatbardosh ma'lumotlar tuzilmalari nazariyasi va amaliyoti sohasida tadqiqotlar olib boradi. ISTda ishlashdan oldin u professor Piter Kuznetsov rahbarligida Parij Didro universiteti va ITMO universitetida PhD darajasini oldi.

Aleksey Fedorov - Ishlab chiquvchilar uchun konferentsiyalar tashkil etuvchi Rossiya kompaniyasi JUG Ru Group prodyuseri. Aleksey 50 dan ortiq konferentsiyalarni tayyorlashda ishtirok etgan va uning rezyumelarida Oracle (JCK, Java Platform Group)dagi ishlab chiqish muhandisi lavozimidan tortib, Odnoklassniki-dagi dasturchi lavozimigacha bo'lgan barcha narsalar mavjud.

Vladimir Sitnikov - Netcracker kompaniyasida muhandis. NetCracker OS, tarmoq va tarmoq uskunalarini boshqarish jarayonlarini avtomatlashtirish uchun aloqa operatorlari tomonidan qo'llaniladigan dasturiy ta'minotning ishlashi va kengaytirilishi bo'yicha o'n yillik ish. Java va Oracle ma'lumotlar bazasi ishlashi bilan bog'liq muammolarga qiziqadi. Rasmiy PostgreSQL JDBC drayverida o'ndan ortiq ish faoliyatini yaxshilash muallifi.

Erta martaba, Rochester universiteti. Sharlotta loyihasi, Lynx tili.

Aleksey: Avvaliga shuni aytmoqchimanki, Rossiyada hammamiz kompyuter fanlari, ma'lumotlar fanlari va algoritmlarni yaxshi ko'ramiz. Bu mutlaqo odobsiz. Biz hamma narsani o'qidik Kormen, Leiserson va Rivestning kitobi. Shuning uchun, bo'lajak konferentsiya, maktab va ushbu suhbatning o'zi juda mashhur bo'lishi kerak. Biz ushbu intervyu uchun talabalar, dasturchilar va hamjamiyat a'zolaridan ko'plab savollar oldik, shuning uchun biz ushbu imkoniyat uchun juda minnatdormiz. Kompyuter fanlari AQShda bir xil muhabbatga egami?

Michael: Bizning sohamiz juda xilma-xil, u juda ko'p yo'nalishlarga ega va u jamiyatga juda ko'p turli yo'llar bilan ta'sir qiladiki, sizga aniq javob berish men uchun qiyin. Ammo haqiqat shundaki, bu soβ€˜nggi 30 yil ichida biznes, sanoat, san’at va umuman jamiyatda ulkan oβ€˜zgarishlarga olib keldi.

Vitaliy: Keling, uzoqdan boshlaylik. Ko'pgina universitetlarda ma'lum bir sohada ixtisoslik kabi narsa mavjud. Karnegi Mellon universiteti uchun bu parallel hisoblash, MIT uchun esa kriptografiya, robotlar va multithreading. Rochester universitetida bunday mutaxassislik bormi?

Michael: Rostini aytsam, CMU va MIT barcha sohalarda ixtisoslashgan deb aytaman. Bizning bo'lim har doim sun'iy intellektga eng katta e'tibor qaratgan. Bizda ishlaydigan odamlarning yarmi sun'iy intellekt yoki inson-kompyuter o'zaro aloqasi bilan shug'ullanadi - bu ulush boshqa bo'limlarga qaraganda yuqori va har doim shunday bo'lib kelgan. Ammo universitetda oβ€˜qib yurgan paytlarimda sun’iy intellekt boβ€˜yicha kursim yoβ€˜q edi va men bu sohada hech qachon ishlamaganman. Shunday qilib, mening bo'lim mening aloqam bo'lmagan muammoga ixtisoslashgan. Tasalli shuki, kafedramiz uchun ikkinchi eng muhim muammo bu parallel va ko'p bosqichli dasturlash, ya'ni mening mutaxassisligim.

Vitaliy: Ko'p bosqichli dasturlash sohasi endigina paydo bo'layotgan paytda siz kompyuter fanida ishlay boshlagansiz. Nashrlaringiz ro'yxati shuni ko'rsatadiki, sizning birinchi ishlaringiz juda keng ko'lamli masalalar bilan shug'ullangan: ko'p tarmoqli tizimlarda xotirani boshqarish, taqsimlangan fayl tizimlari, operatsion tizimlar. Nega bunday ko'p qirrali? Tadqiqot hamjamiyatida o'z o'rningizni topishga harakat qildingizmi?

Michael: Men talaba sifatida qatnashganman Charlotte loyihasi birinchi taqsimlangan operatsion tizimlardan biri ishlab chiqilgan Viskonsin universitetida. U erda men Rafael Finkel bilan birga ishladim (Rafael Finkel) va Marvin Sulaymon (Marvin Sulaymon). Mening dissertatsiyam taqsimlangan tizimlar uchun tizimli dasturiy ta’minot tilini yaratishga bagβ€˜ishlangan edi – hozir hamma buni unutib qoβ€˜ygan, Xudoga shukur. Men Lynx dasturlash tilini yaratdim, bu esa bo'shashgan taqsimlangan operatsion tizim uchun serverlarni yaratishni osonlashtirish uchun mo'ljallangan edi. O'sha paytda men asosan operatsion tizimlar bilan shug'ullanganim sababli, mening kareram asosan ular bilan bog'liq bo'ladi deb o'ylardim. Ammo Rochester juda kichik universitet edi va shuning uchun u erdagi turli guruhlar bir-biri bilan juda yaqin aloqada bo'lgan. U erda men bilan gaplashadigan o'nlab boshqa operatsion tizimlar yo'q edi, shuning uchun mening barcha aloqalarim butunlay boshqa sohalarda ishlagan odamlar bilan edi. Menga juda yoqdi, har tomonlama o'yinchi bo'lish men uchun katta afzallik. Agar biz ko'p tarmoqli ma'lumotlar tuzilmalari va sinxronizatsiya algoritmlari haqida gapiradigan bo'lsak, men ular ustida butunlay tasodifan ishlay boshladim.

IEEE Scalable Coherent Interface, MCS blokirovkasi.

Vitaliy: Bu haqda bir oz ko'proq ma'lumot bera olasizmi?

Michael: Bu kulgili hikoya, uni hammaga aytib berishdan charchamayman. Bu konferentsiyada sodir bo'ldi ASPLOS Bostonda - bu 80-yillarning oxiri yoki 90-yillarning boshlarida edi. Jon Mellor-Krummi (Jon Mellor-Krummi), fakultetimiz bitiruvchisi. Men uni bilardim, lekin biz ilgari qo'shma tadqiqot o'tkazmagan edik. Meri Vernon (Meri Vernon) Viskonsin shtatidan Viskonsinda ishlab chiqayotgan ko'p protsessorli tizim haqida ma'ruza qildi: Viskonsin Multikubi. Ushbu Multicube apparat darajasida Q on Sync Bit deb nomlangan sinxronizatsiya mexanizmiga ega edi va keyinchalik u Q on Lock Bit deb nomlandi, chunki u Colby pishloqiga o'xshab eshitildi, bu so'z o'yini edi. Agar siz ko'p qirrali mexanizmlarga qiziqsangiz, Colby IEEE Scalable Coherent Interface standarti uchun sinxronizatsiya mexanizmiga aylanganini bilasiz. Bu qulflash mexanizmi bo'lib, u apparat darajasida bir keshdan ikkinchisiga ko'rsatgichlarni yaratdi, shunda har bir qulf egasi kimning navbatini bilishi mumkin edi. Jon va men bu haqda eshitganimizda, biz bir-birimizga qaradik va dedik: nega buni apparat darajasida qilish kerak? Taqqoslash va almashtirish yordamida bir xil narsaga erishib bo'lmaydimi? Sinfda yotgan daftarlardan birini olib, ustiga yozdik MCS blokirovkasi, Meri esa hisobotini davom ettirdi. Keyinchalik biz uni amalga oshirdik, tajriba o'tkazdik, g'oya muvaffaqiyatli bo'ldi va biz maqolani nashr qildik. O'sha paytda men uchun bu mavzu shunchaki qiziqarli chalg'ituvchi bo'lib tuyuldi, shundan so'ng men operatsion tizimlarga qaytishni rejalashtirdim. Ammo keyin xuddi shu yo'nalish bo'yicha yana bir muammo paydo bo'ldi va oxir-oqibat sinxronizatsiya, ko'p o'rinli va ma'lumotlar tuzilmalari mening mutaxassisligim bo'ldi. Ko'rib turganingizdek, bularning barchasi tasodifan sodir bo'ldi.

Vitaliy: Men MCS blokirovkasi bilan anchadan beri tanishman, lekin shu paytgacha bu sizning ishingiz ekanligini bilmasdim va bu sizning familiyalaringizning qisqartmasi ekanligini tushunmasdim.

O'zgaruvchan dunyoda qanday omon qolish kerak?

Aleksey: Menda tegishli mavzu bo'yicha savol bor. 30 yoki 40 yil oldin turli mutaxassisliklar bo'yicha erkinlik ko'proq edi. Agar siz multithreading yoki tarqatilgan tizimlarda martaba boshlamoqchi bo'lsangiz, marhamat, agar siz operatsion tizimlarga kirishni istasangiz, muammo yo'q. Har bir sohada ochiq savollar ko'p va mutaxassislar kam edi. Hozirgi vaqtda tor mutaxassisliklar paydo bo'ldi: umuman operatsion tizimlar bo'yicha mutaxassislar mavjud emas, individual tizimlar bo'yicha mutaxassislar mavjud. Ko'p ish zarralari va taqsimlangan tizimlar bilan bir xil. Ammo muammo shundaki, bizning hayotimiz cheksiz emas, har bir kishi tadqiqotga bir necha o'n yilliklarni bag'ishlashi mumkin. Bu yangi dunyoda qanday omon qolish kerak?

Michael: Biz bu borada alohida emasmiz; xuddi shu narsa boshqa hududlarda ham sodir bo'lgan. Men kompyuter fanida ishlay boshlaganimdan baxtiyorman, men bu soha "o'smirlik" yillarida edi. Ba'zi poydevorlar allaqachon qo'yilgan edi, lekin hamma narsa hali ham juda etuk emas edi. Bunday imkoniyat tez-tez uchramaydi. Elektrotexnika juda uzoq vaqtdan beri mavjud, fizika bundan ham uzoqroq, matematika deyarli vaqtning boshidan beri mavjud. Ammo bu endi hech kim matematikada qiziqarli kashfiyotlar qilmayapti degani emas. Hali ham ochiq muammolar ko'p, lekin ayni paytda ko'proq narsani o'rganish kerak. To'g'ri ta'kidladingizki, hozirda ixtisosliklar avvalgidan ko'ra ko'proq, lekin bu faqat inson faoliyatining boshqa ko'plab sohalari bilan bir xil vaziyatda ekanligimizni anglatadi.

Aleksey: Meni bu yerda masalaning amaliy tomoni qiziqtiradi. Men matematika bilimiga egaman va o'qishim davomida tez-tez konferentsiyalarda qatnashardim va turli ilmiy mavzular ustida ishladim. Men tinglovchilardan hech kim mening hisobotlarimni tushunmasligini va xuddi shu tarzda, boshqa odamlarning hisobotlari faqat o'zlariga tushunarli ekanligini aniqladim. Yuqori darajadagi mavzularda bunday bo'lmaydi, lekin siz biror narsani chuqur o'rganishni boshlaganingizdan so'ng, tomoshabinlar endi siz bilan birga bo'lolmaydi. Buni qanday hal qilasiz?

Michael: Har doim ham muvaffaqiyatli emas. Yaqinda men texnik tafsilotlarga juda chuqur kirib borgan hisobot tayyorladim. Suhbat davom etar ekan, tinglovchilarning koβ€˜pchiligi meni tushunmayotgani ma’lum boβ€˜ldi, shuning uchun ham vaziyatga tezda moslashishga majbur boβ€˜ldim. Slaydlarni o'zgartirib bo'lmadi, shuning uchun u unchalik yaxshi chiqmadi - shuning uchun, umuman olganda, men slaydlardan foydalanmaslikka harakat qilaman. Umuman olganda, mening maslahatim tinglovchilaringizni hisobga olishdir. Siz kim bilan gaplashayotganingizni, ularning bilim darajasi va mehnatingizni qadrlash uchun nimani eshitishi kerakligini bilishingiz kerak.

Vitaliy: Bu ma'ruza nima haqida bo'lgani haqida bizga ma'lumot bera olasizmi?

Michael: ToΚ»gΚ»risini aytsam, men soΚ»ralgan odamlarni anonim qoldirish uchun bu mavzuni kengaytirmaslikni maΚΌqul koΚ»raman. Gap shundaki, biz ko'pincha biz ustida ishlayotgan muammoning nozik tomonlariga juda chuqur kirib boramiz, shuning uchun nutq boshida muammo nima uchun qiziqarli va muhim ekanligini va uning muammolarga qanday aloqasi borligini tushuntirish qiyin bo'ladi. tomoshabinlar allaqachon biladi. Kuzatishlarimga ko'ra, talabalar bu ko'nikmani o'rganishda eng qiyin vaqtga ega. Va bu mening so'nggi hisobotimning zaif nuqtasi edi. To'g'ri tuzilgan hisobot boshidanoq tinglovchilar bilan aloqani topishi, ularga muammoning aniq nima ekanligini va u allaqachon ma'lum bo'lgan mavzular bilan qanday bog'liqligini tushuntirishi kerak. Ushbu kirish qanchalik texnik ekanligi tomoshabinlarga bog'liq. Agar u butunlay rang-barang bo'lsa, unda hisobot ko'p bosqichli bo'lishi mumkin. Kirish hamma uchun ochiq bo'lishi kerak va oxir-oqibat asar sizga mos kelmasligi mumkin, ammo sizning sohangiz bilan nisbatan tanish odamlar buni tushunishlari mumkin.

Talabalar ahmoq bo'lib qolishyaptimi? Global tendentsiyalar, xalqarolashuv.

Aleksey: Siz bir necha o'n yillar davomida talabalarni kuzatasiz. Talabalar o'n yildan o'n yilga yoki yildan-yilga ahmoq yoki aqlli bo'lib bormoqdami? Rossiyada professorlar doimo talabalar har yili ahmoqlashib borayotganidan shikoyat qiladilar va bu haqda nima qilish kerakligi aniq emas.

Michael: Haqiqatan ham biz keksalardan ko'p salbiy gaplarni eshitishingiz mumkin. Biz ongsiz ravishda talabalardan bizda mavjud bo'lgan 30 yillik tajribani o'zlashtirishlarini kutishga moyilmiz. Agar men 1985 yildagidan ko'ra chuqurroq tushunchaga ega bo'lsam, nega talabalar buni bilishmaydi? Ehtimol, ular 20 yoshda bo'lganlari uchun, nima deb o'ylaysiz? O'ylaymanki, so'nggi o'n yilliklardagi eng muhim o'zgarishlar demografik tarkibda bo'ldi: hozir bizda kanadaliklar bundan mustasno, xalqaro talabalar soni sezilarli darajada ko'p. Ilgari kanadaliklar ko'p edi, chunki biz Kanada chegarasiga juda yaqinmiz va u yerdan kelgan talabalar dam olish kunlari uylariga qaytishlari mumkin. Ammo hozir Kanadada ko'plab yaxshi universitetlar mavjud va kanadaliklar bu erda o'qishni afzal ko'rishadi; ulardan sezilarli darajada kamrog'i AQShga keladi.

Aleksey: Sizningcha, bu mahalliy tendentsiyami yoki global tendentsiyami?

Michael: Kimligini aniq eslolmayman, lekin kimdir dunyo tekis ekanligini aytdi. Bizning sohamiz ancha xalqaro tus oldi. ACM konferentsiyalari Ilgari ular faqat Qo'shma Shtatlarda o'tkazilardi, keyin ularni har 4 yilda bir marta boshqa mamlakatlarda o'tkazishga qaror qilishdi va endi ular butun dunyoda o'tkaziladi. Bu o'zgarishlar yanada ko'proq ta'sir qildi IEEE, chunki u har doim ACMga qaraganda ko'proq xalqaro tashkilot bo'lgan. Xitoy, Hindiston, Rossiya, Germaniya va boshqa ko'plab mamlakatlardan dastur kafedralari mavjud, chunki hozir hamma joyda ko'p narsa bor.

Aleksey: Ammo, ehtimol, bunday xalqarolashtirishning salbiy tomonlari bormi?

Michael: Men hamma salbiy jihatlar texnologiyaga emas, siyosatga tegishli, derdim. Bir vaqtlar asosiy muammo AQShning dunyo mamlakatlaridagi eng aqlli va iste'dodli odamlarni o'g'irlashi edi. Hozir esa asosiy muammo turli mamlakatlar oβ€˜rtasidagi viza va immigratsiya atrofidagi siyosiy oβ€˜yinlardir.

Aleksey: Ya'ni, to'siqlar va shunga o'xshash narsalar. Tushunarli.

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Shaxsan meni oβ€˜quvchilarga yangi fanni oβ€˜rgatishda qanday yondashishingiz qiziqtiradi. Turli xil variantlar mavjud: siz birinchi navbatda ularni yangi narsalarni sinab ko'rishga ilhomlantirishga harakat qilishingiz mumkin yoki ma'lum bir texnologiya qanday ishlashiga ko'proq e'tibor berishingiz mumkin. Nimani afzal ko'rasan?

Talabalar bilan samarali ishlash

Aleksey: Va birinchi va ikkinchi o'rtasidagi la'nati muvozanatni qanday topish mumkin?

Michael: Muammo shundaki, darslar har doim ham men xohlagan tarzda o'tmaydi. Men odatda oβ€˜quvchilarga oβ€˜qish uchun materialni oldindan beraman, shunda ular uni chuqurroq oβ€˜rganishlari, imkoni boricha tushunishlari va tushuna olmagan qismlari boβ€˜yicha savollar tuzishlari kerak. Keyin sinfda siz eng qiyin daqiqalarga e'tibor qaratishingiz va ularni birgalikda o'rganishingiz mumkin. Men darslarni shu tarzda o'tkazishni yaxshi ko'raman. Ammo talabalar zimmasiga tushadigan yukni hisobga olsak, men har doim ham ularning oldindan tayyorlanishiga ishonch hosil qila olmayman. Natijada, siz materialni umumiy qayta hikoya qilishga o'zingiz xohlaganingizdan ko'ra ko'proq vaqt ajratishingiz kerak. Shunga qaramay, darslarimizni interaktiv oβ€˜tkazishga harakat qilaman. Aks holda, talabalar uyda tomosha qilishlari mumkin bo'lgan videoni yozib olish osonroq bo'ladi. Jonli darslarning mazmuni - bu odamlarning o'zaro ta'siri. Darsda men slayddan ko'ra bo'r va doskadan foydalanishni afzal ko'raman, faqat diagrammani taxtada tasvirlash uchun juda murakkab bo'lgan holatlar bundan mustasno. Buning tufayli men qattiq dars rejasiga yopishib olishim shart emas. Materialni berishda qat'iy tartib yo'qligi sababli, bu menga kelgan savollarga qarab uni auditoriyaga moslashtirishga imkon beradi. Umuman olganda, men darslarni imkon qadar interaktiv qilishga harakat qilaman, toki men taqdim etayotgan material menga berilgan savollarga bog'liq.

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Juda zo'r. Mening tajribamga ko'ra, tinglovchilarni savol berishga undash juda qiyin. Qanchalik ahmoq yoki aqlli bo'lmasin, har qanday savolni oldindan so'rasangiz ham, ular hali ham jim turishadi. Buni qanday hal qilasiz?

Michael: Siz kulasiz, lekin uzoq vaqt jim tursangiz, ertami-kechmi hamma noqulay bo'lib qoladi va kimdir savol beradi. Yoki odamlar hozirgina aytilgan gaplarni tushunadimi yoki yo'qligini aniqlash uchun ha yoki yo'q javobi bilan oddiy texnik savol berishingiz mumkin. Misol uchun, yuqoridagi misolda ma'lumotlar poygasi bormi? Kim shunday deb o'ylaydi? Kim yo'q deb o'ylaydi? Kim umuman hech narsani tushunmaydi, chunki jami qo'llarning faqat yarmi ko'tarildi?

Vitaliy: Va agar siz noto'g'ri javob bergan bo'lsangiz, siz darsdan haydalasiz :)

Michael: Agar siz hech narsaga javob bermagan bo'lsangiz, unda siz savol berishingiz kerak. Men so'ragan savolga javob berish uchun talaba nimani bilishi kerakligini tushunishim kerak. Menga ularga yordam berishlari kerak. Muammoni tushunishlari uchun men ularga moslashishga tayyorman. Ammo ularning boshida nimalar bo'layotganini bilmasam, buni qilolmayman. Va agar siz talabalarga etarlicha uzoq vaqt tinchlik bermasangiz, ba'zida ular to'g'ri savollarni berishadi, ya'ni o'quvchilarning boshida nima sodir bo'layotganini ko'rishga imkon beradi. 

Aleksey: Bu savollar ba'zan o'zingiz o'ylab ko'rmagan g'oyalarga olib keladimi? Ular kutilmaganmi? Ular sizga muammoga yangi nuqtai nazardan qarashga imkon beradimi?

Michael: Materialni taqdim etishning yangi usulini ochadigan savollar mavjud. Ko'pincha men gapirishni rejalashtirmagan qiziqarli muammolarga olib keladigan savollar bor. Talabalar menga tez-tez shunday bo'lganda, men mavzuni chetlab o'tishga moyilligim borligini aytishadi. Va ularning fikriga ko'ra, ko'pincha bu darsning eng qiziqarli qismidir. Juda kamdan-kam hollarda, bir necha marta talabalar tadqiqotda yangi yo'nalishni keltirib chiqaradigan va maqolaga aylangan savollarni berishdi. Bu dars paytida emas, balki talabalar bilan suhbatlarda tez-tez sodir bo'ladi, lekin ba'zida bu dars paytida sodir bo'ladi. 

Aleksey: Xo'sh, talabalar sizga savollar berishdi, ular asosida maqola chop etish mumkin edi?

Michael: Ha. 

Vitaliy: Siz talabalar bilan qanchalik tez-tez suhbat qurasiz? Qachon ular dars davomida o'tilganlardan ko'proq narsani o'rganishni xohlashadi?

Michael: Aspirantlarim bilan - har doim. Menda taxminan 5 yoki 6 tasi bor va biz ular bilan doimo nimanidir muhokama qilamiz. Mening darslarimga oddiygina tashrif buyuradigan talabalar bilan bunday suhbatlar juda tez-tez uchramaydi. Garchi bu tez-tez sodir bo'lishini xohlardim. Menimcha, ular ish vaqtida fakultetga kelishdan qo'rqishadi. Har semestrda ba'zi talabalar ushbu psixologik to'siqni engib o'tishga muvaffaq bo'lishadi va darsdan keyin ular bilan suhbatlashish har doim juda qiziq. To'g'ri, agar barcha talabalar shunday jasur bo'lishsa, mening vaqtim etarli emas edi. Shunday qilib, ehtimol, hamma narsa kerak bo'lganidek ishlaydi. 

Vitaliy: Talabalar bilan muloqot qilish uchun qanday vaqt topa olasiz? Bilishimcha, AQSHda oΚ»qituvchilarning ishi koΚ»p – grantlarga hujjat topshirish va hokazo. 

Michael: Rostini aytsam, talabalar bilan ishlash mening ishimning menga eng yoqadigan jihati. Demak, buning uchun menda motivatsiya yetarli. Ishxonamda o'tkazadigan vaqtimning ko'p qismi har xil turdagi uchrashuvlarga sarflanadi. Hozir yoz, shuning uchun mening jadvalim kamroq band, lekin o'quv yili davomida har kuni soat 9 dan 17 gacha menda hamma narsa to'plangan. Tadqiqot ishlari, sharhlar, grantlar - bularning barchasi uchun faqat kechqurun va dam olish kunlari bor. 

Yangi kurslar va kitoblarni tayyorlashdan qanday xabardor bo'lish kerak.

Aleksey: Hozirda siz uzoq vaqtdan beri o'qitayotgan kurslaringizdan dars berishda davom etyapsizmi? Kompyuter faniga kirish kabi bir narsa.

Michael: Bu yerda aqlga kelgan birinchi narsa dasturlash tillari kursi. 

Aleksey: Ushbu kursning bugungi versiyasi 10, 20, 30 yil oldingisidan qanchalik farq qiladi? Ehtimol, bu erda qiziqroq narsa ma'lum bir kursning tafsilotlari emas, balki umumiy tendentsiyalardir.

Michael: Dasturlash tillari bo'yicha kursim men uni yaratganimda biroz g'ayrioddiy edi. Men uni 1980-yillarning oxirida hamkasbim Dug Bolduin oβ€˜rniga oβ€˜qiy boshladim (Dug Bolduin). Kurs mavzusi faqat mening mutaxassisligim bilan bog'liq edi, lekin u ketganida men kursni o'qitish uchun eng yaxshi nomzod bo'ldim. Oβ€˜sha paytlarda mavjud boβ€˜lgan birorta darslik menga yoqmadi, shuning uchun men oβ€˜zim ushbu kurs uchun darslikni yozdim. (Muharrir eslatmasi: biz kitob haqida gapiramiz "Dasturlash tili pragmatikasi") Hozirgi kunda u dunyoning 200 dan ortiq universitetlarida qo'llaniladi. Mening yondashuvim g'ayrioddiy, chunki u tilni loyihalash va amalga oshirish muammolarini ataylab aralashtirib yuboradi va barcha mumkin bo'lgan sohalarda bu jihatlar o'rtasidagi o'zaro ta'sirga katta e'tibor beradi. Ko'pgina asosiy tushunchalar kabi asosiy yondashuv o'zgarishsiz qoldi: abstraktsiyalar, nomlar maydoni, modullik, turlar. Ammo bu tushunchalar namoyon bo'ladigan tillar to'plami butunlay o'zgargan. Kurs ilk bor yaratilganda Paskalda ko'plab misollar bor edi, lekin bugungi kunda ko'pchilik talabalarim bu til haqida eshitmagan. Ammo ular Swift, Go, Rust tillarini bilishadi, shuning uchun men bugungi kunda ishlatilayotgan tillar haqida gapirishim kerak. Bundan tashqari, talabalar hozirda skript tillarini yaxshi bilishadi, lekin men ushbu kursni o'qitishni boshlaganimda, hamma narsa kompilyatsiya qilingan tillar haqida edi. Endi bizga Python, Ruby va hatto Perl haqida juda ko'p materiallar kerak, chunki hozirgi kunlarda shunday kod yoziladi va bu tillarda, jumladan, til dizayni sohasida juda ko'p qiziqarli narsalar sodir bo'ladi. 

Vitaliy: Unda keyingi savolim oldingi savolim bilan bog'liq bo'ladi. Bu sohada qanday turish kerak? Menimcha, bunday kursni yangilash juda ko'p mehnat talab qiladi - siz yangi tillarni tushunishingiz, asosiy g'oyalarni tushunishingiz kerak. Buni qanday qilasiz?

Michael: Men har doim 100% muvaffaqiyatga erishaman deb maqtana olmayman. Lekin ko'pincha men hamma qiladigan narsani qilaman - Internetni o'qing. Agar Rustni tushunmoqchi bo'lsam, men uni Google-da qidiraman, Mozilla sahifasiga o'ting va u erda chop etilgan qo'llanmani o'qing. Bu tijorat rivojlanishida sodir bo'ladigan narsalarning bir qismidir. Agar ilm-fan haqida gapiradigan bo'lsak, unda siz asosiy konferentsiyalardagi ma'ruzalarni kuzatishingiz kerak. 

Biznes va akademiya o'rtasidagi bog'liqlik

Vitaliy: Keling, biznes va ilmiy tadqiqotlar o'rtasidagi bog'liqlik haqida gapiraylik. Ishlaringiz ro'yxatida men kesh uyg'unligi bo'yicha bir nechta maqolalarni topdim. Men kesh izchilligi algoritmlari nashr etilgan paytda beqaror ekanligini tushunaman? Yoki etarlicha keng tarqalmagan. Sizning g'oyalaringiz amalda qanchalik keng tarqalgan edi?

Michael: Qaysi nashrlar haqida gapirayotganingizni aniq bilmayman. Men shogirdlarim Bill Boloskiy bilan juda ko'p ish qildim (Uilyam Boloskiy) va Leonidas Kontotanassis (Leonidas Kontothanassis) 1990-yillarning boshlarida Neumann mashinalarining xotirasini boshqarish bo'yicha. O'sha paytda biznes ko'p protsessorli tizimni qanday qilib to'g'ri yaratishni hali tushunmagan edi: apparat darajasida masofaviy xotiraga kirish uchun yordam yaratish kerakmi, xotirani taqsimlash kerakmi, keshni yuklash mumkinmi? masofaviy xotira yoki operatsiya xonasida sahifalarni ko'chirish kerakmi? Bill va Leonidas ikkalasi ham bu sohada ishlagan va uzoqdan kesh yuklamasdan yondashuvlarni o'rgangan. Bu kesh uyg'unligi bilan bevosita bog'liq emas edi, lekin u hali ham NUMA xotirasini boshqarish bo'yicha ish edi va keyinchalik zamonaviy operatsion tizimlarda sahifalarni joylashtirishga zamonaviy yondashuvlar shundan kelib chiqdi. Umuman olganda, Bill va Leonidas muhim ishlarni amalga oshirdi, garchi bu sohada eng ta'sirli bo'lmasa-da - o'sha paytda xuddi shu narsada boshqa ko'plab odamlar ishlagan. Keyinchalik, apparat tranzaksiya xotirasi kontekstida kesh muvofiqligi bilan bog'liq mavzu ustida ishladim. Men ushbu muammo ustida ishlagan guruh bir nechta patentlarni oldi. Ularning orqasida juda qiziqarli gβ€˜oyalar turibdi, lekin ular amalda tatbiq etilib qolmaydi, deb oβ€˜ylayman. Qanday bo'lmasin, ularning rentabelligini baholash men uchun qiyin. 

Aleksey: Shu munosabat bilan ko'proq shaxsiy savol: g'oyalaringiz hayotga tatbiq etilishi siz uchun qanchalik muhim? Yoki bu haqda o'ylamaysizmi?

Michael: Men bu savolni boshqa odamlar, abituriyentlar yoki fakultetga qo'shilishni xohlovchi nomzodlar bilan suhbatda berishni yaxshi ko'raman. Menimcha, bu savolga to'g'ri javob yo'q. Ajoyib narsalarni qiladigan odamlar juda boshqacha motivlarga ega bo'lishi mumkin. Meni muammolar qiziqtiradi, chunki ularni amaliy foydalari uchun emas, shaxsan o'zim qiziq deb bilaman. Ammo boshqa tomondan, biron bir qiziqarli narsa hali ham qo'llanilishini topsa, menga juda yoqadi. Demak, bu yerda oson emas. Ammo ishimning boshida meni hali ham dunyoda yakuniy foydalanish g'oyasi emas, balki g'oyaning uyg'unligi va uni o'rganish va undan nima kelib chiqishini ko'rish istagi boshqaradi. Agar oxirida u amaliy natijalarni bersa, ajoyib. 

Aleksey: Ta'lim va tajribangiz tufayli siz boshqalarning g'oyalari qiymatini ko'pchilikka qaraganda yaxshiroq baholay olasiz. Siz ularni solishtirishingiz va qaysi biri bilan yaxshiroq ishlashini aniqlashingiz mumkin. Ishonchim komilki, hozirda Intel kabi yirik ishlab chiqaruvchilar tomonidan amalda qo'llanilayotgan narsalar haqida fikringiz bor. Sizningcha, bu kompaniyalarning olib borayotgan yo'nalishi qanchalik to'g'ri?

Michael: Amaliyot har doim tijoriy jihatdan muvaffaqiyatli bo'lishi mumkin bo'lgan, ya'ni foyda keltirishi mumkin bo'lgan narsalar atrofida aylanadi va bu haqda boshqa birovdan so'rasangiz yaxshi bo'ladi. Mening ishim asosan nashrlarga olib keladi va operatsion tizimlar sohasida ular ishlash ko'rsatkichlari bo'yicha baholanadi: tezlik, energiya sarfi, kod hajmi. Lekin menga har doim shunday tuyulardiki, bu empirik natijalar maqolalarga faqat nashr etilishi uchun qo'shiladi va odamlarning mehnatga bo'lgan haqiqiy motivlari estetikdir. Tadqiqotchilar yechimlarni badiiy nuqtai nazardan baholaydilar, ular gβ€˜oyalar naqadar nafis ekanligi haqida qaygβ€˜uradilar va mavjud yondashuvlardan yaxshiroq narsani yaratishga harakat qiladilar. Tadqiqotchilarni shaxsiy, subyektiv, estetik motivlar boshqaradi. Ammo siz bu haqda maqolaning o'zida yoza olmaysiz, bular dastur qo'mitasi uchun dalil emas. Yaxshiyamki, oqlangan echimlar ham tez va arzon. Men va o'nlab hamkasblarim taxminan 15 yil oldin bu mavzuni muhokama qildik va bu haqda maqola yozdik. O'ylaymanki, siz uni hozir ham topishingiz mumkin, bu deyiladi "Tizim tadqiqotlarini qanday baholash kerak" yoki shunga o'xshash narsa, unda o'ndan ortiq muallif bor. Bu men muallif bo'lgan yagona maqola Sasha Fedorova, shuning uchun siz mening nashrlarim ro'yxatida uning ismini qidirsangiz, sizga kerak bo'lgan narsani topasiz. Bu tizim tadqiqotlarini baholash va nafislik qanchalik muhimligi haqida gapiradi. 

Aleksey: Demak, ilm-fan va biznesda yaxshi deb hisoblangan standart o'rtasida farq bor. Fan ishlash, quvvat sarfi, TDP, amalga oshirish qulayligi va boshqa ko'p narsalarni baholaydi. Universitetda ushbu turdagi tadqiqotlarni o'tkazish imkoniyati bormi? Sizda tajriba o'tkazishingiz mumkin bo'lgan turli xil mashinalar va turli arxitekturalarga ega laboratoriyangiz bormi?

Michael: Ha, bizning bo'limda juda ko'p turli xil qiziqarli mashinalar mavjud. Ko'pincha ular kichik, bizda kichik klaster va turli tezlatgichlarga ega ko'p protsessorli tizimlar mavjud. Bundan tashqari, kampusda bir necha o'nlab turli fanlardan olimlarga xizmat ko'rsatadigan ulkan hisoblash markazi mavjud. U mingga yaqin tugun va yigirma ming yadroga ega, barchasi Linuxda. Agar zarurat tug'ilsa, siz har doim bir nechta AWS sotib olishingiz mumkin. Shunday qilib, bizda apparat bilan jiddiy cheklovlar yo'q. 

Aleksey: O'ttiz yil oldin qanday edi? O'shanda muammolar bo'lganmi?

Michael: O'shanda biroz boshqacha edi. 1980-yillarning oΚ»rtalari va oxirigacha fanda hisoblash resurslari yetishmaydi deb hisoblangan. Ushbu vaziyatni tuzatish uchun Milliy fan jamg'armasi (Milliy fan fondi) muvofiqlashtirilgan eksperimental tadqiqotlar dasturini yaratdi (Coordinated Experimental Research, CER). Dasturning vazifasi kompyuter fanlari bo'limlari uchun hisoblash infratuzilmasi bilan ta'minlash edi va u sezilarli o'zgarishlarga erishdi. U bergan pulga biz Rochester universitetida 1984 yilda 128 tugunli BBN Butterfly sotib oldik, bu men u erga kelishimdan bir yil oldin edi. O'sha paytda u umumiy xotiraga ega dunyodagi eng katta ko'p protsessorli tizim edi. U 128 ta protsessorga ega bo'lib, ularning har biri alohida anakartda bo'lib, to'rtta stendni egallagan. Har bir protsessorda bir megabayt xotira bo'lgan, 128 megabayt operativ xotira o'sha paytda tasavvur qilib bo'lmaydigan miqdor edi. Ushbu mashinada biz birinchi marta MCS blokirovkasini amalga oshirdik. 

Aleksey: Xo'sh, agar sizni to'g'ri tushunsam, hozirda apparat bilan bog'liq muammo hal qilinganmi? 

Michael: Umuman olganda, ha. Bir nechta ogohlantirishlar bor: birinchidan, agar siz kompyuter arxitekturasini chip darajasida bajarayotgan bo'lsangiz, akademik muhitda buni qilish qiyin, chunki biznesda buni amalga oshirish uchun ancha yaxshi vositalar mavjud. Agar sizga 10 nanometrdan kichikroq narsa kerak bo'lsa, uni boshqa birovga buyurtma qilishingiz kerak bo'ladi. Bu sohada Intelda tadqiqotchi bo'lish ancha oson. Agar siz chiplarda yoki qattiq xotirada optik aloqalar ustida ishlayotgan bo'lsangiz, biznesda hali fanda bo'lmagan texnologiyalarni topasiz, shuning uchun siz ittifoqlar yaratishingiz kerak. Masalan, Stiven Swanson (Stiven Swanson) yaratilgan bunday hamkorlik yangi xotira texnologiyalari uchun. Ushbu shakl har doim ham ishlamaydi, lekin ba'zi hollarda u juda muvaffaqiyatli bo'lishi mumkin. Bundan tashqari, fanda eng kuchli hisoblash tizimlarini ishlab chiqish ancha qiyin. Hozirda AQSh, Yaponiya va Xitoyda amalga oshirilayotgan eng yirik superkompyuter loyihalari biznesga qaratilgan. 

G'oyalarni amaliy amalga oshirish. MCS, MS, CLH, JSR 166, Dug Li va boshqalar bilan ishlash.

Vitaliy: Sinxronizatsiya algoritmlari ustida ishlashni qanday boshlaganingiz haqida allaqachon gapirgansiz. Sizda ikkita juda mashhur maqola bor MCS blokirovkasi ΠΈ Maykl-Skott navbati (MS), qaysidir ma'noda Java-da amalga oshirilgan. (Muharrir eslatmasi: barcha nashrlarni ko'rish mumkin aloqa). U erda bu blokirovka ba'zi o'zgarishlar bilan amalga oshirildi va ma'lum bo'ldi CLH qulfi, va navbat mo'ljallangan tarzda amalga oshirildi. Ammo sizning maqolalaringiz chop etilishi va ularni amaliy qo'llash o'rtasida ko'p yillar o'tdi. 

Aleksey: Navbat holatida taxminan 10 yil ko'rinadi.

Michael: Ushbu xususiyatlar Java standart kutubxonasida paydo bo'lishidan oldin?

Vitaliy: Ha. Bu sodir bo'lishi uchun nima qildingiz? Yoki ular hech narsa qilmadilarmi?

Michael: Men sizga MS Queue Java 5 ga qanday kirganini ayta olaman. U paydo bo'lishidan bir necha yil oldin men Mark Moyers guruhi bilan Sun Microsystems kompaniyasining Boston yaqinidagi laboratoriyasida ishlaganman. U multithreadingda qiziqarli muammolar ustida ishlayotgan o'zi bilgan odamlar uchun seminar tashkil qildi, chunki u o'z kompaniyasiga sotishi mumkin bo'lgan mavzularni topmoqchi edi. Men Dug Li bilan birinchi marta oβ€˜sha yerda tanishganman. Dag va men va Sundan 25 ga yaqin odam Dagning taqdimotini muhokama qildik JSR 166, keyinchalik java.util.concurrent bo'ldi. Yo'l davomida Dug MS navbatidan foydalanishni xohlashini aytdi, ammo buning uchun unga interfeys uchun navbatdagi elementlar soni uchun hisoblagich kerak edi. Ya'ni, bu alohida usul, atomik, aniq va tez amalga oshirilishi kerak edi. Men tugunlarga oddiygina seriya raqamlarini qo'shishni, birinchi va oxirgi tugunning raqamini olib, birini boshqasidan ayirishni taklif qildim. Dag boshini tirnab, "nega emas" dedi va oxir-oqibat shunday qildi. Biz kutubxonada ushbu yondashuvni amalga oshirishni muhokama qildik, lekin Dug ishning ko'p qismini o'zi bajardi. Natijada, u Java-da juda yaxshi ko'p qirrali yordamni o'rnatishga muvaffaq bo'ldi. 

Aleksey: Demak, agar men toΚ»gΚ»ri tushungan boΚ»lsam, .size() usuli standart navbat interfeysining bir qismi boΚ»lishi va O(1) algoritmik murakkabligiga ega boΚ»lishi kerak edi?

Michael: Ha, va bunga qo'shimcha ravishda alohida hisoblagich talab qilinadi.

Aleksey: Chunki Java'da .size() usulini chaqirsangiz, natija to'plamning haqiqiy hajmiga asoslanmagan holda darhol mavjud bo'lishi kutiladi. Tushundim, rahmat.

Michael: Bir necha yil o'tgach, men o'quvchim Bill Sherer bilan ikki tomonlama ma'lumotlar tuzilmalari ustida ishladim - aslida men bu haqda gaplashaman. Hydra haqida hisobot. Dag bizga keldi va ulardan Java Executor Framework dasturida foydalanishi mumkinligini aytdi. Bill bilan birgalikda ular adolatli va adolatsiz navbatlar deb ataladigan ikkita dasturni yaratdilar. Men ularga ushbu loyiha bo'yicha maslahat berdim, garchi men haqiqiy kodni yozishda qatnashmaganman. Natijada, ijrochilarning tezligi sezilarli darajada oshdi. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Algoritmlaringizning notoΚ»gΚ»ri bajarilishiga yoki yangi funksiyalarni qoΚ»shish soΚ»rovlariga duch keldingizmi? Umuman olganda, amaliyot nazariya bilan mos kelishi kerak, lekin ular ko'pincha farq qiladi. Aytaylik, siz algoritm yozdingiz va qog'ozda u ishlaydi, lekin amalga oshirishda ishtirok etgan odamlar sizdan ko'proq xususiyatlar yoki algoritmni qandaydir tuzatishni so'rashni boshladilar. Sizda ham shunday holatlar bo'lganmi?

Michael: Kimdir menga kelib, "buni qanday amalga oshirish kerak" deb so'ragan yagona misol bu Dugning savoli bo'lib, men allaqachon gaplashganman. Ammo amaliy ehtiyojlarni qondirish uchun qiziqarli o'zgarishlar kiritilgan bir nechta holatlar mavjud. Misol uchun, IBMdagi K42 jamoasi MCS blokirovkasini o'zgartirdi va uni standart interfeysga aylantirdi, shuning uchun navbat tugunini olish va chiqarish tartiblariga oldinga va orqaga o'tkazishga hojat qolmadi. Ushbu standart interfeys tufayli nazariy jihatdan chiroyli bo'lgan g'oya amalda ishlay boshladi. Ajablanarlisi shundaki, ular bu haqda hech qachon maqola nashr etmaganlar va patent olgan bo'lsalar ham, keyinchalik undan voz kechishgan. G'oya ajoyib edi va men imkon qadar bu haqda gapirishga harakat qilaman. 

Odamlar men e'lon qilgan algoritmlarni yaxshilagan boshqa holatlar ham bo'lgan. Masalan, MS navbati ikki bosqichli o'rnatish mexanizmiga ega, bu navbatning muhim yo'lida ikkita CAS mavjudligini anglatadi. Eski mashinalarda CAS ancha qimmat edi. Intel va boshqa ishlab chiqaruvchilar ularni yaqinda juda yaxshi optimallashtirishdi, lekin bir vaqtlar bu 30 tsiklli ko'rsatmalar edi, shuning uchun muhim yo'lda bir nechta bo'lishi kerak emas edi. Natijada, MS navbatiga o'xshash, ammo muhim yo'lda faqat bitta atom operatsiyasiga ega bo'lgan boshqa navbat ishlab chiqildi. Bunga ma'lum vaqt davomida operatsiya O(1) emas, balki O(n) vaqtni olishi mumkinligi tufayli erishildi. Bu dargumon, lekin mumkin edi. Bu ma'lum daqiqalarda algoritm boshidan bu navbatning hozirgi holatiga qadar navbatni bosib o'tganligi sababli sodir bo'ldi. Umuman olganda, algoritm juda muvaffaqiyatli bo'ldi. Men bilishimcha, u juda keng qo'llanilmaydi, chunki qisman atom operatsiyalari avvalgiga qaraganda ancha kamroq resurslarni talab qiladi. Lekin fikr ajoyib edi. Menga Oracle'dan Deyv Dicening ishi ham juda yoqadi. U qiladigan har bir narsa juda amaliy va u temirdan juda aqlli foydalanadi. U NUMA-dan xabardor sinxronizatsiya algoritmlari va ko'p tarmoqli ma'lumotlar tuzilmalarining ko'pchiligida qo'li bor edi. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Algoritmlarni yozganingizda yoki talabalarga o'rgatsangiz, ishingiz natijasi darhol ko'rinmaydi. Jamiyat, aytaylik, yangi maqola bilan tanishish uchun biroz vaqt kerak. Yangi algoritm darhol dasturni topa olmaydi. 

Michael: Maqola ahamiyatli bo'ladimi yoki yo'qmi, darhol aniq emas. Menimcha, konferentsiyalarda mukofotlarga sazovor bo'lgan maqolalarni o'rganish qiziqarli bo'lardi. Ya'ni, dastur qo'mitalaridagi odamlar bir vaqtning o'zida eng yaxshi deb hisoblagan maqolalarga qarang. Siz havolalar soni va biznesga ta'siri bo'yicha ushbu maqolalar haqiqatan ham 10, 20, 25 yil ichida qanchalik ta'sirli bo'lganini hisoblashga harakat qilishingiz kerak. Men ikkalasi o'rtasida kuchli bog'liqlik bo'lishiga shubha qilaman. Bu nolga teng bo'lmaydi, lekin katta ehtimol bilan biz xohlaganimizdan ancha zaifroq bo'ladi. Ko'p g'oyalar keng tarqalgunga qadar uzoq vaqt davomida talab qilinmaydi. Masalan, tranzaktsion xotirani olaylik. Asl maqola e'lon qilingan paytdan boshlab odamlar haqiqatda u bilan mashinalar yasashni boshlagan vaqtgacha 10 yildan ko'proq vaqt o'tdi. Va bu xotiraning tijorat mahsulotlarida paydo bo'lishidan oldin - va barcha 20. Juda uzoq vaqt davomida hech kim maqolaga e'tibor bermadi, keyin esa unga havolalar soni keskin oshdi. Buni oldindan aytish qiyin. Boshqa tomondan, ba'zida g'oyalar darhol amalga oshiriladi. Bir necha yil oldin men Jo Izraelevitz bilan DISC uchun maqola yozdim, unda kompyuter ishlamay qolgandan keyin foydalanish mumkin bo'lgan doimiy ma'lumotlar tuzilmalari uchun haqiqiylikning yangi rasmiy ta'rifini taklif qildim. Maqola boshidanoq menga yoqdi, lekin men kutganimdan ancha mashhur bo'lib chiqdi. U bir nechta turli guruhlar tomonidan ishlatilgan va oxir-oqibat qat'iylik tuzilmalarining standart ta'rifiga aylandi. Bu, albatta, yoqimli.

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Baholash uchun foydalanadigan texnikalar bormi? Maqolalaringizni va talabalaringizni baholashga harakat qilasizmi? Siz o'rgatgan odam to'g'ri yo'nalishda ketyaptimi yoki yo'qmi nuqtai nazaridan.

Michael: Boshqalar qatori men ham hozir qilayotgan ishimga koβ€˜proq e’tibor beraman. Yana, boshqalar singari, men ham Google Scholar-ni vaqti-vaqti bilan tekshirib turaman, o'tgan maqolalarimga iqtibos keltiriladimi, lekin bu ko'proq qiziquvchanlik uchun. Men asosan shogirdlarimning hozir qilayotgan ishlariga berilib ketaman. Joriy ishni baholash haqida gap ketganda, uning bir qismi estetik mulohazalar, nima nafis va nima emas. Va kundalik darajada ochiq savollar katta rol o'ynaydi. Misol uchun, bir talaba menga ba'zi natijalarning grafigi bilan keladi va biz grafikning qandaydir g'alati xatti-harakati qaerdan kelganini tushunishga harakat qilmoqdamiz. Umuman olganda, biz ishimizda doimo o'zimiz tushunmagan narsalarni tushunishga harakat qilamiz. 

Transaktsion xotira

Vitaliy: Balki biz tranzaktsion xotira haqida bir oz gapirishimiz mumkinmi?

Michael: Menimcha, ozgina bo'lsada aytishga arziydi, chunki men bunga ko'p kuch sarfladim. Bu mening boshqa nashrlarga qaraganda ko'proq nashr etilgan mavzu. Ammo shu bilan birga, g'alati darajada, men har doim tranzaksiya xotirasiga juda shubha bilan qarardim. Mening fikrimcha, Herlihy va Moss maqolasi (M. Herlihy, J. E. B. Moss) o'z vaqtidan oldin nashr etilgan. 1990-yillarning boshlarida ular tranzaktsion xotira iqtidorli dasturchilarga koβ€˜p tarmoqli ma’lumotlar tuzilmalarida ishlashda yordam berishi mumkinligini va bu tuzilmalardan oddiy dasturchilar tomonidan kutubxona sifatida foydalanishi mumkinligini taklif qilishdi. Ya'ni, bu Dug Li uchun JSR 166 ni bajarishda yordam bo'lardi. Lekin tranzaksiya xotirasi ko'p tarmoqli dasturlashni osonlashtirish uchun mo'ljallanmagan. Ammo u 2000-yillarning boshlarida keng tarqalgan bo'lib, aynan shunday qabul qilina boshlagan. Bu parallel dasturlash muammosini hal qilish usuli sifatida e'lon qilindi. Bu yondashuv menga doim umidsiz bo'lib tuyulgan. Transaktsion xotira faqat parallel ma'lumotlar tuzilmalarini yozishni osonlashtirishi mumkin edi. Bu, menimcha, u erishgan narsadir. 

Ko'p oqimli kod yozishning qiyinligi haqida

Aleksey: Juda qiziq. Oddiy dasturchilar va ko'p bosqichli kod yoza oladiganlar o'rtasida ma'lum bir to'siq borga o'xshaydi. O'tgan yili men bir necha marta algoritmik ramkani amalga oshirayotgan odamlar bilan gaplashdim. Masalan, Martin Tomson bilan, shuningdek, ko'p tarmoqli kutubxonalarda ishlaydigan dasturchilar bilan. (Muharrirning eslatmasi: Martin Tompson juda mashhur dasturchi, deb yozgan edi to'pi ΠΈ Aeron. Va u ham bor hisobot bizning Joker 2015 konferentsiyasida, video yozuv YouTube'da mavjud. U xuddi shunday ochildi ushbu konferentsiya asosiy yozuvni yozish ham mavjud). Ularning ta'kidlashicha, asosiy qiyinchilik - bu algoritmlarni tez va qulay qilishdir. Ya'ni, ular bu to'siqni engib o'tishga va imkon qadar ko'proq odamlarni ushbu hududga jalb qilishga harakat qilmoqdalar. Bu haqda qanday fikrdasiz?

Michael: Bu multithreadingning asosiy muammosi: tizimning murakkabligini oshirmasdan qanday qilib yuqori ishlashga erishish mumkin. 

Aleksey: Chunki ular murakkablikdan qochishga harakat qilganda, algoritm kamroq universal bo'ladi.

Michael: Bu erda kalit to'g'ri ishlab chiqilgan abstraktsiyalardir. Menimcha, bu umuman kompyuter tizimlari uchun maydon sifatida asosiy narsa. Butler Lempson bu atamani ishlatishni yaxshi ko'radi va u bizni "abstraksiya savdogarlari" deb ataydi. Bugungi kunda oddiy texnologiyalar mavjud emas. Biz foydalanadigan protsessorlar 10 milliard tranzistorga ega - soddaligi haqida gap bo'lishi mumkin emas. Shu bilan birga, ISA protsessorga qaraganda ancha sodda, chunki biz uni yuqori unumdorlik va nisbatan sodda interfeys bilan ta'minlash uchun juda uzoq vaqt ishladik. Ammo u bilan ham hamma narsa silliq emas. Xuddi shu muammo bozorda paydo bo'ladigan tezlatgichlarda ham mavjud. Savollar tug'iladi - GPU, shifrlash mexanizmi, siqish, transkodlash mexanizmi, chiziqli algebra mexanizmi yoki hatto yanada moslashuvchan FPGA uchun to'g'ri interfeysni qanday qilish kerak. Asbobdan foydalanishni osonlashtiradigan va murakkablikni yashiradigan interfeysni qanday yaratish mumkin? U undan qutulolmaydi, aksincha uni oddiy dasturchidan yashiradi. 

Aleksey: Men tushunganimdek, bizda abstraktsiyalarni tushunishda hali ham to'siq bor. Xotira modelini olaylik; fan va texnika taraqqiyotimiz bosqichida bu asosiy abstraksiyalardan biridir. Uning yordamida barcha dasturchilar ikki guruhga bo'linadi: katta qismi - buni tushunmaydiganlar, kichik qismi - tushunadigan yoki tushunaman deb o'ylaydiganlar. 

Michael: Bu yaxshi savol - har birimiz xotira modelini tushunadimi?

Vitaliy: Ayniqsa C++ da.

Michael: Vaqti-vaqti bilan Hans Boem bilan gaplashing. U men biladigan eng aqlli odamlardan biri, xotira modellari bo'yicha yetakchi mutaxassis. U sizga tushunmaydigan ko'p narsa borligini darhol aytadi. Ammo abstraktsiyalar masalasiga qaytadigan bo'lsak, unda, mening fikrimcha, so'nggi 30 yil ichida xotira modellari sohasidagi eng muhim fikr bildirildi. Sarita Advening dissertatsiyasida. (Muharrir eslatmasi: nashrlarning toΚ»liq roΚ»yxati mavjud aloqa).

Aleksey: Mening savolim: bu to'siq tushunchaning mohiyatidan kelib chiqadimi? 

Michael: Yo'q. Sarita to'g'ri yondashuv bilan siz barcha murakkablikni muvaffaqiyatli yashirishingiz, yuqori samaradorlikka erishishingiz va dasturchiga oddiy API berishingiz mumkin degan xulosaga keldi. Va agar siz ushbu APIga amal qilsangiz, izchil izchillikka erishishingiz mumkin. Menimcha, bu to'g'ri model. Ma'lumotlar poygalarisiz kod yozing va ketma-ket mustahkamlikka ega bo'ling. Albatta, poyga ehtimolini kamaytirish uchun maxsus vositalar kerak, ammo bu boshqa masala. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Faoliyatingizda hal qilingandek tuyulgan muammo birdan falokatga aylangan yoki bu muammo yechilmaydigan boβ€˜lib qolgan paytlar boβ€˜lganmi? Misol uchun, nazariy jihatdan siz istalgan sonni faktorga kiritishingiz yoki biron bir sonning tub ekanligini aniqlashingiz mumkin. Ammo amalda buni amalga oshirish qiyin bo'lishi mumkin; mavjud apparat bilan raqamlarni faktor qilish qiyin. Siz bilan ham shunga o'xshash narsa yuz berdimi?

Michael: Men shunga o'xshash narsani darhol eslay olmayman. Menga ma'lum bir hududda qiladigan hech narsa qolmagandek tuyulgan paytlar bo'lgan, lekin keyin u erda yangi va qiziqarli narsa yuz berdi. Masalan, men cheksiz navbatlar maydoni allaqachon etuklikka erishgan deb o'yladim. MNS navbatidagi bir qancha yaxshilanishlardan so'ng, boshqa hech narsa sodir bo'lmadi. Va keyin Morrison (Adam Morrison) va Afek (Yehuda Afek) ixtiro qilishdi LCRQ navbati. Cheksiz ko'p tarmoqli navbat bo'lishi mumkinligi aniq bo'ldi, bu erda ko'pincha tanqidiy yo'lda faqat olib kelish va oshirish ko'rsatmalari mavjud edi. Va bu kattalik tartibini yaxshiroq ishlashga erishishga imkon berdi. Biz olib kelish va oshirish juda foydali narsa ekanligini bilmasligimizdan emas. Bu haqda Erik Freudental 1980-yillarning oxirida Allan Gottlib bilan Ultrakompyuter ustida ishlaganida yozgan, ammo gap cheklangan navbatlar haqida edi. Morrison va Afek cheklanmagan navbatda olib kelish va oshirishdan foydalanishga muvaffaq bo'lishdi.

Yangi arxitekturalar. Tranzaksiya xotirasining g'alabasi yaqinmi?

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Algoritmlar uchun foydali bo'lishi mumkin bo'lgan yangi me'moriy echimlarni qidiryapsizmi? 

Michael: Albatta, amalga oshirilishini istagan ko'p narsalar bor. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Masalan, qanday?

Michael: Birinchidan, Intel va IBM protsessorlarida apparat darajasidagi tranzaksiya xotiramiz uchun bir nechta oddiy kengaytmalar. Xususan, men tranzaksiyaga bog'liq bo'lmagan yuk va do'kon darhol tranzaktsiyalar ichida mavjud bo'lishini istardim. Ular zudlik bilan sodir bo'ladigan ketma-ketlikda halqalarga olib keladi, shuning uchun ular qiyin bo'lishi mumkin. Ammo agar siz mavhumlik qatlamlarini saqlasangiz, tranzaksiya amalga oshirilayotgan paytdan tashqarida juda ko'p qiziqarli narsalarni qilishingiz mumkin. Buni amalga oshirish qanchalik qiyinligini bilmayman, lekin bu juda foydali bo'lar edi. 

Yana bir foydali narsa - uzoq xotiradan keshni yuklash. O'ylaymanki, bu ertami-kechmi amalga oshadi. Ushbu texnologiya ajratilgan xotiraga ega tizimlarni yaratish imkonini beradi. Rakda, aytaylik, 100 terabayt doimiy xotirani saqlash mumkin bo'lar edi va operatsion tizimning o'zi ushbu xotiraning qaysi bo'limlari protsessorlarning jismoniy manzil maydoniga mos kelishini dinamik ravishda hal qiladi. Bu bulutli hisoblash uchun juda foydali bo'lar edi, chunki u kerakli vazifalar uchun katta hajmdagi xotirani taqdim etishga imkon beradi. Menimcha, kimdir buni qiladi.

Vitaliy: Tranzaktsion xotira haqida gapirishni tugatish uchun menda ushbu mavzu bo'yicha yana bitta savol bor. Tranzaktsion xotira oxir-oqibat standart ko'p tarmoqli ma'lumotlar tuzilmalarini almashtiradimi?

Michael: Yo'q. Bitimlar spekulyativ mexanizmdir. Dasturlash darajasida bu atom qulflari, ammo ular ichida taxminlar mavjud. Agar taxminlarning aksariyati to'g'ri bo'lsa, bunday prognoz ishlaydi. Shuning uchun, tranzaksiya xotirasi iplar bir-biri bilan deyarli o'zaro aloqada bo'lmaganda yaxshi ishlaydi va siz faqat o'zaro aloqalar yo'qligiga ishonch hosil qilishingiz kerak. Biroq, agar mavzular o'rtasida xabar boshlangan bo'lsa, tranzaktsiyalar kam foyda keltiradi. Tushuntirishga ijozat bering, biz tranzaktsiyalar butun atom operatsiyasiga o'ralgan holat haqida gapirayapmiz. Ular hali ham ko'p tarmoqli ma'lumotlar tuzilmalari uchun komponentlar sifatida muvaffaqiyatli ishlatilishi mumkin. Misol uchun, agar sizga uch so'zli CAS kerak bo'lsa va siz bir vaqtning o'zida yigirma ip bilan ishlaydigan haqiqiy ko'p oqimli algoritm o'rtasida uchta kichik narsani ko'p mavzuli qilishingiz kerak bo'lsa. Umuman olganda, tranzaktsiyalar foydali bo'lishi mumkin, ammo ular ko'p tarmoqli ma'lumotlar tuzilmalarini to'g'ri loyihalash zaruratini bartaraf etmaydi. 

O'zgaruvchan xotira, Optane DIMM, o'ta tezkor qurilmalar.

Vitaliy: Men gaplashmoqchi bo'lgan oxirgi narsa - bu sizning hozirgi tadqiqotingiz mavzusi: o'zgarmas xotira. Yaqin kelajakda bu sohada nimani kutishimiz mumkin? Ehtimol, siz allaqachon mavjud bo'lgan samarali dasturlarni bilasizmi? 

Michael: Men apparat mutaxassisi emasman, men faqat yangiliklarda oβ€˜qiganlarimni va hamkasblarimning menga aytganlarini bilaman. Intel sotayotganini hamma eshitgan Optan DIMM, ular dinamik operativ xotiraga qaraganda taxminan 3 marta o'qish kechikishi va 10 marta yozish kechikishiga ega. Tez orada ular juda katta hajmli versiyalarda sotuvga chiqariladi. Bir necha terabaytlik bayt manzilli operativ xotiraga ega noutbukga ega bo'lishingiz mumkin, deb o'ylash kulgili. 10 yildan keyin biz ushbu yangi texnologiyadan foydalanishga qaror qilishimiz mumkin, chunki biz DRAM-dan foydalanamiz - shunchaki ovoz balandligini oshiramiz. Lekin energetik mustaqillik sharofati bilan biz uchun mutlaqo yangi imkoniyatlar ochilmoqda. Bayt manzilli ishchi xotira va blokli tizimli doimiy xotira o'rtasida hech qanday farq bo'lmasligi uchun biz saqlash stekini tubdan o'zgartirishimiz mumkin. Shunday qilib, biz bir dasturdan ikkinchisiga o'tkazilishi kerak bo'lgan hamma narsani blokli tizimli fayllarga ketma-ketlashtirishimiz shart emas. Bundan biz operatsion tizimlar, ish vaqti muhitlari va taqsimlangan ma'lumotlar do'konlariga ta'sir qiluvchi ko'plab muhim tamoyillarni olishimiz mumkin. Bu sohada ishlash juda qiziq. Shaxsan men uchun bularning barchasi nimaga olib kelishini oldindan aytish qiyin, ammo bu erda muammolar juda qiziqarli. Bu erda inqilobiy o'zgarishlar bo'lishi mumkin va ular ko'p ish zarralari bo'yicha ishdan juda tabiiy ravishda kelib chiqadi, chunki nosozlikni tiklash tizimning normal ishlashidan keyingi "ko'p oqimli" jarayondir. 

Men hozir ishlayotgan ikkinchi asosiy mavzu - bu o'ta tezkor qurilmalarni boshqarish va tizimli siyosat nazorati bilan foydalanuvchilar maydonidan qurilmalarga xavfsiz kirish. So'nggi yillarda qurilmaga kirishni foydalanuvchilar maydoniga o'tkazish tendentsiyasi kuzatildi. Buning sababi, TCP-IP yadro stegi har 5 mikrosekundda yangi paketga muhtoj bo'lgan tarmoq interfeysi ustida ishlay olmaydi; u shunchaki davom etmaydi. Shuning uchun ishlab chiqaruvchilar qurilmalarga to'g'ridan-to'g'ri kirishni ta'minlaydi. Ammo bu shuni anglatadiki, operatsion tizim jarayonni nazorat qilishni yo'qotadi va u raqobatdosh ilovalar uchun qurilmaga to'g'ri kirishni ta'minlay olmaydi. Bizning tadqiqot guruhimiz bu kamchilikni oldini olish mumkin, deb hisoblaydi. Bu oyda USENIX ATC da bu haqda maqolamiz bor. Bu qat'iylik ustida ishlash bilan bog'liq, chunki uzoq muddatli bayt manzilli doimiy xotira, mohiyatan, foydalanuvchi maydonida kirish kerak bo'lgan o'ta tezkor kiritish-chiqarishga ega qurilma. Ushbu tadqiqot mikroyadrolarga, ekzokernellarga va boshqa an'anaviy urinishlarga yangi yondashuvlarni OS yadrosidan foydalanuvchilar maydoniga xavfsiz ko'chirish imkonini beradi. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Bayt manzilli xotira juda yaxshi, lekin jismoniy cheklov mavjud - yorug'lik tezligi. Bu qurilma bilan o'zaro aloqada bo'lganda muqarrar ravishda kechikish bo'lishini anglatadi. 

Michael: Juda to'gri.

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Yangi yuklarni engish uchun etarli imkoniyatlar mavjudmi?

Michael: Bu ajoyib savol, lekin javob berish men uchun qiyin bo'ladi. Xotirada qayta ishlash g'oyasi ancha vaqtdan beri mavjud bo'lib, u juda qiziqarli, lekin ayni paytda juda murakkab. Men bu sohada ishlaganim yo'q, lekin u yerda qandaydir kashfiyotlar qilinsa yaxshi bo'lardi. Men qo'shadigan boshqa hech narsam yo'q deb qo'rqaman. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Yana bitta muammo bor. Yangi, sezilarli darajada katta hajmdagi operativ xotirani protsessorga sig'dirib bo'lmaydi. Shuning uchun, jismoniy cheklovlar tufayli, bu RAM izolyatsiya qilinishi kerak. 

Michael: Bularning barchasi integral mikrosxemalar ishlab chiqarishdagi nuqsonlar soniga bog'liq. Agar yarimo'tkazgichli plastinalarni butunlay nuqsonlarsiz yaratish mumkin bo'lsa, undan butun mikrosxema yasash mumkin edi. Ammo endi biz pochta markalaridan kattaroq mikrosxemalarni qanday qilishni bilmaymiz. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Lekin biz hali ham katta o'lchamlar, taxminan santimetrlar haqida gapiramiz. Bu muqarrar ravishda kechikishga ta'sir qiladi. 

Michael: Ha. Yorug'lik tezligi haqida hech narsa qila olmaysiz. 

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€: Afsuski. 

Keyingi katta tendentsiya. Ikki tomonlama ma'lumotlar tuzilmalari. Gidra.

Vitaliy: Men tushunganimdek, siz yangi tendentsiyalarni juda tez ushlaysiz. Siz birinchilardan bo'lib tranzaktsion xotirada ishlagansiz va birinchilardan bo'lib o'zgarmas xotirada ishlagansiz. Sizningcha, keyingi katta tendentsiya qanday bo'ladi? Yoki bu sirdir?

Michael: Rostini aytsam, bilmayman. Umid qilamanki, yangi narsa paydo bo'lganda, men buni sezaman. Menga oβ€˜zimcha yangi soha ixtiro qilish baxti nasib etmadi, biroq bir necha marta omadim keldi va boshqalar yaratgan yangi sohalarda ancha erta ishlay boshladim. Umid qilamanki, kelajakda buni uddalay olaman.

Aleksey: Ushbu intervyudagi oxirgi savol Hydradagi ishlashingiz va maktabdagi faoliyatingiz haqida bo'ladi. Agar men to'g'ri tushunsam, maktabdagi ma'ruza blokirovkasiz algoritmlar haqida va konferentsiyada ikki tomonlama ma'lumotlar tuzilmalari haqida bo'ladi. Ushbu hisobotlar haqida bir necha so'z ayta olasizmi?

Michael: Qisman, biz ushbu intervyuda siz bilan ushbu mavzularga to'xtalib o'tdik. Bu mening talabam Bill Sherer bilan qilgan ishim haqida. U bu borada tezis yozdi va Dug Li ham bunga hissa qo'shdi va u oxir-oqibat Java kutubxonasidagi ko'p tarmoqli sinxron navbatlarning bir qismiga aylandi. Faraz qilaylik, ma'lumotlar strukturasi bloklanmasdan o'qiladi va yoziladi, ya'ni har bir operatsiya kritik yo'lda cheklangan miqdordagi ko'rsatmalarga ega. Agar siz bo'sh konteynerdan ma'lumotlarni o'chirishga harakat qilsangiz yoki ushbu konteynerda bo'lmagan ba'zi ma'lumotlarni o'chirishga harakat qilsangiz, buni amalga oshirish mumkin emasligi darhol sizga xabar qilinadi. Ammo agar ip haqiqatan ham ushbu ma'lumotlarga muhtoj bo'lsa, bu xatti-harakat qabul qilinishi mumkin emas. Keyin aqlga kelgan birinchi narsa - kerakli ma'lumotlar paydo bo'lganligini doimiy ravishda so'rab turadigan pastadir yaratish. Ammo keyin hamma uchun aralashish bor. Bundan tashqari, ushbu yondashuv bilan siz 10 daqiqa kutishingiz mumkin, keyin boshqa mavzu keladi va u tasodifan birinchi navbatda kerakli ma'lumotlarni oladi. Ikkilamchi ma'lumotlar tuzilmalarida hali ham qulflar mavjud emas, lekin ular iplarni to'g'ri kutishga imkon beradi. "Ikki" atamasi strukturada ma'lumotlar yoki ma'lumotlar uchun so'rovlar mavjudligini anglatadi, keling, ularni antima'lumotlar deb ataymiz. Shunday qilib, agar siz bo'sh idishdan biror narsa olishga harakat qilsangiz, uning o'rniga konteynerga so'rov yuboriladi. Endi ip boshqa hech kimni bezovta qilmasdan so'rovni kutishi mumkin. Bundan tashqari, ma'lumotlar tuzilmasi so'rovlarga ustuvorliklarni belgilaydi, shuning uchun qabul qilinganda ularni kerakli shaxsga uzatadi. Natijada, hali ham rasmiy spetsifikatsiyaga va amalda yaxshi ishlashga ega bo'lgan qulflanmagan mexanizm. 

Aleksey: Ushbu ma'lumotlar tuzilmasidan nimani kutmoqdasiz? U barcha umumiy holatlarda ishlashni yaxshilaydimi yoki muayyan vaziyatlarga mos keladimi? 

Michael: Agar, birinchidan, qulflanmagan konteyner kerak bo'lsa, va ikkinchidan, undagi bo'lmagan konteynerdan ma'lumotlarni olish kerak bo'lgan vaziyatda kutish kerak bo'lsa, foydalidir. Mening bilishimcha, bizning ramkamiz ushbu ikki shart bajarilganda optimal xatti-harakatni ta'minlaydi. Shuning uchun, bu holatlarda men uni ishlatishni tavsiya qilaman. Qulfsiz ma'lumotlar tuzilmalarining asosiy afzalligi shundaki, ular ishlash muammolaridan qochishadi. Va agar ma'lumotlar bir ipdan ikkinchisiga o'tkazilsa, kutish juda ko'p algoritmlarda juda muhimdir.

Vitaliy: Menga aniqlik kiritaman: maktabda ham, konferentsiyada ham bir xil narsa haqida gapirasizmi?

Michael: Maktabda men gapiraman dars boshida ko'rsatilgan asosiy tamoyillar bilan ko'p tarmoqli ma'lumotlar tuzilmalari haqida umumiy. O'ylaymanki, tomoshabinlar iplar nima ekanligini bilishadi va qulflar bilan tanish. Ushbu asosiy bilimlarga asoslanib, men qulflanmagan ma'lumotlar tuzilmalari haqida gapiraman. Men xotirani boshqarish kabi mavzularga to'xtalib, ushbu sohadagi eng muhim muammolar haqida umumiy ma'lumot beraman. Menimcha, MS navbatidan ko'ra murakkabroq narsa bo'lmaydi.

Aleksey: Maktabda sinfingiz oxirida ikkilamchi ma'lumotlar tuzilmalari haqida dars berishni rejalashtiryapsizmi?

Michael: Men ularni eslatib o'taman, lekin men ularga ko'p vaqt sarflamayman. Hydra hisoboti ularga bag'ishlanadi. U oxir-oqibat uni Java-ga aylantirgan loyihani qamrab oladi, shuningdek, Jo Δ°sraelevich bilan LCRQ navbatining ikkilamchi variantini yaratish va ikki tomonlama ma'lumotlar tuzilmalari uchun deyarli universal dizaynni yaratish uchun ishlaydi.

Aleksey: Shunday qilib, maktabdagi ma'ruza yangi boshlanuvchilar uchun tavsiya etilishi mumkin va Hydra-da ikki tomonlama ma'lumotlar tuzilmalari bo'yicha ma'ruza - allaqachon tajribaga ega bo'lgan odamlar uchun?

Michael: Agar noto'g'ri bo'lsam, meni to'g'rilang, lekin Hydra auditoriyasi juda xilma-xil bo'ladi, jumladan Java mutaxassislari va umuman olganda, ko'p bosqichli dasturlash bilan shug'ullanmagan odamlar. 

Vitaliy: Ha, bu haqiqat.

Aleksey: Hech bo'lmaganda shunday deb umid qilamiz.

Michael: Bunday holda, men ushbu suhbatni boshlaganimizdek muammoga duch kelaman: hisobotni texnik tafsilotlarga etarlicha boy va barcha tinglovchilar uchun ochiq qilish uchun qanday qilish kerak.

Vitaliy: Siz ma'ruza o'qiganingizdek hisobot berasizmi? Ya'ni, tinglovchilar bilan gaplashish va vaziyatga moslashish?

Michael: Bu shunday bo'lmaydi deb qo'rqaman, chunki hisobotda slaydlar bo'ladi. Tinglovchilar dastlab turli tillarda gaplashganda slaydlar muhim ahamiyatga ega. Ko'pchilik meni ingliz tilida tushunishga qiynaladi, ayniqsa men juda tez gapirsam. Men bu mavzularni tanladim, chunki Pyotr Kuznetsov SPTDC maktabida blokirovkasiz ma'lumotlar tuzilmalari haqida gapirishni so'radi; va keyin menga Java foydalanuvchilari guruhi konferentsiyasi uchun hisobot kerak edi va men Java dasturchilari uchun maxsus qiziqish uyg'otadigan narsani tanlamoqchi edim. Eng oson yo'li Java kutubxonasidagi u yoki bu tarzda mening qo'limga ega bo'lgan narsalar haqida gapirish edi. 

Aleksey: Bizning taxminimizcha, Hydra-dagi tomoshabinlar blokirovkasiz dasturlash haqida allaqachon bilishadi va ehtimol bu sohada tajribaga ega. Ammo bu faqat taxmin, konferentsiyaning o'zida vaziyat aniqroq bo'ladi. Qanday bo'lmasin, vaqtingiz uchun rahmat. Ishonchim komilki, suhbat o'quvchilarimiz uchun juda qiziqarli bo'ladi. Katta rahmat!

Vitaliy: Rahmat. 

Michael: Siz bilan Sankt-Peterburgda uchrashishdan xursand bo'laman. 

Aleksey: Bizda ham go'zal shahar bor. Hech qachon shu yerda bo'lganmisiz?

Michael: Yo'q, men hech qachon Rossiyada bo'lmaganman. Lekin Sankt-Peterburg har doim men hali bo'lmagan joylar ro'yxatida bo'lgan, lekin men haqiqatan ham borishni xohlayman, shuning uchun taklifdan juda xursand bo'ldim. 

Aleksey: Aytgancha, bizda ma'ruzachilar uchun ekskursiyalar dasturi bo'ladi. Suhbatingiz uchun katta rahmat, kuningiz xayrli o'tsin!

Maykl bilan suhbatni 2019-yil 11-12-iyul kunlari Sankt-Peterburgda boβ€˜lib oβ€˜tadigan Hydra 2019 konferensiyasida davom ettirishingiz mumkin. U hisobot bilan keladi "Dual ma'lumotlar tuzilmalari". Chiptalarni sotib olish mumkin rasmiy saytida.

Manba: www.habr.com

a Izoh qo'shish