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. Klient-server arhitektuuril põhinevas võrgus jagatakse vabatahtlike seadmetele simulatsiooni osake (work unit), teostatakse arvutused ja tagastatakse projekti andmebaasi 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. Algne eesmärk oli uurida valkude voltumist, kuid hiljem on keskendutud rohkem biomeditsiinialastele küsimustele (sh seoses Alzheimeri tõve, vähktõve, koroona ja Ebola viirushaigusega). Projekti käivitas 2000. aasta oktoobris Stanfordi ülikooli professor Vijay S. Pande ja 2020. aastatel juhib seda Dr. Greg Bowman Saint Louise Washingtoni ülikooli meditsiinikoolis. Folding@home on üks maailma kiiremaid arvutisüsteeme. Seoses koroonapandeemiaga 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. See tegi projektist esimese exaFLOP arvutussüsteemi. Sellega ületab projekt kaugelt ka kõige võimsamaid superarvuteid. 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. Projekti simulatsioonidest pärit tulemused kattuvad ka päris maailmas läbi viidud eksperimentidega. Folding@home tarkvara koosneb kasutaja poolel kolmest peamisest komponendist: tööüksused (work units), tuumad (cores) ja klient (client). 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. 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. 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. 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. Spetsialiseeritud molekulaardünaamika programmid (ingl FahCores), sooritavad tööüksuse töötlemiseks vajalikke arvutusi taustprotsessina. Suurem enamus Folding@home tuumasid, ehk programme põhineb GROMACS paketil. GPU GROMACS on üks kiiremaid ja populaarsemaid molekulaardünaamika tarkvarapakette, mis koosneb manuaalselt optimeeritud assemblerkeeles koodist ja riistvaralistest optimeerimistest. 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. Vähem aktiivsed tuumad on ProtoMol ja SHARPEN. Kasutatud on ka AMBER, CPMD, Desmond ja TINKER, aga need ei ole enam aktiivses kasutuses. Mõned tuumad kalkuleerivad lahusti (üljuhul vesi) modelleerimist aatomi haaval, teised tuumad kohtlevad lahustit kui matemaatilist kontinuumi. 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. Folding@home'i projektis osalemiseks installib vabatahtlik klientprogrammi 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. 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. Maksimaalset CPU kasutust saab samuti kliendi seadete kaudu muuta. 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. Folding@home serveri ja kliendi poolne tarkvara on arendatud Nvidia, ATI, Sony ja Cauldron Development programmeerijate abiga. 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. Kuigi graafiline kasutajaliides (GUI) on avatud lähtekoodiga, siis klienditarkvara ise on firmaomase lähtekoodiga teadusliku tõepärasuse säilitamiseks ja turvakaalutlustel. Folding@home kasutab võrgustamiseks Cosm tarkvara teeke.. Projekt käivitati 1. oktoober 2000 ja oli esimene omataoline hajusarvutuste projekt, mille eesmärgiks olid bio-molekulaarsed süsteemid. Esimene klient oli ekraanisäästja, mis kasutas arvuti riistvara hajusarvutusteks ainult siis, kui arvutit muul viisil ei kasutatud. 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. 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. Esimene graafikaprotsessoritele tuginev Folding@home klientrakendus avaldati 2. oktoobril 2006, kiirendades mõningaid arvutusi 20–30 korda võrreldes keskprotsessoripõhiste GROMACS versioonidega. See oli esimene kord, kui graafikakaarte kasutati hajusarvutusteks ja suuremahulisteks molekulaardünaamika arvutusteks. 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. 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. 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. Kuigi GPU3 ei toetanud ametlikult Linux ja macOS operatsioonisüsteeme, siis Nvidia graafikaprotsessoritega Linuxi kasutajad olid võimelised projekti panustama kasutades programmi Wine. Tugi Nvidia ja AMD graafikakaartidele Linux operatsioonisüsteemiga avalikustati koos FahTuumaga 17, mis kasutab CUDA asemel OpenCL-i. 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 Celli tüüpi protsessor tõi endaga 20-kordse kiiruse suurenemise mõnede arvutuste puhul. Sellist jõudlust XboX 360 ei võimaldanud. 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. Kõik need tegurid võimaldasid Folding@home'i projektil käivitada biomeditsiinilisi kalkulatsioone, mis muidu oleksid olnud arvutuslikult võimatud. PlayStation 3 klientrakendus arendati koostööna Sony ja Pande Labi vahel. Esimene klientrakendus avaldati 23.03.2007, mis tegi sellest esimese hajusarvutuste projekti, mis kasutas PlayStation 3 arvutusvõimekust. 18. septembril 2008, kui avaldati rakendus Life with PlayStation, sai Folding@home PS3 klientrakendus selle osaks. Erinevalt personaalarvutite klientrakendusest võimaldas PlayStationi klientrakendus konsooli kasutada muudeks tegevusteks samal ajal kui Folding@home oli käivitatud.. 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. Novembris 2012 lõpetas Sony Folding@home PS3 klientrakenduse 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 klientrakendust pöördepunktiks projekti ajaloos. 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. Novembris 2006 avalikustati esimese generatsiooni SMP client SMP1, mis oli ühtlasi ka esimene hajusarvutuste projekt, mis kasutas sümmeetrilist multitöötlust. SMP1 kasutas paralleelarvutusteks MPI kommunikatsiooni protokolli, sest sellel ajal ei olnud GROMACS tuumad disainitud kasutama mitut lõime. Kuigi SMP1 klientrakendus oli edukas UNIX-ipõhistel operatsioonisüsteemidel nagu Linux ja macOS, siis Windowsi operatsioonisüsteemil esines probleeme. 24.01.2007 avaldati teise generatsiooni SMP2 avatud beetaversioon, mis asendas keeruka MPI süsteemi töökindlama lõime põhise vastu. SMP2 klientrakendus 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. 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. 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. V7 on seitsmes ja uusim Folding@home klienditarkvara versioon. See on täielikult ümbertöötatud ja ühtlustatud versioon varasematest Windowsi, macOS-i ja Linuxi klientrakendustest. 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. 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 klientrakendust ü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. Klientrakendusel on ka FAHViewer, mis on PlayStation 3 klientrakenduse põhjal modelleeritud 3D-vaatur, mis kuvab parasjagu töös olevat valku, kui see on käesoleva tööüksuse puhul võimalik. 2014. aastal avaldati Google Chrome'i ja Chromiumi veebibrauseritel põhinev klientrakendus, 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. Mitmesuguste muudatuste tõttu Folding@home'i projektis ja järkjärgulise NaCl-i kaotamisele lülitati veebiklient jäädavalt välja juunis 2019. Juulis 2015 avaldati klientrakendus Androidi-põhistele mobiiltelefonidele Google Play poes seadmetele, mis põhinesid Android 4.4 KitKat või uuemal versioonil. 16. veebruaril 2018 eemaldati ettevõttega Sony koostöös pakutud Androidi klientrakendus Google Play poest. Avalikustati plaanid tulevikus avatud lähtekoodiga Androidi klientrakenduse avaldamiseks. "https://foldingathome.org/about/". Vaadatud 05.05.2020. {{netiviide}}: välislink kohas |pealkiri= (juhend) stats.foldingathome.org/teams Julia Evangelou Strait (26.02.2019). "Computational biology project aims to better understand protein folding". Vaadatud 04/05/2020. {{netiviide}}: kontrolli kuupäeva väärtust: |vaadatud= (juhend) Panda Lab (12.04.2020). ""Client Statistics by OS"". Originaali arhiivikoopia seisuga 2020-04-12. Vaadatud 04/05/2020. {{netiviide}}: kontrolli kuupäeva väärtust: |vaadatud= (juhend)CS1 hooldus: robot: algse URL-i olek teadmata (link) "People Are Contributing Unprecedented Computing Power to Fight Coronavirus" Vice, 27. märts 2020 PAPERS & RESULTS https://foldingathome.org/ (vaadatud 4. mail 2020) 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.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link) Gregory R. Bowman; Vijay S. Pande. "Protein folded states are kinetic hubs". Proceedings of the National Academy of Sciences.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link) Adam L. Beberg, Daniel L. Ensign, Guha Jayachandran, Siraj Khaliq, Vijay S. Pande. "Folding@home: Lessons From Eight Years of Volunteer Distributed Computing" (PDF).{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link) "REQUIREMENTS". "More transparency in testing". 05.04.2020. Originaali arhiivikoopia seisuga 28.10.2020. "Project 6803: (Run 4, Clone 66, Gen 255)". "About Gromacs". Originaali arhiivikoopia seisuga 27. november 2020. "Folding@home Gromacs FAQ". Originaali arhiivikoopia seisuga 17. juuli 2012. "OPENSOURCE FAQ". "Update on new FAH cores and clients". Originaali arhiivikoopia seisuga 18. märts 2020. "Folding@home Petaflop Initiative (FPI)". Originaali arhiivikoopia seisuga 13. juuli 2012. "Windows Uniprocessor (classic) Client Installation Guides". Originaali arhiivikoopia seisuga 20. november 2012. "Folding@home FAQ". "How does FAH code development and sysadmin get done?". Originaali arhiivikoopia seisuga 18. juuli 2020. "Uninstalling Folding@home FAQ". Originaali arhiivikoopia seisuga 17. juuli 2012. "FAHControl source code repository". Originaali arhiivikoopia seisuga 12. detsember 2012.{{netiviide}}: CS1 hooldus: robot: algse URL-i olek teadmata (link) "Folding@Home distributed computing client". Originaali arhiivikoopia seisuga 26. juuni 2012. "Screen Savers of the World Unite". John D. Owens; David Luebke; Naga Govindaraju; Mark Harris; Jens Krüger; Aaron Lefohn; Timothy J. Purcell (2007). "A Survey of General-Purpose Computation on Graphics Hardware" (PDF).{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link) "OpenMM: A Hardware Independent Framework for Molecular Simulations". "Accelerating Molecular Dynamic Simulation on Graphics Processing Units". "Folding@home high performance client FAQ". Originaali arhiivikoopia seisuga 19. august 2012. "GPU news (about GPU1, GPU2, & NVIDIA support)". Originaali arhiivikoopia seisuga 19. september 2020. "GPU2 open beta". Originaali arhiivikoopia seisuga 1. märts 2020. "Updates to the Download page/GPU2 goes live". Originaali arhiivikoopia seisuga 6. august 2020. "Prepping for the GPU3 rolling: new client and NVIDIA FAH GPU clients will (in the future) need CUDA 2.2 or later". Originaali arhiivikoopia seisuga 1. detsember 2020. "Open beta release of the GPU3 client/core". Originaali arhiivikoopia seisuga 1. märts 2020. "FAHClient V7.1.38 released (4th Open-Beta)". "GPU FahCore_17 is now available on Windows & native Linux". 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".{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link) "PlayStation's serious side: Fighting disease". Jerry Liao. "The Home Cure: PlayStation 3 to Help Study Causes of Cancer". Originaali arhiivikoopia seisuga 1. juuli 2012. Lou Kesten (26.03.2007). "Week in video-game news: 'God of War II' storms the PS2; a PS3 research project". Originaali arhiivikoopia seisuga 20.06.2012. "Life with Playstation -- a new update to the FAH/PS3 client". Originaali arhiivikoopia seisuga 18. märts 2020. "Client statistics by OS". Originaali arhiivikoopia seisuga 13. mai 2013. "PS3 System Software Update (v4.30)". 21.10.2012. "Termination of Life with PlayStation®". Originaali arhiivikoopia seisuga 13. november 2012. "What does the SMP core do?". Originaali arhiivikoopia seisuga 19. september 2020. "New Windows client/core development (SMP and classic clients)". Originaali arhiivikoopia seisuga 19. september 2020. "upcoming release of SMP2 cores". "Update on "bigadv-16", the new bigadv rollout". Originaali arhiivikoopia seisuga 19. september 2020. "Change in the points system for bigadv work units". Originaali arhiivikoopia seisuga 19. september 2020. "new release: extra-large work units". "REVISED PLANS FOR BIGADV (BA) EXPERIMENT". "Windows Install Guide Software Version 7+ (V7)". Originaali arhiivikoopia seisuga 28. oktoober 2012. "Client version 7 now in open beta". Originaali arhiivikoopia seisuga 19. september 2020. "Web page revamp and v7 rollout". Originaali arhiivikoopia seisuga 31. märts 2020. "ADDING A COMPLETELY NEW WAY TO FOLD, DIRECTLY IN THE BROWSER". "NaCl Web Client Shutdown Notice". Originaali arhiivikoopia seisuga 12. aprill 2019. "FIRST FULL VERSION OF OUR FOLDING@HOME CLIENT FOR ANDROID MOBILE PHONES". "ANDROID CLIENT OVERHAUL". Koduleht