Folding@home

Folding@home (FAH või F@H) on vabatahtlikkusel põhinev hajusarvutuse projekt, mis loodi molekulaardünaamika uuringuteks ja mille eesmärk on aidata teadlastel välja töötada uusi vahendeid haiguste raviks. See kasutab projektiga liitunud personaalarvutite keskprotsessorite ja graafikaprotsessorite arvutusvõimsust, kui arvutid neid parajasti ise ei vaja. Isiklikel arvutusseadmetel simuleeritakse, vabatahtlike abiga, valkude dünaamikat.[1]

Logo

Klient-server arhitektuuril põhinevas võrgus jagatakse vabatahtlike seadmetele simulatsiooni osake (work unit), teostatakse arvutused ja tagastatakse projekti andmebaassi serveritele, kus klientidelt saadetud osakestest koostatakse üleüldine simulatsioon. Vabatahtlikud saavad oma panust jälgida Folding@home kodulehelt. See tekitab võistlusmomendi ja julgustab järjepidevat panustamist.[2]

Algne eesmärk oli uurida valkude voltumist, kuid hiljem on keskendutud rohkem biomeditsiinialastele küsimustele (sh seoses Alzheimeri tõve, vähktõve, COVID-19 ja Ebola viirushaigusega).

Projekti käivitas 2000. aasta oktoobris Stanfordi ülikooli professor Vijay S. Pande ja käesoleval ajal juhib seda Dr. Greg Bowman Saint Louise Washingtoni ülikooli meditsiinikoolis.[3]

Folding@home on üks maailma kiiremaid arvutisüsteeme. Seoses koroonaviirushaiguse pandeemiaga kaasnenud suurenenud huviga projekti vastu saavutati 2020. aasta märtsi lõpus kiiruseks umbes 1,22 eksaFLOP-i (ujukomatehteid iga sekundi kohta) ja 2,43 x86 eksaFLOP-i 12. aprilliks 2020[4]. See tegi projektist esimese exaFLOP arvutussüsteemi. Sellega ületab projekt kaugelt ka kõige võimsamaid superarvuteid.[5] Sellisest suuremahulisest süsteemist tulenev jõudlus on võimaldanud teadlastel simuleerida keerukaid aatomi tasemel valgu voltimise simulatsioone tuhandeid kordi kauem kui ükski teine süsteem on seda varem suutnud.

Alates projekti käivitamisest 1. oktoobril 2000 on Pande Lab välja andnud 224 teaduslikku uurimust otsese Folding@home tulemusena.[6] Projekti simulatsioonidest pärit tulemused kattuvad ka päris maailmas läbi viidud eksperimentidega. [7][8]

TarkvaraRedigeeri

Folding@home tarkvara koosneb kasutaja poolel kolmest peamisest komponendist: tööüksused (work units), tuumad (cores) ja klient (client).

TööüksusedRedigeeri

Tööüksus on valgu informatsioon, mida kliendil palutakse töödelda. Tööüksused moodustavad murdosa kogu simulatsioonist. Kui klient on vabatahtliku arvutisse alla laaditud ja täielikult töödeldud, siis saadetakse see tagasi Folding@home serveritesse, mis omakorda jagab tööüksuse esitanud kasutajale tehtud töö eest punkte. See tsükkel taaskäivitub automaatselt. [9] Kõikide tööüksustega on seostatud tähtaeg. Kui enne tähtaja lõppu ei ole tööüksust lõpetatud, siis ei saa kasutaja selle eest punkte ja töö määratakse automaatselt järgmisele kasutajale. Kuna valkude voltimine toimub jadamisi ja paljud tööüksused genereeritakse eelnevatest üksustest, siis võimaldab tähtaja seadmine simulatsiooni lõpule viimisega tavapäraselt jätkata kui mõni klient tööd mõistliku aja jooksul ei esita. Tähtaegade seadmiseks on kehtestatud minimaalsed nõuded süsteemidele, millega tööüksusi töödeldakse. Projektis osalemiseks peab süsteemil olema protsessor, mis on võrdeline või parem kui Intel P4 1,4 GHz CPU ja graafikakaart, mis toetab OpenCL keelt. Suurema jõudlusega klientidele jagatakse tööüksusi, millel on palju lühem tähtaeg, sest suur osa teaduslikust kasutegurist sõltub kiirest simulatsioonide ärategemisest.[10]

