“Mae canlyniadau empirig i’w cyhoeddi yn unig, mae gwir gymhellion y gwaith yn esthetig.” Cyfweliad gwych gyda Michael Scott

“Mae canlyniadau empirig i’w cyhoeddi yn unig, mae gwir gymhellion y gwaith yn esthetig.” Cyfweliad gwych gyda Michael Scott Michael Scott - am 34 mlynedd fel Athro Cyfrifiadureg ym Mhrifysgol Rochester, ac ym Mhrifysgol Wisconsin-Madison bu'n ddeon am bum mlynedd. Mae'n ymchwilio ac yn addysgu myfyrwyr am raglennu cyfochrog a gwasgaredig a dylunio iaith.

Mae'r byd yn adnabod Michael o'r gwerslyfr "Pragmateg Iaith Rhaglennu", beth am waith "Algorithmau ar gyfer cydamseru graddadwy ar amlbroseswyr cof a rennir" wedi derbyn Gwobr Dijkstra fel un o'r enwocaf ym maes cyfrifiadura gwasgaredig. Efallai y byddwch hefyd yn ei adnabod fel awdur yr union algorithm hwnnw Michael-Scott.

Ynghyd â Doug Lee, datblygodd yr algorithmau di-flocio a'r ciwiau cydamserol sy'n pweru'r llyfrgelloedd Java. Gweithredu "strwythurau data deuol" yn JavaSE 6 wedi gwella perfformiad 10 gwaith ThreadPoolExecutor.

Cynnwys:

  • Gyrfa gynnar, Prifysgol Rochester. Prosiect Charlotte, Lynx iaith;
  • Rhyngwyneb Cydlynol Scalable IEEE, cloi MCS;
  • Goroesi mewn byd sy'n newid yn barhaus;
  • Ydy myfyrwyr yn mynd yn ddryslyd? Tueddiadau byd-eang, rhyngwladoli;
  • Gwaith effeithiol gyda myfyrwyr;
  • Sut i gadw i fyny â pharatoi cyrsiau a llyfrau newydd;
  • Cysylltiadau rhwng busnes a'r byd academaidd;
  • Rhoi syniadau ar waith yn ymarferol. MCS, MS, CLH, JSR 166, yn gweithio gyda Doug Lee a mwy;
  • Cof trafodion;
  • Pensaernïaeth newydd. Mae buddugoliaeth cof trafodol yn agos;
  • Cof anweddol, Optane DIMM, dyfeisiau tra-gyflym;
  • Y duedd fawr nesaf. Strwythurau data deuol. Hydra.

Cynhelir y cyfweliad gan:

Vitaly Aksenov — ar hyn o bryd yn postdoc yn IST Awstria ac yn aelod o'r Adran Technolegau Cyfrifiadurol ym Mhrifysgol ITMO. Yn cynnal ymchwil ym maes theori ac ymarfer strwythurau data cystadleuol. Cyn gweithio yn IST, derbyniodd ei PhD o Brifysgol Diderot Paris a Phrifysgol ITMO dan oruchwyliaeth yr Athro Peter Kuznetsov.

Alexei Fedorov - Cynhyrchydd yn JUG Ru Group, cwmni o Rwsia sy'n trefnu cynadleddau ar gyfer datblygwyr. Cymerodd Alexey ran yn y gwaith o baratoi mwy na 50 o gynadleddau, ac mae ei ailddechrau'n cynnwys popeth o swydd peiriannydd datblygu yn Oracle (JCK, Java Platform Group) i swydd datblygwr yn Odnoklassniki.

Vladimir Sitnikov - Peiriannydd yn Netcracker. Deng mlynedd o waith ar berfformiad a scalability NetCracker OS, meddalwedd a ddefnyddir gan weithredwyr telathrebu i awtomeiddio prosesau rheoli offer rhwydwaith a rhwydwaith. Diddordeb mewn materion perfformiad Java a Chronfa Ddata Oracle. Awdur mwy na dwsin o welliannau perfformiad yn yrrwr swyddogol PostgreSQL JDBC.

Gyrfa gynnar, Prifysgol Rochester. prosiect Charlotte, iaith Lynx.

Alex: I ddechrau, roeddwn i eisiau dweud wrthych ein bod ni i gyd yn Rwsia yn caru Cyfrifiadureg, Gwyddor Data ac algorithmau. Mae'n hollol anweddus. Rydyn ni wedi darllen popeth llyfr gan Cormen, Leiserson a Rivest. Felly, dylai'r gynhadledd, yr ysgol a'r cyfweliad hwn ei hun fod yn boblogaidd iawn. Cawsom lawer o gwestiynau ar gyfer y cyfweliad hwn gan fyfyrwyr, rhaglenwyr, ac aelodau o'r gymuned, felly rydym yn ddiolchgar iawn am y cyfle hwn. Ydy Cyfrifiadureg yn cael yr un cariad yn yr Unol Daleithiau?

Michael: Mae ein maes mor amrywiol, mae ganddo gymaint o gyfeiriadau, ac mae'n effeithio ar gymdeithas mewn cymaint o wahanol ffyrdd fel ei bod yn anodd i mi roi ateb pendant i chi. Ond y ffaith yw ei fod wedi achosi newidiadau aruthrol mewn busnes, diwydiant, celf a chymdeithas yn gyffredinol dros y 30 mlynedd diwethaf.

Виталий: Gadewch i ni ddechrau gyda rhywbeth pell. Mewn llawer o brifysgolion mae rhywbeth fel arbenigo mewn un maes penodol. I Brifysgol Carnegie Mellon, cyfrifiadura cyfochrog yw hwn, ar gyfer MIT mae'n cryptograffeg, robotiaid ac aml-edau. A oes arbenigedd o'r fath ym Mhrifysgol Rochester?

Michael: I fod yn onest, byddwn yn dweud bod CMU a MIT yn arbenigo ym mhob maes. Mae ein hadran bob amser wedi talu'r sylw mwyaf i ddeallusrwydd artiffisial. Mae hanner y bobl sy'n gweithio i ni yn ymwneud ag AI neu ryngweithio dynol-cyfrifiadur - mae'r gyfran hon yn uwch nag mewn adrannau eraill, ac mae wedi bod felly erioed. Ond pan oeddwn yn y brifysgol, nid oedd gennyf unrhyw gyrsiau mewn AI, ac nid wyf erioed wedi gweithio yn y maes hwn. Felly mae fy adran yn arbenigo mewn problem nad oes gennyf ddim i'w wneud â hi. Y cysur yw mai'r ail broblem bwysicaf i'n hadran yw rhaglennu cyfochrog ac aml-edau, hynny yw, fy arbenigedd.

Виталий: Dechreuoch weithio ym maes Cyfrifiadureg pan oedd maes rhaglennu aml-edau newydd ddod i'r amlwg. Mae'r rhestr o'ch cyhoeddiadau yn dangos bod eich gweithiau cyntaf wedi delio ag ystod eithaf eang o faterion: rheoli cof mewn systemau aml-edau, systemau ffeiliau gwasgaredig, systemau gweithredu. Pam amlochredd o'r fath? Ydych chi wedi bod yn ceisio dod o hyd i'ch lle yn y gymuned ymchwil?

Michael: Fel myfyriwr, cymerais ran mewn prosiect Charlotte ym Mhrifysgol Wisconsin, lle datblygwyd un o'r systemau gweithredu dosbarthedig cyntaf. Yno bûm yn gweithio gyda Rafael Finkel (Raphael Finkel) a Marvin Solomon (Marvin Solomon). Roedd fy nhraethawd hir yn canolbwyntio ar ddatblygu iaith ar gyfer meddalwedd system ar gyfer systemau gwasgaredig - nawr mae pawb wedi anghofio amdano, a diolch i Dduw. Creais yr iaith raglennu Lynx, gyda'r bwriad o'i gwneud hi'n haws creu gweinyddwyr ar gyfer system weithredu ddosbarthedig llac. Gan fy mod ar y pryd yn ymwneud yn bennaf â systemau gweithredu, cymerais y byddai fy ngyrfa yn gysylltiedig yn bennaf â nhw. Ond prifysgol fach iawn oedd Rochester, ac oherwydd hyn, roedd y gwahanol grwpiau yno yn rhyngweithio'n agos iawn â'i gilydd. Nid oedd dwsin o bobl systemau gweithredu eraill yno i mi siarad â nhw, felly roedd fy holl gysylltiadau â phobl a oedd yn gweithio mewn meysydd hollol wahanol. Fe wnes i ei fwynhau'n fawr iawn, mae bod yn berson cyffredinol yn fantais fawr i mi. Os byddwn yn siarad yn benodol am strwythurau data aml-edau ac algorithmau cydamseru, yna dechreuais weithio arnynt yn gyfan gwbl ar ddamwain.

Rhyngwyneb Cydlynol Scalable IEEE, cloi MCS.

Виталий: A allwch chi ddweud ychydig mwy wrthyf am hyn?

Michael: Mae hon yn stori ddoniol na fyddaf byth yn blino ei hadrodd wrth bawb. Digwyddodd mewn cynhadledd ASPLOS yn Boston - roedd hyn yn yr 80au hwyr neu'r 90au cynnar. John Mellor-Crummey (John Mellor-Crummey), un o raddedigion ein cyfadran. Roeddwn yn ei adnabod, ond nid oeddem wedi cynnal ymchwil ar y cyd o’r blaen. Mary Vernon (Mary Vernon) o Wisconsin yn rhoi sgwrs am system amlbrosesydd yr oeddent yn ei datblygu yn Wisconsin: Amlciwb Wisconsin. Roedd gan y Multicube hwn fecanwaith cydamseru ar y lefel caledwedd o'r enw Q on Sync Bit, ac yn ddiweddarach fe'i hailenwyd yn Q ar Lock Bit oherwydd ei fod yn swnio fel caws Colby, a oedd yn pun. Os oes gennych ddiddordeb mewn mecanweithiau aml-edau, mae'n debyg eich bod yn gwybod bod Colby yn y pen draw wedi dod yn beiriant cydamseru ar gyfer safon Rhyngwyneb Cydlynol Scalable IEEE. Roedd hwn yn fecanwaith cloi a oedd yn creu awgrymiadau o un storfa i'r llall ar lefel y caledwedd fel bod pob deiliad clo yn gwybod tro pwy ydoedd. Pan glywodd John a minnau am hyn, fe wnaethom edrych ar ein gilydd a dweud: pam gwneud hyn ar lefel caledwedd? Oni ellir cyflawni'r un peth trwy ddefnyddio cymharu-a-cyfnewid? Aethon ni ag un o'r llyfrau nodiadau yn gorwedd yn y dosbarth a sgriblo arno MCS blocio, tra parhaodd Mary ei hadroddiad. Yn dilyn hynny, fe wnaethom ei weithredu, arbrofi, daeth y syniad yn llwyddiannus, a chyhoeddasom yr erthygl. Ar y pryd, i mi, roedd y pwnc hwn yn ymddangos yn hwyl yn tynnu sylw, ac ar ôl hynny roeddwn yn bwriadu dychwelyd i systemau gweithredu. Ond yna cododd problem arall ar hyd yr un llinellau, ac yn y pen draw daeth cydamseru, aml-edau, a strwythurau data yn arbenigedd i mi. Fel y gwelwch, digwyddodd hyn i gyd ar ddamwain.

