#include<iostream>#include<mpi.h>intmain(int argc,char**argv){ // Initialize the MPI environment. The two arguments to MPI Init are not // currently used by MPI implementations, but are there in case future // implementations might need the arguments.MPI_Init(NULL,NULL); // Get the number of processesint world_size;MPI_Comm_size(MPI_COMM_WORLD,&world_size); // Get the rank of the processint world_rank;MPI_Comm_rank(MPI_COMM_WORLD,&world_rank); // Get the name of the processorcharprocessor_name[MPI_MAX_PROCESSOR_NAME];int name_len;MPI_Get_processor_name(processor_name,&name_len); // Print off a hello world message std::cout <<"Hello world from processor "<< processor_name <<", rank "<< world_rank <<" out of "<< world_size <<" processors"<< std::endl; // Finalize the MPI environment. No more MPI calls can be made after thisMPI_Finalize();}
add_executable(hello-mpi hello-mpi.c)
target_compile_options(hello-mpi
PUBLIC
${MPI_CXX_COMPILE_FLAGS}
)
target_include_directories(hello-mpi
PUBLIC
${MPI_CXX_INCLUDE_PATH}
)
target_link_libraries(hello-mpi
PUBLIC
${MPI_CXX_LIBRARIES}
)