Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
общее:инструкции:компиляция_mpi_программ [26.04.2017 14:32:11] leoten |
общее:инструкции:компиляция_mpi_программ [19.09.2022 22:57:44] (текущий) Admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Компиляция MPI-программ ===== | ===== Компиляция MPI-программ ===== | ||
- | <note tip>Список доступных реализаций MPI и соответствующих модулей приведен на странице **[[:cluster:kepler:soft#реализации_mpi|ПГНИУ-Кеплер: Доступное ПО]]**</note> | ||
- | <note tip>Информация об использовании модулей доступна на странице **[[:общее:инструкции:module|Утилита "module"]]**</note> | ||
- | Перед компиляцией и запуском MPI-программы необходимо загрузить модули окружения. В общем случае таких модулей будет два: | + | Компиляция MPI-программ существенно не отличается от компиляции традиционных последовательных программ. Общий вид команды компиляции следующий: |
- | * модуль компилятора | + | |
- | * модуль конкретной реализации MPI | + | |
- | + | ||
- | ^ Язык ^ Команда компиляции ^ | + | |
- | ^ C | **//mpicc//** | | + | |
- | ^ Fortran | **//mpifort//** | | + | |
- | ^ C%%++%% | **//mpicxx//**, **//mpic%%++%%//** | | + | |
- | + | ||
- | Сама компиляция MPI-программ существенно не отличается от компиляции традиционных последовательных программ. Общий вид команды компиляции следующий: | + | |
<code> $ <MPI_compiler> <source_file>[ <source_file>] -o <executable_file> [...] </code> | <code> $ <MPI_compiler> <source_file>[ <source_file>] -o <executable_file> [...] </code> | ||
Строка 20: | Строка 9: | ||
^ <executable_file> | исполняемый файл | | ^ <executable_file> | исполняемый файл | | ||
^ [...] | дополнительные опции компилятора | | ^ [...] | дополнительные опции компилятора | | ||
+ | |||
+ | Перед использованием OpenMPI необходимо настроить переменные окружения, выполнив следующую команду: <code>module load mpi/openmpi-x86_64</code> | ||
===== Примеры компиляции ===== | ===== Примеры компиляции ===== | ||
- | ---- | ||
- | ==== OpenMPI 1.10.6, GCC 4.4.7, язык C ==== | ||
- | <code> | ||
- | $ module load compilers/gnu/4.4.7 | ||
- | $ module load mpi/openmpi/1.10.6 | ||
- | $ mpicc mpi_src.c -o mpi-c | ||
- | </code> | ||
- | ==== Intel MPI, GCC 4.4.7, язык C++ ==== | ||
<code> | <code> | ||
- | $ module load compilers/intel/2017 | + | module load mpi/openmpi-x86_64 |
- | $ mpicxx mpi_src1.cpp mpi_src2.cpp -o mpi-cxx | + | mpicc mpi_src.c -o mpi-c |
</code> | </code> | ||
- | ==== Intel MPI, Intel 2017, язык C++ ==== | ||
- | <code> | ||
- | $ module load compilers/intel/2017 | ||
- | $ mpiicpc mpi_src1.cpp mpi_src2.cpp -o mpi-cxx | ||
- | </code> | ||
- | |||
- | ==== PGI 2016, MVAPICH2, язык Fortran ==== | ||
- | <code> | ||
- | $ module load compilers/pgi/16.10 | ||
- | $ module load mpi/mvapich2/2.2 | ||
- | $ mpifort mpi_src1.f mpi_src2.f mpi_src3.f -o mpi-fort | ||
- | </code> |