Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
общее:инструкции:компиляция_openmp_программ [26.04.2017 13:11:48] leoten |
общее:инструкции:компиляция_openmp_программ [19.09.2022 21:11:01] (текущий) Admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Компиляция OpenMP программ ===== | ===== Компиляция OpenMP программ ===== | ||
- | <note tip>Список доступных компиляторов и соответствующих модулей приведен на странице **[[:cluster:kepler:soft#компиляторы|ПГНИУ-Кеплер: Доступное ПО]]**</note> | ||
- | <note tip>Информация об использовании модулей доступна на странице **[[:общее:инструкции:module|Утилита "module"]]**</note> | ||
- | Большинство современных компиляторов поддерживают технологию OpenMP. Поэтому, для того чтобы скомпилировать OpenMP-программу достаточно в строке вызова указать компилятору в качестве дополнительного параметра специальный ключ: | ||
- | |||
- | ^ Компилятор ^ Ключ ^ | ||
- | ^ [[:service:gcc|GCC]] | **//-fopenmp//** | | ||
- | ^ [[:service:intel|Intel]] | **//-openmp//** (в версии 2017 и выше **//-qopenmp//**) | | ||
- | ^ [[:service:pgi|PGI]] | **//-mp//** (**//-nomp//** для отключения OpenMP) | | ||
- | |||
- | Как и в случае с последовательной программой, сперва необходимо загрузить модуль выбранного компилятора. После этого для компиляции OpenMP-программы достаточно ввести в командной строке команду со следующей структурой: | ||
<code> $ <compiler> <source_file>[ <source_file>] -o <executable_file> <omp_key> [...] </code> | <code> $ <compiler> <source_file>[ <source_file>] -o <executable_file> <omp_key> [...] </code> | ||
Строка 16: | Строка 6: | ||
^ <source_file> | файл с исходным кодом | | ^ <source_file> | файл с исходным кодом | | ||
^ <executable_file> | исполняемый файл | | ^ <executable_file> | исполняемый файл | | ||
- | ^ <omp_key> | ключ для компилирования OpenMP-программ (зависит от выбранного компилятора) | | + | ^ <omp_key> | ключ для компилирования OpenMP-программ | |
^ [...] | дополнительные опции компилятора | | ^ [...] | дополнительные опции компилятора | | ||
===== Примеры компиляции ===== | ===== Примеры компиляции ===== | ||
- | ---- | + | |
- | ==== GNU GCC 4.4.7==== | + | |
<code> | <code> | ||
- | $ module load compilers/gnu/4.4.7 | + | $ gcc src.c -fopenmp -o openmp-gcc-c |
- | $ gcc src.cpp -fopenmp -o omp-gcc-c++ | + | |
</code> | </code> | ||
- | ==== Intel 2017==== | ||
<code> | <code> | ||
- | $ module load compilers/intel/2017 | + | $ g++ src.cpp -fopenmp -o openmp-gcc-cpp |
- | $ ifort src1.f src2.f -qopenmp -o omp-intel-fort | + | |
</code> | </code> | ||
- | ==== PGI 16.10 ==== | ||
<code> | <code> | ||
- | $ module load compilers/pgi/16.10 | + | $ gfortran src.f -fopenmp -o openmp-gcc-fortran |
- | $ pgcc src1.c src2.c src3.c src4.c -mp -o omp-pgi-c | + | |
</code> | </code> | ||
+ |