枚举排序各种并行之MPI

本文介绍了如何使用MPI进行枚举排序的并行化实现,包括配置MPI环境的步骤引用及不同进程数下的性能测试。在测试中,通过比较1个进程与2个进程的执行效率,得到了约1.80的相对加速比。
摘要由CSDN通过智能技术生成

声明:运行MPI程序之前必须先将mpich配置好,可以参照

http://blog.csdn.net/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]>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值