《并行程序设计》实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《并行程序设计》

实验报告

2018/07/04

华南理工大学本科实验报告课程名称并行程序设计成绩评定

实验项目名称MPI+OpenMP实现PSRS排序实验。数据量大小1G个整型数。

1、实验目标

(1)利用visual studio配置MPI环境和mpi混合编译环境;

(2)MPI+OpenMP实现PSRS排序实验。数据量大小1G个整型数。

2、串行程序代码(串行程序已经放在网络教学平台,请把主要代码部分摘抄在下面)

void Odd_even_sort(

int a[] /* in/out */,

int n /* in */) {

int phase, i, temp;

for (phase = 0; phase < n; phase++)

if (phase % 2 == 0) { /* Even phase */

for (i = 1; i < n; i += 2)

if (a[i-1] > a[i]) {

temp = a[i];

a[i] = a[i-1];

a[i-1] = temp;

}

} else { /* Odd phase */

for (i = 1; i < n-1; i += 2)

if (a[i] > a[i+1]) {

temp = a[i];

a[i] = a[i+1];

a[i+1] = temp;

}

}

} /* Odd_even_sort */

3、并行程序关键代码

4、性能分析

表3 采用4进程时,使用不同线程数在1G数据集上的测试结果

图1 串行:

图2 1G数据1、2、4进程+1线程:

图3 1G数据1、2、4进程+2线程:

图4 1G数据1、2、4进程+4线程:

图5 1G数据1、2、4进程+8线程:

图6:不同进程分别在不同线程下排序所需要的时间

5、总结

本次实验的机器是4核CPU,每个核有8个逻辑处理器,因此分别进行了1、2、4进程搭配1、2、4、8线程的实验,从实验结果来看,只有在单进程的时候,将线程数增加到8才取得了更好的效果,而进程数的增加反而更慢了。特别的是在4进程的时候,算法的性能相比于2进程有很大的提升,但是仍然不如串行的性能好。

6、附件

Mpi_omp_int_vs.cpp

相关文档
最新文档