Виталий: Rwyf wedi bod yn gyfarwydd â blocio MCS ers amser maith, ond hyd yn hyn nid oeddwn yn gwybod mai eich gwaith chi ydoedd, ac nid oeddwn yn deall ei fod yn acronym ar gyfer eich enwau olaf.

Sut i oroesi mewn byd sy'n newid yn barhaus?

Alex: Mae gennyf gwestiwn ar bwnc cysylltiedig. 30 neu 40 mlynedd yn ôl roedd mwy o ryddid mewn gwahanol arbenigeddau. Os ydych chi am ddechrau gyrfa mewn systemau aml-threading neu ddosbarthedig, mae croeso i chi, os ydych chi am fynd i mewn i systemau gweithredu, dim problem. Ym mhob maes roedd llawer o gwestiynau agored ac ychydig o arbenigwyr. Mae arbenigeddau cul bellach wedi dod i'r amlwg: nid oes arbenigwyr ar systemau gweithredu yn gyffredinol yn unig, mae arbenigwyr ar systemau unigol. Mae'r un peth gyda systemau aml-edafu a gwasgaredig. Ond y broblem yw nad yw ein bywydau yn ddiddiwedd; dim ond ychydig ddegawdau y gall pawb eu neilltuo i ymchwil. Sut i oroesi yn y byd newydd hwn?

Michael: Nid ydym yn neillduol yn hyn o beth ; Roeddwn yn ffodus fy mod wedi dechrau gweithio ym maes Cyfrifiadureg pan oedd y maes yn ei “arddegau”. Roedd rhai sylfeini eisoes wedi'u gosod, ond roedd popeth yn dal yn anaeddfed iawn. Nid yw'r cyfle hwn yn dod ymlaen yn aml. Mae peirianneg drydanol wedi bod o gwmpas ers amser maith, ffiseg hyd yn oed yn hirach, mathemateg bron ers dechrau amser. Ond nid yw hyn yn golygu nad oes neb bellach yn gwneud darganfyddiadau diddorol mewn mathemateg. Mae yna lawer o broblemau agored o hyd, ond ar yr un pryd, mae angen dysgu mwy. Yr ydych yn llygad eich lle i nodi bod llawer mwy o arbenigeddau nag o’r blaen bellach, ond nid yw hyn ond yn golygu ein bod yn cael ein hunain yn yr un sefyllfa â’r rhan fwyaf o feysydd eraill o weithgarwch dynol.

Alex: Mae gennyf ddiddordeb yn yr agwedd fwy ymarferol ar y mater yma. Mae gen i gefndir mathemateg, ac yn ystod fy astudiaethau mynychais gynadleddau a gweithio ar bynciau gwyddonol amrywiol. Darganfyddais nad oedd neb yn y gynulleidfa yn deall fy adroddiadau, ac yn yr un modd, roedd adroddiadau pobl eraill yn ddealladwy iddynt eu hunain yn unig. Nid yw hyn yn wir mewn pynciau lefel uchel, ond cyn gynted ag y byddwch yn dechrau ymchwilio i rywbeth, ni all y gynulleidfa gadw i fyny â chi mwyach. Sut ydych chi'n delio â hyn?

Michael: Ddim bob amser yn llwyddiannus. Yn ddiweddar paratoais adroddiad ac ynddo es i’n rhy ddwfn i fanylion technegol. Wrth i’r sgwrs fynd yn ei blaen, daeth yn amlwg nad oedd y rhan fwyaf o’r gynulleidfa yn fy neall i, felly roedd yn rhaid i mi addasu i’r sefyllfa ar y hedfan. Nid oedd modd newid y sleidiau, felly nid oedd yn troi allan yn dda iawn - felly, yn gyffredinol, rwy'n ceisio peidio â defnyddio sleidiau. Ar y cyfan, fy nghyngor i yw ystyried eich cynulleidfa. Mae angen i chi wybod gyda phwy rydych chi'n siarad, beth yw lefel eu gwybodaeth, a beth sydd angen iddynt ei glywed i werthfawrogi eich gwaith.

Виталий: A allech chi roi awgrym i ni o beth oedd y ddarlith hon?

Michael: A bod yn onest, byddai’n well gennyf beidio ag ymhelaethu ar y pwnc hwn er mwyn gadael y bobl dan sylw yn ddienw. Y pwynt yw ein bod yn aml yn mynd yn rhy ddwfn i gymhlethdodau’r broblem yr ydym yn gweithio arni, felly mae’n dod yn anodd inni egluro ar ddechrau’r sgwrs pam mae’r broblem yn ddiddorol ac yn bwysig a sut y mae’n ymwneud â materion y mae’r cynulleidfa yn gwybod yn barod. Yn ôl fy arsylwadau, myfyrwyr sy'n cael yr amser anoddaf yn dysgu'r sgil hwn. A dyma hefyd oedd pwynt gwan fy adroddiad diweddar. Dylai adroddiad sydd wedi'i strwythuro'n briodol, o'r cychwyn cyntaf, ddod o hyd i gysylltiad â'r gynulleidfa, egluro iddynt beth yn union yw'r broblem a sut mae'n berthnasol i bynciau y mae eisoes yn hysbys iddynt. Mae pa mor dechnegol yw'r cyflwyniad hwn yn dibynnu ar y gynulleidfa. Os yw'n gwbl fudr, yna gall yr adroddiad fod yn aml-gam. Dylai'r cyflwyniad fod yn hygyrch i bawb, ac erbyn y diwedd efallai na fydd y darn yn gallu cadw i fyny â chi, ond bydd pobl sy'n gymharol gyfarwydd â'ch maes yn gallu ei ddarganfod.

Ydy myfyrwyr yn mynd yn ddryslyd? Tueddiadau byd-eang, rhyngwladoli.

Alex: Rydych chi wedi bod yn arsylwi myfyrwyr ers sawl degawd. A yw myfyrwyr yn mynd yn waeth neu'n gallach o ddegawd i ddegawd neu flwyddyn i flwyddyn? Yn Rwsia, mae athrawon yn cwyno'n gyson bod myfyrwyr yn mynd yn fwy dwl bob blwyddyn, ac mewn gwirionedd nid yw'n glir beth i'w wneud yn ei gylch.

Michael: Gallwch chi wir glywed llawer o negyddiaeth gennym ni hen bobl. Yn isymwybod, mae gennym dueddiad i ddisgwyl i fyfyrwyr amsugno’r holl 30 mlynedd o brofiad sydd gennym eisoes. Os oes gen i ddealltwriaeth ddyfnach nag oedd gen i ym 1985, pam nad oes gan y myfyrwyr hi? Mae'n debyg oherwydd eu bod yn 20 oed, beth yw eich barn chi? Rwy’n meddwl bod y newidiadau mwyaf arwyddocaol yn y degawdau diwethaf wedi bod mewn cyfansoddiad demograffig: mae gennym bellach lawer mwy o fyfyrwyr rhyngwladol, ac eithrio Canadiaid. Roedd llawer o Ganadiaid yn arfer bod oherwydd ein bod yn agos iawn at ffin Canada a gall myfyrwyr oddi yno deithio adref ar y penwythnosau. Ond nawr mae yna lawer o brifysgolion da yng Nghanada, ac mae'n well gan Ganadaiaid astudio yma;

Alex: Ydych chi'n meddwl bod hon yn duedd leol neu'n un fyd-eang?

Michael: Dydw i ddim yn cofio pwy yn union, ond dywedodd rhywun fod y byd yn fflat. Mae ein maes wedi dod yn llawer mwy rhyngwladol. Cynadleddau ACM Yn flaenorol, cawsant eu cynnal yn gyfan gwbl o fewn yr Unol Daleithiau, yna penderfynasant eu cynnal unwaith bob 4 blynedd mewn gwledydd eraill, ac yn awr maent yn cael eu cynnal ledled y byd. Effeithiodd y newidiadau hyn hyd yn oed yn fwy IEEE, gan ei fod bob amser wedi bod yn sefydliad mwy rhyngwladol nag ACM. Ac mae cadeiriau rhaglen o Tsieina, India, Rwsia, yr Almaen a llawer o wledydd eraill, oherwydd mae llawer yn digwydd ym mhobman nawr.

Alex: Ond, mae’n debyg, mae rhai agweddau negyddol ar ryngwladoli o’r fath?

Michael: Byddwn yn dweud bod yr holl agweddau negyddol yn ymwneud nid â thechnoleg, ond â gwleidyddiaeth. Un tro, y brif broblem oedd y ffaith bod yr Unol Daleithiau yn dwyn y bobl graffaf a mwyaf dawnus o wledydd ledled y byd. Ac yn awr y brif broblem yw'r gemau gwleidyddol rhwng gwahanol wledydd o amgylch fisas a mewnfudo.

Alex: Hynny yw, rhwystrau a phethau felly. Mae'n glir.

Vladimir: Yn bersonol, mae gen i ddiddordeb ym mha ddull rydych chi'n ei gymryd wrth ddysgu pwnc newydd i fyfyrwyr. Mae yna wahanol opsiynau: gallwch chi geisio yn gyntaf oll eu hysbrydoli i roi cynnig ar rywbeth newydd, neu gallwch chi dalu mwy o sylw i fanylion sut mae technoleg benodol yn gweithio. Beth sydd orau gennych chi?

