本博客已迁往http://coredumper.cn
下面的MPI程序test.c完成了如下任务:
Rank 0生成了30000个随机浮点数并发送给Rank 1,Rank 1接收来自Rank 0发来的随机数。另外,Rank 0对整个程序进行了计时。
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define FIRST_RANK 0
#define SECOND_RANK 1
#define SIZE 30000
#define TAG 100
/* Check the return value of MPI API */
#define CHECK_MPI(err) do{\
if((err) != MPI_SUCCESS){\
fprintf(stderr, "MPI error %d at file %s line %d.\n", (err), __FILE__, __LINE__);\
exit(EXIT_FAILURE);\
}}while(0)
void firstRankTask(void)
{
float *first;
first = (float *)malloc(sizeof(float) * SIZE);
if(first == NULL){
fprintf(stderr, "Memory is not enough