Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
общее:инструкции:компиляция_openmp_программ [22.03.2017 18:42:28] 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-программ | |
^ [...] | дополнительные опции компилятора | | ^ [...] | дополнительные опции компилятора | | ||
===== Примеры компиляции ===== | ===== Примеры компиляции ===== | ||
- | ---- | ||
- | ==== GCC ==== | ||
- | <code> $ gcc src.cpp -fopenmp -o omp-gcc-c++</code> | ||
- | ==== Intel ==== | + | <code> |
- | <code> $ ifort src1.f src2.f -qopenmp -o omp-intel-fort</code> | + | $ gcc src.c -fopenmp -o openmp-gcc-c |
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | $ g++ src.cpp -fopenmp -o openmp-gcc-cpp | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | $ gfortran src.f -fopenmp -o openmp-gcc-fortran | ||
+ | </code> | ||
- | ==== PGI ==== | ||
- | <code> $ pgcc src1.c src2.c src3.c src4.c -mp -o omp-pgi-c</code> |