Gwaith effeithiol gyda myfyrwyr

Alex: A sut i ddod o hyd i'r cydbwysedd damn rhwng y cyntaf a'r ail?

Michael: Y broblem yw nad yw dosbarthiadau bob amser yn mynd y ffordd yr hoffwn. Fel arfer, byddaf yn rhoi deunydd darllen ymlaen llaw i fyfyrwyr fel eu bod yn ymchwilio iddo, yn ei ddeall hyd eithaf eu gallu, ac yn llunio cwestiynau am y rhannau hynny nad oeddent yn gallu eu deall. Yna yn y dosbarth gallwch ganolbwyntio ar yr eiliadau anoddaf a'u harchwilio gyda'ch gilydd. Dyma sut rydw i'n hoffi dysgu dosbarthiadau fwyaf. Ond o ystyried y baich sydd bellach ar fyfyrwyr, nid wyf bob amser yn gallu gwneud yn siŵr eu bod yn paratoi ymlaen llaw. O ganlyniad, mae'n rhaid i chi neilltuo llawer mwy o amser i ailadrodd y deunydd yn gyffredinol nag yr hoffech chi. Er gwaethaf hyn, rwy'n ceisio cadw ein dosbarthiadau'n rhyngweithiol. Fel arall, mae'n haws recordio fideo unwaith y gall myfyrwyr ei wylio gartref. Pwynt dosbarthiadau byw yw rhyngweithio dynol. Yn y dosbarth, mae'n well gen i ddefnyddio sialc a bwrdd du yn hytrach na sleidiau, ac eithrio mewn rhai achosion pan fo diagram yn rhy gymhleth i'w ddarlunio ar y bwrdd. Diolch i hyn, does dim rhaid i mi gadw at gynllun gwers anhyblyg. Gan nad oes trefn gaeth ar gyfer rhoi'r deunydd, mae hyn yn caniatáu i mi ei deilwra i'r gynulleidfa yn dibynnu ar y cwestiynau a gaf. Yn gyffredinol, rwy'n ceisio gwneud dosbarthiadau mor rhyngweithiol â phosibl, fel bod y deunydd a gyflwynaf yn dibynnu ar y cwestiynau a ofynnir i mi.

Vladimir: Mae'n grêt. Yn fy mhrofiad i, mae'n eithaf anodd cael gwrandawyr i ofyn cwestiynau. Hyd yn oed os gofynnwch ymlaen llaw i ofyn unrhyw gwestiynau, ni waeth pa mor dwp neu smart, maent yn dal yn dawel. Sut ydych chi'n delio â hyn?

Michael: Byddwch chi'n chwerthin, ond os byddwch chi'n sefyll yn dawel yn ddigon hir, yn hwyr neu'n hwyrach bydd pawb yn mynd yn anghyfforddus a bydd rhywun yn gofyn cwestiwn. Neu gallwch ofyn cwestiwn technegol syml gydag ateb ie neu na i benderfynu a yw pobl yn deall yr hyn a ddywedwyd. Er enghraifft, a oes ras data yn yr enghraifft uchod? Pwy sy'n meddwl felly? Pwy sydd ddim yn meddwl? Pwy sydd ddim yn deall dim byd o gwbl, oherwydd dim ond hanner y dwylo aeth i fyny?

Виталий: Ac os ateboch chi'n anghywir, rydych chi'n cael eich cicio allan o'r dosbarth :)

Michael: Os nad ydych wedi ateb unrhyw beth, yna dylech ofyn cwestiwn. Mae angen i mi ddeall beth yn union y mae angen i'r myfyriwr ei wybod i ateb y cwestiwn yr wyf newydd ei ofyn. Mae eu hangen arnaf i fy helpu i'w helpu. Yr wyf yn barod i addasu iddynt fel eu bod yn deall y broblem. Ond os nad wyf yn gwybod beth sy'n digwydd yn eu pen, ni allaf ei wneud. Ac os nad ydych chi’n rhoi heddwch i fyfyrwyr am amser digon hir, weithiau yn y diwedd maen nhw’n gofyn y cwestiynau cywir, hynny yw, rhai sy’n caniatáu i mi weld beth yn union sy’n digwydd ym mhennau’r myfyrwyr. 

Alex: A yw’r cwestiynau hyn weithiau’n arwain at syniadau nad oeddech chi eich hun wedi meddwl amdanynt o’r blaen? Ydyn nhw'n annisgwyl? Ydyn nhw'n caniatáu ichi edrych ar broblem mewn golau newydd?

Michael: Mae yna gwestiynau sy'n agor ffordd newydd o gyflwyno deunydd. Yn aml mae yna gwestiynau sy’n arwain at broblemau diddorol nad oeddwn i’n bwriadu siarad amdanyn nhw. Mae myfyrwyr yn aml yn dweud wrthyf fod gen i dueddiad i fynd oddi ar y pwnc pan fydd hyn yn digwydd. Ac, yn ôl iddyn nhw, yn aml iawn dyma'r rhan fwyaf diddorol o'r wers. Yn anaml iawn, dim ond ychydig o weithiau, roedd myfyrwyr yn gofyn cwestiynau a ysgogodd gyfeiriad newydd yn yr ymchwil ac a dyfodd yn erthygl. Mae hyn yn digwydd yn amlach o lawer mewn sgyrsiau gyda myfyrwyr yn hytrach nag yn ystod dosbarthiadau, ond weithiau mae'n digwydd yn ystod dosbarthiadau. 

Alex: Felly gofynnodd y myfyrwyr gwestiynau i chi ar y sail yr oedd hi wedyn yn bosibl cyhoeddi erthygl?

Michael: Oes. 

Виталий: Pa mor aml ydych chi'n cael y sgyrsiau hyn gyda myfyrwyr? Pryd maen nhw eisiau dysgu mwy na'r hyn a drafodwyd yn ystod y wers?

Michael: Gyda fy myfyrwyr graddedig - drwy'r amser. Mae gen i tua 5 neu 6 ohonyn nhw, ac rydyn ni’n trafod rhywbeth gyda nhw drwy’r amser. Ac nid yw sgyrsiau o'r math hwn gyda myfyrwyr sy'n mynychu fy nosbarthiadau yn gyffredin iawn. Er fy mod yn dymuno i hyn ddigwydd yn amlach. Yr wyf yn amau ​​​​eu bod yn syml yn ofni dod i'r gyfadran yn ystod oriau swyddfa. Bob semester, mae rhai myfyrwyr yn llwyddo i oresgyn y rhwystr seicolegol hwn, ac mae bob amser yn ddiddorol iawn siarad â nhw ar ôl dosbarth. Yn wir, pe bai'r holl fyfyrwyr mor ddewr, ni fyddai gennyf ddigon o amser. Felly efallai bod popeth yn gweithio fel y dylai. 

Виталий: Sut ydych chi'n llwyddo i ddod o hyd i amser i gyfathrebu â myfyrwyr? Hyd y gwn i, yn UDA mae gan athrawon lawer o waith - gwneud cais am grantiau ac ati. 

Michael: Yn onest, gweithio gyda myfyrwyr yw'r agwedd ar fy swydd yr wyf yn ei mwynhau fwyaf. Felly mae gen i ddigon o gymhelliant ar gyfer hyn. Mae'r rhan fwyaf o'r amser rwy'n ei dreulio yn fy swyddfa yn cael ei dreulio ar gyfarfodydd o bob math. Mae'n haf nawr, felly mae fy amserlen yn llai prysur, ond yn ystod y flwyddyn ysgol, bob dydd o 9 i 17 mae gen i bopeth dan ei sang. Gwaith ymchwil, adolygiadau, grantiau - i hyn oll dim ond gyda'r nos ac ar benwythnosau. 

Sut i gadw i fyny â pharatoi cyrsiau a llyfrau newydd.

Alex: A ydych ar hyn o bryd yn parhau i addysgu unrhyw gyrsiau yr ydych wedi bod yn eu haddysgu ers amser maith? Rhywbeth fel cyflwyniad i Gyfrifiadureg.

Michael: Y peth cyntaf sy'n dod i'r meddwl yma yw cwrs mewn ieithoedd rhaglennu. 

Alex: Pa mor wahanol yw fersiwn heddiw o'r cwrs hwn i'r hyn ydoedd 10, 20, 30 mlynedd yn ôl? Efallai mai'r hyn sy'n fwy diddorol yma yw nid manylion cwrs penodol, ond y tueddiadau cyffredinol.

