声明:运行MPI程序之前必须先将mpich配置好,可以参照
http://blog.youkuaiyun.com/he_xiang_/article/details/40189257
#include "stdafx.h"
#include "mpi.h" //mpi.h一定好放到stafx.h后面
#include <Windows.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
/*
* 函数名: GetRank
* 功能: 计算所属部分数据的秩(比该元素小的数的个数)
* 输入: HX_data:指向待排序序列的指针
* HX_DataSize为待排序序列的长度
MyLength为该处理器要排序的序列的长度
rank:指向秩数组的指针
SumID:总处理器个数
MyID:处理器ID
* 输出:返回1代表程序正常结束
*/
int GetRank(int *data,int DataSize,int MyLength,int *rank,int SumID,int MyID)
{
int i, j;
int start, end;
start=DataSize/SumID*MyID; /*所属部分数据起始位置*/
end=start+MyLength; /*所属部分数据结束位置*/
for(j=start;j<end;j++){ /*计算所属部分数据的rank*/
rank[j-start]=0;
for(i=0;i<DataSize;i++){
if((data[j]>