MPI: изменение количества процессоров в CMakelists

Я использую CLion. Мои CMakeLists.тхт выглядит так:

cmake_minimum_required(VERSION 3.2)

project(MPI)

add_executable(MPI main.cpp)

# Require MPI for this project:
find_package(MPI REQUIRED)

set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})
set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS})

include_directories(MPI_INCLUDE_PATH)
target_link_libraries(MPI ${MPI_LIBRARIES})

мир MPI-Hello работает хорошо. но как изменить количество процессоров в cmakelists?

Я уже пытался добавить -np 4 и-n 4 к аргументам программы в CLion. Но все равно я просто получаю

Привет мировой процесс 0 из 1

2 ответов


вы не можете указать количество процессов для использования в CMakeLists.формат txt. Количество процессов-это аргумент, который вы указываете при выполнении программы с mpirun.

для компиляции проекта mpi C я использую следующие CMakeLists.txt

cmake_minimum_required(VERSION 3.3)
project(hellompi)

find_package(MPI REQUIRED)
include_directories(${MPI_INCLUDE_PATH})

SET(CMAKE_C_COMPILER mpicc)
SET(CMAKE_CXX_COMPILER mpicxx)

set(SOURCE_FILES main.c)
add_executable(hellompi ${SOURCE_FILES})

чтобы выполнить программу из Clion, я сначала изменил (непонятных) местоположение, в которое Clion по умолчанию выводит скомпилированные файлы. Вы можете указать другое место для скомпилированных файлов в настройках в "Сборка, выполнение и развертывание" -> "CMake". Я просто изменил его на папку проекта.

затем я отредактировал конфигурации запуска. "Run" - > "Edit Configuration" - > установить исполняемый файл в mpirun. (расположение mpirun на вашем компьютере)

затем я отредактировал "аргументы программы", чтобы быть

-np 4 /home/mitzh/ClionProjects/hellompi/Debug/hellompi

для выполнения моей программы с помощью 4 процессов.


количество процессоров, которые вы используете, не имеет ничего общего с процессом компиляции и, следовательно, не имеет ничего общего с вашими CMakeLists.txt (кроме того, при использовании CTest, но это другая тема).

вы просто компилируете исполняемый файл, используя mpicxx или так, как вы делаете сейчас, а затем запустите его с

mpirun -np 4 nameOfExe

отметим, что -np 4 аргумент к mpirun, не для вашей программы.