Michael: Roedd fy nghwrs ar ieithoedd rhaglennu braidd yn anarferol ar y pryd wnes i ei greu. Dechreuais ei ddarllen ar ddiwedd yr 1980au, gan gymryd lle fy nghydweithiwr, Doug Baldwin (Doug Baldwin). Roedd pwnc y cwrs yn ymwneud â’m harbenigedd mewn gwirionedd, ond pan adawodd, fi oedd yr ymgeisydd gorau i addysgu’r cwrs. Doeddwn i ddim yn hoffi unrhyw un o'r gwerslyfrau a oedd yn bodoli ar y pryd, felly fe wnes i ysgrifennu'r gwerslyfr ar gyfer y cwrs hwn fy hun yn y pen draw. (Nodyn y golygydd: rydyn ni'n siarad am y llyfr "Pragmateg Iaith Rhaglennu") Mae bellach yn cael ei ddefnyddio mewn mwy na 200 o brifysgolion ledled y byd. Mae fy agwedd yn anarferol gan ei fod yn cymysgu problemau dylunio a gweithredu iaith yn fwriadol, ac yn rhoi sylw mawr i’r rhyngweithio rhwng yr agweddau hyn ym mhob maes posibl. Mae'r dull sylfaenol wedi aros yr un fath, fel y mae llawer o gysyniadau sylfaenol: haniaethau, gofodau enwau, modiwlaredd, mathau. Ond mae'r set o ieithoedd y mae'r cysyniadau hyn yn cael eu harddangos â nhw wedi newid yn gyfan gwbl. Pan grëwyd y cwrs gyntaf, roedd llawer o enghreifftiau yn Pascal, ond heddiw nid yw llawer o fy myfyrwyr hyd yn oed wedi clywed am yr iaith hon. Ond maen nhw'n nabod Swift, Go, Rust, felly mae'n rhaid i mi siarad am yr ieithoedd sy'n cael eu defnyddio heddiw. Hefyd, mae myfyrwyr bellach yn hyddysg mewn ieithoedd sgriptio, ond pan ddechreuais i ddysgu'r cwrs hwn, roedd y cyfan yn ymwneud ag ieithoedd a luniwyd. Nawr mae angen llawer o ddeunydd am Python, Ruby a hyd yn oed Perl, oherwydd dyma'r cod sy'n cael ei ysgrifennu yn y dyddiau hyn, ac mae llawer o bethau diddorol yn digwydd yn yr ieithoedd hyn, gan gynnwys ym maes dylunio iaith. 

Виталий: Yna bydd fy nghwestiwn nesaf yn perthyn i'r un blaenorol. Sut i gadw i fyny yn y maes hwn? Dwi'n amau ​​bod diweddaru cwrs o'r fath yn gofyn am lawer o waith - mae angen deall ieithoedd newydd, deall y prif syniadau. Sut ydych chi'n gwneud hyn?

Michael: Ni allaf frolio fy mod bob amser yn llwyddo 100%. Ond y rhan fwyaf o'r amser dwi'n gwneud beth mae pawb arall yn ei wneud - darllen y Rhyngrwyd. Os ydw i eisiau deall Rust, rwy'n ei Google, ewch i dudalen Mozilla a darllenwch y llawlyfr a bostiwyd yno. Mae hyn yn rhan o'r pethau sy'n digwydd mewn datblygiad masnachol. Os ydym yn siarad am wyddoniaeth, yna mae angen i chi ddilyn yr adroddiadau yn y prif gynadleddau. 

Cysylltiad rhwng busnes a'r byd academaidd

Виталий: Gadewch i ni siarad am y cysylltiad rhwng busnes ac ymchwil wyddonol. Yn eich rhestr o weithiau, darganfyddais sawl erthygl ar gydlyniad cache. Rwy'n deall bod yr algorithmau cysondeb cache yn ansefydlog ar yr adeg y cawsant eu cyhoeddi? Neu ddim yn ddigon eang. Pa mor gyffredin oedd eich syniadau yn ymarferol?

Michael: Dydw i ddim yn hollol siŵr pa gyhoeddiadau rydych chi'n sôn amdanyn nhw. Rydw i wedi gwneud tipyn o waith gyda fy myfyrwyr Bill Bolosky (William Bolosky) a Leonidas Kontotanassis (Leonidas Kontothanassis) yn y 1990au cynnar ar reoli cof peiriannau Neumann. Ar y pryd, nid oedd gan fusnes ddealltwriaeth eto o sut i wneud system amlbrosesydd yn iawn: a yw'n werth creu cefnogaeth ar gyfer cyrchu cof o bell ar lefel caledwedd, a yw'n werth dosbarthu'r cof, a yw'n bosibl llwytho'r storfa o cof o bell, neu a oes angen symud tudalennau yn y system ystafell weithredu. Roedd Bill a Leonidas ill dau yn gweithio yn y maes hwn ac yn archwilio dulliau gweithredu heb lwytho cache o bell. Nid oedd hyn yn uniongyrchol gysylltiedig â chydlyniad cache, ond roedd yn dal i fod yn waith ar reoli cof NUMA, ac o ganlyniad tyfodd dulliau modern o osod tudalennau mewn systemau gweithredu modern o hyn. Ar y cyfan, roedd Bill a Leonidas yn gwneud gwaith pwysig, er nad y rhai mwyaf dylanwadol yn y maes hwn - roedd llawer o bobl eraill yn gweithio ar yr un peth ar y pryd. Yn ddiweddarach, bûm yn gweithio ar bwnc yn ymwneud â chydlyniad cache yng nghyd-destun cof trafodion caledwedd. Yn y diwedd, derbyniodd y grŵp y bûm yn gweithio gyda nhw ar y broblem hon sawl patent. Mae rhai syniadau eithaf diddorol y tu ôl iddynt, ond nid wyf yn meddwl y byddant yn cael eu rhoi ar waith yn ymarferol yn y pen draw. Un ffordd neu'r llall, mae'n anodd i mi farnu eu proffidioldeb. 

Alex: Yn hyn o beth, cwestiwn mwy personol: pa mor bwysig yw hi i chi fod eich syniadau yn cael eu rhoi ar waith? Neu nad ydych chi'n meddwl amdano?

Michael: Rwyf wrth fy modd yn gofyn y cwestiwn hwn mewn cyfweliadau â phobl eraill, ymgeiswyr neu ymgeiswyr sydd am ymuno â'r gyfadran. Nid wyf yn credu bod ateb cywir i'r cwestiwn hwn. Gall pobl sy'n gwneud pethau cŵl gael cymhellion gwahanol iawn. Rwy'n cael fy nenu at broblemau oherwydd fy mod yn bersonol yn eu cael yn ddiddorol, nid oherwydd eu manteision ymarferol. Ond ar y llaw arall, pan fydd rhywbeth diddorol yn dal i gael ei gymhwyso, rwy'n ei hoffi'n fawr. Felly nid yw'n hawdd yma. Ond ar ddechrau fy ngwaith, rwy’n dal i gael fy ngyrru nid gan y syniad o ddefnydd terfynol yn y byd, ond gan gytgord y syniad a’r awydd i’w archwilio a gweld beth ddaw ohono. Os yn y diwedd mae'n rhoi canlyniadau ymarferol, gwych. 

Alex: Oherwydd eich addysg a'ch profiad, rydych chi'n gallu barnu gwerth syniadau pobl eraill yn well na'r mwyafrif. Gallwch eu cymharu a phenderfynu pa un sy'n gweithio'n well gyda pha un. Rwy'n siŵr bod gennych chi farn am bethau sy'n cael eu defnyddio'n ymarferol ar hyn o bryd gan gynhyrchwyr mawr fel Intel. O’ch safbwynt chi, pa mor gywir yw’r cwrs y mae’r cwmnïau hyn yn ei ddilyn?

Michael: Mae arfer bob amser yn troi o gwmpas yr hyn a all fod yn fasnachol lwyddiannus, hynny yw, creu elw, ac mae'n well ichi ofyn i rywun arall am hynny. Mae fy ngwaith yn bennaf yn arwain at gyhoeddiadau, ac ym maes systemau gweithredu maent yn cael eu gwerthuso yn seiliedig ar ddangosyddion perfformiad: cyflymder, defnydd o ynni, maint cod. Ond roedd bob amser yn ymddangos i mi bod y canlyniadau empirig hyn yn cael eu hychwanegu at erthyglau yn unig fel y gellir eu cyhoeddi, ac mae gwir gymhellion pobl dros waith yn esthetig. Mae ymchwilwyr yn gwerthuso atebion o safbwynt artistig, maen nhw'n poeni pa mor gain yw'r syniadau, ac maen nhw'n ceisio creu rhywbeth gwell na'r dulliau presennol. Mae ymchwilwyr yn cael eu gyrru gan gymhellion personol, goddrychol, esthetig. Ond ni allwch ysgrifennu am hyn yn yr erthygl ei hun; nid yw'r pethau hyn yn ddadleuon i bwyllgor y rhaglen. Yn ffodus, mae datrysiadau cain yn aml hefyd yn gyflym ac yn rhad. Bu dwsin o fy nghydweithwyr a minnau yn trafod y pwnc hwn tua 15 mlynedd yn ôl ac yn y diwedd ysgrifennu erthygl amdano. Rwy'n credu y gallwch chi ddod o hyd iddo nawr, fe'i gelwir "Sut i werthuso ymchwil systemau" neu rywbeth felly, mae ganddo fwy na dwsin o awduron. Dyma'r unig erthygl yr wyf fi yn awdur ynddi ynghyd â hi Sasha Fedorova, felly os gwnewch chwiliad am ei henw yn fy rhestr o gyhoeddiadau, fe welwch yr hyn sydd ei angen arnoch. Mae'n sôn am werthuso ymchwil systemau a pha mor bwysig yw ceinder. 

Alex: Felly mae gwahaniaeth rhwng safon yr hyn a ystyrir yn dda mewn gwyddoniaeth ac mewn busnes. Mae'r wyddoniaeth yn gwerthuso perfformiad, defnydd pŵer, TDP, rhwyddineb gweithredu, a llawer mwy. Oes gennych chi gyfle i wneud y math hwn o ymchwil yn y brifysgol? Oes gennych chi labordy gyda pheiriannau gwahanol a phensaernïaeth gwahanol lle gallech chi gynnal arbrofion?

Michael: Oes, mae gan ein hadran lawer o beiriannau diddorol gwahanol. Yn fwyaf aml maent yn fach, mae gennym glwstwr bach a llawer o systemau amlbrosesydd gyda chyflymwyr gwahanol. Yn ogystal, mae gan y campws ganolfan gyfrifiadurol enfawr sy'n gwasanaethu gwyddonwyr o sawl dwsin o wahanol ddisgyblaethau. Mae ganddo tua mil o nodau ac ugain mil o greiddiau, i gyd ar Linux. Os bydd angen, gallwch chi bob amser brynu rhywfaint o AWS. Felly nid oes gennym unrhyw gyfyngiadau sylweddol gyda chaledwedd. 

Alex: Sut brofiad oedd hi ddeng mlynedd ar hugain yn ôl? Oedd yna broblemau wedyn?

Michael: Roedd ychydig yn wahanol bryd hynny. Rhwng canol a diwedd y 1980au, ystyriwyd bod gwyddoniaeth yn brin o adnoddau cyfrifiadurol. I unioni'r sefyllfa hon, y Sefydliad Gwyddoniaeth Cenedlaethol (Sefydliad Gwyddoniaeth Cenedlaethol) creu rhaglen o ymchwil arbrofol gydgysylltiedig (Ymchwil Arbrofol Cydlynol, CER). Cenhadaeth y rhaglen oedd darparu seilwaith cyfrifiadurol ar gyfer adrannau Cyfrifiadureg, ac mae wedi cyflawni newid sylweddol. Gyda'r arian a ddarparwyd ganddi, fe wnaethom ni ym Mhrifysgol Rochester brynu BBN Butterfly 1984-clym yn 128, roedd hyn flwyddyn cyn i mi gyrraedd yno. Bryd hynny dyma oedd system amlbrosesydd mwyaf y byd gyda chof a rennir. Roedd ganddo 128 o broseswyr, pob un ar famfwrdd ar wahân, ac roedd yn meddiannu pedwar rac. Roedd gan bob prosesydd megabeit o gof, roedd 128 megabeit o RAM yn swm annirnadwy bryd hynny. Ar y peiriant hwn fe wnaethom weithredu cloi MCS am y tro cyntaf. 

Alex: Felly, os wyf yn eich deall yn gywir, yna ar hyn o bryd mae'r broblem gyda'r caledwedd wedi'i datrys? 

Michael: Yn gyffredinol, oes. Mae yna ychydig o gafeatau: yn gyntaf, os ydych chi'n gwneud pensaernïaeth gyfrifiadurol ar y lefel sglodion, mae'n anodd ei wneud mewn amgylchedd academaidd oherwydd mae offer llawer gwell ar gyfer ei wneud mewn busnes. Os oes angen unrhyw beth llai na 10 nanometr, bydd yn rhaid i chi ei archebu gan rywun arall. Yn y maes hwn mae'n llawer haws bod yn ymchwilydd yn Intel. Os ydych chi'n gweithio ar gyfathrebiadau optegol ar sglodion neu ar gof cyflwr solet, fe welwch dechnolegau mewn busnes nad ydynt eto mewn gwyddoniaeth, felly mae'n rhaid i chi greu cynghreiriau. Er enghraifft, mae Stephen Swanson (Steven Swanson) creu partneriaeth o'r fath ar gyfer technolegau cof newydd. Nid yw'r ffurflen hon bob amser yn gweithio, ond mewn rhai achosion gall fod yn eithaf llwyddiannus. Yn ogystal, mewn gwyddoniaeth mae datblygu'r systemau cyfrifiadurol mwyaf pwerus yn anoddach. Mae'r prosiectau uwchgyfrifiadur mwyaf ar hyn o bryd yn yr Unol Daleithiau, Japan a Tsieina i gyd yn canolbwyntio ar fusnes. 

Rhoi syniadau ar waith yn ymarferol. MCS, MS, CLH, JSR 166, yn gweithio gyda Doug Lee a mwy.

Виталий: Rydych chi eisoes wedi sôn am sut wnaethoch chi ddechrau gweithio ar algorithmau cydamseru. Mae gennych ddwy erthygl enwog iawn am MCS blocio и Ciw Michael-Scott (MS), a weithredwyd ar ryw ystyr yn Java. (Nodyn y golygydd: gellir gweld pob cyhoeddiad по ссылке). Yno gweithredwyd y blociad hwn gyda rhai newidiadau ac fe ddaeth i ben clo CLH, a gweithredwyd y ciw fel y bwriadwyd. Ond aeth llawer o flynyddoedd heibio rhwng cyhoeddi eich erthyglau a'u cymhwysiad ymarferol. 

Alex: Mae'n ymddangos tua 10 mlynedd yn achos y ciw.

Michael: Cyn i'r nodweddion hyn ymddangos yn llyfrgell safonol Java?

Виталий: Oes. Beth wnaethoch chi i wneud i hyn ddigwydd? Neu a wnaethon nhw ddim byd?

Michael: Gallaf ddweud wrthych sut y daeth MS Queue i mewn i Java 5. Ychydig flynyddoedd cyn iddo ddod allan, bûm yn gweithio gyda grŵp Mark Moyers yn Sun Microsystems yn eu labordy ger Boston. Trefnodd weithdy ar gyfer pobl yr oedd yn eu hadnabod a oedd yn gweithio ar broblemau diddorol mewn aml-threading oherwydd ei fod am ddod o hyd i bynciau y gallai eu gwerthu i'w cwmni. Dyna lle cyfarfûm â Doug Lea am y tro cyntaf. Roedd Doug a minnau a thua 25 o bobl eraill o Sun gyda'n gilydd yn trafod cyflwyniad Doug ar JSR 166, a ddaeth yn java.util.concurrent yn ddiweddarach. Ar hyd y ffordd, dywedodd Doug yr hoffai ddefnyddio'r ciw MS, ond ar gyfer hyn roedd angen rhifydd ar gyfer nifer yr elfennau yn y ciw ar gyfer y rhyngwyneb. Hynny yw, dylai hyn fod wedi'i wneud trwy ddull ar wahân, atomig, cywir a chyflym. Awgrymais yn syml ychwanegu rhifau cyfresol at y nodau, gan gymryd rhif y nod cyntaf a'r un olaf a thynnu un o'r llall. Crafodd Doug ei ben, dywedodd “pam lai,” a gwnaeth hynny yn y diwedd. Buom yn trafod gweithredu'r dull hwn yn y llyfrgell, ond Doug a wnaeth y rhan fwyaf o'r gwaith ei hun. O ganlyniad, llwyddodd i sefydlu cefnogaeth multithreading ardderchog yn Java. 

Alex: Felly, os deallaf yn gywir, dylai'r dull .size() fod wedi bod yn rhan o'r rhyngwyneb ciw safonol, a dylai fod wedi cael cymhlethdod algorithmig o O(1)?

Michael: Oes, ac yn ychwanegol at hyn, mae angen cownter ar wahân.

Alex: Oherwydd os ydych chi'n galw'r dull .size() yn Java, disgwylir i'r canlyniad fod ar gael ar unwaith ac nid yn seiliedig ar faint gwirioneddol y casgliad. Rwy'n gweld, diolch.

Michael: Ychydig flynyddoedd yn ddiweddarach roeddwn yn gweithio ar strwythurau data deuol gyda fy myfyriwr Bill Scherer - a dweud y gwir, dyma beth y byddaf yn siarad amdano adroddiad ar Hydra. Daeth Doug atom a dywedodd y gallai eu defnyddio yn y Java Executor Framework. Ynghyd â Bill, fe wnaethant greu dau weithrediad, y ciwiau teg ac annheg fel y'u gelwir. Fe'u cynghorais ar y prosiect hwn, er na chymerais ran wrth ysgrifennu'r cod gwirioneddol. O ganlyniad, mae cyflymder ysgutorion wedi cynyddu'n sylweddol. 

Vladimir: Ydych chi wedi dod ar draws gweithrediadau anghywir o'ch algorithmau neu geisiadau i ychwanegu nodweddion newydd? Yn gyffredinol, dylai ymarfer gyd-fynd â theori, ond yn aml maent yn wahanol. Tybiwch ichi ysgrifennu algorithm, ac ar bapur mae'n gweithio, ond dechreuodd y bobl sy'n ymwneud â'r gweithredu ofyn ichi am fwy o nodweddion neu ryw fath o newid yr algorithm. Ydych chi erioed wedi cael sefyllfaoedd o'r fath?

Michael: Yr unig enghraifft y daeth rhywun ataf a gofyn “sut i’w weithredu” oedd cwestiwn Doug, y soniais amdano eisoes. Ond bu rhai achosion lle mae newidiadau diddorol wedi'u gwneud i weddu i anghenion ymarferol. Er enghraifft, trosodd tîm K42 IBM y clo MCS a'i wneud yn ryngwyneb safonol felly nid oedd angen pasio'r nod ciw yn ôl ac ymlaen i'r arferion caffael a rhyddhau. Diolch i'r rhyngwyneb safonol hwn, dechreuodd syniad a oedd yn brydferth mewn theori weithio'n ymarferol. Mae'n syndod nad ydyn nhw erioed wedi cyhoeddi erthygl amdano, ac er iddyn nhw dderbyn patent, fe wnaethon nhw ei adael yn ddiweddarach. Roedd y syniad yn fendigedig, a dwi'n ceisio siarad amdano pryd bynnag y bo modd. 

Bu achosion eraill lle mae pobl wedi gwneud gwelliannau i'r algorithmau yr wyf wedi'u cyhoeddi. Er enghraifft, mae gan y ciw MS fecanwaith gosod dau gam, a oedd yn golygu bod dau CAS ar lwybr critigol y ciw. Ar geir hŷn, roedd CAS yn eithaf drud. Mae Intel a gweithgynhyrchwyr eraill wedi eu hoptimeiddio yn eithaf da yn ddiweddar, ond unwaith ar y tro roedd y rhain yn gyfarwyddiadau 30-cylch, felly roedd cael mwy nag un ar y llwybr critigol yn annymunol. O ganlyniad, datblygwyd ciw ar wahân a oedd yn debyg i'r ciw MS, ond a oedd â dim ond un gweithrediad atomig ar y llwybr critigol. Cyflawnwyd hyn oherwydd y ffaith y gallai'r llawdriniaeth gymryd amser O(n) yn hytrach nag O(1) yn ystod cyfnod penodol o amser. Roedd yn annhebygol, ond yn bosibl. Digwyddodd hyn oherwydd bod yr algorithm ar adegau penodol wedi croesi'r ciw o'r dechrau i'r sefyllfa bresennol yn y ciw hwn. Yn gyffredinol, roedd yr algorithm yn llwyddiannus iawn. Hyd y gwn i, nid yw’n cael ei ddefnyddio’n eang iawn, yn rhannol oherwydd bod angen llawer llai o adnoddau ar weithrediadau atomig nag o’r blaen. Ond roedd y syniad yn wych. Rwyf hefyd yn hoff iawn o waith Dave Dice o Oracle. Mae popeth mae'n ei wneud yn ymarferol iawn ac mae'n defnyddio haearn yn glyfar iawn. Roedd ganddo law mewn llawer o'r algorithmau cydamseru a oedd yn ymwybodol o NUMA a strwythurau data aml-edau. 

Vladimir: Pan fyddwch yn ysgrifennu algorithmau neu'n addysgu myfyrwyr, nid yw canlyniad eich gwaith i'w weld ar unwaith. Mae angen peth amser ar y gymuned i ddod yn gyfarwydd ag, dyweder, erthygl newydd. Nid yw'r algorithm newydd yn dod o hyd i gymhwysiad ar unwaith. 

Michael: Mae'n bell o fod yn amlwg ar unwaith a fydd yr erthygl yn arwyddocaol ai peidio. Rwy'n meddwl y byddai'n ddiddorol gwneud astudiaeth o bapurau sydd wedi ennill gwobrau mewn cynadleddau. Hynny yw, edrychwch ar yr erthyglau yr oedd pobl ar y pwyllgorau rhaglen ar un adeg yn eu hystyried orau. Mae angen i chi geisio cyfrifo yn ôl nifer y dolenni a'r effaith ar fusnes pa mor ddylanwadol y bu'r erthyglau hyn mewn 10, 20, 25 mlynedd. Rwy'n amau ​​a fyddai cydberthynas gref rhwng y ddau. Ni fydd yn sero, ond yn fwyaf tebygol bydd yn llawer gwannach nag yr hoffem. Erys llawer o syniadau heb eu hawlio am amser hir cyn iddynt ddod yn gyffredin. Er enghraifft, gadewch i ni gymryd cof trafodaethol. Aeth mwy na 10 mlynedd heibio o'r amser y cyhoeddwyd yr erthygl wreiddiol i'r amser y dechreuodd pobl adeiladu peiriannau ag ef. A chyn ymddangosiad y cof hwn mewn cynhyrchion masnachol - a phob 20. Am amser hir iawn ni thalodd neb sylw i'r erthygl, ac yna cynyddodd nifer y dolenni iddo yn sydyn. Byddai'n anodd rhagweld hyn ymlaen llaw. Ar y llaw arall, weithiau bydd syniadau'n cael eu gweithredu ar unwaith. Ychydig flynyddoedd yn ôl, ysgrifennais bapur gyda Joe Izraelevitz ar gyfer DISC a oedd yn cynnig diffiniad ffurfiol newydd o ddilysrwydd ar gyfer strwythurau data parhaus y gellid eu defnyddio ar ôl i'r cyfrifiadur sy'n eu rhedeg ddamweiniau. Hoffais yr erthygl o'r cychwyn cyntaf, ond trodd allan i fod yn llawer mwy poblogaidd nag yr oeddwn yn ei ddisgwyl. Fe'i defnyddiwyd gan sawl grŵp gwahanol ac yn y pen draw daeth yn ddiffiniad safonol o strwythurau dyfalbarhad. Sydd, wrth gwrs, yn neis.

Vladimir: A oes unrhyw dechnegau a ddefnyddiwch ar gyfer asesu? Ydych chi hyd yn oed yn ceisio gwerthuso'ch erthyglau a'ch myfyrwyr? O ran a yw'r person a ddysgoch yn mynd i'r cyfeiriad cywir.

Michael: Fel pawb arall, dwi'n talu mwy o sylw i be dwi'n neud ar hyn o bryd. Unwaith eto, fel pawb arall, byddaf yn gwirio Google Scholar o bryd i'w gilydd i weld a yw fy hen bapurau'n cael eu dyfynnu, ond mae hynny'n fwy allan o chwilfrydedd. Yn bennaf, rydw i wedi ymgolli yn yr hyn mae fy myfyrwyr yn ei wneud nawr. O ran gwerthuso gwaith cyfredol, rhan ohono yw ystyriaethau esthetig, beth sy'n gain a beth sydd ddim. Ac ar lefel bob dydd, mae cwestiynau agored yn chwarae rhan fawr. Er enghraifft, mae myfyriwr yn dod ataf gyda graff o rai canlyniadau, ac rydym yn ceisio deall o ble y daeth ymddygiad rhyfedd y graff. Yn gyffredinol, yn ein gwaith rydym yn gyson yn ceisio deall pethau nad ydym yn eu deall eto. 

Cof trafodion

Виталий: Efallai y gallwn siarad ychydig am gof trafodaethol?

Michael: Rwy'n meddwl ei bod yn werth dweud o leiaf ychydig oherwydd fy mod yn rhoi llawer o ymdrech i mewn iddo. Mae hwn yn bwnc y mae gennyf fwy o gyhoeddiadau arno nag unrhyw un arall. Ond ar yr un pryd, yn rhyfedd ddigon, roeddwn bob amser yn amheus iawn ynghylch cof trafodaethol. Yn fy marn i, erthygl gan Herlihy and Moss (M. Herlihy, J. E. B. Moss) ei gyhoeddi o flaen ei amser. Yn y 1990au cynnar, fe wnaethant awgrymu y gallai cof trafodaethol helpu rhaglenwyr dawnus i weithio ar strwythurau data aml-edau, fel y gallai'r strwythurau hyn wedyn gael eu defnyddio fel llyfrgelloedd gan raglenwyr cyffredin. Hynny yw, byddai'n help i Doug Lee wneud ei JSR 166. Ond nid bwriad cof trafodaethol oedd gwneud rhaglennu aml-edau yn hawdd. Ond dyma'n union sut y dechreuodd gael ei ganfod yn gynnar yn y 2000au, pan ddaeth yn gyffredin. Fe'i hysbysebwyd fel ffordd o ddatrys problem rhaglennu cyfochrog. Mae'r dull hwn bob amser wedi ymddangos yn anobeithiol i mi. Gallai cof trafodion ond ei gwneud hi'n haws ysgrifennu strwythurau data cyfochrog. Dyma, mae'n ymddangos i mi, yw'r hyn a gyflawnodd. 

Am yr anhawster o ysgrifennu cod aml-threaded

Alex: Diddorol iawn. Mae'n ymddangos bod rhwystr penodol rhwng rhaglenwyr rheolaidd a'r rhai sy'n gallu ysgrifennu cod aml-edau. Y llynedd, siaradais sawl gwaith â phobl a oedd yn gweithredu rhywfaint o fframwaith algorithmig. Er enghraifft, gyda Martin Thomson, yn ogystal â rhaglenwyr sy'n gweithio ar lyfrgelloedd aml-edau. (Nodyn y golygydd: Mae Martin Thompson yn ddatblygwr enwog iawn, ysgrifennodd Torri ar draws и Aeron. Ac mae ganddo hefyd adroddiad yn ein cynhadledd Joker 2015, recordio fideo ar gael ar YouTube. Yr un yw ef agorwyd y gynhadledd hon recordiad cyweirnod ar gael hefyd). Y brif her, medden nhw, yw gwneud yr algorithmau yn gyflym ac yn hawdd i'w defnyddio. Hynny yw, maent yn ceisio goresgyn y rhwystr hwn a denu cymaint o bobl â phosibl i’r ardal hon. Beth ydych chi'n ei feddwl ohono?

Michael: Dyma brif broblem multithreading: sut i gyflawni perfformiad uchel heb gynyddu cymhlethdod y system. 

Alex: Oherwydd pan fyddant yn ceisio osgoi cymhlethdod, mae'r algorithm yn dod yn llai cyffredinol.

Michael: Yr allwedd yma yw tyniadau wedi'u cynllunio'n gywir. Mae'n ymddangos i mi mai dyma'r prif beth yn gyffredinol ar gyfer systemau cyfrifiadurol fel maes. Mae Butler Lampson yn hoffi defnyddio’r term hwn, ac mae’n ein galw’n “fasnachwyr tyniadau.” Nid yw technolegau syml yn bodoli heddiw. Mae gan y proseswyr rydyn ni'n eu defnyddio 10 biliwn o transistorau—mae symlrwydd allan o'r cwestiwn. Ar yr un pryd, mae'r ISA yn llawer symlach na'r prosesydd, gan inni weithio am amser hir iawn i ddarparu perfformiad uchel a rhyngwyneb cymharol syml iddo. Ond nid yw popeth yn llyfn gyda hi chwaith. Mae'r un broblem gyda chyflymwyr sydd bellach yn ymddangos ar y farchnad. Mae cwestiynau'n codi - sut i wneud y rhyngwyneb cywir ar gyfer y GPU, mecanwaith amgryptio, cywasgu, mecanwaith trawsgodio, mecanwaith algebra llinol, neu hyd yn oed FPGA mwy hyblyg. Sut i greu rhyngwyneb sy'n gwneud yr offeryn yn hawdd i'w ddefnyddio ac yn cuddio cymhlethdod? Ni fydd yn cael gwared arno, ond yn hytrach yn ei guddio rhag rhaglennydd syml. 

Alex: Fel yr wyf yn ei ddeall, mae gennym rwystr o hyd o ran deall tyniadau. Gadewch i ni gymryd y model cof; yn ein cyfnod o ddatblygiad gwyddoniaeth a thechnoleg, dyma un o'r prif dyniadau. Diolch iddo, rhennir pob rhaglennydd yn ddau grŵp: y rhan fwyaf yw'r rhai nad ydynt yn ei ddeall, a'r rhan leiaf yw'r rhai sy'n deall, neu'n meddwl eu bod yn deall. 

Michael: Dyna gwestiwn da - a oes unrhyw un ohonom wir yn deall model y cof?

Виталий: Yn enwedig yn C++.

Michael: Siarad â Hans Boehm rywbryd. Mae'n un o'r bobl callaf rwy'n ei adnabod, yn arbenigwr blaenllaw ar fodelau cof. Bydd yn dweud wrthych ar unwaith fod yna lawer nad yw'n ei ddeall. Ond os dychwelwn at fater tyniadau, yna, yn fy marn i, mynegwyd y syniad pwysicaf ym maes modelau cof dros y 30 mlynedd diwethaf. yn nhraethawd hir Sarita Adve. (Nodyn y golygydd: mae rhestr gyflawn o gyhoeddiadau ar gael по ссылке).

Alex: Fy nghwestiwn yw: a yw'r rhwystr hwn yn dod o union natur y cysyniad? 

Michael: Nac ydy. Daeth Sarita i'r casgliad, gyda'r dull cywir, y gallwch chi guddio'r holl gymhlethdod yn llwyddiannus, cael perfformiad uchel a rhoi API syml i'r rhaglennydd. Ac os dilynwch yr API hwn, gallwch sicrhau cysondeb cyson. Rwy’n meddwl mai dyma’r model cywir. Ysgrifennu cod heb rasys data a chael cysondeb dilyniannol. Wrth gwrs, er mwyn lleihau'r tebygolrwydd o rasio, mae angen offer arbennig, ond mater arall yw hynny. 

Vladimir: A fu adegau yn eich gyrfa pan drodd problem a oedd i’w gweld wedi’i datrys yn sydyn yn drychineb, neu daeth i’r amlwg nad oedd modd datrys y broblem hon? Er enghraifft, mewn theori gallwch ffactorio unrhyw rif neu benderfynu a yw unrhyw rif yn gysefin. Ond yn ymarferol gall hyn fod yn anodd ei wneud; gyda'r caledwedd presennol mae'n anodd ffactorio niferoedd. Oes rhywbeth tebyg wedi digwydd i chi?

Michael: Dydw i ddim yn cofio dim byd felly ar unwaith. Bu adegau pan oedd yn ymddangos i mi nad oedd dim byd ar ôl i'w wneud mewn maes penodol, ond yna digwyddodd rhywbeth newydd a diddorol yno. Er enghraifft, roeddwn yn meddwl bod y maes ciwio anghyfyngedig eisoes wedi cyrraedd aeddfedrwydd. Ar ôl sawl gwelliant i'r ciw MNS, ni ddigwyddodd llawer bellach. Ac yna dyfeisiodd Morrison (Adam Morrison) ac Afek (Yehuda Afek). Ciw LCRQ. Daeth yn amlwg bod ciw aml-edau diderfyn yn bosibl, lle'r oedd y rhan fwyaf o'r amser dim ond cyfarwyddyd nôl-a-chynnydd ar y llwybr critigol. Ac roedd hyn yn ei gwneud yn bosibl i gyflawni trefn maint gwell perfformiad. Nid yw'n ffaith nad ydym yn gwybod bod nôl a chynyddran yn beth defnyddiol iawn. Ysgrifennodd Eric Freudenthal am hyn yn ei waith ar yr Uwchgyfrifiadur gydag Allan Gottlieb yn y 1980au hwyr, ond roedd yn ymwneud â chiwiau cyfyngedig. Roedd Morrison ac Afek yn gallu defnyddio fetch-and-increment ar ciw diderfyn.

Pensaernïaeth newydd. A yw buddugoliaeth cof trafodaethol yn agos?

Vladimir: Ydych chi'n chwilio am atebion pensaernïol newydd a allai fod yn ddefnyddiol ar gyfer algorithmau? 

Michael: Wrth gwrs, mae llawer o bethau yr hoffwn eu gweld yn cael eu rhoi ar waith. 

Vladimir: Pa fath, er enghraifft?

Michael: Yn gyntaf oll, ychydig o estyniadau syml i'n cof trafodion lefel caledwedd mewn proseswyr Intel ac IBM. Yn benodol, hoffwn i'r llwyth a'r storfa nad yw'n drafodion a ddigwyddodd fod ar gael ar unwaith o fewn trafodion. Maent yn syth yn arwain at ddolenni yn y dilyniant digwydd-cyn, felly gallant fod yn anodd. Ond os ydych chi'n cynnal haenau o dynnu, mae yna lawer o bethau diddorol iawn y gallwch chi eu gwneud y tu allan i'r trafodiad tra mae'n digwydd. Nid wyf yn gwybod pa mor anodd fyddai hyn i’w roi ar waith, ond byddai’n ddefnyddiol iawn. 

Peth defnyddiol arall yw llwytho storfa o gof o bell. Rwy'n meddwl yn hwyr neu'n hwyrach y bydd hyn yn cael ei wneud. Bydd y dechnoleg hon yn caniatáu creu systemau gyda chof wedi'i ddadgyfuno. Byddai'n bosibl cadw, dyweder, 100 terabytes o gof anweddol mewn rac, a byddai'r system weithredu ei hun yn penderfynu'n ddeinamig pa rannau o'r cof hwnnw ddylai gyfateb i ofod cyfeiriad corfforol y proseswyr. Byddai hyn yn hynod ddefnyddiol ar gyfer cyfrifiadura cwmwl, gan y byddai'n caniatáu i lawer iawn o gof gael ei ddarparu i'r tasgau sydd eu hangen. Rwy'n meddwl y bydd rhywun yn ei wneud.

Виталий: I orffen siarad am gof trafodaethol, mae gen i un cwestiwn arall ar y pwnc hwn. A fydd cof trafodaethol yn disodli strwythurau data aml-edau safonol yn y pen draw?

Michael: Nac ydy. Mae trafodion yn fecanwaith hapfasnachol. Ar y lefel rhaglennu cloeon atomig yw'r rhain, ond y tu mewn maent yn ddyfaliadau. Mae rhagolygon o'r fath yn gweithio os yw'r rhan fwyaf o'r dyfalu'n gywir. Felly, mae cof trafodaethol yn gweithio'n dda pan nad yw edafedd prin yn rhyngweithio â'i gilydd, a does ond angen i chi sicrhau nad oes unrhyw ryngweithio. Ond os yw neges yn dechrau rhwng edafedd, nid yw trafodion o fawr o ddefnydd. Gadewch imi egluro, rydym yn sôn am yr achos pan fydd trafodion yn cael eu lapio o amgylch y gweithrediad atomig cyfan. Gellir eu defnyddio'n llwyddiannus o hyd fel cydrannau ar gyfer strwythurau data aml-edau. Er enghraifft, os oes angen CAS tri gair arnoch, a bod angen i chi aml-edau dri pheth bach yng nghanol algorithm gwirioneddol aml-threaded sy'n gweithio gydag ugain edafedd ar yr un pryd. Yn gyffredinol, gall trafodion fod yn ddefnyddiol, ond ni fyddant yn dileu'r angen i ddylunio strwythurau data aml-edau yn gywir. 

Cof anweddol, Optane DIMM, dyfeisiau tra-gyflym.

Виталий: Y peth olaf yr hoffwn siarad amdano yw pwnc eich ymchwil gyfredol: cof anweddol. Beth allwn ni ei ddisgwyl yn y maes hwn yn y dyfodol agos? Efallai eich bod yn gwybod am unrhyw weithrediadau effeithiol sydd eisoes yn bodoli? 

Michael: Dydw i ddim yn arbenigwr caledwedd, dim ond yr hyn yr wyf yn ei ddarllen yn y newyddion a'r hyn y mae fy nghydweithwyr yn ei ddweud wrthyf. Mae pawb eisoes wedi clywed bod Intel yn gwerthu Optane DIMM, sydd â thua 3 gwaith yn fwy hwyrni darllen a 10 gwaith yn fwy hwyrni ysgrifennu na RAM deinamig. Byddant ar gael yn fuan mewn fersiynau cyfaint mawr iawn. Mae'n ddoniol meddwl y gallech chi gael gliniadur gyda sawl terabytes o RAM byte-gyfeiriadwy. Mae'n debygol y byddwn mewn 10 mlynedd yn penderfynu defnyddio'r dechnoleg newydd hon, gan ein bod yn defnyddio DRAM - dim ond cynyddu'r cyfaint. Ond diolch i annibyniaeth ynni, mae cyfleoedd cwbl newydd yn agor i ni. Gallwn newid y pentwr storio yn sylfaenol fel nad oes gwahaniad rhwng cof gweithio byte-gyfeiriadwy a chof parhaus strwythuredig bloc. Felly, ni fydd angen i ni gyfresoli popeth y mae angen ei drosglwyddo o un rhaglen i'r llall i ffeiliau â strwythur bloc. O hyn gallwn ddeillio llawer o egwyddorion pwysig sy'n effeithio ar systemau gweithredu, amgylcheddau amser rhedeg, a storfeydd data gwasgaredig. Mae'r maes hwn yn ddiddorol iawn i weithio ynddo. Yn bersonol, mae'n anodd i mi ragweld beth fydd hyn i gyd yn arwain ato, ond mae'r problemau yma yn hynod ddifyr. Efallai y bydd newidiadau chwyldroadol yma, ac maent yn dilyn yn naturiol iawn o'r gwaith ar aml-edau, gan fod adferiad methiant yn broses "aml-ddarllen" wrth ymyl gweithrediad arferol y system. 

Yr ail brif bwnc rwy'n gweithio arno ar hyn o bryd yw rheoli dyfeisiau tra-gyflym a mynediad diogel i ddyfeisiau o'r gofod defnyddiwr gyda rheolaeth polisi systemig. Yn ystod y blynyddoedd diwethaf, bu tuedd i symud mynediad i'r ddyfais i'r gofod defnyddiwr. Gwneir hyn oherwydd na all stac cnewyllyn TCP-IP weithredu ar ben rhyngwyneb rhwydwaith sydd angen pecyn newydd bob 5 microsecond; Felly, mae gweithgynhyrchwyr yn darparu mynediad uniongyrchol i ddyfeisiau. Ond mae hyn yn golygu bod y system weithredu yn colli rheolaeth ar y broses ac ni all ddarparu mynediad priodol i'r ddyfais ar gyfer cymwysiadau sy'n cystadlu. Mae ein tîm ymchwil yn credu y gellir osgoi'r diffyg hwn. Bydd gennym erthygl ar hyn yn USENIX ATC y mis hwn. Mae'n gysylltiedig â gwaith ar ddyfalbarhad, gan fod cof parhaus hirhoedlog cyfeiriadadwy beit, yn ei hanfod, yn ddyfais ag I/O tra chyflym y mae angen ei chyrchu yn y gofod defnyddiwr. Mae'r ymchwil hwn yn gwneud ymagweddau newydd posibl at ficro-kernels, exokernels, ac ymdrechion traddodiadol eraill i symud ymarferoldeb yn ddiogel o'r cnewyllyn OS i'r gofod defnyddiwr. 

Vladimir: Mae cof beit-gyfeiriadwy yn wych, ond mae yna gyfyngiad corfforol - cyflymder golau. Mae hyn yn golygu ei bod yn anochel y bydd oedi wrth ryngweithio â'r ddyfais. 

Michael: Hollol gywir.

Vladimir: A fydd digon o gapasiti i ymdopi â'r llwythi newydd?

Michael: Mae hwn yn gwestiwn rhagorol, ond bydd yn anhawdd i mi ei ateb. Mae'r syniad o brosesu yn y cof wedi bod o gwmpas ers cryn amser, mae'n ddiddorol iawn, ond hefyd yn gymhleth iawn. Nid wyf wedi gweithio yn y maes hwn, ond byddai'n wych pe bai rhai darganfyddiadau'n cael eu gwneud yno. Rwy'n ofni nad oes gennyf ddim mwy i'w ychwanegu. 

Vladimir: Mae un broblem arall. Bydd yn amhosibl ffitio symiau newydd, sylweddol fwy o RAM i'r CPU. Felly, oherwydd cyfyngiadau ffisegol, rhaid ynysu'r RAM hwn. 

Michael: Mae'r cyfan yn dibynnu ar nifer y diffygion wrth gynhyrchu cylchedau integredig. Pe bai'n bosibl creu wafferi lled-ddargludyddion yn gyfan gwbl heb ddiffygion, yna byddai'n bosibl gwneud microcircuit cyfan ohono. Ond nawr nid ydym yn gwybod sut i wneud microcircuits yn fwy na stampiau post. 

Vladimir: Ond rydym yn dal i siarad am feintiau enfawr, am centimetrau. Mae hyn yn anochel yn cael effaith ar hwyrni. 

Michael: Oes. Does dim byd y gallwch chi ei wneud am gyflymder golau. 

Vladimir: Yn anffodus. 

Y duedd fawr nesaf. Strwythurau data deuol. Hydra.

Виталий: Cyn belled ag y deallaf, rydych chi'n dal tueddiadau newydd yn gyflym iawn. Roeddech chi'n un o'r rhai cyntaf i weithio ym maes cof trafodaethol, ac yn un o'r rhai cyntaf i weithio mewn cof anweddol. Beth yn eich barn chi fydd y duedd fawr nesaf? Neu efallai ei fod yn gyfrinach?

Michael: I fod yn onest, dwi ddim yn gwybod. Gobeithio y byddaf yn gallu sylwi pan ddaw rhywbeth newydd i fyny. Nid wyf wedi bod yn ddigon ffodus i ddyfeisio unrhyw faes newydd ar fy mhen fy hun, ond rwyf wedi cael ychydig o lwc ac wedi gallu dechrau gweithio'n eithaf cynnar mewn meysydd newydd a grëwyd gan eraill. Rwy'n gobeithio y byddaf yn gallu gwneud hyn yn y dyfodol.

Alex: Bydd y cwestiwn olaf yn y cyfweliad hwn yn ymwneud â’ch perfformiad yn Hydra a’ch gweithgareddau yn yr ysgol. Os wyf yn deall yn iawn, bydd yr adroddiad yn yr ysgol yn ymwneud ag algorithmau di-flocio, ac yn y gynhadledd am strwythurau data dwbl. A allech chi ddweud ychydig eiriau am yr adroddiadau hyn?

Michael: Yn rhannol, rydym eisoes wedi cyffwrdd â'r pynciau hyn gyda chi yn y cyfweliad hwn. Mae'n ymwneud â'r gwaith a wnes i gyda'm myfyriwr Bill Scherer. Ysgrifennodd draethawd ymchwil arno, a chyfrannodd Doug Lee ato hefyd, ac yn y diwedd daeth yn rhan o'r ciwiau cydamserol aml-edau yn llyfrgell Java. Gadewch i ni dybio bod y strwythur data yn cael ei ddarllen a'i ysgrifennu heb rwystro, hynny yw, mae gan bob gweithrediad nifer gyfyngedig o gyfarwyddiadau ar y llwybr critigol. Os byddwch yn ceisio tynnu data o gynhwysydd gwag, neu'n ceisio tynnu data penodol nad yw yn y cynhwysydd hwn, fe'ch hysbysir ar unwaith na ellir gwneud hyn. Ond efallai na fydd yr ymddygiad hwn yn dderbyniol os oes gwir angen y data hwn ar yr edefyn. Yna'r peth cyntaf sy'n dod i'r meddwl yw creu dolen a fydd yn gofyn yn gyson a yw'r data angenrheidiol wedi ymddangos. Ond yna mae ymyrraeth i bawb arall. Yn ogystal, gyda'r dull hwn, gallwch chi aros am 10 munud, ac yna bydd llinyn arall yn dod, a bydd yn derbyn y data angenrheidiol yn ddamweiniol yn gyntaf. Nid oes gan strwythurau data deuol gloeon o hyd, ond maent yn caniatáu i edafedd aros yn iawn. Mae'r term "dwbl" yn golygu bod y strwythur yn cynnwys naill ai data neu geisiadau am ddata, gadewch i ni eu galw'n wrth-ddata. Felly os ceisiwch adfer rhywbeth o gynhwysydd gwag, bydd cais yn cael ei roi yn y cynhwysydd yn lle hynny. Nawr gall yr edefyn aros am gais heb darfu ar unrhyw un arall. Yn ogystal, mae'r strwythur data yn pennu blaenoriaethau i geisiadau fel eu bod, pan gânt eu derbyn, yn eu trosglwyddo i'r person cywir. Y canlyniad yw mecanwaith nad yw'n cloi sydd â manyleb ffurfiol o hyd a pherfformiad da yn ymarferol. 

Alex: Beth yw eich disgwyliadau o'r strwythur data hwn? A fydd yn gwella perfformiad ym mhob achos cyffredin, neu a yw'n fwy addas ar gyfer rhai sefyllfaoedd? 

Michael: Mae'n ddefnyddiol os, yn gyntaf, mae angen cynhwysydd arnoch heb gloi, ac, yn ail, mae angen i chi aros mewn sefyllfa lle mae angen i chi adfer data o'r cynhwysydd nad yw ynddo. Hyd eithaf fy ngwybodaeth, mae ein fframwaith yn darparu'r ymddygiad gorau posibl pan fodlonir y ddau amod hyn. Felly, yn yr achosion hyn rwy'n argymell ei ddefnyddio. Prif fantais strwythurau data di-glo yw eu bod yn osgoi problemau perfformiad. Ac mae aros yn bwysig iawn mewn llawer o algorithmau os yw data'n cael ei drosglwyddo o un edefyn i'r llall.

Виталий: Gadewch imi egluro: a wnewch chi siarad am yr un peth yn yr ysgol ac yn y gynhadledd?

Michael: Yn ysgol siaradaf yn gyffredinol am strwythurau data aml-edau, gyda'r egwyddorion sylfaenol wedi'u hamlinellu ar ddechrau'r wers. Rwy'n cymryd bod y gynulleidfa yn gwybod beth yw edafedd ac yn gyfarwydd â chloeon. Yn seiliedig ar y wybodaeth sylfaenol hon, byddaf yn siarad am strwythurau data di-glo. Byddaf yn rhoi trosolwg o'r problemau pwysicaf yn y maes hwn, gan gyffwrdd â phynciau fel rheoli cof. Dydw i ddim yn meddwl y bydd unrhyw beth mwy cymhleth na'r ciw MS.

Alex: A ydych yn bwriadu addysgu am strwythurau data deuol ar ddiwedd eich dosbarth yn yr ysgol?

Michael: Soniaf am danynt, ond ni threuliaf lawer o amser arnynt. Bydd adroddiad Hydra yn cael ei gyflwyno iddyn nhw. Bydd yn ymdrin â'r prosiect a gyrhaeddodd Java yn y pen draw, yn ogystal â gweithio gyda Joe Israelevich i greu amrywiad deuol o'r ciw LCRQ, a chreu dyluniad bron yn gyffredinol ar gyfer strwythurau data deuol.

Alex: Felly gellir argymell y ddarlith yn yr ysgol ar gyfer dechreuwyr, a'r ddarlith ar strwythurau data dwbl ar Hydra - ar gyfer pobl sydd eisoes â rhywfaint o brofiad?

Michael: Cywirwch fi os ydw i'n anghywir, ond bydd y gynulleidfa yn Hydra yn eithaf amrywiol, gan gynnwys llawer o arbenigwyr Java, ac yn gyffredinol pobl nad ydyn nhw'n ymwneud yn benodol â rhaglennu aml-edau. 

Виталий: Ydy, mae'n wir.

Alex: O leiaf rydym yn gobeithio hynny.

Michael: Yn yr achos hwn, byddaf yn wynebu'r un broblem ag y dechreuwyd y cyfweliad hwn â hi: sut i wneud adroddiad yn ddigon cyfoethog mewn manylion technegol ac yn hygyrch i bob gwrandäwr.

Виталий: A wnewch chi roi adroddiad yr un ffordd ag y byddwch chi'n rhoi darlithoedd? Hynny yw, siarad â'r gynulleidfa ac addasu i'r sefyllfa?

Michael: Mae arnaf ofn na fydd yn gweithio allan felly, oherwydd bydd sleidiau yn yr adroddiad. Mae sleidiau'n bwysig pan fydd gwrandawyr yn siarad ieithoedd gwahanol i ddechrau. Bydd llawer o bobl yn ei chael yn anodd fy neall yn Saesneg, yn enwedig os byddaf yn siarad yn rhy gyflym. Dewisais y pynciau hyn oherwydd Peter Kuznetsov gofyn i mi siarad am strwythurau data di-glo yn Ysgol SPTDC; ac yna roeddwn i angen adroddiad ar gyfer cynhadledd grŵp defnyddwyr Java, ac roeddwn i eisiau dewis rhywbeth a fyddai o ddiddordeb yn benodol i raglenwyr Java. Y ffordd hawsaf oedd siarad am y pethau hynny yn llyfrgell Java yr oedd gennyf law mewn rhyw ffordd neu'i gilydd. 

Alex: Rydym yn cymryd bod y gynulleidfa ar Hydra eisoes yn gwybod rhywbeth am raglennu di-glo ac efallai bod ganddi rywfaint o brofiad yn y maes hwn. Ond tybiaeth yn unig yw hyn; Beth bynnag, diolch am eich amser. Rwy’n siŵr y bydd y cyfweliad yn ddiddorol iawn i’n darllenwyr. Diolch yn fawr!

Виталий: Diolch. 

Michael: Bydd yn dda genyf eich cyfarfod yn St. 

Alex: Mae gennym ninnau hefyd ddinas hardd. Ydych chi erioed wedi bod yma?

Michael: Na, dydw i erioed wedi bod i Rwsia o gwbl. Ond mae St Petersburg bob amser wedi bod ar y rhestr o leoedd lle nad ydw i wedi bod eto, ond lle rydw i wir eisiau mynd, felly roeddwn i'n hapus iawn gyda'r gwahoddiad. 

Alex: Gyda llaw, bydd gennym raglen o wibdeithiau ar gyfer siaradwyr. Diolch yn fawr iawn am y cyfweliad, a chael diwrnod braf!

Gallwch barhau â'ch sgwrs gyda Michael yng nghynhadledd Hydra 2019, a gynhelir ar Orffennaf 11-12, 2019 yn St Petersburg. Bydd yn dod gydag adroddiad "Strwythurau data deuol". Gellir prynu tocynnau ar y wefan swyddogol.

Ffynhonnell: hab.com

Ychwanegu sylw