Компилиране, инсталиране и използване на OpenMM под CentOS 7 и 8Съдържание:
1. Предварителна информацияOpenMM е пакет, който съдържа библиотеки за реализиране на молекулярни симулации или за извършване на изчисления свръзани с резултати подобни симулации, получени от други инструменти, а така също и предлага Python модули, чрез които библиотеките могат да се свържат към приложни скриптове. Целта на този документ е да предложи рецепта за компилиране и инсталиране на кода на памета чрез използване на компилаторите от пакета Intel Compilers и GNU Compilers.
2. Изтегляне на изходния код на OpenMM и компилирането му с Intel Compilers и GNU Compilers2.1. Предварителни настройки и необходими пакетиАко ще компилирате изходния код с Intel Compilers, убедете се, че имате достъп до изпълнимите файлове на компилаторите Убедете, че имате инсталиран пакета cmake3 и ако го нямате, инсталирайте го от пакетните хранилища на дистрибуцията:
За да компилирате Python интерфейсния модул, чрез който библиотеките могат да се извикват от Python код, трябва да имате инсталиран Python 3. Препоръчително е Python 3 дистрибуцията да е тази, която се предлага от Intel. В системата трябва да са налични и достъпни CUDA библиотеките (обикновено те се намират в 2.2. Изтегляне и разпакетиране на изходния кодИзходният код на библиотеката може да бъде изтеглен от страницата на проекта: https://github.com/openmm/openmm/releases Препоръчително е да изтеглите и компилирате последната стабилна версия на кода на проекта. За примера тук се предполага, че това е 7.4.1. По времето, по което вие посетите страницата на проекта, там може да има по-нова стабилна версия. Изтеглянето и разпакетирането на кода може да стнане по следния начин: $ mkdir ~/build $ cd ~/build $ wget https://github.com/openmm/openmm/archive/7.4.1.tar.gz -O openmm-7.4.1.tar.gz $ tar xvf openmm-7.4.1.tar.gz Влезте в новосъздадената при разпакетирането директория: $ cd ~/build/openmm-7.4.1 създайте поддиректорията $ mkdir build $ cd build 2.3. Конфигуриране на компилационния процес и компилиране на изходния код и инсталирането на продуктаТам стартирайте конфигурирането на компилационния процес чрез
Най-важното съобщение, което трябва да получите като резултат от конфигурирането е това, което показва дали са намерени CUDA и OpenCL библиотеките. То ще изглежда така: -- Found CUDA: /usr/local/cuda (found version "10.2") -- Found OPENCL: /usr/local/cuda/lib64/libOpenCL.so Ако библиотеките не бъдат намерени, трябва да се върнете една стъпка назад и да проверите защо те не могат да бъдат намерени. След като всичко дотук е протекло успешно, може да пристъпите към компилирането на кода: $ make -j6 Ако компилацията завърши успешно, проверете дали компилирания двоичен код на библиотеките наистина работи според очакванията: $ cd tests $ make test Резултатът от усшения тест ще изглежда по следния начин: Running tests... Test project /home/vesso/build/openmm-7.4.1/build/tests Start 1: TestEnforcePeriodicBox 1/9 Test #1: TestEnforcePeriodicBox ........... Passed 0.06 sec Start 2: TestFindExclusions 2/9 Test #2: TestFindExclusions ............... Passed 0.01 sec Start 3: TestFindMolecules 3/9 Test #3: TestFindMolecules ................ Passed 0.01 sec Start 4: TestParser 4/9 Test #4: TestParser ....................... Passed 0.02 sec Start 5: TestSplineFitter 5/9 Test #5: TestSplineFitter ................. Passed 0.01 sec Start 6: TestSystem 6/9 Test #6: TestSystem ....................... Passed 0.01 sec Start 7: TestVectorExpression 7/9 Test #7: TestVectorExpression ............. Passed 0.00 sec Start 8: TestVectorize 8/9 Test #8: TestVectorize .................... Passed 0.00 sec Start 9: TestVectorize8 9/9 Test #9: TestVectorize8 ................... Passed 0.01 sec 100% tests passed, 0 tests failed out of 9 Total Test time (real) = 0.12 sec Ако в резултата от теста виждате "100% tests passed", може да пристъпите към инсталиране на компилираните библиотеки (ще бъдат инсталирани в директорията, която е била указана преди това като стойност на $ make install 2.4. Компилиране и инсталиране на Python-интерфейсаМодулът simtk осъществява комуникацията между Python и библиотеките на OpenMM (този код е нужен за да може функциите и процедурите от тези библиотеки да се извикват в програмен код интерпретиран от Python). За за да го компилирате и инсталирате влезте в поддиректория cd ~/build/openmm-7.4.1/build/python и в нея изпълнете командните редове за компилиране и инсталиране на модула, в зависимост от това какъв компилатор сте използвали за компилиране на OpenMM библиотеките:
Алтернативен вариант на компилиране на модула е да използвате Python 3, който се предлага от дистрибуцията, но от гледна точка на производителността е добре да се придържате към използването на Intel Python 3.
3. Тестове за проверка на качеството на компилирания код на библиотеките и Python-интерфейсаИзвършването на тестовете е препоръчително, тъй като резултата от тяхното изпълнение е индикация дали двоичния код на OpenMM бибилиотеките е компилиран правилно. ВАЖНО! Може да извършите теста без значение кой компилатор използвате, защото библиотеките, компилирани с Intel Compilers могат да бъдат свързвани към изпълним код компилиран с GNU Compilers и обратно. Директорията с тестов код се намира в (тези пътища във файловата система са зададени при инсталацията, виж по-горе):
Примерите по-долу са за тестовия код в Всички от тестовете илюстрирани по-долу генерират траектория на симулация, която е запазена във формат PDB (всяка рамка от траекторията е една MODEL секция в PDB файла):
Препоръчително е да извършите всеки един от тестове показани по-горе и да визуализирате генерираните PDB файлове чрез VMD на ваша работна станция, на която имате инсталиран този софтуер. Имайте предвид, че поради различния начин на инициализиране на генератора на случайни числа в Intel Compiler и GNU Compilers координатите на атомите няма да съвпадат, но качествено картината, която виждате при визуализация на съответните тракетории ще е една и съща.
4. Взаимодействие с pymbar
5. Тестове за скорост на изпълнениеПристъпете към извършване на тези тестове само и единствено, ако останалите тестове предложени по-горе са успешни! Влезте в директория
|
Последна актуализация: 4 март 2020
2020 УНИТе, Веселин Колев