Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
общее:инструкции:компиляция_openmp_программ [22.03.2017 18:25:32] leoten Обновлены примеры, улучшен общий внешний вид страницы |
общее:инструкции:компиляция_openmp_программ [19.09.2022 21:11:01] (текущий) Admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | <note tip>Список доступных компиляторов можно посмотреть по **[[:cluster:soft|ссылке]]**</note> | ||
===== Компиляция OpenMP программ ===== | ===== Компиляция OpenMP программ ===== | ||
- | Большинство современных компиляторов поддерживают технологию 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> | ||
Строка 15: | Строка 6: | ||
^ <source_file> | файл с исходным кодом | | ^ <source_file> | файл с исходным кодом | | ||
^ <executable_file> | исполняемый файл | | ^ <executable_file> | исполняемый файл | | ||
- | ^ <omp_key> | ключ для компилирования OpenMP-программ (зависит от выбранного компилятора) | | + | ^ <omp_key> | ключ для компилирования OpenMP-программ | |
^ [...] | дополнительные опции компилятора | | ^ [...] | дополнительные опции компилятора | | ||
- | ==== Примеры компиляции ==== | + | ===== Примеры компиляции ===== |
- | === C++ (1 исходный файл) === | + | |
- | * **GCC** <code> $ gcc src.cpp -fopenmp -o omp-gcc-c++</code> | + | <code> |
- | * **Intel** <code> $ icpc src.cpp -qopenmp -o omp-intel-c++</code> | + | $ gcc src.c -fopenmp -o openmp-gcc-c |
- | * **PGI** <code> $ pgc++ src.cpp -mp -o omp-pgi-c++</code> | + | </code> |
+ | |||
+ | <code> | ||
+ | $ g++ src.cpp -fopenmp -o openmp-gcc-cpp | ||
+ | </code> | ||
- | === Fortran (2 исходных файла) === | + | <code> |
- | * **GCC** <code> $ gfortran src.f -fopenmp -o omp-gcc-fort</code> | + | $ gfortran src.f -fopenmp -o openmp-gcc-fortran |
- | * **Intel** <code> $ ifort src.f -qopenmp -o omp-intel-fort</code> | + | </code> |
- | * **PGI** <code> $ pgfortran src.f -mp -o omp-pgi-fort</code> | + | |
- | === C (4 исходных файла) === | ||
- | * **GCC** <code> $ gcc src1.c src2.c src3.c src4.c -fopenmp -o omp-gcc-c</code> | ||
- | * **Intel** <code> $ icc src1.c src2.c src3.c src4.c -qopenmp -o omp-intel-c</code> | ||
- | * **PGI** <code> $ pgcc src1.c src2.c src3.c src4.c -mp -o omp-pgi-c</code> |