| 24小時(shí)熱門版塊排行榜 |
| 2 | 1/1 | 返回列表 |
| 查看: 990 | 回復(fù): 1 | |||
[求助]
OpenMP并行測(cè)試算例,是什么影響了C和FORTRAN的運(yùn)行效率? 已有1人參與
|
|
最近在看OpenMP并行編程,一開(kāi)始只是想學(xué)習(xí)一下C和FORTRAN的并行語(yǔ)法,于是做了一個(gè)測(cè)試:矩陣相乘C=A*B。其中A,B,C都是一個(gè)NxN的方陣。 我用C和FORTRAN分別編寫了程序,并加入了OpenMP的并行語(yǔ)法。測(cè)試平臺(tái)如下: OS:Ubuntu 14.04 x86_64 GCC 4.7.3 GFORTRAN 4.7.3 RAM:8GB CPU:Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz 一共4核心 程序計(jì)時(shí)測(cè)試: time omp.exe -d 1000 其中omp.exe是編譯好的程序,1000表示1000x1000方陣(矩陣大。 測(cè)試程序用小規(guī)模矩陣測(cè)試證明計(jì)算結(jié)果正確可靠。并行統(tǒng)一采用全部4核心并行,用top命令查看確認(rèn)滿負(fù)荷運(yùn)行。 測(cè)試結(jié)果: 如果編譯時(shí)不加入-fopenmp選項(xiàng),則并行語(yǔ)法不起作用,程序?yàn)槠胀ù谐绦颉4藭r(shí)測(cè)試結(jié)果為: C: real 0m9.047s user 0m9.034s sys 0m0.004s FORTRAN: real 0m10.022s user 0m10.012s sys 0m0.000s real 一項(xiàng)就是程序?qū)嶋H執(zhí)行時(shí)間?梢钥吹,雖然C略有優(yōu)勢(shì),但是總體差別不大。 接下來(lái),編譯時(shí)加入-fopenmp打開(kāi)并行算法,此時(shí)測(cè)試結(jié)果為: C: real 0m3.128s user 0m12.314s sys 0m0.012s FORTRAN: real 0m5.185s user 0m20.465s sys 0m0.016s C比FORTRAN快了好多,將近一倍的速度差。 之后,我為了進(jìn)一步確認(rèn),編寫了第三個(gè)程序。在這個(gè)程序中,我先用C計(jì)算A*B,然后用C調(diào)用FORTRAN的subroutine再算一遍,就是C和FORTRAN的混合編程。C和FORTRAN的計(jì)算部分用C的time函數(shù)分別計(jì)時(shí)(只能精確到秒)。編譯時(shí)開(kāi)啟并行算法。此時(shí)的測(cè)試結(jié)果意外變?yōu)椋?br /> C部分:3秒 FORTRAN部分:2秒 程序總運(yùn)行時(shí)間(time命令計(jì)時(shí)): real 0m5.486s user 0m21.644s sys 0m0.020s 這個(gè)結(jié)果表明,用C調(diào)用FORTRAN模塊的效率不僅比原生FORTRAN程序高,甚至高過(guò)了原生C程序? 上網(wǎng)查了一下,發(fā)現(xiàn)對(duì)比C和FORTRAN的討論很少,深度分析的更少。我很想知道這是為什么。是什么影響了這三個(gè)程序的執(zhí)行效率,我們?cè)诰帉懗绦虻臅r(shí)候這方面應(yīng)該注意些什么。 我將我的測(cè)試程序的源代碼打包附上。里面有三個(gè)目錄:c,fortran 和 hybrid,分別表示C程序,F(xiàn)ORTRAN程序和混合編程程序。歡迎大家測(cè)試。 |
source |

木蟲(chóng) (正式寫手)

| 2 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 328求調(diào)劑 +8 | 嗯滴的基本都 2026-03-27 | 8/400 |
|
|---|---|---|---|---|
|
[考研] 329求調(diào)劑 +8 | 星野? 2026-03-26 | 8/400 |
|
|
[考研] 296求調(diào)劑 +10 | 彼岸t 2026-03-29 | 10/500 |
|
|
[考研] 348求調(diào)劑 +6 | 小懶蟲(chóng)不懶了 2026-03-28 | 6/300 |
|
|
[考研] 一志愿211,335分,0856,求調(diào)劑院校和導(dǎo)師 +7 | 傾____蕭 2026-03-27 | 8/400 |
|
|
[考研] 一志愿北京工業(yè)大學(xué),324分求調(diào)劑 +6 | 零八# 2026-03-28 | 6/300 |
|
|
[考研] 070305高分子化學(xué)與物理 304分求調(diào)劑 +12 | c297914 2026-03-28 | 12/600 |
|
|
[考研] 求調(diào)劑 +6 | 蘆lty 2026-03-25 | 7/350 |
|
|
[考研] 085701環(huán)境工程,267求調(diào)劑 +16 | minht 2026-03-26 | 16/800 |
|
|
[考研] 315分求調(diào)劑 +7 | 26考研上岸版26 2026-03-26 | 7/350 |
|
|
[考研] 085600,材料與化工321分,求調(diào)劑 +9 | 大饞小子 2026-03-27 | 9/450 |
|
|
[考研] 08開(kāi)頭275求調(diào)劑 +4 | 拉誰(shuí)不重要 2026-03-26 | 4/200 |
|
|
[考研] 085600,材料與化工321分調(diào)劑 +4 | 大饞小子 2026-03-27 | 6/300 |
|
|
[考研] 305求調(diào)劑 +5 | 哇盧卡庫(kù) 2026-03-26 | 5/250 |
|
|
[論文投稿] Journal of Mechanical Science and Technology +3 | Russ_ss 2026-03-25 | 5/250 |
|
|
[考研] 0703化學(xué)一志愿南京師范大學(xué)303求調(diào)劑 +3 | zzffylgg 2026-03-24 | 3/150 |
|
|
[考研] 351求調(diào)劑 +4 | 麥克阿磊 2026-03-24 | 4/200 |
|
|
[考研] 調(diào)劑求收留 +7 | 果然有我 2026-03-26 | 7/350 |
|
|
[考研] 材料專碩 335 分求調(diào)劑 +4 | 拒絕冷暴力 2026-03-25 | 4/200 |
|
|
[考研]
|
黃粱一夢(mèng)千年 2026-03-24 | 3/150 |
|