"Matokeo ya uhakiki ni ya kuchapishwa tu, nia halisi ya kazi ni ya urembo." Mahojiano mazuri na Michael Scott

"Matokeo ya uhakiki ni ya kuchapishwa tu, nia halisi ya kazi ni ya urembo." Mahojiano mazuri na Michael Scott Michael Scott - kwa miaka 34 kama profesa wa Sayansi ya Kompyuta katika Chuo Kikuu cha Rochester, na nyumbani kwake Chuo Kikuu cha Wisconsin-Madison alikuwa mkuu kwa miaka mitano. Yeye hutafiti na kuwafundisha wanafunzi kuhusu programu sambamba na kusambazwa na muundo wa lugha.

Ulimwengu unamjua Michael kutoka kwa kitabu cha maandishi "Pragmatiki ya Lugha ya Programu", vipi kuhusu kazi "Algorithms ya ulandanishi inayoweza kusambazwa kwenye vichakataji vingi vya kumbukumbu iliyoshirikiwa" alipokea Tuzo la Dijkstra kama moja ya maarufu katika uwanja wa kompyuta iliyosambazwa. Unaweza pia kumjua kama mwandishi wa algorithm hiyo hiyo Michael-Scott.

Pamoja na Doug Lee, alitengeneza algoriti zisizozuia na foleni za usawazishaji ambazo zinawezesha maktaba za Java. Utekelezaji "Muundo wa data mbili" katika JavaSE 6 iliboresha utendaji kwa mara 10 ThreadPoolExecutor.

Yaliyomo:

  • Kazi ya mapema, Chuo Kikuu cha Rochester. Mradi wa Charlotte, lugha ya Lynx;
  • IEEE Scalable Coherent Interface, kufunga MCS;
  • Kuishi katika ulimwengu unaobadilika kila wakati;
  • Je, wanafunzi wanakuwa wajinga? Mitindo ya kimataifa, kimataifa;
  • Kufanya kazi kwa ufanisi na wanafunzi;
  • Jinsi ya kuendelea na maandalizi ya kozi mpya na vitabu;
  • Viungo kati ya biashara na wasomi;
  • Utekelezaji wa vitendo wa mawazo. MCS, MS, CLH, JSR 166, kufanya kazi na Doug Lee na zaidi;
  • Kumbukumbu ya shughuli;
  • Usanifu mpya. Ushindi wa kumbukumbu ya shughuli iko karibu;
  • Kumbukumbu isiyo na tete, Optane DIMM, vifaa vya haraka sana;
  • Mwenendo mkubwa unaofuata. Miundo ya data mbili. Hydra.

Mahojiano hayo yanafanywa na:

Vitaly Aksenov - kwa sasa ni postdoc katika IST Austria na mwanachama wa Idara ya Teknolojia ya Kompyuta katika Chuo Kikuu cha ITMO. Inafanya utafiti katika uwanja wa nadharia na mazoezi ya miundo ya data ya ushindani. Kabla ya kufanya kazi katika IST, alipata PhD yake kutoka Chuo Kikuu cha Paris Diderot na Chuo Kikuu cha ITMO chini ya usimamizi wa Profesa Peter Kuznetsov.

Alexey Fedorov - Mtayarishaji katika Kikundi cha JUG Ru, kampuni ya Kirusi inayoandaa mikutano ya watengenezaji. Alexey alishiriki katika utayarishaji wa mikutano zaidi ya 50, na wasifu wake unajumuisha kila kitu kutoka kwa nafasi ya mhandisi wa maendeleo huko Oracle (JCK, Java Platform Group) hadi nafasi ya msanidi programu huko Odnoklassniki.

Vladimir Sitnikov - Mhandisi katika Netcracker. Miaka kumi ya kazi juu ya utendaji na upunguzaji wa NetCracker OS, programu inayotumiwa na waendeshaji wa mawasiliano ya simu ili kuotosha michakato ya usimamizi wa vifaa vya mtandao na mtandao. Ninavutiwa na masuala ya utendaji wa Java na Oracle Database. Mwandishi wa zaidi ya maboresho dazeni ya utendakazi katika kiendeshi rasmi cha PostgreSQL JDBC.

Kazi ya mapema, Chuo Kikuu cha Rochester. Mradi wa Charlotte, lugha ya Lynx.

Alex: Kuanza, nilitaka kukuambia kwamba nchini Urusi sisi sote tunapenda Sayansi ya Kompyuta, Sayansi ya Data na algorithms. Ni uchafu kabisa. Tumesoma kila kitu kitabu na Cormen, Leiserson na Rivest. Kwa hiyo, mkutano ujao, shule na mahojiano haya yenyewe yanapaswa kuwa maarufu sana. Tulipokea maswali mengi kwa mahojiano haya kutoka kwa wanafunzi, watayarishaji programu, na wanajamii, kwa hivyo tunashukuru sana kwa fursa hii. Sayansi ya Kompyuta inapata upendo sawa huko Merika?

Michael: Uwanja wetu ni wa aina mbalimbali, una mielekeo mingi, na unaathiri jamii kwa njia nyingi tofauti kiasi kwamba ni vigumu kwangu kukupa jibu la uhakika. Lakini ukweli ni kwamba imeleta mabadiliko makubwa sana katika biashara, tasnia, sanaa na jamii kwa ujumla katika kipindi cha miaka 30 iliyopita.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Wacha tuanze na kitu cha mbali. Katika vyuo vikuu vingi kuna kitu kama utaalamu katika eneo fulani. Kwa Chuo Kikuu cha Carnegie Mellon hii ni kompyuta sambamba, kwa MIT ni cryptography, roboti na multithreading. Kuna utaalam kama huo katika Chuo Kikuu cha Rochester?

Michael: Kuwa mkweli, ningesema kwamba CMU na MIT wana utaalam katika maeneo yote. Idara yetu daima imekuwa ikizingatia zaidi akili ya bandia. Nusu ya watu wanaotufanyia kazi wanajishughulisha na AI au mwingiliano wa kompyuta ya binadamu - hisa hii ni ya juu kuliko idara zingine, na imekuwa hivyo kila wakati. Lakini nilipokuwa chuo kikuu, sikuwa na kozi yoyote katika AI, na sikuwahi kufanya kazi katika uwanja huu. Kwa hivyo idara yangu imebobea katika shida ambayo sina uhusiano nayo. Faraja ni kwamba tatizo la pili muhimu zaidi kwa idara yetu ni programu sambamba na yenye nyuzi nyingi, yaani, utaalam wangu.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Ulianza kufanya kazi katika Sayansi ya Kompyuta wakati uwanja wa upangaji wa nyuzi nyingi ulikuwa unaibuka. Orodha ya machapisho yako inaonyesha kwamba kazi zako za kwanza zilishughulikia masuala mbalimbali kwa haki: usimamizi wa kumbukumbu katika mifumo yenye nyuzi nyingi, mifumo ya faili iliyosambazwa, mifumo ya uendeshaji. Kwa nini matumizi mengi kama haya? Je, umekuwa ukijaribu kutafuta nafasi yako katika jumuiya ya watafiti?

Michael: Kama mwanafunzi, nilishiriki Mradi wa Charlotte katika Chuo Kikuu cha Wisconsin, ambapo moja ya mifumo ya uendeshaji iliyosambazwa ya kwanza ilitengenezwa. Huko nilifanya kazi pamoja na Rafael Finkel (Raphael Finkel) na Marvin Solomon (Marvin Solomon) Tasnifu yangu ilijitolea katika ukuzaji wa lugha ya programu ya mfumo kwa mifumo inayosambazwa - sasa kila mtu ameisahau, na asante Mungu. Niliunda lugha ya programu ya Lynx, ambayo ilikusudiwa kurahisisha kuunda seva za mfumo wa uendeshaji uliosambazwa kwa urahisi. Kwa kuwa wakati huo nilijihusisha zaidi na mifumo ya uendeshaji, nilifikiri kwamba kazi yangu ingehusishwa hasa nayo. Lakini Rochester ilikuwa chuo kikuu kidogo sana, na kwa sababu hii, vikundi tofauti huko viliingiliana kwa karibu sana. Hakukuwa na watu dazeni wa mifumo mingine ya kufanya kazi pale ili nizungumze nao, kwa hivyo mawasiliano yangu yote yalikuwa na watu waliofanya kazi katika maeneo tofauti kabisa. Nilifurahiya sana, kuwa mwanariadha wa pande zote ni faida kubwa kwangu. Ikiwa tunazungumza mahsusi juu ya miundo ya data yenye nyuzi nyingi na algorithms ya maingiliano, basi nilianza kuzifanyia kazi kabisa kwa bahati mbaya.

IEEE Scalable Coherent Interface, kufunga MCS.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Unaweza kutuambia zaidi kidogo kuhusu hili?