Enne seda kui tööüksused vabatahtlikele töötlemiseks avalikustatakse, siis läbivad need mitu kvaliteedi tagamise süsteemi, vältimaks probleemsete tööüksuste ringlusse sattumist. Iga üksus läbi vähemalt sisemise, beeta- ja täiustatud kvaliteedikontrolli enne, kui tarkvara avalikustatakse Folding@home serverites.[11] Tööüksusi töödeldakse reeglina üks kord, välja arvatud juhul kui töötlemise või kontrolli käigus avaldub mõni viga. Kui tööüksusel avaldub viga juba kolme kliendi süsteemis, siis eemaldatakse konkreetne üksus jaotusest.[12]

TuumadRedigeeri

Spetsialiseeritud molekulaardünaamika programmid (ingl FahCores), sooritavad tööüksuse töötlemiseks vajalikke arvutusi taustprotsessina. Suurem enamus Folding@home tuumasid, ehk programme põhineb GROMACS [9] paketil. GPU GROMACS on üks kiiremaid ja populaarseimaid molekulaardünaamika tarkvarapakette, mis koosneb manuaalselt optimeeritud assemblerkeeles koodist ja riistvaralistest optimeerimistest. [13] Kuigi GROMACS on avatud lähtekoodiga tarkvara ja Pande Lab ning GROMACS arendajad teevad koostööd, sis Folding@home kasutab firmaomast lähtekoodi litsentsi, et aidata tagada andmete õigsust.[14] Vähem aktiivsed tuumad on ProtoMol ja SHARPEN. Kasutatud on ka AMBER, CPMD, Desmond ja TINKER, aga need ei ole enam aktiivses kasutuses. [15][16] Mõned tuumad kalkuleerivad lahusti (üljuhul vesi) modelleerimist aatomi haaval, teised tuumad kohtlevad lahustit kui matemaatilist kontinuumi. [17] Tuum on kliendist eraldatud, et võimaldada teaduslike meetodite automaatset uuendamist, klienti uuendamata. Tuumad loovad perioodiliselt arvutuslikke kontrollpunkte, kust hiljem tööd jätkata juhul, kui arvutused katkestatakse.[9]

KlientRedigeeri

Folding@home'i projektis osalemiseks installib vabatahtlik kliendi programmi oma arvutisse. Kasutaja haldab programmis sätteid kliendi kaudu, mis haldab teisi tarkvara taust-komponente. Kliendi kaudu saab peatada ja käivitada voltimise protsessi, avada sündmuste logi, kontrollida tööüksuse progressi või vaadata isiklikku statistikat. [18] Kliendiprogramm töötab järjepidevalt väga madala prioriteetsusega taustaprogrammina, kasutades väga minimaalselt arvuti jõudlust, et mitte häirida tavapärast arvuti kasutamist. [19] Maksimaalset CPU kasutust saab samuti kliendi seadete kaudu muuta. [18] Klient loob ühenduse Folding@home serveriga ja laadib alla tööüksuse ning vajalikud tuumteenused, mis ühtivad kliendi seadete, operatsioonisüsteemi ja riistvara konfiguratsiooniga. Peale tööüksuse protsessimist tagastatakse see Folding@home serveritesse. Vabatahtlike riistvarakonfiguratsioonide erinevus võimaldab rakendada igale konfiguratsioonile sobiva tööülesande. [19]

Folding@home serveri ja kliendi poolne tarkvara on arendatud Nvidia, ATI, Sony ja Cauldron Development programmeerijate abiga. [20] Kliendiprogrammi saab alla laadida ainult ametlikelt Folding@home või selle kommertspartnerite veebilehtedelt ja liidestub ainult Folding@home'i failidega. Andmete alla- ja üleslaadimine serveritesse toimub pordi 8080 kaudu, alternatiivselt pordi 80 kaudu, ja kommunikatsioon verifitseeritakse 2048-bitise digitaalallkirjaga. [21][19] Kuigi graafiline kasutajaliides (GUI) on avatud lähtekoodiga, [22] siis klienditarkvara ise on firmaomase lähtekoodiga teadusliku tõepärasuse säilitamiseks ja turvakaalutlustel.[23]

