User Tools

Site Tools


c:mpi:clion-ide-mpi-config

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
c:mpi:clion-ide-mpi-config [2024/02/21 17:20] – removed - external edit (Unknown date) 127.0.0.1c:mpi:clion-ide-mpi-config [2024/02/21 17:20] (current) – ↷ Page moved and renamed from c-lion-ide-mpi-config to c:mpi:clion-ide-mpi-config odefta
Line 1: Line 1:
 +====== Configure CLion to run an Open MPI project on Windows ======
 +
 +===== Install OpenMPI on Ubuntu  =====
 +
 +After installing WSL2/Ubuntu, run:
 +
 +<code>
 +sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev
 +</code>
 +
 +===== 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 =====
 +
 +<code cmake CMakeLists.txt>
 +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})
 +</code>
 +
 +===== Add source file =====
 +
 +<code c main.c>
 +#include <mpi.h>
 +#include <stdio.h>
 +
 +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();
 +}
 +</code>
 +
 +===== 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}}