Michael: Hii ni hadithi ya kuchekesha ambayo huwa sichoki kusimulia kila mtu. Ilifanyika kwenye mkutano ASPLOS huko Boston - hii ilikuwa mwishoni mwa miaka ya 80 au mapema 90s. John Mellor-Crummey (John Mellor-Crummey), mhitimu wa kitivo chetu. Nilimjua, lakini hatukuwa tumefanya utafiti wa pamoja hapo awali. Mary Vernon (Mary Vernon) kutoka Wisconsin walitoa hotuba kuhusu mfumo wa vichakataji vingi walivyokuwa wakitengeneza huko Wisconsin: Wisconsin Multicube. Multicube hii ilikuwa na utaratibu wa kusawazisha katika kiwango cha maunzi iitwayo Q on Sync Bit, na baadaye ilibadilishwa jina na kuitwa Q on Lock Bit kwa sababu ilisikika kama jibini la Colby, ambalo lilikuwa pun. Ikiwa una nia ya mifumo ya usomaji mwingi, labda unajua kuwa Colby hatimaye ikawa injini ya maingiliano ya kiwango cha IEEE Scalable Coherent Interface. Huu ulikuwa utaratibu wa kufunga ambao uliunda viashiria kutoka kwa kashe moja hadi nyingine kwa kiwango cha maunzi ili kila kishikilia kufuli ajue ni zamu ya nani. Wakati mimi na John tuliposikia juu ya hili, tulitazamana na kusema: kwa nini kufanya hivi kwa kiwango cha vifaa? Je, jambo kama hilo haliwezi kupatikana kwa kulinganisha-na-kubadilishana? Tulichukua daftari moja lililokuwa darasani na kuliandika MCS inazuia, huku Mary akiendelea na ripoti yake. Baadaye, tuliitekeleza, tukajaribu, wazo hilo lilifanikiwa, na tukachapisha nakala hiyo. Wakati huo, kwangu, mada hii ilionekana kuwa usumbufu wa kufurahisha, baada ya hapo nilipanga kurudi kwenye mifumo ya uendeshaji. Lakini basi shida nyingine kwa njia zile zile iliibuka, na mwishowe ulandanishi, usomaji mwingi, na miundo ya data ikawa utaalamu wangu. Kama unaweza kuona, haya yote yalitokea kwa bahati mbaya.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Nimekuwa nikifahamu kuhusu kuzuia MCS kwa muda mrefu, lakini hadi sasa sikujua kuwa ni kazi yako, na sikuelewa kuwa ni kifupi cha majina yako ya mwisho.

Jinsi ya kuishi katika ulimwengu unaobadilika kila wakati?

Alex: Nina swali juu ya mada inayohusiana. Miaka 30 au 40 iliyopita kulikuwa na uhuru zaidi katika utaalam tofauti. Ikiwa unataka kuanza kazi katika mifumo mingi ya kusoma au kusambazwa, unakaribishwa, ikiwa unataka kuingia kwenye mifumo ya uendeshaji, hakuna shida. Katika kila eneo kulikuwa na maswali mengi ya wazi na wataalam wachache. Utaalam mwembamba sasa umeibuka: hakuna wataalam tu juu ya mifumo ya uendeshaji kwa ujumla, kuna wataalam wa mifumo ya mtu binafsi. Ni sawa na mifumo mingi ya kusoma na kusambazwa. Lakini tatizo ni kwamba maisha yetu hayana mwisho; Jinsi ya kuishi katika ulimwengu huu mpya?

Michael: Sisi sio maalum katika suala hili jambo lile lile lilifanyika mara moja katika maeneo mengine. Nilikuwa na bahati kwamba nilianza kufanya kazi katika Sayansi ya Kompyuta wakati shamba lilikuwa katika miaka yake ya "ujana". Misingi mingine ilikuwa tayari imewekwa, lakini kila kitu kilikuwa bado changa sana. Fursa hii haiji mara nyingi. Uhandisi wa umeme umekuwepo kwa muda mrefu sana, fizikia hata tena, hisabati karibu tangu mwanzo wa wakati. Lakini hii haimaanishi kuwa hakuna mtu anayefanya uvumbuzi wa kuvutia katika hisabati tena. Bado kuna matatizo mengi ya wazi, lakini wakati huo huo, zaidi inahitaji kujifunza. Uko sawa kutambua kwamba sasa kuna utaalam mwingi zaidi kuliko hapo awali, lakini hii inamaanisha tu kwamba tunajikuta katika hali sawa na maeneo mengine mengi ya shughuli za wanadamu.

Alex: Ninavutiwa na kipengele cha vitendo zaidi cha suala hapa. Nina historia ya hisabati, na wakati wa masomo yangu mara nyingi nilihudhuria mikutano na kufanya kazi kwenye mada mbalimbali za kisayansi. Niligundua kwamba hakuna mtu katika hadhira aliyeelewa ripoti zangu, na kwa njia hiyo hiyo, ripoti za watu wengine zilieleweka kwao tu. Sivyo hivyo katika mada za hali ya juu, lakini pindi tu unapoanza kutafakari jambo fulani, hadhira haiwezi tena kukufuata. Je, unashughulikiaje hili?

Michael: Sio mafanikio kila wakati. Hivi majuzi nilitayarisha ripoti ambayo niliingia ndani sana katika maelezo ya kiufundi. Hotuba ilipoendelea, ilionekana wazi kwamba wengi wa wasikilizaji hawakunielewa, kwa hiyo nililazimika kuzoea hali hiyo kwa kurukaruka. Slaidi hazikuweza kubadilishwa, kwa hivyo hazikuwa nzuri sana - kwa hivyo, kwa ujumla, ninajaribu kutotumia slaidi. Kwa ujumla, ushauri wangu ni kuzingatia hadhira yako. Unahitaji kujua unazungumza na nani, kiwango chao cha maarifa ni nini, na kile wanachohitaji kusikia ili kuthamini kazi yako.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Unaweza kutupa dokezo kuhusu mhadhara huu ulihusu nini?

Michael: Kusema kweli, ningependelea kutopanua mada hii ili kuwaacha watu wanaohusika wasijulikane. Jambo ni kwamba mara nyingi tunaingia ndani sana katika ugumu wa shida tunayoshughulikia, kwa hivyo inakuwa ngumu kwetu kuelezea mwanzoni mwa mazungumzo kwa nini shida ni ya kupendeza na muhimu na jinsi inavyohusiana na maswala ambayo watazamaji tayari wanajua. Kulingana na uchunguzi wangu, wanafunzi wana wakati mgumu zaidi kujifunza ujuzi huu. Na hii pia ilikuwa hatua dhaifu ya ripoti yangu ya hivi karibuni. Ripoti iliyopangwa vizuri inapaswa, tangu mwanzo kabisa, kupata mawasiliano na watazamaji, kuwaelezea shida ni nini na jinsi inahusiana na mada ambayo tayari inajulikana. Jinsi utangulizi huu ulivyo wa kiufundi inategemea hadhira. Ikiwa ni motley kabisa, basi ripoti inaweza kuwa ya hatua nyingi. Utangulizi unapaswa kufikiwa na kila mtu, na mwishowe kipande hicho kinaweza kisiweze kukufuata, lakini watu wanaofahamu uwanja wako wataweza kubaini.

Je, wanafunzi wanakuwa wajinga? Mitindo ya kimataifa, kimataifa.

Alex: Umekuwa ukiangalia wanafunzi kwa miongo kadhaa. Je! wanafunzi wanapata ujinga au nadhifu kutoka kwa muongo hadi muongo au mwaka hadi mwaka? Huko Urusi, maprofesa hulalamika kila wakati kwamba wanafunzi wanapata dumber kila mwaka, na haijulikani wazi nini cha kufanya juu yake.

Michael: Kwa kweli unaweza kusikia hasi nyingi kutoka kwa sisi wazee. Bila kufahamu, tuna tabia ya kutarajia wanafunzi kuchukua uzoefu wa miaka 30 ambao tayari tunayo. Ikiwa nina ufahamu wa kina kuliko nilivyopata mwaka 1985, kwa nini wanafunzi hawana? Labda kwa sababu wana miaka 20, unaonaje? Nadhani mabadiliko muhimu zaidi katika miongo ya hivi karibuni yamekuwa katika muundo wa idadi ya watu: sasa tuna wanafunzi wengi zaidi wa kimataifa, isipokuwa Wakanada. Kulikuwa na Wakanada wengi kwa sababu tuko karibu sana na mpaka wa Kanada na wanafunzi kutoka huko wanaweza kusafiri nyumbani wikendi. Lakini sasa kuna vyuo vikuu vingi vyema nchini Kanada, na Wakanada wanapendelea kusoma hapa kwa kiasi kikubwa wachache wao huja USA.

Alex: Je, unafikiri huu ni mtindo wa ndani au wa kimataifa?

Michael: Sikumbuki ni nani hasa, lakini mtu alisema kwamba ulimwengu ni tambarare. Uwanja wetu umekuwa wa kimataifa zaidi. Mikutano ya ACM Hapo awali, walifanyika pekee ndani ya Marekani, kisha wakaamua kuwashikilia mara moja kila baada ya miaka 4 katika nchi nyingine, na sasa wanafanyika duniani kote. Mabadiliko haya yaliathiri zaidi IEEE, kwani siku zote imekuwa shirika la kimataifa kuliko ACM. Na kuna viti vya programu kutoka China, India, Urusi, Ujerumani na nchi nyingine nyingi, kwa sababu kuna mengi yanayoendelea kila mahali sasa.

Alex: Lakini, pengine, kuna baadhi ya vipengele hasi vya utandawazi huo?

Michael: Ningesema kwamba mambo yote mabaya hayahusiani na teknolojia, bali na siasa. Hapo zamani za kale, shida kuu ilikuwa ukweli kwamba Merika ilikuwa ikiiba watu wenye akili zaidi na wenye talanta kutoka nchi kote ulimwenguni. Na sasa tatizo kuu ni michezo ya kisiasa kati ya nchi mbalimbali kuhusu visa na uhamiaji.

Alex: Hiyo ni, vikwazo na mambo kama hayo. Ni wazi.