Folding@home kasutab võrgustamiseks Cosm tarkvara teeke. [9][20]. Projekt käivitati 1. oktoober 2000 ja oli esimene omataoline hajuarvutuste projekt, mille eesmärgiks olid bio-molekulaarsed süsteemid. [1] Esimene klient oli ekraanisäästja, mis kasutas arvuti riistvara hajuarvutusteks ainult siis, kui arvutit muul viisil ei kasutatud. [24]

GraafikaprotsessoridRedigeeri

Graafikaprotsessorite (GPU) spetsialiseeritud riistvara on disainitud kiirendama 3D-graafiliste programmide ja mängude jõudlust ja teostavad seda märgatavalt paremini kui protsessorid teatud tüüpi arvutuste puhul. GPU-d on ühed kõige suurema jõudlusega ja kiiremini arenevad arvutusplatvormid ja paljud teadlased püüdlevad graafikaprotsessoritel teostatavate üldotstarbeliste arvutuste (GPGPU) ära kasutamise poole. Graafikaprotsessorite riistvara on keeruline kasutada mittegraafiliste arvutuste jaoks ja vajab märgatavaid algoritmide reformuleerimisi ning edasijõudnud arusaama kaasnevast riistvara arhitektuurist. [25] Sellist eritellimusel valmistatavat tarkvara on keeruline luua, eriti piiratud tarkvaraarendusvahenditega teadlastel. Golding@home kasutab avatud lähtekoodiga OpenMM teeki, mis võimaldab riistvara optimeerimisel simuleerida graafikaprotsessori jõudluse abil peaaegu sama jõudsalt kui käsitsi optimeeritud graafikaprotsessoritele mõeldud kood. OpenMM-il baseeruvad simulatsioonid vajavad vähe modifitseerimist, aga võimaldavad keskprotsessoritest kordi paremaid tulemusi graafikaprotsessoritel. [26][27]

Esimene graafikaprotsessoritele tuginev Folding@home klient avaldati 2. oktoobril 2006, [28] kiirendades mõningaid arvutusi 20–30 korda võrreldes keskprotsessoripõhiste GROMACS versioonidega. See oli esmest korda kui graafikakaarte kasutati hajuarvutusteks ja suuremahulisteks molekulaardünaamika arvutusteks. [29] GPU1 andis teadlastele teadmisi ja kogemusi GPGPU tarkvara arendamise kohta ja vastuseks teaduslikele ebatäpsustele DirectX-iga, avaldati 10. aprillil 2008 GPU2, kliendi teine generatsioon. [30] Võrreldes GPU1-ga oli GPU2 teaduslikult usaldusväärne ja produktiivne, toimis nii ATI ja CUDA võimekusega Nvidia graafikaprotsessoritel ja toetas edasijõudnud algoritme, suuremaid valke ja reaalajalist valgu simulatsiooni visualiseerimist. [31] Sellele järgnes GPU3, mis avaldati 25. mai 2010. Stabiilsem, tõhusam ja teaduslike rakenduste poolest paindlikum GPU3 oli tagasiühilduv GPU2 tuumaga. GPU3 kasutas OpenMM-i OpenCL raamistikus. [32][33] Kuigi GPU3 ei toetanud ametlikult Linux ja macOS operatsioonisüsteeme, siis Nvidia graafikaprotsessoritega Linuxi kasutajad olid võimelised projekti panustama kasutades programmi Wine. [34]

Tugi Nvidia ja AMD graafikakaartidele Linux operatsioonisüsteemiga avalikustati koos FahTuumaga 17, mis kasutab CUDA asemel OpenCL-i. [35]

PlayStation 3Redigeeri

