Компилиране на MPICH за алтернативни версии на GCC компилаторите под CentOS 7Съдържание:
1. Предварителна информацияПриложенията, които използват MPI библиотеките, са изключително специфични спрямо използваната версия на библиотеките. Изпълнението на тези приложения трябва да става чрез инструмента Целта на този документ е да покаже как може да се компилират и използват MPI библиотеки и компилатори за създаване на приложения, чиито изпълним код се създава с последната версия на GCC компилаторите, достъпна за CentOS 7.
2. Изтегляне на изходния код и процедура по компилиранетоАко в HPC инфраструктурата, в която ще използвате MPI върху много нодове, имате InfiniBand вързаност между тях и искате да използвате RDMA, трябва да инсталирате libfabric и libmemcache библиотеките върху хостовете, на които ще се изпълнява MPI базиран код: $ sudo yum install libfabric libmemcache Само върху хоста, върху който ще компилирате MPICH, инсталирайте пакетите libfabric-devel и libmemcache-devel: $ sudo yum install libfabric-devel libmemcache-devel Преди да започнете процеса на компилиране, убедете се, че имате инсталиран GCC версия 8, съгласно прцедурата в документа "Инсталиране и използване на алтернативни версии на GCC компилаторите под CentOS 7". Изтеглете последната версия на MPICH от страницата на проекта. В примерите по-долу е използвана версия 3.3.1. Изтеглянето ѝ става най-лесно чрез $ wget http://www.mpich.org/static/downloads/3.3.1/mpich-3.3.1.tar.gz Създайте директория, в която да разпакетирате кода: $ mkdir ~/build и извършете разпакетирането: $ tar xvf mpich-3.3.1.tar.gz -C ~/build Влезте в директорията с разпакетирания изходен код, включете използването на версия 8 на GCC 8 компилаторите: $ cd ~/build/mpich-3.3.1 $ scl enable devtoolset-8 bash Преди да започнете процеса на компилация, трябва да решите къде ще бъде инсталиран продукта ѝ. Ако ще предоставяте достъп до него за всички потребители на HPC, то най-вероятно ще се наложи да инсталирате върху споделена файлова система, която се използва за достъп до дървото със софтуера. Например, върху Започнете с процеса на конфигуриране на компилацията: $ CC=gcc CXX=g++ FC=gfortran F77=gfortran ./configure --prefix=/usr/local/appstack/mpich-3.3.1-gcc-8 --enable-fortran=all --enable-cxx --with-libfabric=/usr --with-libmemcached=/usr --with-gnu-ld --enable-cache След това компилирайте: $ make -j6 и инсталирайте: $ make install
3. Настройки за компилация на MPI приложения със специфично компилирания MPICHЗа да могат да бъдат използвани MPI-базираните компилатори и библиотеки, създадени съгласно рецептата по-горе, трябва да укажете пътищата до тях с предимство, преди да компилирате програмен код (заменете конкретните пътища, указани по-долу след $ export PATH=/usr/local/appstack/mpich-3.3.1-gcc-8/bin:$PATH $ export LD_LIBRARY_PATH=/usr/local/appstack/mpich-3.3.1-gcc-8/lib:$LD_LIBRARY_PATH Имайте предвид, че MPI-базираните компилатори, създадени съгласно рецептата по-горе, са следните: mpic++ mpicc mpif77 mpif90 mpifort а съответните библиотеки за динамично свързване са: libmpicxx.so.12.1.7 libmpifort.so.12.1.7 libmpi.so.12.1.7 Ако ще компилирате статично свързан код, на разполжение са следните статични библиотеки: libmpicxx.a libmpifort.a libmpi.a
4. Изпълнение на MPI код, компилиран чрез версията на MPICH, създадена по рецептата по-гореИзпълнението на MPI код, компилиран чрез версията на MPICH, създадена по рецептата, дадена по-горе, става по стандартния за целта начин - чрез инструмента $ export PATH=/usr/local/appstack/mpich-3.3.1-gcc-8/bin:$PATH $ which mpirun $ mpirun -np X ... или да натисне Ctrl-D. |
Последна актуализация: 14 септември 2019
2019 УНИТе, Веселин Колев