Vladimir: Binafsi, ninavutiwa na mbinu unayotumia unapofundisha somo jipya kwa wanafunzi. Kuna chaguo tofauti: unaweza kujaribu kwanza kabisa kuwahamasisha kujaribu kitu kipya, au unaweza kulipa kipaumbele zaidi kwa maelezo ya jinsi teknolojia fulani inavyofanya kazi. Nini unapendelea?

Kufanya kazi kwa ufanisi na wanafunzi

Alex: Na jinsi ya kupata usawa wa damn kati ya kwanza na ya pili?

Michael: Tatizo ni kwamba madarasa huwa hayaendi jinsi ningependa. Kwa kawaida mimi huwapa wanafunzi nyenzo za usomaji mapema ili waweze kuzama ndani yake, kuzielewa kwa kadiri ya uwezo wao, na kutunga maswali kuhusu sehemu hizo ambazo hawakuweza kuelewa. Kisha darasani unaweza kuzingatia nyakati ngumu zaidi na kuzichunguza pamoja. Hivi ndivyo ninavyopenda kufundisha madarasa zaidi. Lakini kutokana na mzigo ambao sasa upo kwa wanafunzi, si mara zote ninaweza kuhakikisha kwamba wanajiandaa mapema. Kama matokeo, lazima utoe wakati mwingi zaidi kwa urejeshaji wa jumla wa nyenzo kuliko vile ungependa. Licha ya hili, ninajaribu kuweka madarasa yetu maingiliano. Vinginevyo, ni rahisi kurekodi video mara tu wanafunzi wanaweza kutazama wakiwa nyumbani. Hatua ya madarasa ya kuishi ni mwingiliano wa binadamu. Darasani, napendelea kutumia chaki na ubao badala ya slaidi, isipokuwa katika hali fulani wakati mchoro ni changamano sana kuonyeshwa ubaoni. Shukrani kwa hili, sihitaji kushikamana na mpango mgumu wa somo. Kwa kuwa hakuna utaratibu mkali wa kutoa nyenzo, hii huniruhusu kuifanya ifae hadhira kulingana na maswali ninayopokea. Kwa ujumla, ninajaribu kufanya madarasa kuwa maingiliano iwezekanavyo, ili nyenzo ninazowasilisha inategemea maswali ambayo ninaulizwa.

Vladimir: Ni nzuri. Kwa uzoefu wangu, ni vigumu kupata wasikilizaji kuuliza maswali. Hata ukiuliza mapema kuuliza maswali yoyote, haijalishi ni mjinga au mwerevu kiasi gani, bado wako kimya. Je, unashughulikiaje hili?

Michael: Utacheka, lakini ukisimama kimya kwa muda wa kutosha, mapema au baadaye kila mtu atakosa raha na mtu atauliza swali. Au unaweza kuuliza swali rahisi la kiufundi kwa jibu la ndiyo au hapana ili kubaini ikiwa watu wanaelewa kilichosemwa hivi punde. Kwa mfano, kuna mbio za data katika mfano hapo juu? Nani anafikiri hivyo? Nani hafikirii? Nani haelewi chochote, kwa sababu kwa jumla nusu ya mikono ilipanda juu?

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Na ikiwa umejibu vibaya, unafukuzwa darasani :)

Michael: Ikiwa haujajibu chochote, basi unapaswa kuuliza swali. Nahitaji kuelewa ni nini hasa mwanafunzi anahitaji kujua ili kujibu swali nililouliza hivi punde. Nahitaji wanisaidie kuwasaidia. Niko tayari kuzoeana nao ili waelewe tatizo. Lakini ikiwa sijui kinachoendelea katika vichwa vyao, siwezi kufanya hivyo. Na ikiwa hutawapa wanafunzi amani kwa muda mrefu wa kutosha, wakati mwingine mwishoni wanauliza maswali sahihi, yaani, wale ambao huniruhusu kuona nini hasa kinachoendelea katika vichwa vya wanafunzi. 

Alex: Je, maswali haya wakati mwingine husababisha mawazo ambayo wewe mwenyewe hukuwa umeyafikiria hapo awali? Je, ni zisizotarajiwa? Je, wanakuruhusu kuangalia tatizo kwa mtazamo mpya?

Michael: Kuna maswali ambayo hufungua njia mpya ya kuwasilisha nyenzo. Mara nyingi kuna maswali ambayo husababisha shida za kupendeza ambazo sikupanga kuzungumza. Wanafunzi mara nyingi huniambia kuwa nina tabia ya kutoka nje ya mada hii inapotokea. Na, kulingana na wao, mara nyingi hii ndio sehemu ya kuvutia zaidi ya somo. Mara chache sana, mara chache tu, wanafunzi waliuliza maswali ambayo yalisababisha mwelekeo mpya katika utafiti na kukua kuwa makala. Hii hutokea mara nyingi zaidi katika mazungumzo na wanafunzi badala ya wakati wa madarasa, lakini mara kwa mara ilifanyika wakati wa madarasa. 

Alex: Kwa hivyo wanafunzi walikuuliza maswali kwa msingi ambao iliwezekana kuchapisha nakala?

Michael: Ndiyo. 

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Je, unakuwa na mazungumzo haya na wanafunzi mara ngapi? Je, ni lini wanataka kujifunza zaidi ya yale yaliyoshughulikiwa wakati wa somo?

Michael: Na wanafunzi wangu waliohitimu - wakati wote. Nina karibu 5 au 6 kati yao, na tunajadili kitu nao kila wakati. Na mazungumzo ya aina hii na wanafunzi wanaohudhuria tu madarasa yangu si ya kawaida sana. Ingawa natamani hii ifanyike mara nyingi zaidi. Ninashuku kuwa wanaogopa tu kuja kwa kitivo wakati wa saa za kazi. Kila muhula, baadhi ya wanafunzi wanaweza kushinda kizuizi hiki cha kisaikolojia, na daima ni ya kuvutia sana kuzungumza nao baada ya darasa. Kweli, ikiwa wanafunzi wote wangekuwa jasiri, nisingekuwa na wakati wa kutosha. Kwa hivyo labda kila kitu kinafanya kazi kama inavyopaswa. 

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Unawezaje kupata muda wa kuwasiliana na wanafunzi? Nijuavyo, huko USA walimu wana kazi nyingi - kuomba ruzuku na kadhalika. 

Michael: Kusema kweli, kufanya kazi na wanafunzi ni kipengele cha kazi yangu ninachofurahia zaidi. Kwa hivyo nina motisha ya kutosha kwa hili. Muda mwingi ninaoutumia ofisini kwangu hutumika kwa mikutano ya kila aina. Ni majira ya joto sasa, kwa hivyo ratiba yangu haina shughuli nyingi, lakini wakati wa mwaka wa shule, kila siku kutoka 9 hadi 17 nina kila kitu. Kazi ya utafiti, hakiki, ruzuku - kwa haya yote kuna jioni na wikendi tu. 

Jinsi ya kuendelea na maandalizi ya kozi mpya na vitabu.

Alex: Je, kwa sasa unaendelea kufundisha kozi zozote ambazo umekuwa ukifundisha kwa muda mrefu? Kitu kama utangulizi wa Sayansi ya Kompyuta.

Michael: Jambo la kwanza linalokuja akilini hapa ni kozi ya lugha za programu. 

Alex: Toleo la leo la kozi hii lina tofauti gani na lilivyokuwa miaka 10, 20, 30 iliyopita? Labda kinachovutia zaidi hapa sio maelezo ya kozi fulani, lakini mwenendo wa jumla.

Michael: Kozi yangu ya lugha za programu haikuwa ya kawaida wakati nilipoiunda. Nilianza kuisoma mwishoni mwa miaka ya 1980, nikichukua nafasi ya mwenzangu, Doug Baldwin (Doug Baldwin) Mada ya kozi hiyo ilihusiana tu na utaalamu wangu, lakini alipoondoka, nilikuwa mtahiniwa bora wa kufundisha kozi hiyo. Sikupenda kitabu chochote cha kiada kilichokuwepo wakati huo, kwa hivyo niliishia kuandika kitabu cha kozi hii mwenyewe. (Maelezo ya mhariri: tunazungumza juu ya kitabu "Pragmatiki ya Lugha ya Programu") Sasa inatumika katika vyuo vikuu zaidi ya 200 duniani kote. Mbinu yangu si ya kawaida kwa kuwa inachanganya kimakusudi matatizo ya muundo na utekelezaji wa lugha, na inatilia maanani sana mwingiliano kati ya vipengele hivi katika maeneo yote yanayowezekana. Mbinu ya kimsingi imebakia bila kubadilika, kama vile dhana nyingi za kimsingi: uondoaji, nafasi za majina, modularity, aina. Lakini seti ya lugha ambayo dhana hizi zinaonyeshwa imebadilika kabisa. Wakati kozi ilipoanzishwa, kulikuwa na mifano mingi katika Pascal, lakini leo wanafunzi wangu wengi hata hawajasikia kuhusu lugha hii. Lakini wanajua Swift, Go, Rust, kwa hivyo lazima nizungumze juu ya lugha zinazotumika leo. Pia, wanafunzi sasa wamefahamu vyema lugha za uandishi, lakini nilipoanza kufundisha kozi hii, ilihusu lugha zilizokusanywa. Sasa tunahitaji nyenzo nyingi kuhusu Python, Ruby na hata Perl, kwa sababu hii ndiyo kanuni imeandikwa katika siku hizi, na kuna mambo mengi ya kuvutia yanayotokea katika lugha hizi, ikiwa ni pamoja na katika uwanja wa kubuni lugha. 

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Kisha swali langu linalofuata litahusiana na lililotangulia. Jinsi ya kuendelea katika eneo hili? Ninashuku kuwa kusasisha kozi kama hii kunahitaji kazi nyingi - unahitaji kuelewa lugha mpya, kuelewa maoni kuu. Je, unafanyaje hili?