2007. aasta märtsist 2012. aasta novembrini oli võimalik Folding@home'i projekti võimalik toetada kasutades Mängukonsooli PlayStation 3 arvutusjõudlust. PlayStationi Cell tüüpi protsessor tõi endaga 20-kordse kiiruse suurenemise mõnede arvutuste puhul. Sellist jõudlust XboX 360 ei võimaldanud. [19] Playstationi kiirus ja efektiivsus võimaldasid Amdahli seaduse järgi arvutusi optimeerida ja muutsid märgatavalt kompromissi arvutustõhususe ja täpsuse vahel, mis võimaldas kasutada palju komplekssemaid molekulaarmudeleid märgatava lisa arvutustööta. [36] Kõik need tegurid võimaldasid Folding@home'i projektil käivitada biomeditsiinilisi kalkulatsioone, mis muidu oleksid olnud arvutuslikult võimatud. [37]

PlayStation 3 klient arendati koostööna Sony ja Pande Labi vahel. Esimene klient avaldati 23.03.2007, [38] mis tegi sellest esimese hajuarvutuste projekti, mis kasutas PlayStation 3 arvutusvõimekust. [39] 18. septembril 2008, kui avaldati rakendus Life with PlayStation, sai Folding@home PS3 klient selle osaks. [40] Erinevalt personaalarvutite kliendist võimaldas PlayStationi klient konsooli kasutada muudeks tegevusteks samal ajal kui Folding@home oli käivitatud. [37]. PlayStationi ühetaoline riist- ja tarkvarakonfiguratsioon lihtsustas tehnilist tuge ja tegi Folding@home'i projektis osalemise kasutajasõbralikumaks. Konsoolil oli ka võimekus andmeid graafikaprotsessorile voogedastada, mida kasutati aatomi tasemel valgudünaamika visualiseerimiseks. [36]

Novembris 2012 lõpetas Sony Folding@home PS3 kliendi toe koos teiste teenustega, mis olid saadaval läbi Life with PlayStationi rakenduse. Viie aasta ja seitsme kuu jooksul panustas projekti üle 15 miljoni kasutaja kokku üle 100 miljoni tunni arvutusi, andes sellega suure panuse uurimistöösse. Pande Labi peab PlayStation 3 klienti pöördepunktiks projekti ajaloos. [41][42][43]

Mitmetuumaline klientRedigeeri

Folding@home on võimeline ära kasutama modernsete arvutite mitmetuumalisi keskprotsessoreid. Mitme CPU tuuma kasutamine kiirendab lõpliku simulatsiooni valmimist mitmeid kordi. See meetod on teaduslikult väärtuslik, sest see võimaldab palju pikemaid simulatsioone ja vähendab üldkulusid, mis seostusid suurte simulatsioonide mitme kliendi vahel jaotamist. [44]

Novembris 2006 avalikustati esimese generatsiooni SMP client SMP1, [28] mis oli ühtlasi ka esimene hajuarvutuste projekt, mis kasutas sümmeetrilist multitöötlust. [45] SMP1 kasutas paralleelarvutusteks MPI kommunikatsiooni protokolli, sest sellel ajal ei olnud GROMACS tuumad disainitud kasutama mitut lõime. [44] Kuigi SMP1 klient oli edukas Unix-i põhistel operatsioonisüsteemidel nagu Linux ja macOS, siis Windowsi operatsioonisüsteemil esines probleeme. [44][45] 24.01.2007 avaldati teise generatsiooni SMP2 avatud beetaversioon, mis asendas keeruka MPI süsteemi töökindlama lõime põhise vastu. [20][46]

SMP2 klient toetas "bigadv" tööüksusi, mis vajavad süsteemilt oluliselt rohkem ressursse, kuid hüvitavad panustajaid rohkemate punktidega. Minimaalselt pidi esialgselt bigadv tööüksuste töötlemiseks olema süsteemil 8-tuumaline CPU kuid hiljem tõusis miinimum 16 tuumani. [47][48] Bigadv kategooria võimaldab Folding@home'i projektil töödelda eriti keerukaid ja nõudlike simulatsioone, mis varem vajasid superarvutite klastreid ja mida ei olnud võimalik kusagil mujal Folding@home võrgus töödelda. [49] Paljud kasutajad, kes investeerisid riistvarasse, et saavutada võimekus bigadv tööüksusi töödelda väljendasid pahameelt kui nende süsteemid muutusid uute nõudluste järgi vananenuks. Selle tulemusena kuulutas Pande 2014. aasta jaanuaris, et bigadv programm lõpeb 31. jaanuaril 2015. [50]

