Skip to content

JiangLu-CS/High-Performance-Computing-Experiments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

High-Performance-Computing-Experiments

Experimental and Comparative Performance Measurements of High Performance Computing Based on OpenMP and MPI

实验结果

本次实验记录了串行和并行的函数在数组大小分别为:10,50,100,500,1000,5000,10000,50000,100000,1000000时的运行时间。 结果如下(线程数为2,时间单位为ms): image image

测试在线程数下的计算时间,并得出不同的结果。

此处测试了线程数分别为1(串行),2,3,4,8的计算时间。 其中线程数为1和2的函数已经在上面给出。增加线程数,区别体现在quiksort函数中,将数组分割为更多子数组,并让不同的线程去处理子数组的排序。

测试结果(单位为毫秒,数组元素数为1,000,000): imageimage

(3)对实验结果进行详细分析,将实验结果画成图表。 本次实验利用pyecharts画出了串行与并行程序在不同大小的数组上分别运行的时间。 和在数组大小为10000时,线程数分别为1,2,4,8时程序运行的时间。

实验数据:

串行与并行的openMP实验结果如下图所示。 可以看出,随着数组元素的增加,无论是并行还是串行程序,运行的时间都会增加,尤其当数组元素数量非常多甚至达到百万级时,显然串行程序的运行时间已经超过了一秒,但是并行程序仅用了0.2s,可以看到,当数组元素达到一定的数量级时,并行算法的优势是极大的。 image 不同线程运行时间结果如下图所示,由此可见,在选用合适线程数的情况下,线程越多,快速排序使用的时间越少。按概念来说,线程数越多,运行的时间应该更少,但是由于自身硬件的束缚,在线程增多到一定的数量时,若线程切换的过于频繁,也会影响程序的运行时间。所以说在运行多线程程序的时候还要考虑自己的cpu核心,来安排合适的线程数。 image image image

About

Experimental and Comparative Performance Measurements of High Performance Computing Based on OpenMP and MPI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages