Domači računalniki proti koronavirusu
Prvi znanstveniki so bili samouki, potem pa se je znanost čedalje bolj institucionalizirala in odmaknila od množic. Internet to spreminja. Danes za prispevek k svetovni znanosti spet ne potrebujemo več doktorata, temveč zadostuje že domači računalnik. A ne za brskanje po internetu in prebiranje »modrosti« z družbenih omrežij, temveč zaradi računski moči. Vsakdo jo lahko donira velikim projektom, ki rešujejo življenja. Covid-19 nas je na to spet opomnil.
Nekoliko starejši bralci se bodo spomnili legendarnega projekta SETI@home, ki je deloval od leta 1999 do konca letošnjega marca. Z njim so lahko lastniki domačih računalnikov sodelovali pri iskanju Nezemljanov, in čeprav tega vrhunca projekt ni nikdar dosegel, je bil njegov vpliv izjemen. Šlo je za najpopularnejši projekt distribuiranega računanja, v katerem je na vrhuncu sodelovalo več kot pet milijonov uporabnikov, ob zaključku pa še vedno zelo spodobnih 1,8 milijona. V projekt, ki je bil zamišljen za 100.000 računalnikov, so prostovoljci v dveh desetletjih donirali okrog 2,6 ∙ 1023 operacij s plavajočo vejico. Trenutno najmočnejši superračunalnik na svetu, ameriški Summit, zmore 148 petaflops (1,48 1017 operacij na sekundo) in bi to sicer opravil v 20 dneh. A vseeno je dosežek skupnosti osupljiv, sploh če pomislimo, da s(m)o leta 1999 SETI@home poganjali na Pentiumih II 233 MHz.
Legendarni projekt SETI@home je imel tudi domiseln ohranjevalnik zaslona.
Stopimo v sedanjost. Fiziko, kemijo, biologijo in medicino prežemajo računalniške metode, svetovni superračunalniki na seznamu Top 500 skupaj zmorejo 1,6 eksaflopsa (1,6 1018), tipičen pisarniški računalnik pa ima štiri jedra s taktom nekaj gigahercev. In v svetu razsaja novi koronavirus (sars-cov-2), ki se je razširil v večino držav in zahteval že več deset tisoč žrtev. Znanost je hitro stopila skupaj in začela raziskovati virus z vseh koncev: dedni zapis RNK, klinična slika, razvoj cepiva, iskanje zdravil itd. Prav pri zadnjem pa lahko na pomoč pristopi vsakdo, ki ima osebni računalnik.
Distribuirano računanje
Prvi projekt distribuiranega računanja sega v leto 1996, ko so si ga izmislili seveda matematiki. Projekt GIMPS (Great Internet Mersenne Prime Search), ki teče še danes, išče velika praštevila. Za posebno obliko praštevil (Mersennova praštevila), ki jih lahko zapišemo kot 2p–1, obstaja zelo hiter algoritem za preveritev, ali je število za določeno vrednost p praštevilo. Zato so vsa trenutno največja znana praštevila te oblike in so bila odkrita prav v projektu GIMPS. Posamezniki, ki so imeli to srečo, da je njihov računalnik izbral in preizkusil pravi eksponenti, so navedeni kot soodkritelji teh praštevil. Poleg iskanja praštevil je imel svoj čas odjemalec za GIMPS, ki se je imenoval Prime95, pomembno mesto med navijalci procesorjev. Uporabljal se je kot de facto test za stabilnost navitega sistema. Če je zmogel dlje časa poganjati Prime95, ki obremeni tako pomnilnik kakor procesor, je bil sistem stabilen.
Panevropski hekaton
Med 24. in 26. aprilom je potekal panevropski hekaton (hackaton) #EUvsVirus, ki so ga pripravili Evropska komisija, Evropski svet za inovacije (EIC) in države članice. V njem so sodelovali udeleženci iz vseh držav članic. Na voljo so imeli 48 ur za sodelovanje prek spletnih platform za pripravo rešitev za izzive na hekatonu. Teh je bilo 73, razdeljeni pa so bili na pet področij: zdravje in zdravstvo, gospodarstvo, socialna kohezija, zaščita ranljivih skupin, izobraževanje. Ker so izzivi segali od zasnove respiratorjev in proizvodnje zaščitnih mask do zagotavljanja psihosocialne pomoči delavcem na daljavo (in še marsikaj), so bili tudi sodelujoči iz vseh profilov.
GIMPS je pokazal, da so ljudje pripravljeni donirati procesorske cikle v večje projekte, če se pri tem počutijo kot del skupine. Drugi večji projekt je Distributed.net, ki od leta 1997 razbija šifrirni algoritem RC5-72 ter išče Golombova ravnila. Na Golombovem ravnilu so različne oddaljene zareze, za katere mora veljati, da so čisto vse razdalje, ki jih lahko sestavimo iz kateregakoli para, različne. Primer je 0, 1, 4, 6, s katerim je moč na en sam način izmeriti vse razdalje med 0 in 6. Največje znano Golombovo ravnilo ima 27 zarez in ga je odkril projekt Distributed.net.
Projekt distributed.net išče tudi Golombova ravnila, ki vsebujejo zareze tako, da se nobena razdalja ne ponovi.
Pomembno prelomnico predstavlja BOINC (Berkeley Open Infrastructure for Network Computing), ki je prinesel odprtokodni sistem za postavljanje projektov distribuiranega računanja. To olajša pripravo takšnih projektov, saj imajo raziskovalci na voljo ogrodje, v katero vpnejo svoj računski problem. Katere platforme bodo podprli, je odvisno od njih. Večina podpre Windows, Linux in Mac, nekateri pa tudi ARM, Nvidio in celo FreeBSD. Hkrati nudi tak način dodatno varnost tudi uporabnikom, saj imajo večjo izbiro projektov, hkrati pa dobijo zagotovilo, da so projekti verodostojni. Projektov je trenutno več kot 30, na podlagi tako pridobljenih rezultatov pa je bilo objavljenih več kot sto znanstvenih člankov.
Zvijanje iz naslanjača
Eden največjih projektov distribuiranega računanja in skupnostne znanosti je Folding@home, ki teče že 20 let. Profesor Vijay Prande s Stanforda si je zamislil projekt, v katerem bi z donirano računsko močjo izračunavali zvitje proteinov. Ti so sestavljeni iz velikega števila aminokislin, zato bi se lahko zvili na ogromno različnih načinov. Cyrus Levinthal je leta 1969 izračunal, da je za majhen protein iz 100 aminokislin teh možnosti 10143, kar je neizračunljivo mnogo. A kljub temu se proteini zelo hitro zvijejo v vedno enako, najugodnejšo strukturo, ne da bi »preizkušali« vse možnosti. To imenujemo Levinthalov paradoks, Folding@home pa se ukvarja z izračunavanjem, kako se zvijejo posamezni proteini. To ima medicinski pomen, saj je napačno zvitje proteinov vzrok za nastanek nekaterih hudih bolezni, npr. Alzheimerjeve bolezni, nekaterih vrst raka, Creutzfeldt-Jakobove bolezni in Huntingtonove bolezni. Hkrati pa poznavanje »žive« strukture in ne samo posameznih zamrznjenih posnetkov omogoča iskanje spojin, ki bi se v te proteine vezale in jim spremenile delovanje.
Danes projekt Folding@home vodi Greg Bowman, nekdanji študent ustanovitelja projekta Vijaya Prandeja, ki mu pomaga večja ekipa. Slika: https://foldingathome.org/
Do danes se je Folding@home razvil v večnamenski distribuirani superračunalnik za simulacije v molekularni biologiji. Marca letos, ko je ugasnil SETI@home, torej še pred epidemijo, je doživel velik porast uporabnikov, ki so Nezemljane zamenjali za molekule. Prav epidemija covida-19 pa je prispevala k še večji popularnosti, tako da je sredi aprila dosegel agregatno računsko moč 2,4 eksaflopsa, kar je več od skupne zmogljivosti vseh superračunalnikov na lestvici Top 500. S tem je postal najzmogljivejši »superračunalnik« na svetu in prvi, ki je presegel magično mejo 1 eksaflops. Rast je bila več kot 20-kratna, kar je začasno izčrpalo pripravljene paketke, tako da so bili nekaj časa računalniki brez dela.
Kaj je sidranje
Sidranje (docking) je preverjanje, kako se neka manjša molekula (pravimo ji ligand) veže v večjo molekulo. Ta je običajno kakšen protein iz živega sveta, zato ji za razlikovanje lahko rečemo biomolekula. Medtem ko imajo manjše molekule, ki jih sidramo, kvečjemu kakšnih sto atomov, so biomolekule lahko ogromni proteinski kompleksi. Zanima pa nas seveda, katere manjše molekule se vežejo na aktivno mesto molekule in na kak način.
V načelu izračun interakcije med ligandom in biomolekulo ni zahteven, seveda pa z večanjem zahtevane natančnosti (metode segajo od najbolj primitivnih do kompleksnih) raste tudi potrebna računska moč. Kakovost vezave oziroma jakost interakcije ocenijo cenilne funkcije, ki so seveda zelo različne (od primitivnih fizikalnih modelov prek empiričnih funkcij do statističnih funkcij).
Mogočih ligandov je skoraj neomejeno, saj si lahko teoretično zamislimo tudi 1080 potencialno uporabnih molekul. Takemu preizkušanju rečemo virtualno rešetanje (virtual screening).
Namen sidranja je vnaprej določiti potencialno uporabne molekule, da potem dejanske in vitro teste izvedemo na teh kandidatih. Laboratorijsko delo je namreč bistveno dražje, zamudnejše in konec koncev okolju manj prijazno od računalniških simulacij.
Sidranje je preverjanje, kako se majhne molekule vežejo na velike biomolekule, npr. virusne proteine. Slika: Podlipnik, Jukić, Pleško
Ni presenetljivo, da se je projekt Folding@home vključil v boj proti covidu-19. Folding@home je v preteklosti simuliral tudi strukturo različnih proteinov ebole. Protein VP35 je tradicionalno veljal za protein, ki ga zaradi oblike ni mogoče učinkovito napasti z inhibitorji (tak protein se imenuje undruggable). Simulacije pa so pokazale, da lahko obstaja tudi v drugi obliki, ki je prvotni eksperimenti niso odkrili. Kasnejši tarčni poizkusi so potrdili napovedi simulacije, tako da zdaj poteka iskanje molekul, ki bi se lahko vezale v novo odkrito tarčno mesto na proteinu. Na podoben način se Folding@home loteva tudi proteinov v novem koronavirusu. Pri razvoju zdravil je namreč ključno poznavanje, kako se proteini zvijejo in kasneje obnašajo. Med delovanjem se namreč njihova oblika lahko spremeni, kar eksperimenti težko ali sploh ne zaznajo. Tako odkrita mesta so potem tarče za potencialna zdravila.
Projektu Folding@home se je poleg več anonimnih Slovencev pridružilo tudi Slovensko superračunalniško omrežje (SLING). Kot so sporočili iz Arnesa, je poleg računalniških kapacitet na Institutu Jožef Stefan in pri Arnesu ključen prispevek superračunalnika HPC RIVR, ki se gradi v Mariboru. Njegov prototipni HPC Maister prispeva 3.000 računskih jeder k projektu.
Tudi pravi superračunalniki na pomoč
V boju proti covidu-19 s kapacitetami pomagajo tudi pravi superračunalniki. Trenutno najmočnejši na svetu, IBM Summit, ki ga imajo v Oak Ridge National Laboratory, je v nekaj dneh preveril 8.000 spojin in odkril 77 malih molekul (zdravil ali naravnih spojin), ki bi lahko negativno delovale na novi koronavirus.
V ZDA so oblikovali konzorcij COVID-19 HPC, ki združuje 400 petaflopsov računskih kapacitet, ki so na voljo raziskovalcem novega koronavirusa. V konzorciju sodelujejo industrijski partnerji (IBM, Amazon, AMD, BP, Google, HP, Microsoft, Nvidia), številne univerze (tudi MIT in Carneige Mellon), laboratoriji ministrstva za energijo (Argonne, Lawrence, Los Alamos, Oak Ridge) in zvezne agencije. Procesorski čas je dragocen in se deli na razpisih. Sredi aprila teče 27 aktivnih projektov, ki uporabljajo 418 petaflopsov, 41.000 grafičnih procesorjev in 3,8 milijona procesorskih jeder.
Superračunalniške sposobnosti se uporabljajo za najrazličnejše simulacije. Ne gre le za razumevanje proteinske strukture virusa, temveč tudi iskanje vezavnih mest z umetno inteligenco ali celo modeliranje širjenja pandemije. V tem pogledu imamo srečo. Če bi virus napadel pred desetimi leti, bi bili bistveno bolj nebogljeni na področju računalniških simulacij in jih ne bi uporabljali na ta način, je dejal direktor superračunalniška centra Univerze v Edinburgu Mark Parsons. A v zadnjem desetletju so naredile tisti potrebni preskok, da so v medicini in molekularni biologiji resnično postale rutina.
Trenutno najzmogljivejši superračunalnik IBM Summit prav tako sodeluje v boju proti koronavirusu. Slika: Carlos Jones/ORNL
Slovenska pamet
Projekta boja proti covidu-19 se je lotila tudi skupina slovenskih raziskovalcev. Doktorja kemije Črtomir Podlipnik in farmacije Marko Jukić že vrsto let delujeta na področju načrtovanja novih zdravil. Skupaj z magistrskim študentom kemije Sebastianom Pleškom so ob podpori Centralne tehniške knjižnice Univerze v Ljubljani zagnali skupnostni projekt Covid.si (https://covid.si), v katerem lahko sodeluje tudi širša javnost glede na usposobljenost. Čisti laiki lahko sodelujejo tako, da prispevajo procesorske cikle svojih računalnikov, medtem ko so številni študentje in prostovoljci s specifičnimi znanji (programiranje, biokemija, spletna orodja itd.) sodelovali že pri postavljanju projekta (strategija, predlaganje tarč, metodologija, priprava tarč, obdelava podatkov). V zakulisju projekta je potrebnega veliko dela, od priprave tarč do postavitve sistema za analizo podatkov, ki poteka ves čas.
V prvi obliki je zaživel sredi marca, le nekaj dni po razglasitvi epidemije v Sloveniji. Pripravili so programsko opremo, ki je temeljila na orodju FlexX4 nemškega podjetja BIoSolveIt. Uporabniki so jo prenesli na svoj računalnik (Windows, Mac, Linux) in zagnali. Program se je povezal s strežnikom in prenesel paketek, ki ga je obdeloval približno eno uro, in nato naložil rezultat. Najprej je o projektu poročal portal Slo-Tech, nekaj dni pozneje pa še MMC RTV SLO. In tedaj je priljubljenost programa eksplodirala. Zanimanje je preseglo vsa pričakovanja, kar je razkrilo tudi porodne težave projekta. Projektu se je priključilo 23.000 ljudi, zaradi česar je njihov strežnik poklenil.
Na dan je udarila tudi pregovorno slovenska nevoščljivost. Nekaj ur po objavi so na forumih že krožila natolcevanja, da gre za rudarjenje kriptovalut, na Twitterju pa objave, da program vsebuje virus. Vse objave so bile seveda izmišljene, navsezadnje je bila koda projekta prosto dostopna na platformi GitHub. Avtorji so iz previdnosti projekt začasno prekinili, a se je delo kasneje ob previdnosti nadaljevalo.
Shema delovanja projekta Covid.si. Slika: Podlipnik, Jukić, Pleško
Program preverja, katere spojine bi se lahko vezale na tarče na koronavirusu (glej okvir o sidranju). Avtorji programa sredi aprila dopolnjujejo večmilijonsko knjižnico spojin. To se sliši veliko, a predstavlja le manjši del celotnega kemijskega prostora, ki obsega več kot 1080 spojin, je pojasnil dr. Podlipnik. Na seznamu je 8.700 spojin, ki predstavljajo odobrena zdravila v ZDA (ali v fazi kliničnih testiranj), 65.000 spojin, ki so bile nekoč v določeni fazi kakšne medicinske raziskave preizkušene, ter 10 milijonov komercialno dostopnih spojin. Vsako spojino pa je seveda mogoče testirati na več tarčah (različna mesta na različnih proteinih koronavirusa). Do sredine aprila so imeli okrog 400 rednih uporabnikov, ki so izvedli 40 milijonov sidranj.
Priložnost za umetno inteligenco
Čeprav večina simulacij še vedno poteka klasično, se preizkuša tudi umetna inteligenca. Svoj lonček je pristavil DeepMind, ki ga poznamo po umetni inteligenci za igranje goja. Njihov AlphaFold, ki so ga v Nature predstavili januarja letos, za napoved zvitja proteinov in njihove lastnosti uporablja nevronske mreže. Rezultati, čeprav še niso tako zanesljivi kot klasične metode, so zelo obetavni. AlphaFold je pravilno napovedal obliko roga (spike protein) na virusu, prek katerega se prime na celico, kar je indic, da model vsaj v nekaterih primerih dobro deluje. Nato so napovedali in javno objavili strukture večmembranskih proteinov virusa, ki še niso eksperimentalno potrjene.
Rezultat projekta ne bo zdravilo proti covidu-19, ampak seznam spojin, ki se vežejo na določeno mesto v ključnem proteinu virusa. To je prvi korak v izdelavi zdravila, ki mu sledijo laboratorijski testi in na majhni podmnožici molekul, ki se pri teh izkaže, še in vivo testi.
Solidarnost obstaja
Domači računalniki sami ne bodo rešili problema covida-19, a to ni bil nikoli njihov namen. V mozaik informacij, ki jih raziskovalci potrebujejo za ukrotitev virusa, pa bodo dodali pomembne koščke. Projekti distribuiranega računanja so živi dokaz, koliko računske moči se neizkoriščene nahaja na svetu. Računsko zahtevna znanost seveda ni le molekularna biologija. Napovedovanje vremena, obdelava posnetkov vesolja s satelitov in teleskopov, simulacije kemijskih reakcij, analiza ogromnih količin zbranih podatkov v velikem hadronskem trkalniku CERN in številni drugi znanstveni problemi žrejo ogromne količine procesorskih ciklov. Nekateri so primerni za razkosanje na majhne pakete in obdelavo v milijonih osebnih računalnikov, spet drugi niso. A projekti distribuiranega računanja dokazujejo, da solidarnost še obstaja. Čeprav razen moralnega zadoščenja za poganjanje ne dobimo ničesar, s tem vsaj malo izboljšujemo svet. Zagotovo bolj kot z rudarjenjem kriptovalut.