在消息传递程序中,将运行在一个核-内存对上的程序称为一个进程

消息传递的实现称为MPI,调用函数进行通信:一个进程调用发送函数,一个进程调用接受函数

MPI的本质是函数库,用于进行进程之间的通信,故并行运行的实现需要MPI+X,利用MPI辅助并行计算方法(pthread、openmp)来实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#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);

//Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);

//Print off a hello world message.
printf("Hello world from processor %s, rank %d"" out of %d processors\n",processor_name, world_rank, world_size);

//Finalize the MPI environment.
MPI_Finalize();
}

标准输出输入的本质是将值写道stdin中,还是访问文件,在并行中不可避免地会有竞争问题