sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev
===== Configure CLion to use WSL2 =====
{{:c:mpi:pasted:20240221-170356.png}}
===== Change build directory =====
Set build directory to the root project folder:
{{:c:mpi:pasted:20240221-165122.png}}
===== Include MPI references in CMake file =====
cmake_minimum_required(VERSION 3.2)
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})
===== Add source file =====
#include
#include
int main(int argc, char** argv) {
// Initialize the MPI environment
MPI_Init(NULL, NULL);
// Get the number of processes
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
// Get the rank of the process
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
// Check if the current process is the master process
if (world_rank == 0) {
// Master process prints this message
printf("Hello world from master\n");
} else {
// All other processes print this message
printf("Hello world from processor %d out of %d processors\n",
world_rank, world_size);
}
// Finalize the MPI environment.
MPI_Finalize();
}
===== Build the project =====
{{:c:mpi:pasted:20240221-165501.png}}
Reload also cmake project if you have issues:
{{:c:mpi:pasted:20240221-165602.png}}
===== Add a CLion Run Configuration =====
{{:c:mpi:pasted:20240221-165939.png}}
===== Run the project =====
{{:c:mpi:pasted:20240221-170033.png}}