Michael: Siwezi kujivunia kwamba mimi hufaulu kila wakati 100%. Lakini mara nyingi mimi hufanya kile ambacho kila mtu hufanya - kusoma mtandao. Ikiwa ninataka kuelewa Rust, nina Google, nenda kwenye ukurasa wa Mozilla na usome mwongozo uliowekwa hapo. Hii ni sehemu ya mambo yanayotokea katika maendeleo ya kibiashara. Ikiwa tunazungumza juu ya sayansi, basi unahitaji kufuata ripoti kwenye mikutano kuu. 

Uhusiano kati ya biashara na wasomi

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Hebu tuzungumze kuhusu uhusiano kati ya biashara na utafiti wa kisayansi. Katika orodha yako ya kazi, nimepata nakala kadhaa juu ya mshikamano wa kache. Ninaelewa kuwa algoriti za kache hazikuwa thabiti wakati zilipochapishwa? Au haijaenea vya kutosha. Mawazo yako yalikuwa ya kawaida kwa kiasi gani kiutendaji?

Michael: Sina hakika kabisa ni machapisho gani unayozungumzia. Nimefanya kazi kidogo na wanafunzi wangu Bill Bolosky (William Bolosky) na Leonidas Kontotanassis (Leonidas Kontothanassis) mapema miaka ya 1990 juu ya usimamizi wa kumbukumbu wa mashine za Neumann. Wakati huo, biashara bado haikuwa na ufahamu wa jinsi ya kufanya vizuri mfumo wa multiprocessor: inafaa kuunda msaada wa kupata kumbukumbu ya mbali kwenye kiwango cha vifaa, inafaa kufanya kumbukumbu kusambazwa, inawezekana kupakia kashe kutoka kumbukumbu ya mbali, au ni muhimu kuhamisha kurasa kwenye mfumo wa uendeshaji? Bill na Leonidas wote walifanya kazi katika eneo hili na waligundua mbinu bila upakiaji wa akiba ya mbali. Hii haikuhusiana moja kwa moja na mshikamano wa kache, lakini bado ilikuwa kazi ya usimamizi wa kumbukumbu ya NUMA, na baadaye mbinu za kisasa za uwekaji wa ukurasa katika mifumo ya uendeshaji ya kisasa zilikua kutoka kwa hili. Kwa ujumla, Bill na Leonidas walifanya kazi muhimu, ingawa hawakuwa na ushawishi mkubwa katika eneo hili - kulikuwa na watu wengine wengi wanaofanya kazi sawa wakati huo. Baadaye, nilifanya kazi kwenye mada inayohusiana na mshikamano wa kache katika muktadha wa kumbukumbu ya shughuli ya vifaa. Kikundi nilichofanya kazi nacho kwenye tatizo hili kiliishia kupokea hati miliki kadhaa. Kuna maoni kadhaa ya kupendeza nyuma yao, lakini sidhani kama yatakamilika kutekelezwa kwa vitendo. Njia moja au nyingine, ni ngumu kwangu kuhukumu faida yao. 

Alex: Katika suala hili, swali la kibinafsi zaidi: ni muhimu sana kwako kwamba mawazo yako yanatekelezwa? Au hufikirii juu yake?

Michael: Ninapenda kuuliza swali hili katika mahojiano na watu wengine, waombaji au watahiniwa wanaotaka kujiunga na kitivo. Sidhani kama kuna jibu sahihi kwa swali hili. Watu wanaofanya mambo mazuri wanaweza kuwa na motisha tofauti sana. Ninavutiwa na matatizo kwa sababu mimi binafsi nayapata ya kuvutia, si kwa sababu ya manufaa yao ya vitendo. Lakini kwa upande mwingine, wakati kitu cha kufurahisha bado kinapata matumizi, ninaipenda sana. Kwa hivyo si rahisi hapa. Lakini mwanzoni mwa kazi yangu, bado sisukumwi na wazo la matumizi ya mwisho ulimwenguni, lakini na maelewano ya wazo na hamu ya kulichunguza na kuona kile kinachotokea. Ikiwa mwisho inatoa matokeo ya vitendo, kubwa. 

Alex: Kwa sababu ya elimu na uzoefu wako, una uwezo bora zaidi kuliko wengi kuhukumu thamani ya mawazo ya watu wengine. Unaweza kuzilinganisha na kuamua ni ipi inafanya kazi vizuri na ipi. Nina hakika una maoni juu ya vitu ambavyo kwa sasa vinatumiwa katika mazoezi na watengenezaji wakubwa kama Intel. Kwa mtazamo wako, je, mwenendo ambao makampuni haya yanachukua ni sahihi kwa kiasi gani?

Michael: Mazoezi daima yanahusu kile ambacho kinaweza kufanikiwa kibiashara, yaani, kutengeneza faida, na ni bora uulize mtu mwingine kuhusu hilo. Kazi yangu mara nyingi husababisha machapisho, na katika uwanja wa mifumo ya uendeshaji hutathminiwa kulingana na viashiria vya utendaji: kasi, matumizi ya nishati, ukubwa wa kanuni. Lakini sikuzote ilionekana kwangu kuwa matokeo haya ya majaribio huongezwa kwa nakala tu ili ziweze kuchapishwa, na nia za kweli za watu za kufanya kazi ni za urembo. Watafiti hutathmini ufumbuzi kutoka kwa mtazamo wa kisanii, wanajali jinsi mawazo ni ya kifahari, na wanajaribu kuunda kitu bora zaidi kuliko mbinu zilizopo. Watafiti wanaendeshwa na nia za kibinafsi, za kibinafsi, za uzuri. Lakini huwezi kuandika kuhusu hili katika makala yenyewe; mambo haya si hoja za kamati ya programu. Kwa bahati nzuri, ufumbuzi wa kifahari mara nyingi pia ni wa haraka na wa bei nafuu. Dazeni ya wenzangu na mimi tulijadili mada hii yapata miaka 15 iliyopita na tukaishia kuandika makala kuihusu. Nadhani bado unaweza kuipata sasa, inaitwa "Jinsi ya kutathmini utafiti wa mifumo" au kitu kama hicho, ina waandishi zaidi ya dazeni. Hii ndio nakala pekee ambayo mimi ndiye mwandishi pamoja Sasha Fedorova, kwa hivyo ukitafuta jina lake katika orodha yangu ya machapisho, utapata unachohitaji. Inazungumza juu ya kutathmini utafiti wa mifumo na jinsi umaridadi ni muhimu. 

Alex: Kwa hiyo kuna tofauti kati ya kiwango cha kile kinachochukuliwa kuwa kizuri katika sayansi na katika biashara. Sayansi inatathmini utendaji, matumizi ya nguvu, TDP, urahisi wa utekelezaji, na mengi zaidi. Je! una nafasi ya kufanya aina hii ya utafiti katika chuo kikuu? Je! unayo maabara yenye mashine tofauti na usanifu tofauti ambao unaweza kufanya majaribio?

Michael: Ndiyo, idara yetu ina mashine nyingi tofauti za kuvutia. Mara nyingi wao ni ndogo, tuna nguzo ndogo na mifumo mingi ya multiprocessor na accelerators tofauti. Kwa kuongezea, chuo hicho kina kituo kikubwa cha kompyuta ambacho hutumikia wanasayansi kutoka taaluma kadhaa tofauti. Ina takriban nodi elfu na cores elfu ishirini, zote kwenye Linux. Ikiwa hitaji litatokea, unaweza kununua AWS kila wakati. Kwa hivyo hatuna vizuizi muhimu na vifaa. 

Alex: Ilikuwaje miaka thelathini iliyopita? Kulikuwa na matatizo basi?

Michael: Ilikuwa tofauti kidogo wakati huo. Katikati ya miaka ya 1980, sayansi ilizingatiwa kuwa pungufu ya rasilimali za kompyuta. Ili kurekebisha hali hii, Taasisi ya Kitaifa ya Sayansi (Wakfu wa Kitaifa wa Sayansi) iliunda mpango wa utafiti wa majaribio ulioratibiwa (Utafiti wa Majaribio Ulioratibiwa, CER). Dhamira ya programu ilikuwa kutoa miundombinu ya kompyuta kwa idara za Sayansi ya Kompyuta, na imepata mabadiliko makubwa. Kwa pesa alizotoa, sisi katika Chuo Kikuu cha Rochester tulinunua BBN Butterfly yenye mafundo 1984 mwaka wa 128, huu ulikuwa mwaka mmoja kabla sijafika huko. Wakati huo ulikuwa mfumo mkubwa zaidi wa wasindikaji wengi duniani wenye kumbukumbu ya pamoja. Ilikuwa na wasindikaji 128, kila mmoja kwenye ubao wa mama tofauti, na ilichukua racks nne. Kila processor ilikuwa na megabyte ya kumbukumbu, megabytes 128 za RAM ilikuwa kiasi kisichoweza kufikiria wakati huo. Kwenye mashine hii tulitekeleza kufuli kwa MCS kwa mara ya kwanza. 