V7Redigeeri

V7 on seitsmes ja uusim Folding@home klienditarkvara versioon. See on täielikult ümbertöötatud ja ühtlustatud verisoon varasematest Windowsi, macOS-i ja Linuxi klientidest. Nagu ta eelkäijad võimaldas V7 Folding@home'i programmi käivitada väga madala prioriteetsusega taustaprogrammina. V7 disainiti eesmärgiga teha tarkvara paigaldamine, käivitamine ja kasutamine kasutajasõbralikumaks algajatele ja pakkuda suuremat teadusliku paindlikkust teadlastele. [51][52][53]

V7 koosneb neljas integreeritud leemendist. Kasutaja suhtleb üldjuhul programmi avatud lähtekoodiga graafilise kasutajaliidesega FAHControl (GUI), mis võimaldab järgida, konfigureerida ja kontrollida mitut voltimise klienti ühest arvutist. FAHControl juhendab FAHClienti, mis omakorda haldab igat FAHSloti. Slotid asendavad varasemaid Folding@home tuumasid nagu SMP või GPU. FAHSlot suudab alla laadida, töödelda ja üles laadida kõiki võimalike tööüksusi iseseisvalt. Kliendil on ka FAHViewer, mis on PlayStation 3 kliendi põhjal modelleeritud 3-D vaatur, mis kuvab hetkel töös olevat valku, kui see on käesoleva tööüksuse puhul võimalik. [51][52][53]

Google ChromeRedigeeri

Aastal 2014 avaldati Google Chrome'i ja Chromiumi veebibrauseritel põhinev klient, mis andis kasutajatele võimaluse panustada Folding@home'i projekti oma arvutist. See klient kasutas Google'i kohaliku kliendi (Google Native Client) võimekust Chromiumi-põhistes brauserites, saavutades peaaegu sama suuri kiirusi V7 kohaliku kliendiga võrreldes. [54] Mitmesuguste muudatuste tõttu Folding@home'i projektis ja järkjärgulise NaCl-i kaotamisele lülitati veebiklient jäädavalt välja juunis 2019. [55]

AndroidRedigeeri

Juulis 2015 avaldati klient Androidi-põhistele mobiiltelefonidele Google Play poes seadmetele, mis põhinesid Android 4.4 KitKat või uuemal versioonil. [56]

16. veebruaril 2018 eemaldati ettevõttega Sony koostöös pakutud Android klient Google Play poest. Avalikustati plaanid tulevikus avatud lähtekoodiga Androidi kliendi avaldamiseks. [57]

