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
, не для вашей программы.