Alex: Kwa hiyo, ikiwa ninakuelewa kwa usahihi, basi kwa sasa tatizo la vifaa limetatuliwa? 

Michael: Kwa ujumla, ndiyo. Kuna tahadhari chache: kwanza, ikiwa unafanya usanifu wa kompyuta katika kiwango cha chip, ni vigumu kufanya katika mazingira ya kitaaluma kwa sababu kuna zana bora zaidi za kufanya hivyo katika biashara. Ikiwa unahitaji kitu chochote kidogo kuliko nanomita 10, utalazimika kuagiza kutoka kwa mtu mwingine. Katika eneo hili ni rahisi zaidi kuwa mtafiti katika Intel. Ikiwa unafanya kazi kwenye mawasiliano ya macho kwenye chips au kwenye kumbukumbu ya hali dhabiti, utapata teknolojia katika biashara ambazo bado haziko kwenye sayansi, kwa hivyo lazima uunde miungano. Kwa mfano, Stephen Swanson (Steven Swanson) imeundwa ushirikiano huo kwa teknolojia mpya za kumbukumbu. Fomu hii haifanyi kazi kila wakati, lakini katika hali nyingine inaweza kufanikiwa kabisa. Kwa kuongeza, katika sayansi maendeleo ya mifumo yenye nguvu zaidi ya kompyuta ni ngumu zaidi. Miradi mikubwa zaidi ya kompyuta kubwa kwa sasa nchini Marekani, Japan na Uchina yote inalenga biashara. 

Utekelezaji wa vitendo wa mawazo. MCS, MS, CLH, JSR 166, kufanya kazi na Doug Lee na zaidi.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Tayari umezungumza kuhusu jinsi ulivyoanza kufanya kazi kwenye algoriti za ulandanishi. Una makala mbili maarufu sana kuhusu MCS inazuia ΠΈ Foleni ya Michael-Scott (MS), ambayo kwa maana fulani ilitekelezwa katika Java. (Maelezo ya mhariri: machapisho yote yanaweza kutazamwa ΠΏΠΎ ссылкС) Huko uzuiaji huu ulitekelezwa na mabadiliko kadhaa na ikawa Kufuli ya CHL, na foleni ilitekelezwa kama ilivyokusudiwa. Lakini miaka mingi ilipita kati ya kuchapishwa kwa makala zenu na matumizi yao ya vitendo. 

Alex: Inaonekana kama miaka 10 katika kesi ya foleni.

Michael: Kabla ya vipengele hivi kuonekana kwenye maktaba ya kawaida ya Java?

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Ndiyo. Ulifanya nini ili jambo hili litokee? Au hawakufanya lolote?

Michael: Ninaweza kukuambia jinsi Foleni ya MS iliingia kwenye Java 5. Miaka michache kabla haijatoka, nilifanya kazi na kikundi cha Mark Moyers katika Sun Microsystems katika maabara yao karibu na Boston. Alipanga warsha kwa watu aliowajua ambao walikuwa wakifanya kazi juu ya matatizo ya kuvutia katika multithreading kwa sababu alitaka kupata mada ambayo angeweza kuuza kwa kampuni yao. Hapo ndipo nilipokutana na Doug Lea kwa mara ya kwanza. Mimi na Doug na watu wengine wapatao 25 ​​kutoka Sun tulikuwa pamoja tukijadili wasilisho la Doug JSR 166, ambayo baadaye ikawa java.util.concurrent. Njiani, Doug alisema kwamba angependa kutumia foleni ya MS, lakini kwa hili alihitaji counter kwa idadi ya vipengele kwenye foleni ya interface. Hiyo ni, hii inapaswa kufanywa kwa njia tofauti, atomiki, sahihi na ya haraka. Nilipendekeza tu kuongeza nambari za serial kwenye nodi, kuchukua nambari ya nodi ya kwanza na ya mwisho na kutoa moja kutoka kwa nyingine. Doug alikuna kichwa, akasema β€œkwanini isiwe hivyo,” na akaishia kufanya hivyo. Tulijadili utekelezaji wa mbinu hii kwenye maktaba, lakini Doug alifanya kazi nyingi mwenyewe. Kama matokeo, aliweza kuanzisha usaidizi bora wa kusoma maandishi mengi katika Java. 

Alex: Kwa hivyo, nikielewa kwa usahihi, mbinu ya .size() inapaswa kuwa sehemu ya kiolesura cha kawaida cha foleni, na inapaswa kuwa na uchangamano wa algoriti ya O(1)?

Michael: Ndiyo, na kwa kuongeza hii, counter tofauti inahitajika.

Alex: Kwa sababu ukiita njia ya .size() katika Java, matokeo yanatarajiwa kupatikana mara moja na si kulingana na ukubwa halisi wa mkusanyiko. Ninaona, asante.

Michael: Miaka michache baadaye nilikuwa nikifanya kazi kwenye miundo ya data mbili na mwanafunzi wangu Bill Scherer - kwa kweli, hii ndiyo nitakuwa nikizungumzia ripoti juu ya Hydra. Doug alikuja kwetu na kusema kwamba anaweza kuzitumia katika Mfumo wa Mtekelezaji wa Java. Pamoja na Bill, waliunda utekelezaji mbili, kinachojulikana kama foleni za haki na zisizo za haki. Niliwashauri kuhusu mradi huu, ingawa sikushiriki katika kuandika kanuni halisi. Kama matokeo, kasi ya watekelezaji imeongezeka sana. 

Vladimir: Je, umekumbana na utekelezaji usio sahihi wa kanuni zako au maombi ya kuongeza vipengele vipya? Kwa ujumla, mazoezi yanapaswa kuendana na nadharia, lakini mara nyingi hutofautiana. Tuseme umeandika algorithm, na kwenye karatasi inafanya kazi, lakini watu wanaohusika katika utekelezaji walianza kukuuliza kwa vipengele zaidi au aina fulani ya kurekebisha algorithm. Je, umewahi kuwa na hali kama hizi?

Michael: Mfano pekee ambao mtu alikuja kwangu na kuuliza "jinsi ya kutekeleza" ilikuwa swali la Doug, ambalo tayari nilizungumza. Lakini kumekuwa na matukio machache ambapo mabadiliko ya kuvutia yamefanywa ili kukidhi mahitaji ya vitendo. Kwa mfano, timu ya K42 katika IBM ilibadilisha kufuli ya MCS na kuifanya kiwe kiolesura cha kawaida kwa hivyo hakukuwa na haja ya kupitisha nodi ya foleni na kurudi ili kupata na kutoa taratibu. Shukrani kwa kiolesura hiki cha kawaida, wazo ambalo lilikuwa zuri katika nadharia lilianza kufanya kazi kwa vitendo. Inashangaza kwamba hawakuchapisha makala kuhusu hilo, na ingawa walipokea hati miliki, baadaye waliiacha. Wazo hilo lilikuwa zuri sana, na ninajaribu kulizungumzia kila inapowezekana. 

Kumekuwa na visa vingine ambapo watu wamefanya maboresho kwa algoriti ambazo nimechapisha. Kwa mfano, foleni ya MS ina utaratibu wa usakinishaji wa hatua mbili, ambayo ilimaanisha kuwa kulikuwa na CAS mbili kwenye njia muhimu ya foleni. Juu ya magari ya zamani, CAS walikuwa ghali kabisa. Intel na watengenezaji wengine wameyaboresha vizuri hivi majuzi, lakini mara moja haya yalikuwa maagizo ya mzunguko wa 30, kwa hivyo kuwa na zaidi ya moja kwenye njia muhimu hakukustahili. Matokeo yake, foleni tofauti ilitengenezwa ambayo ilikuwa sawa na foleni ya MS, lakini ambayo ilikuwa na operesheni moja tu ya atomiki kwenye njia muhimu. Hili lilipatikana kutokana na ukweli kwamba katika kipindi fulani cha muda operesheni inaweza kuchukua O(n) muda, badala ya O(1). Haikuwezekana, lakini inawezekana. Hii ilitokea kutokana na ukweli kwamba wakati fulani algorithm ilipitia foleni kutoka mwanzo hadi nafasi ya sasa katika foleni hii. Kwa ujumla, algorithm iligeuka kuwa na mafanikio sana. Nijuavyo, haitumiwi sana, kwa sababu shughuli za atomiki zinahitaji rasilimali chache kuliko hapo awali. Lakini wazo lilikuwa kubwa. Pia napenda sana kazi ya Dave Dice kutoka Oracle. Kila kitu anachofanya ni vitendo sana na anatumia chuma kwa ujanja sana. Alikuwa na mkono katika mengi ya algoriti za ulandanishi zinazofahamu NUMA na miundo ya data yenye nyuzi nyingi. 

Vladimir: Unapoandika algoriti au kufundisha wanafunzi, matokeo ya kazi yako hayaonekani mara moja. Jumuiya inahitaji muda ili kufahamu, tuseme, makala mpya. Algorithm mpya haipati programu mara moja. 

