Zadnji ˇsˇcepec algoritma (kernelFinalize) pripravi rezultat algoritma (naj-boljˇsi osebek vsake populacije se sinhronizira z modelom liganda), da se lahko prenese iz GPE. Rezultat se shrani ali pa uporabi naprej v programu CmDock. Vsaka nit obdela en osebek. Izvede se samo enkrat na koncu
20 Tine Erent
Poglavje 5
Testiranje vzporednega algoritma
Glavna metrika uˇcinkovitosti pri testiranju algoritma je ˇcas izvajanja simu-lacije molekulske dinamike. Merili smo realni preteˇceni ˇcas (angl. elapsed wall-clock time). Ker implementiran algoritem uporablja drugaˇcno cenilko, ga ne moremo neposredno primerjati s tistim v CmDock.
Za testiranje smo uporabili receptor z 2901 atomom. Z uporabo metode cut-off smo ˇstevilo obravnavanih atomov zmanjˇsali na 995. Uporabili smo dva razliˇcna liganda. Prvi ima ˇstiri atome in en dihedralni kot, drugi ima 32 atomov in sedem dihedralnih kotov. Izvedlo se je najveˇc 100 vzporednih zagonov. Vsako meritev smo ponovili 10 krat in izraˇcunali povpreˇcje.
Algoritem smo preizkusili in ovrednotili na superraˇcunalniku NSC, na gruˇci Arnes HPC in na namiznem raˇcunalniku z veˇcjedrno CPE. ˇCe ˇzelimo program preizkusiti, moramo imeti nameˇsˇcen program CMake, okolje Open-CL in prevajalnik za jezik C.
5.1 NSC
Superraˇcunalnik Nova skupna gruˇca (prikazan na sliki 5.1) se nahaja na Inˇstitutu Joˇzef ˇStefan. Namenjen je vsem uporabnikom Inˇstituta, njihovim
22 Tine Erent projektnim sodelavcem ter uporabnikom Slovenske iniciative za nacionalni grid. Dostop je brezplaˇcen [32].
Slika 5.1: Superraˇcunalnik NSC [32].
Za testiranje smo uporabili vozliˇsˇce CMI, kjer so vgrajeniAMD Opteron 6376 ali Intel Xeon E5-2640 procesorji in Nvidia Tesla K40 grafiˇcni po-speˇsevalniki [32]. Procesor AMD Opteron 6376 je bil izdan novembra 2012, ima 16 procesorskih jeder in 16 niti [4, 5]. Procesor Intel Xeon E5-2640 je bil izdan v 1. ˇcetrtini leta 2012, ima 6 procesorskih jeder in 12 niti [20].
Pospeˇsevalnik Nvidia Tesla K40 je bil izdan oktobra 2013, ima 2880 jeder CUDA in 12288 MB pomnilnika GDDR5 [33]. Vozliˇsˇca s procesorjem AMD imajo 256 GB ali 512 GB pomnilnika, z Intelovim procesorjem pa 64 GB po-mnilnika [32]. Za zagon programov na NSC se uporablja vmesna programska oprema SLURM.
5.2 Gruˇ ca Arnes HPC
Testirali smo tudi na novejˇsi strojni opremi. Leta 2021 so gruˇco Arnes nad-gradili z novimi vozliˇsˇci. Obstojeˇci gruˇci se je dodalo 62 streˇznikov s pro-cesorjem AMD EPYC 7702P in 24 streˇznikov s procesorjem AMD EPYC 7272, ter 48Nvidia V100 GPE [31]. Dostop do NSC je omogoˇcil tudi dostop do tega superraˇcunalnika.
Diplomska naloga 23 Oba procesorja sta bila izdana avgusta 2019. AMD EPYC 7702P ima 64 procesorskih jeder in 128 niti, AMD EPYC 7272 ima 12 procesorskih jeder in 24 niti [2, 3]. PospeˇsevalnikNVIDIA Tesla V100 je bil izdan junija 2017, ima 5120 jeder in 32 GB pomnilnika HBM2 [34, 35].
5.3 Namizni raˇ cunalnik
Testirali smo tudi na veˇcjedrnem procesorju. Uporabili smo namizni raˇ cu-nalnik s procesorjemIntel Core i7-6700K. Procesor je bil izdan v 3. ˇcetrtini leta 2015, ima 4 procesorska jedra in 8 niti [19]. Na voljo je 16 GB pomnilnika
24 Tine Erent
Poglavje 6
Interpretacija rezultatov
6.1 Vizualizacija rezultatov
Na sliki 6.1 je vizualiziran rezultat sidranja prvega, na sliki 6.3 pa rezultat sidranja drugega liganda. Na obeh slikah je prikazan skupno najboljˇsi oce-njeni osebek vseh 100 zagonov vzporednega algoritma. Na slikah 6.2 in 6.4 so prikazani najboljˇsi osebki vseh 100 zagonov obeh ligandov. Na sliki 6.2 se vidi, da je bilo 1000 korakov dovolj za prvi ligand in da poza liganda kon-vergira k reˇsitvi, ki je optimalna. Poza drugega liganda konkon-vergira k reˇsitvi, vendar ne tako hitro kot poza prvega, kar prikazuje slika 6.4.
6.2 Analiza konvergence
Konvergenco algoritma prikazujejo slike 6.5–6.10. Grafa na slikah 6.5 in 6.6 prikazujeta isti zagon algoritma prvega liganda. Prvi podrobneje prikazuje dogajanje prvih 1000 korakov, drugi pa vseh 10000.
Manjˇsa ocena osebka predstavlja boljˇso pozo. Iz grafa na sliki 6.5 je razvidno, da vsi zagoni (razen enega) ˇze po 400 korakih doseˇzejo obmoˇcje ocen med -16 in -19. V tem obmoˇcju ostane vseh preostalih 600 korakov. Na grafu na sliki 6.6 vidimo nadaljevanje, pri katerem na 1500 korakih vse ocene padejo pod -17. Od tu naprej se ocene poˇcasi izboljˇsujejo, vendar ostanejo v
26 Tine Erent
Slika 6.1: Vizualizacija najboljˇsega osebka prvega liganda, pridobljenega z vzporednim algoritmom (100 zagonov, 1000 korakov)
obmoˇcju od -17 do -19.
Grafa na slikah 6.7 in 6.8 prikazujeta isti zagon algoritma drugega li-ganda. Prvi podrobneje prikazuje dogajanje prvih 1000 korakov, drugi pa vseh 10000. Na prvem se vidi, da ocene padajo in se razvrstijo v obmoˇcje med -37 in -52. Na drugem grafu vidimo nadaljevanje, pri katerem ocene padajo, a se obmoˇcje ocen poveˇca na razpon med -42 in -60. Iz grafa je raz-vidno, da je potrebno okoli 2600 korakov za sidranje drugega liganda. Sipanje ocen ostaja zelo veliko, kot da bi vsaka poza imela svoj minimum. Zaradi tega sipanja je potrebno izvajati veliko zagonov (100 v naˇsem primeru). Za prepreˇcitev tako velikega sipanja, bi lahko poveˇcali velikost koraka mutacije, da zapustimo lokalni minimum. Graf na sliki 6.8 prikaˇze dejstvo, da je po-trebno uporabiti tudi algoritem za lokalno optimizacijo poze liganda. Tako na primer AutoDock za iskanje globalnega optimuma uporablja Lamarckov genetski algoritem in algoritem Solis–Wets za lokalno optimizacijo [44]. Tudi CmDock uporablja lokalni optimizacijski algoritem na osnovi simuliranega ohlajanja po metodi Monte Carlo [42], ki ga vzporedni algoritem ˇse nima im-plementiranega. Na sliki 6.9 graf odvodov povpreˇcij najboljˇsih ocen prikaˇze konvergenco vzporednega algoritma kot velikost izboljˇsave ocene na
posa-Diplomska naloga 27
Slika 6.2: Vizualizacija najboljˇsega osebka prvega liganda vsakega zagona vzporednega algoritma (100 zagonov, 1000 korakov)
meznem koraku. Na sliki 6.10 je prikazan graf desetih zagonov s po 100000 koraki. Iz grafa so vidne najboljˇse moˇzne ocene, ki jih je vzporedni algoritem na tem mestu razvoja sposoben pridobiti.
6.3 Izvajalni ˇ cas
Na sliki 6.11 vidimo diagram, ki prikazuje izvajalne ˇcase algoritma na plat-formah, opisanih v poglavju 5. Razbere se okrog osemkratno poveˇcanje po-trebnega ˇcasa za sidranje drugega liganda v primerjavi s prvim ligandom.
Razvidno je tudi okrog desetkratno poveˇcanje ˇcasa pri prehodu med platfor-mami. Grafiˇcni kartici V100 in K40 sta veliko hitrejˇsi od procesorja 6700K, a tudi med njima je velika razlika. CmDock, izvajan v Arnesovi gruˇci, potre-buje za sidranje drugega liganda pri 100 zagonih 46,08 sekund (standardna napaka meritve je 0,24 s). Primerjava rezultatov obeh algoritmov je prika-zana na sliki 6.12. Strokovnjaka s podroˇcja fizikalne kemije sta obe reˇsitvi potrdila kot primerni. Vzporedni algoritem tako vrne kvalitativno enako dobre reˇsitve kot referenˇcni CmDock.
28 Tine Erent
Slika 6.3: Vizualizacija najboljˇsega osebka drugega liganda, pridobljenega z vzporednim algoritmom (100 zagonov, 1000 korakov)
ˇSˇcepec kernelPLP porabi veˇcino ˇcasa izvajanja (79 %), sledi mu ˇsˇcepec ker-nelEquals (12 %). Navedena ˇsˇcepca predstavljata veˇc kot 90 % porabljenega ˇcasa, zato ju nameravamo v prihodnosti dodatno optimizirati.
6.4 Analiza vpliva ˇ stevila zagonov in korakov na ˇ cas izvajanja
Na sliki 6.14 vidimo graf, ki prikazuje vpliv ˇstevila zagonov in korakov na ˇcas izvajanja. Iz grafa se razbere, da ˇstevilo zagonov in korakov skoraj enako vpliva na izvajalni ˇcas. ˇCe ignoriramo primer enega koraka in enega zagona, je ˇcas izvajanja m zagonov in n korakov pribliˇzno enak ˇcasu izvajanja k zagonov in h korakov, ˇce je: m×n=k×h.
Diplomska naloga 29
Slika 6.4: Vizualizacija najboljˇsega osebka drugega liganda vsakega zagona vzporednega algoritma (100 zagonov, 1000 korakov)
6.5 Uporaba enojne natanˇ cnosti
Rezultate, predstavljene do sedaj, smo pridobili z vzporednim algoritmom, ki za predstavitev necelih ˇstevil uporablja dvojno natanˇcnost (podatkovni tip double). Glede na tabelo 5.4.1.[12] in tabelo CUDA-Enabled Datacenter Products [13] ima GPE V100 dvakrat veˇcjo prepustnost za aritmetiˇcne ukaze enojne natanˇcnosti kot dvojne. Algoritem smo spremenili tako, da upora-blja enojno natanˇcnost (podatkovni tip float). Na sliki 6.15 je diagram, ki prikazuje ˇcas izvajanja z uporabo enojne natanˇcnosti. Pri obeh GPE se je ˇcas izvajanja prepolovil. Pri procesorju 6700K priˇcakovano ni velike izboljˇsave. Konvergenca ostaja enako dobra, kot se vidi na sliki 6.16. Z uporabo GPE V100 smo tako dosegli skoraj trikratno pohitritev sidranja
30 Tine Erent
Fri Jan 14 17_02_37 2022_
Page 1
Slika 6.5: Najboljˇsa ocena (bolj kot je ocena negativna, boljˇsa je) vsakega zagona pri vsakem koraku algoritma (prvi ligand, 100 zagonov, prvih 1000 korakov)
Fri Jan 14 17_02_37 2022_
Page 1
Slika 6.6: Najboljˇsa ocena (bolj kot je ocena negativna, boljˇsa je) vsakega zagona pri vsakem koraku algoritma (prvi ligand, 100 zagonov, vseh 10000 korakov)
Diplomska naloga 31
Fri Jan 14 17_08_45 2022_
Page 1
Slika 6.7: Najboljˇsa ocena (bolj kot je ocena negativna, boljˇsa je) vsakega zagona pri vsakem koraku algoritma (drugi ligand, 100 zagonov, prvih 1000 korakov)
Fri Jan 14 17_08_45 2022_
20 460
Slika 6.8: Najboljˇsa ocena (bolj kot je ocena negativna, boljˇsa je) vsakega zagona pri vsakem koraku algoritma (drugi ligand, 100 zagonov, vseh 10000 korakov)
32 Tine Erent
Fri Jan 14 17_08_45 2022_
Page 1
Odvod povprečja najboljših ocen
Slika 6.9: Odvod povpreˇcja najboljˇsih ocen pri vsakem koraku algoritma (drugi ligand, 100 zagonov, 10000 korakov)
Fri Jan 14 17_14_44 2022_
Page 1
Slika 6.10: Najboljˇsa ocena (bolj kot je ocena negativna, boljˇsa je) vsakega zagona pri vsakem koraku algoritma (drugi ligand, 10 zagonov, 100000 kora-kov)
Diplomska naloga 33
Sheet1
Page 1
Prvi ligand Drugi ligand
0
Slika 6.11: Diagram hitrosti izvajanja z uporabo dvojne natanˇcnosti na te-stiranih sistemih (100 zagonov, 1000 korakov). V oklepaju nad posameznim ˇcasom izvajanja je podana standardna napaka meritve.
Slika 6.12: Primerjava najboljˇsega osebka drugega liganda po 100 zagonih vzporednega algoritma (1000 korakov, modri osebek) in 100 zagonih
pro-34 Tine Erent
Slika 6.13: Porazdelitev ˇcasa izvajanja ˇsˇcepcev (V100, drugi ligand, 100 za-gonov, 1000 korakov)
Diplomska naloga 35
Sheet1
Page 1
1 25/250/2500 50/500/5000 100/1000/10000
0 50 100 150 200 250 300 350 400
V100, prvi ligand, zagoni V100, drugi ligand, zagoni V100, prvi ligand, koraki V100, drugi ligand, koraki K40, prvi ligand, zagoni K40, drugi ligand, zagoni K40, prvi ligand, koraki K40, drugi ligand, koraki 6700K, prvi ligand, zagoni 6700K, drugi ligand, zagoni 6700K, prvi ligand, koraki 6700K, drugi ligand, koraki
Čas izvajanja [s]
Slika 6.14: Vpliv ˇstevila zagonov in korakov na ˇcas izvajanja (vsi: 1, 25, 50 in 100 zagonov, V100 prvi ligand 1, 2500, 5000 in 10000 korakov, V100 drugi in K40 prvi ligand 1, 250, 500 in 1000 korakov, K40 drugi ligand in oba 6700K liganda 1, 25, 50 in 100 korakov, testiranje zagonov je uporabilo najveˇcje ˇstevilo korakov, testiranje korakov pa vedno 100 zagonov). Najveˇcja standardna napaka meritev pri platformi V100 je 0,046 s, pri K40 je 0,079 s
36 Tine Erent
Sheet1
Page 1
V100 drugi ligand K40 drugi ligand 6700K prvi ligand 0
Slika 6.15: Diagram hitrosti izvajanja z uporabo enojne natanˇcnosti na te-stiranih sistemih (100 zagonov, 1000 korakov). V oklepaju nad posameznim ˇcasom izvajanja je podana standardna napaka meritve.
Thu Jan 27 15_30_55 2022_
Page 1
Slika 6.16: Najboljˇsa ocena vsakega zagona pri vsakem koraku algoritma, ki uporablja enojno natanˇcnost (drugi ligand, 100 zagonov, 10000 korakov)
Poglavje 7 Zakljuˇ cek
V okviru diplomske naloge smo za simulacijo sidranja molekul razvili prototip vzporednega algoritma, ki temelji na implementaciji genetskega algoritma, vkljuˇcenega v aplikacijo CmDock, in cenilni funkciji PLP. Testirali smo ga z dvema ligandoma in pri tem merili hitrost in primernost rezultatov, ki jih algoritem poda.
Razviti algoritem je na primeru dveh ligandov z uporabo znane empiriˇcne cenilke PLP naˇsel poze, ki se ujemajo s priˇcakovanimi. Algoritem se lahko vkljuˇci v referenˇcno programsko opremo CmDock in ji s tem omogoˇci iz-rabo GPE in poslediˇcno pospeˇsitev izvajanja sidranja, kar je za skupnost, ki uporablja CmDock, dragocen prispevek.
Ugotovili smo, da potrebuje naˇs algoritem pred produkcijsko uporabo ve-liko hitrostnih optimizacij, kot je na primer uporaba tehnike vnaprejˇsnjega izraˇcuna energijskega prispevka statiˇcnega receptorja, uporabljene v Cm-Dock [42]. Kljub temu, da je ˇse veliko prostora za izboljˇsave, je ˇze sedaj na pospeˇsevalniku GPE Nvidia V100 naˇs algoritem hitrejˇsi od CmDock. Pri izvajanju algoritma porabi najveˇc ˇcasa izraˇcun cenilne funkcije, zato se bodo morale izboljˇsave osredotoˇciti predvsem na ta del algoritma. Poleg tega po-trebuje algoritem tudi lokalni optimacijski algoritem, da s tem zmanjˇsamo ˇstevilo korakov genetskega algoritma in dodatno pospeˇsimo celotno izvajanje.
Uspeˇsnost algoritma bi lahko dodatno izboljˇsali tako, da bi implementirali
38 Tine Erent naprednejˇso cenilko CHEMPLP [25], ki ima veˇc ˇclenov (7 dodatnih) kot cenilka PLP in bi zato osebke boljˇse ocenili. Zaradi dodane kompleksnosti pa bi se izvajalni ˇcas poveˇcal.
Literatura
[1] William J. Allen in sod.: DOCK 6: Impact of new features and cur-rent docking performance. V:Journal of computational chemistry 36.15 (2015), str. 1132–1156.
[2] AMD EPYC 7272.url:https://www.techpowerup.com/cpu-specs/
epyc-7272.c2256 (pridobljeno 7. 1. 2022).
[3] AMD EPYC 7702P. url: https : / / www . techpowerup . com / cpu -specs/epyc-7702p.c2259(pridobljeno 7. 1. 2022).
[4] 6376 AMD. url: https : / / www . amd . com / en / products / cpu / 6376 (pridobljeno 29. 6. 2021).
[5] AMD Opteron 6376. url: https : / / www . techpowerup . com / cpu -specs/opteron-6376.c1295 (pridobljeno 29. 6. 2021).
[6] Mike Bailey: Performing Reductions in OpenCL. url: https://web.
engr.oregonstate.edu/~mjb/cs575/Handouts/opencl.reduction.
2pp.pdf(pridobljeno 8. 10. 2021).
[7] Anˇze Bergant: Simulacija molekulske dinamike na visokozmogljivih infrastrukturah. 2016. url: https : / / repozitorij . uni - lj . si / IzpisGradiva.php?lang=eng&id=91199.
[8] Urban Borˇstnik: Vzporedne raˇcunalniˇske simulacije na gruˇcah osebnih raˇcunalnikov: doktorska disertacija. Doktorska disertacija. Univerza v Ljubljani, Fakulteta za raˇcunalniˇstvo in informatiko, 2007.url:http:
//eprints.fri.uni-lj.si/710/1/borstnik.pdf.
40 Tine Erent [9] Tadej Ciglariˇc, Erik ˇStrumbelj in sod.: An OpenCL library for parallel random number generators. V: The Journal of Supercomputing 75.7 (2019), str. 3866–3881.
[10] Matthew Clark, Richard D. Cramer III in Nicole Van Opdenbosch:
Validation of the general purpose tripos 5.2 force field. V: Journal of Computational Chemistry 10.8 (1989), str. 982–1012. doi: https://
doi.org/10.1002/jcc.540100804. eprint: https://onlinelibrary.
wiley . com / doi / pdf / 10 . 1002 / jcc . 540100804. url: https : / / onlinelibrary.wiley.com/doi/abs/10.1002/jcc.540100804.
[11] Christopher R. Corbeil, Christopher I. Williams in Paul Labute: Vari-ability in docking success rates due to dataset preparation. V:Journal of computer-aided molecular design 26.6 (2012), str. 775–786.
[12] CUDA C++ Programming Guide. url: https://docs.nvidia.com/
cuda / cuda c programming guide / index . html # arithmetic -instructions(pridobljeno 1. 2. 2022).
[13] CUDA GPUs. url: https : / / developer . nvidia . com / cuda - gpus (pridobljeno 1. 2. 2022).
[14] Patrick G. Brady ml. in Pieter F.W. Stouten: Fast prediction and visua-lization of protein binding pockets with PASS. V:Journal of computer-aided molecular design 14.4 (2000), str. 383–401.
[15] Fabian Glaser in sod.: A method for localizing ligand binding pockets in protein structures. V:PROTEINS: Structure, Function, and Bioin-formatics 62.2 (2006), str. 479–488.
[16] Peter J. Goodford: A computational procedure for determining ener-getically favorable binding sites on biologically important macromole-cules. V: Journal of medicinal chemistry 28.7 (1985), str. 849–857.
[17] How to work with SD files.url: https://lifechemicals.com/order-and-supply/how-to-work-with-sd-files(pridobljeno 19. 1. 2022).
Diplomska naloga 41 [18] Texas Instruments Incorporated:Understanding Kernels, Work-groups and Work-items. url: https://downloads.ti.com/mctools/esd/
docs / opencl / execution / kernels - workgroups - workitems . html (pridobljeno 23. 10. 2021).
[19] Intel® Core™ i7-6700K Processor (8M Cache, up to 4.20 GHz). url: https : / / www . intel . com / content / www / us / en / products / sku / 88195/intel- core- i76700k- processor- 8m- cache- up- to- 4- 20-ghz/specifications.html (pridobljeno 18. 1. 2022).
[20] Intel® Xeon® Processor E5-2640. url: https://ark.intel.com/
content/www/us/en/ark/products/64591/intel-xeon-processor-e5 - 2640 - 15m - cache - 2 - 50 - ghz - 7 - 20 - gt - s - intel - qpi . html (pridobljeno 29. 6. 2021).
[21] CmDock GitLab. url: https://gitlab.com/Jukic/cmdock/ (prido-bljeno 26. 6. 2021).
[22] Mika A. Kastenholz in sod.: GRID/CPCA: a new computational tool to design selective ligands. V: Journal of medicinal chemistry 43.16 (2000), str. 3033–3044.
[23] Tahmeena Khan in sod.: Molecular Docking Simulation with Special Reference to Flexible Docking Approach. V:JSM Chemistry6.1 (2018), str. 1053–1057.
[24] Joachim Kopp: Efficient numerical diagonalization of hermitian 3×3 matrices. V:International Journal of Modern Physics C 19.03 (2008), str. 523–548.
[25] Oliver Korb, Thomas Stutzle in Thomas E Exner: Empirical scoring functions for advanced protein- ligand docking with PLANTS. V: Jo-urnal of chemical information and modeling 49.1 (2009), str. 84–96.
[26] Roman A. Laskowski: SURFNET: a program for visualizing molecular surfaces, cavities, and intermolecular interactions. V: Journal of
mole-42 Tine Erent [27] David G. Levitt in Leonard J. Banaszak: POCKET: a computer graph-ics method for identifying and displaying protein cavities and their surrounding amino acids. V:Journal of molecular graphics 10.4 (1992), str. 229–234.
[28] Li Li, Rong Chen in Zhiping Weng: RDOCK: refinement of rigid-body protein docking predictions. V:Proteins: Structure, Function, and Bi-oinformatics 53.3 (2003), str. 693–707.
[29] Xuan-Yu Meng in sod.: Molecular docking: a powerful approach for structure-based drug discovery. V:Current computer-aided drug design 7.2 (2011), str. 146–157.
[30] Mihaly Mezei: A new method for mapping macromolecular topography.
V:Journal of Molecular Graphics and Modelling 21.5 (2003), str. 463–
472.
[31] Nadgradnja Arnesove HPC gruˇce. url: http : / / lists . arnes . si / pipermail / grid . users / 2021 - March / 000062 . html (pridobljeno 7. 1. 2022).
[32] NSC: Nova skupna gruˇca Instituta Joˇzef Stefan. url: https://www.
ijs.si/ijsw/nsc (pridobljeno 26. 6. 2021).
[33] NVIDIA Tesla K40 GPU specifications. url: https://www.gpuzoo.
com/GPU-NVIDIA/Tesla_K40.html (pridobljeno 29. 6. 2021).
[34] NVIDIA Tesla V100 PCIe 16 GB. url: https://www.techpowerup.
com / gpu - specs / tesla - v100 - pcie - 16 - gb . c2957 (pridobljeno 7. 1. 2022).
[35] NVIDIA V100 Tensor Core GPU. url: https://www.nvidia.com/
en-us/data-center/v100/(pridobljeno 7. 1. 2022).
[36] OpenCL Overview - The Khronos Group Inc. url: https : / / www . khronos.org/opencl/ (pridobljeno 27. 6. 2021).
Diplomska naloga 43 [37] Nataraj S. Pagadala, Khajamohiddin Syed in Jack Tuszynski: Software for molecular docking: a review. V: Biophysical reviews 9.2 (2017), str. 91–102.
[38] Zan Palˇˇ ciˇc: Programiranje vezij FPGA z ogrodjem OpenCL. 2016.url: https://repozitorij.uni- lj.si/IzpisGradiva.php?lang=slv&
id=91235.
[39] PyMOL by Schr¨odinger. url: https : / / pymol . org/ (pridobljeno 18. 1. 2022).
[40] Eric Qin in sod.: SIGMA: A Sparse and Irregular GEMM Accelera-tor with Flexible Interconnects for DNN Training. V: 2020 IEEE In-ternational Symposium on High Performance Computer Architecture (HPCA). 2020, str. 58–70. doi: 10.1109/HPCA47549.2020.00015.
[41] RandomCL GitHub.url:https://github.com/bstatcomp/RandomCL (pridobljeno 27. 6. 2021).
[42] rDock Reference Guide rDock Development Team.url:http://rdock.
sourceforge . net / wp - content / uploads / 2015 / 08 / rDock _ User _ Guide.pdf(pridobljeno 26. 6. 2021).
[43] Sergio Ruiz-Carmona in sod.: rDock: a fast, versatile and open source program for docking ligands to proteins and nucleic acids. V: PLoS Comput Biol 10.4 (2014), e1003571.
[44] Diogo Santos-Martins in sod.: Accelerating AutoDock4 with GPUs and Gradient-Based Local Search. V:Journal of Chemical Theory and Computation 17.2 (2021). PMID: 33403848, str. 1060–1073. doi: 10.
1021/acs.jctc.0c01006. eprint: https://doi.org/10.1021/acs.
jctc.0c01006. url: https://doi.org/10.1021/acs.jctc.0c01006.
[45] Oleg Trott in Arthur J. Olson: AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient opti-mization, and multithreading. V: Journal of computational chemistry
44 Tine Erent [46] Hongtao Zhao in Amedeo Caflisch: Discovery of ZAP70 inhibitors by high-throughput docking into a conformation of its kinase domain ge-nerated by molecular dynamics. V: Bioorganic & medicinal chemistry letters 23.20 (2013), str. 5721–5726.