ViitedRedigeeri

  1. 1,0 1,1 "https://foldingathome.org/about/". Vaadatud 05/05/2020.
  2. stats.foldingathome.org/teams
  3. Julia Evangelou Strait. "Computational biology project aims to better understand protein folding". 26/02/2019. Vaadatud 04/05/2020.
  4. Panda Lab. ""Client Statistics by OS"". 12/04/2020. Vaadatud 04/05/2020.
  5. "People Are Contributing Unprecedented Computing Power to Fight Coronavirus" Vice, 27. märts 2020
  6. PAPERS & RESULTS https://foldingathome.org/ (vaadatud 4. mail 2020)
  7. Vincent A. Voelz; Gregory R. Bowman; Kyle Beauchamp; Vijay S. Pande. "Molecular simulation of ab initio protein folding for a millisecond folder NTL9(1–39)". Journal of the American Chemical Society..
  8. Gregory R. Bowman; Vijay S. Pande. "Protein folded states are kinetic hubs". Proceedings of the National Academy of Sciences..
  9. 9,0 9,1 9,2 9,3 Adam L. Beberg, Daniel L. Ensign, Guha Jayachandran, Siraj Khaliq, Vijay S. Pande. [http://www.hicomb.org/papers/HICOMB2009-13.pdf"Folding@home: Lessons From Eight Years of Volunteer Distributed Computing"].
  10. "REQUIREMENTS".
  11. "More transparency in testing". 05/04/2020.
  12. "Project 6803: (Run 4, Clone 66, Gen 255)".
  13. "About Gromacs".
  14. "Folding@home Gromacs FAQ".
  15. "OPENSOURCE FAQ".
  16. "Update on new FAH cores and clients".
  17. "Folding@home Petaflop Initiative (FPI)".
  18. 18,0 18,1 "Windows Uniprocessor (classic) Client Installation Guides".
  19. 19,0 19,1 19,2 19,3 "Folding@home FAQ".
  20. 20,0 20,1 20,2 "How does FAH code development and sysadmin get done?".
  21. "Uninstalling Folding@home FAQ".
  22. "FAHControl source code repository".
  23. "Folding@Home distributed computing client".
  24. "Screen Savers of the World Unite".
  25. John D. Owens; David Luebke; Naga Govindaraju; Mark Harris; Jens Krüger; Aaron Lefohn; Timothy J. Purcell. "A Survey of General-Purpose Computation on Graphics Hardware". 2007.
  26. "OpenMM: A Hardware Independent Framework for Molecular Simulations".
  27. "Accelerating Molecular Dynamic Simulation on Graphics Processing Units".
  28. 28,0 28,1 "Folding@home high performance client FAQ".
  29. "GPU news (about GPU1, GPU2, & NVIDIA support)".
  30. "GPU2 open beta".
  31. "Updates to the Download page/GPU2 goes live".
  32. "Prepping for the GPU3 rolling: new client and NVIDIA FAH GPU clients will (in the future) need CUDA 2.2 or later".
  33. "Open beta release of the GPU3 client/core".
  34. "FAHClient V7.1.38 released (4th Open-Beta)".
  35. "GPU FahCore_17 is now available on Windows & native Linux".
  36. 36,0 36,1 Luttmann E, Ensign DL, Vaidyanathan V, Houston M, Rimon N, Øland J, Jayachandran G, Friedrichs M, Pande VS.. "Accelerating molecular dynamic simulation on the cell processor and Playstation 3.".
  37. 37,0 37,1 "PlayStation's serious side: Fighting disease".
  38. Jerry Liao. "The Home Cure: PlayStation 3 to Help Study Causes of Cancer".
  39. Lou Kesten. "Week in video-game news: 'God of War II' storms the PS2; a PS3 research project". 26.03.2007.
  40. "Life with Playstation -- a new update to the FAH/PS3 client".
  41. "Client statistics by OS".
  42. "PS3 System Software Update (v4.30)". 21.10.2012.
  43. "Termination of Life with PlayStation®".
  44. 44,0 44,1 44,2 "What does the SMP core do?".
  45. 45,0 45,1 "New Windows client/core development (SMP and classic clients)".
  46. "upcoming release of SMP2 cores".
  47. "Update on "bigadv-16", the new bigadv rollout".
  48. "Change in the points system for bigadv work units".
  49. "new release: extra-large work units".
  50. "REVISED PLANS FOR BIGADV (BA) EXPERIMENT".
  51. 51,0 51,1 [https://www.webcitation.org/6Aqr93nf1?url=http://folding.stanford.edu/English/WinGuide"Windows Install Guide Software Version 7+ (V7)"].
  52. 52,0 52,1 "Client version 7 now in open beta".
  53. 53,0 53,1 "Web page revamp and v7 rollout".
  54. "ADDING A COMPLETELY NEW WAY TO FOLD, DIRECTLY IN THE BROWSER".
  55. "NaCl Web Client Shutdown Notice".
  56. "FIRST FULL VERSION OF OUR FOLDING@HOME CLIENT FOR ANDROID MOBILE PHONES".
  57. "ANDROID CLIENT OVERHAUL".

VälislingidRedigeeri