Michael: Ni mbali na wazi mara moja ikiwa makala itakuwa muhimu au la. Nadhani itakuwa ya kuvutia kufanya utafiti wa karatasi ambazo zimeshinda tuzo kwenye mikutano. Yaani, angalia makala ambazo watu kwenye kamati za programu wakati mmoja waliziona kuwa bora zaidi. Unahitaji kujaribu kuhesabu kwa idadi ya viungo na athari kwa biashara jinsi makala haya yalivyobadilika kuwa na ushawishi katika miaka 10, 20, 25. Nina shaka kungekuwa na uhusiano mkubwa kati ya hizo mbili. Haitakuwa sifuri, lakini uwezekano mkubwa itakuwa dhaifu zaidi kuliko tungependa. Mawazo mengi hubakia bila kudaiwa kwa muda mrefu kabla ya kuenea. Kwa mfano, hebu tuchukue kumbukumbu ya shughuli. Zaidi ya miaka 10 ilipita kutoka wakati makala ya awali ilichapishwa hadi wakati watu walianza kujenga mashine nayo. Na kabla ya kuonekana kwa kumbukumbu hii katika bidhaa za kibiashara - na wote 20. Kwa muda mrefu sana hakuna mtu aliyezingatia makala hiyo, na kisha idadi ya viungo kwa hiyo iliongezeka kwa kasi. Itakuwa vigumu kutabiri hili mapema. Kwa upande mwingine, wakati mwingine mawazo hupata utekelezaji mara moja. Miaka michache iliyopita, niliandika karatasi na Joe Izraelevitz kwa DISC ambayo ilipendekeza ufafanuzi mpya rasmi wa uhalali wa miundo ya data inayoendelea ambayo inaweza kutumika baada ya kompyuta inayoendesha kuanguka. Nilipenda nakala hiyo tangu mwanzo, lakini ikawa maarufu zaidi kuliko nilivyotarajia. Ilitumiwa na vikundi kadhaa tofauti na hatimaye ikawa ufafanuzi wa kawaida wa miundo ya kudumu. Ambayo, bila shaka, ni nzuri.

Vladimir: Je, kuna mbinu zozote unazotumia kufanya tathmini? Je, unajaribu hata kutathmini makala zako na wanafunzi wako? Katika suala la ikiwa mtu uliyemfundisha anaenda katika mwelekeo sahihi.

Michael: Kama kila mtu mwingine, mimi huzingatia zaidi kile ninachofanya kwa sasa. Tena, kama kila mtu mwingine, mara kwa mara mimi huangalia Google Scholar ili kuona kama karatasi zangu za zamani zinatajwa, lakini hiyo ni kutokana na udadisi zaidi. Mara nyingi ninavutiwa na kile wanafunzi wangu wanafanya sasa. Linapokuja suala la kutathmini kazi ya sasa, sehemu yake ni mazingatio ya uzuri, ni nini kifahari na sio nini. Na katika ngazi ya kila siku, maswali ya wazi yana jukumu kubwa. Kwa mfano, mwanafunzi anakuja kwangu na grafu ya baadhi ya matokeo, na tunajaribu kuelewa ni wapi tabia fulani ya ajabu ya grafu ilitoka. Kwa ujumla, katika kazi yetu tunajaribu mara kwa mara kuelewa mambo ambayo bado hatuelewi. 

Kumbukumbu ya shughuli

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Labda tunaweza kuzungumza kidogo kuhusu kumbukumbu ya shughuli?

Michael: Nadhani inafaa kusema japo kidogo kwa sababu niliweka juhudi nyingi katika hilo. Hii ni mada ambayo nina machapisho mengi kuliko nyingine yoyote. Lakini wakati huo huo, isiyo ya kawaida, nilikuwa na shaka sana juu ya kumbukumbu ya shughuli. Kwa maoni yangu, makala ya Herlihy na Moss (M. Herlihy, J. E. B. Moss) ilichapishwa kabla ya wakati wake. Katika miaka ya mapema ya 1990, walipendekeza kwamba kumbukumbu ya shughuli inaweza kusaidia watengeneza programu wenye talanta kufanya kazi kwenye miundo ya data yenye nyuzi nyingi, ili miundo hii iweze kutumika kama maktaba na watengeneza programu wa kawaida. Hiyo ni, itakuwa msaada kwa Doug Lee kufanya JSR 166 yake. Lakini kumbukumbu ya shughuli haikukusudiwa kufanya upangaji wa nyuzi nyingi kuwa rahisi. Lakini hivi ndivyo ilianza kuonekana mwanzoni mwa miaka ya 2000, ilipoenea. Ilitangazwa kama njia ya kutatua tatizo la programu sambamba. Njia hii imeonekana kutokuwa na tumaini kwangu kila wakati. Kumbukumbu ya muamala inaweza tu kurahisisha kuandika miundo ya data sambamba. Hii, inaonekana kwangu, ndio alipata. 

Kuhusu ugumu wa kuandika msimbo wa nyuzi nyingi

Alex: Inavutia sana. Inaonekana kuna kizuizi fulani kati ya watengeneza programu wa kawaida na wale wanaoweza kuandika nambari zenye nyuzi nyingi. Mwaka jana, nilizungumza mara kadhaa na watu ambao walikuwa wakitekeleza mfumo fulani wa algorithmic. Kwa mfano, na Martin Thomson, na vile vile na waandaaji wa programu wanaofanya kazi kwenye maktaba zenye nyuzi nyingi. (Maelezo ya mhariri: Martin Thompson ni msanidi programu maarufu sana, aliandika Usumbufu ΠΈ Aeroni. Na yeye pia ana ripoti katika mkutano wetu wa Joker 2015, kurekodi video inapatikana kwenye YouTube. Yeye ni sawa kufunguliwa mkutano huu kurekodi mada kuu inapatikana pia). Changamoto kuu, wanasema, ni kufanya algorithms kuwa haraka na rahisi kutumia. Hiyo ni, wanajaribu kuondokana na kizuizi hiki na kuvutia watu wengi iwezekanavyo kwenye eneo hili. Una maoni gani juu yake?

Michael: Hili ndilo tatizo kuu la multithreading: jinsi ya kufikia utendaji wa juu bila kuongeza utata wa mfumo. 

Alex: Kwa sababu wakati wanajaribu kuzuia ugumu, algorithm inakuwa chini ya ulimwengu wote.

Michael: Ufunguo hapa ni vifupisho vilivyoundwa ipasavyo. Inaonekana kwangu kuwa hii ndio jambo kuu kwa mifumo ya kompyuta kama uwanja. Butler Lampson anapenda kutumia neno hili, na anatuita "wafanyabiashara wa vitu vya kufikiria." Teknolojia rahisi hazipo leo. Vichakataji tunachotumia vina transistors bilioni 10β€”usahili hauzungumzwi. Wakati huo huo, ISA ni rahisi zaidi kuliko processor, kwa kuwa tulifanya kazi kwa muda mrefu sana ili kutoa utendaji wa juu na interface rahisi. Lakini sio kila kitu ni laini kwake pia. Shida sawa ni kwa viongeza kasi ambavyo sasa vinaonekana kwenye soko. Maswali hutokea - jinsi ya kutengeneza kiolesura sahihi cha GPU, utaratibu wa usimbaji fiche, mbano, utaratibu wa kupitisha msimbo, utaratibu wa aljebra wa mstari, au hata FPGA inayoweza kunyumbulika zaidi. Jinsi ya kuunda kiolesura ambacho hufanya chombo kuwa rahisi kutumia na kuficha ugumu? Haitaiondoa, lakini badala ya kuificha kutoka kwa programu rahisi. 

Alex: Kama ninavyoelewa, bado tuna kikwazo katika kuelewa muhtasari. Wacha tuchukue mfano wa kumbukumbu katika hatua yetu ya maendeleo ya sayansi na teknolojia, hii ni moja ya vifupisho kuu. Shukrani kwa hilo, waandaaji wote wa programu wamegawanywa katika vikundi viwili: sehemu kubwa ni wale ambao hawaelewi, na sehemu ndogo ni wale wanaoelewa, au wanafikiri kwamba wanaelewa. 

Michael: Hilo ni swali zuri - kuna yeyote kati yetu anayeelewa mfano wa kumbukumbu?

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Hasa katika C++.

Michael: Zungumza na Hans Boehm wakati fulani. Yeye ni mmoja wa watu werevu ninaowajua, mtaalam mkuu wa mifano ya kumbukumbu. Atakuambia mara moja kwamba kuna mengi ambayo haelewi. Lakini ikiwa tunarudi kwenye suala la uondoaji, basi, kwa maoni yangu, wazo muhimu zaidi katika uwanja wa mifano ya kumbukumbu zaidi ya miaka 30 iliyopita ilionyeshwa. katika tasnifu ya Sarita Adve. (Maelezo ya mhariri: orodha kamili ya machapisho inapatikana ΠΏΠΎ ссылкС).

Alex: Swali langu ni: je, kizuizi hiki kinatokana na asili yenyewe ya dhana? 

Michael: Hapana. Sarita alifikia hitimisho kwamba kwa mbinu sahihi, unaweza kufanikiwa kuficha utata wote, kupata utendaji wa juu na kumpa programu API rahisi. Na ukifuata API hii, unaweza kufikia uthabiti thabiti. Nadhani huu ni mfano sahihi. Andika msimbo bila mbio za data na upate uthabiti unaofuatana. Bila shaka, ili kupunguza uwezekano wa mbio, zana maalum zinahitajika, lakini hilo ni suala jingine. 

Vladimir: Je, kumekuwa na nyakati katika kazi yako wakati tatizo ambalo lilionekana kutatuliwa ghafla likageuka kuwa janga, au ikawa kwamba tatizo hili haliwezi kutatuliwa? Kwa mfano, kwa nadharia unaweza kuhesabu nambari yoyote au kuamua ikiwa nambari yoyote ni kuu. Lakini katika mazoezi hii inaweza kuwa ngumu kufanya na vifaa vya sasa ni ngumu kuhesabu nambari. Je, jambo kama hilo limetokea kwako?

