====== Configure CLion to run an Open MPI project on Windows ====== ===== Install OpenMPI on Ubuntu ===== After installing WSL2/Ubuntu, run: 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}}