Michael: Sikumbuki mara moja kitu kama hicho. Kumekuwa na nyakati ambapo ilionekana kwangu kuwa hakuna kitu kilichobaki cha kufanya katika eneo fulani, lakini kitu kipya na cha kuvutia kilitokea huko. Kwa mfano, nilifikiri kwamba eneo la kupanga foleni bila kikomo lilikuwa tayari limefikia ukomavu. Baada ya maboresho kadhaa ya foleni ya MNS, hakuna chochote kilichotokea tena. Na kisha Morrison (Adam Morrison) na Afek (Yehuda Afek) wakagundua foleni ya LCRQ. Ikawa wazi kuwa foleni isiyo na kikomo yenye nyuzi nyingi iliwezekana, ambapo mara nyingi kulikuwa na maagizo ya kuchota na kuongeza tu kwenye njia muhimu. Na hii ilifanya iwezekanavyo kufikia utaratibu wa utendaji bora zaidi. Sio kwamba hatujui kuwa kuleta-na-kuongeza ni jambo muhimu sana. Eric Freudenthal aliandika kuhusu hili katika kazi yake kwenye Ultracomputer na Allan Gottlieb mwishoni mwa miaka ya 1980, lakini ilikuwa ni kuhusu foleni chache. Morrison na Afek waliweza kutumia kuleta-na-kuongeza kwenye foleni isiyo na mipaka.

Usanifu mpya. Je, ushindi wa kumbukumbu ya shughuli ni karibu?

Vladimir: Je, unatafuta suluhu mpya za usanifu ambazo zinaweza kuwa muhimu kwa algoriti? 

Michael: Bila shaka, kuna mambo mengi ambayo ningependa kuona yanatekelezwa. 

Vladimir: Ni aina gani, kwa mfano?

Michael: Awali ya yote, viendelezi vichache rahisi kwa kumbukumbu yetu ya muamala ya kiwango cha maunzi katika vichakataji vya Intel na IBM. Hasa, ningependa mzigo na hifadhi isiyo ya shughuli ambayo ilitokea kupatikana mara moja ndani ya shughuli. Mara moja husababisha matanzi katika mlolongo hutokea-kabla ya mlolongo, ili waweze kuwa vigumu. Lakini ukidumisha tabaka za uondoaji, kuna mambo mengi ya kuvutia sana unaweza kufanya nje ya shughuli wakati inafanyika. Sijui jinsi hii itakuwa ngumu kutekeleza, lakini itakuwa muhimu sana. 

Jambo lingine muhimu ni kupakia kashe kutoka kwa kumbukumbu ya mbali. Nadhani mapema au baadaye hii itafanywa. Teknolojia hii itaruhusu uundaji wa mifumo iliyo na kumbukumbu iliyogawanywa. Itawezekana kuweka, tuseme, terabytes 100 za kumbukumbu isiyo na tete kwenye rack, na mfumo wa uendeshaji yenyewe ungeamua kwa nguvu ni sehemu gani za kumbukumbu hiyo zinapaswa kuendana na nafasi ya anwani ya asili ya wasindikaji. Hii inaweza kuwa muhimu sana kwa kompyuta ya wingu, kwani ingeruhusu idadi kubwa ya kumbukumbu kutolewa kwa kazi zinazohitaji. Nadhani mtu atafanya.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Ili kumaliza kuzungumza juu ya kumbukumbu ya shughuli, nina swali moja zaidi juu ya mada hii. Kumbukumbu ya shughuli hatimaye itachukua nafasi ya miundo ya data yenye nyuzi nyingi?

Michael: Hapana. Shughuli ni utaratibu wa kubahatisha. Katika kiwango cha programu hizi ni kufuli za atomiki, lakini ndani ni uvumi. Utabiri kama huo hufanya kazi ikiwa makadirio mengi ni sahihi. Kwa hivyo, kumbukumbu ya shughuli inafanya kazi vizuri wakati nyuzi haziingiliani, na unahitaji tu kuhakikisha kuwa hakuna mwingiliano. Lakini ikiwa ujumbe unaanzia kati ya nyuzi, miamala haina manufaa kidogo. Acha nieleze, tunazungumza juu ya kesi wakati shughuli zimefungwa karibu na operesheni nzima ya atomiki. Bado zinaweza kutumika kama vijenzi kwa miundo ya data yenye nyuzi nyingi. Kwa mfano, ikiwa unahitaji CAS ya maneno matatu, na unahitaji kuzidisha vitu vitatu vidogo katikati ya algoriti yenye nyuzi nyingi ambayo inafanya kazi na nyuzi ishirini kwa wakati mmoja. Kwa ujumla, shughuli zinaweza kuwa muhimu, lakini hazitaondoa hitaji la kuunda vizuri miundo ya data yenye nyuzi nyingi. 

Kumbukumbu isiyo na tete, Optane DIMM, vifaa vya haraka sana.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Jambo la mwisho ningependa kuzungumzia ni mada ya utafiti wako wa sasa: kumbukumbu zisizo tete. Tunaweza kutarajia nini katika eneo hili katika siku za usoni? Labda unajua utekelezaji wowote mzuri ambao tayari upo? 

Michael: Mimi sio mtaalamu wa vifaa, najua tu nilichosoma kwenye habari na kile wenzangu wananiambia. Kila mtu tayari amesikia kwamba Intel inauza Optane DIMM, ambazo zina muda wa kusubiri wa kusoma mara 3 na muda wa kusubiri mara 10 wa kuandika kuliko RAM inayobadilika. Hivi karibuni zitapatikana katika matoleo ya kiasi kikubwa sana. Inafurahisha kufikiria kuwa unaweza kuwa na kompyuta ndogo iliyo na terabytes kadhaa za RAM inayoweza kushughulikiwa. Kuna uwezekano kwamba katika miaka 10 tutaamua kutumia teknolojia hii mpya, kwa kuwa tunatumia DRAM - tu kuongeza sauti. Lakini kutokana na uhuru wa nishati, fursa mpya kabisa zinafunguliwa kwa ajili yetu. Tunaweza kubadilisha kimsingi safu ya hifadhi ili kusiwe na utengano kati ya kumbukumbu ya kufanya kazi inayoweza kushughulikiwa na kumbukumbu endelevu yenye muundo wa block. Kwa hivyo, hatutahitaji kusawazisha kila kitu kinachohitaji kuhamishwa kutoka kwa programu moja kwenda nyingine hadi faili zilizo na muundo wa block. Kutokana na hili tunaweza kupata kanuni nyingi muhimu zinazoathiri mifumo ya uendeshaji, mazingira ya wakati wa utekelezaji, na maduka ya data yaliyosambazwa. Eneo hili linavutia sana kufanya kazi. Binafsi, ni ngumu kwangu kutabiri hii yote itasababisha nini, lakini shida hapa ni za kufurahisha sana. Kunaweza kuwa na mabadiliko ya kimapinduzi hapa, na yanafuata kwa kawaida sana kutoka kwa kazi ya usomaji mwingi, kwani urejeshaji wa kutofaulu ni mchakato wa "multithreading" karibu na operesheni ya kawaida ya mfumo. 

Mada kuu ya pili ninayofanyia kazi kwa sasa ni kudhibiti vifaa vyenye kasi zaidi na ufikiaji salama wa vifaa kutoka kwa nafasi ya mtumiaji kwa udhibiti wa sera wa kimfumo. Katika miaka ya hivi karibuni, kumekuwa na mtindo wa kuhamisha ufikiaji wa kifaa kwenye nafasi ya mtumiaji. Hii inafanywa kwa sababu mrundikano wa kernel wa TCP-IP hauwezi kufanya kazi juu ya kiolesura cha mtandao ambacho kinahitaji pakiti mpya kila baada ya sekunde 5 hazitaendelea. Kwa hiyo, wazalishaji hutoa upatikanaji wa moja kwa moja kwa vifaa. Lakini hii ina maana kwamba mfumo wa uendeshaji unapoteza udhibiti wa mchakato, na hauwezi kutoa ufikiaji sahihi wa kifaa kwa ajili ya maombi ya ushindani. Timu yetu ya utafiti inaamini kuwa upungufu huu unaweza kuepukwa. Tutakuwa na makala kuhusu hili katika USENIX ATC mwezi huu. Inahusiana na ustahimilivu, kwa kuwa kumbukumbu endelevu ya muda mrefu inayoweza kushughulikiwa na byte ni, kimsingi, kifaa kilicho na I/O ya haraka sana ambacho kinahitaji kufikiwa katika nafasi ya mtumiaji. Utafiti huu unawezesha mbinu mpya za microkernels, exokernels, na majaribio mengine ya kitamaduni ya kuhamisha utendakazi kwa usalama kutoka kwa kernel ya OS hadi nafasi ya mtumiaji. 

Vladimir: Kumbukumbu ya Byte-addressable ni nzuri, lakini kuna upungufu wa kimwili - kasi ya mwanga. Hii inamaanisha kuwa bila shaka kutakuwa na ucheleweshaji wakati wa kuingiliana na kifaa. 

Michael: Sawa kabisa.

Vladimir: Je, kutakuwa na uwezo wa kutosha wa kukabiliana na mizigo mipya?

Michael: Hili ni swali zuri sana, lakini itakuwa vigumu kwangu kujibu. Wazo la usindikaji katika kumbukumbu limekuwepo kwa muda mrefu, linavutia sana, lakini pia ni ngumu sana. Sijafanya kazi katika eneo hili, lakini itakuwa nzuri ikiwa uvumbuzi kadhaa utafanywa huko. Ninaogopa sina la kuongeza. 

Vladimir: Kuna tatizo moja zaidi. Kiasi kipya, kikubwa zaidi cha RAM haitawezekana kutoshea kwenye CPU. Kwa hiyo, kutokana na mapungufu ya kimwili, RAM hii lazima iwe pekee. 

Michael: Yote inategemea idadi ya kasoro katika uzalishaji wa nyaya zilizounganishwa. Ikiwa ingewezekana kuunda kaki za semiconductor kabisa bila kasoro, basi ingewezekana kutengeneza microcircuit nzima kutoka kwayo. Lakini sasa hatujui jinsi ya kufanya microcircuits kubwa kuliko mihuri ya posta. 

Vladimir: Lakini bado tunazungumza juu ya saizi kubwa, juu ya sentimita. Hii bila shaka ina athari kwa muda wa kusubiri. 

Michael: Ndiyo. Hakuna unachoweza kufanya kuhusu kasi ya mwanga. 

Vladimir: Kwa bahati mbaya. 

Mwenendo mkubwa unaofuata. Miundo ya data mbili. Hydra.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Ninavyoelewa, unapata mitindo mipya haraka sana. Ulikuwa mmoja wa wa kwanza kufanya kazi katika kumbukumbu ya muamala, na mmoja wa wa kwanza kufanya kazi katika kumbukumbu isiyo tete. Je, unadhani nini kitakuwa mwenendo mkuu ujao? Au labda ni siri?

Michael: Kusema kweli, sijui. Natumai nitaweza kugundua wakati kitu kipya kitatokea. Sijabahatika kuvumbua uwanja wowote mpya peke yangu, lakini nimekuwa na bahati chache na kuweza kuanza kufanya kazi mapema katika nyanja mpya zilizoundwa na wengine. Natumai nitaweza kufanya hivi katika siku zijazo.

Alex: Swali la mwisho katika mahojiano haya litakuwa kuhusu utendaji wako wa Hydra na shughuli zako shuleni. Nikielewa kwa usahihi, ripoti shuleni itakuwa kuhusu algoriti zisizo na kizuizi, na katika mkutano kuhusu miundo ya data mbili. Unaweza kusema maneno machache kuhusu ripoti hizi?

Michael: Kwa sehemu, tayari tumegusia mada hizi na wewe katika mahojiano haya. Ni kuhusu kazi niliyofanya na mwanafunzi wangu Bill Scherer. Aliandika tasnifu juu yake, na Doug Lee pia aliichangia, na hatimaye ikawa sehemu ya foleni zenye usawazishaji zenye nyuzi nyingi kwenye maktaba ya Java. Hebu tufikiri kwamba muundo wa data unasomwa na kuandikwa bila kuzuia, yaani, kila operesheni ina idadi ndogo ya maelekezo kwenye njia muhimu. Ukijaribu kuondoa data kutoka kwa chombo kisicho na kitu, au jaribu kuondoa data fulani ambayo haiko kwenye chombo hiki, utafahamishwa mara moja kuwa hii haiwezi kufanywa. Lakini tabia hii inaweza isikubalike ikiwa uzi unahitaji data hii. Kisha jambo la kwanza linalokuja katika akili ni kuunda kitanzi ambacho kitauliza mara kwa mara ikiwa data muhimu imeonekana. Lakini basi kuna kuingiliwa kwa kila mtu mwingine. Kwa kuongeza, kwa njia hii, unaweza kusubiri dakika 10, na kisha thread nyingine itakuja, na itapokea data muhimu kwanza. Miundo ya data mbili bado haina kufuli, lakini huruhusu nyuzi kusubiri ipasavyo. Neno "double" linamaanisha kuwa muundo una data au maombi ya data, wacha tuwaite anti-data. Kwa hivyo ukijaribu kupata kitu kutoka kwa kontena tupu, ombi litawekwa kwenye chombo badala yake. Sasa thread inaweza kusubiri ombi bila kusumbua mtu mwingine yeyote. Zaidi ya hayo, muundo wa data huweka vipaumbele kwa maombi ili yanapopokelewa, wayapitishe kwa mtu anayefaa. Matokeo yake ni utaratibu usio wa kufunga ambao bado una vipimo rasmi na utendaji mzuri katika mazoezi. 

Alex: Je, matarajio yako ni nini kutokana na muundo huu wa data? Itaboresha utendaji katika visa vyote vya kawaida, au inafaa zaidi kwa hali fulani? 

Michael: Ni muhimu ikiwa, kwanza, unahitaji chombo bila kufungia, na, pili, unahitaji kusubiri katika hali ambapo unahitaji kurejesha data kutoka kwenye chombo ambacho haipo ndani yake. Kwa ufahamu wangu bora, mfumo wetu hutoa tabia bora wakati masharti haya mawili yametimizwa. Kwa hiyo, katika kesi hizi mimi kupendekeza kutumia. Faida kuu ya miundo ya data isiyofungwa ni kwamba huepuka matatizo ya utendaji. Na kusubiri ni muhimu sana katika algorithms nyingi ikiwa data inahamishwa kutoka thread moja hadi nyingine.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Acha nifafanue: utazungumza juu ya kitu kimoja shuleni na kwenye mkutano?

Michael: Shuleni nitazungumza kwa ujumla kuhusu miundo ya data yenye nyuzi nyingi, pamoja na kanuni za msingi zilizoainishwa mwanzoni mwa somo. Nadhani watazamaji wanajua nyuzi ni nini na wanafahamu kufuli. Kulingana na maarifa haya ya msingi, nitazungumza juu ya miundo ya data isiyo na kufuli. Nitatoa muhtasari wa shida muhimu zaidi katika eneo hili, nikigusa mada kama vile usimamizi wa kumbukumbu. Sidhani kama kutakuwa na kitu ngumu zaidi kuliko foleni ya MS.

Alex: Je, unapanga kufundisha kuhusu miundo ya data mbili mwishoni mwa darasa lako shuleni?

Michael: Nitawataja, lakini sitatumia muda mwingi juu yao. Ripoti ya Hydra itatolewa kwao. Itashughulikia mradi ambao hatimaye uliifanya kuwa Java, na pia kufanya kazi na Joe Israelevich kuunda lahaja mbili za foleni ya LCRQ, na kuunda muundo wa karibu wote wa miundo ya data mbili.

Alex: Kwa hivyo hotuba shuleni inaweza kupendekezwa kwa wanaoanza, na hotuba juu ya muundo wa data mara mbili kwenye Hydra - kwa watu ambao tayari wana uzoefu fulani?

Michael: Nirekebishe ikiwa nimekosea, lakini watazamaji katika Hydra watakuwa tofauti kabisa, ikiwa ni pamoja na wataalam wengi wa Java, na kwa ujumla watu ambao hawajahusika haswa katika utayarishaji wa nyuzi nyingi. 

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Ndio ni kweli.

Alex: Angalau tunatumai hivyo.

Michael: Katika kesi hii, nitakabiliwa na tatizo lile lile ambalo tulianza nalo mahojiano haya: jinsi ya kufanya ripoti kuwa yenye maelezo ya kutosha ya kiufundi na kupatikana kwa wasikilizaji wote.

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Je, utatoa ripoti kwa njia ile ile unayotoa mihadhara? Hiyo ni, kuzungumza na watazamaji na kukabiliana na hali hiyo?

Michael: Ninaogopa haitafanya hivyo, kwa sababu ripoti itakuwa na slaidi. Slaidi ni muhimu wakati wasikilizaji wanapozungumza lugha tofauti mwanzoni. Watu wengi watapata ugumu wa kunielewa kwa Kiingereza, haswa ikiwa nitazungumza haraka sana. Nilichagua mada hizi kwa sababu Peter Kuznetsov aliniuliza nizungumzie miundo ya data isiyo na kufuli katika Shule ya SPTDC; na kisha nilihitaji ripoti ya mkutano wa kikundi cha watumiaji wa Java, na nilitaka kuchagua kitu ambacho kingependeza haswa kwa watengeneza programu wa Java. Njia rahisi ilikuwa kuongea juu ya vitu hivyo kwenye maktaba ya Java ambayo nilikuwa na mkono kwa njia moja au nyingine. 

Alex: Tunadhania kuwa hadhira kwenye Hydra tayari inajua kitu kuhusu upangaji programu bila kufunga na labda ina uzoefu fulani katika eneo hili. Lakini hii ni dhana tu; hali itakuwa wazi katika mkutano wenyewe. Hata hivyo, asante kwa muda wako. Nina hakika mahojiano yatakuwa ya kuvutia sana kwa wasomaji wetu. Asante sana!

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ: Asante. 

Michael: Nitafurahi kukutana nawe huko St. 

Alex: Sisi pia, tuna mji mzuri. Je, umewahi kuwa hapa?

Michael: Hapana, sijawahi kwenda Urusi hata kidogo. Lakini St. 

Alex: Kwa njia, tutakuwa na programu ya safari za wasemaji. Asante sana kwa mahojiano, na uwe na siku njema!

Unaweza kuendelea na mazungumzo yako na Michael kwenye mkutano wa Hydra 2019, utakaofanyika Julai 11-12, 2019 huko St. Atakuja na ripoti "Muundo wa data mbili". Tikiti zinaweza kununuliwa kwenye wavuti rasmi.

Chanzo: mapenzi.com

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS πŸ”₯ Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster