999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

并行算法性能簡析

2012-03-17 07:20:30何怡芝
電子設計工程 2012年11期
關鍵詞:進程程序效率

何怡芝

(1.西北大學 陜西 西安 710069;2.陜西職業技術學院 陜西 西安 710100)

近年來,在市場需求的推動下,并行計算已經大量的應用于各個領域,如核武器、石油勘探、數值天氣預報、地震數據處理、飛行器數值模擬和大型事務處理等,都需要每秒執行萬億次甚至百萬億次運算的計算機,然而基于這些應用問題本身存在的并行性和單機性能的限制,并行計算就成為滿足計算機計算速度的惟一可行途徑[2]。所謂并行計算[1],就是將一個任務分解成多個子任務,同時分配給幾個不同的處理器,各個處理器之間相互協同,并行地執行子任務,從而能夠加速求解問題的速度,或者擴大求解應用問題的規模。

1 求PI值的MPI并行計算程序

#include “mpi.h”/* 是預處理指令,用于包含 mpi的頭文件。

#include <stdio.h>

double f( double a ){return (4.0/ (1.0+a*a));} /*定義被積函數 f(x)。

intmain(int argc,char*argv[]) /*argc和 argv分別是命令行參數的個數和參數數組的指針。

{

intn,myid,numprocs,i,namelen;/*n : 計算區間分區數;myid:本進程的進程號;numprocs:進程組中進程數;i:進程中計算各個小區間的循環控制變量;namelen:處理器名長度。

double PI25DT=3.141592653589793238462643;/* 定義一個比較精確的25位π值作為標準值,以分析本程序計算結果的誤差。

doublemypi, pi, h, sum, x; /*mypi:進程中所有小區間面積的求和值;pi:最終的計算π值;h:小區間寬度;sum:進程中所有小區間高的和;x:每個小區間中點的x值。

double startwtime,endwtime; /*定義變量開始時間startwtime和結束時間endwtime。均為MPI_Wtime()的返回值。

char processor_name[MPI_MAX_PROCESSOR_NAME]; /*processor_name:處理器名存儲單元。

MPI_Init(&argc,&argv); /*argc 和 argv 分別是命令行參數的個數和參數數組的指針。

MPI_Comm_size(MPI_COMM_WORLD,&numprocs); /*用numprocs返回通信域MPI_COMM_WORLD中的進程數。

MPI_Comm_rank(MPI_COMM_WORLD,&myid); /* 用myid返回通信域MPI_COMM_WORLD中本進程的進程號。

MPI_Get_processor_name(processor_name,&namelen); /*該函數返回運行本進程的處理器名稱。

fprintf(stderr,“Process%on%s ”,myid, processor_name);

if(myid==0) {

n=10000;

startwtime=MPI_Wtime();

}/*是僅進程0執行的代碼,給n賦值10 000意味著將0-1的積分區間分成10 000小塊,對每一個小塊計算面積。同時,獲取計算機開始的時間。

MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);/*表示通信器MPI_COMM_WORLD中進程號為0的進程將自己n中的內容發送給通信器中所有其他進程。

If(n==0)

done=1;

else{

h=1.0/(double) n;

sum=0.0;

for(i=myid; i< n; i+=numprocs) {

x=h* ((double)i+0.5);

sum+=f(x);

}/*計算本進程所分配的各小塊的高度和。每一進程均從i=myid開始,每做一次計算往后跳numprocs塊。

mypi=h*sum;/*mypi=h*sum將每個進程所得的各小塊的高度和與小塊寬度相乘即得本進程所得的小塊面積和即PI的部分值。

MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM,0,MPI_COMM_WORLD);/*將各進程所得的PI的部分值進行歸約。

if(myid==0) {

printf (“pi is approximately%.16f, error is%.16f ”, pi,pi-PI25DT);

endwtime=MPI_Wtime();

printf(“wall clock time=%f ”, endwtime-startwtime);

}}/*0號進程執行的代碼,進程首先獲取時間,再用現在的時候減去初始獲取的時間即得到程序執行的時間并顯示。

MPI_Finalize();/*讓系統釋放分配給MPI的資源。

return 0;

}

所有的進程都是從前到后依次執行該程序。

2 并行計算的加速比和效率分析

加速比和效率[1]是衡量一個并行程序性能的最基本的評價參數。其計算的方式如下:在處理器資源獨享的前提下,假設某個串行應用程序在某臺并行機單處理器上的執行時間為Ts,而該程序并行化后,P個進程在P個處理器并行執行所需要的時間為Tp,該并行程序在該并行機上的加速比Sp可定義為:效率定義為

2.1 并行算法中的幾種假設

2.1.1 假設一

計算規模n=20 000,節點變化

1)節點為 1時

Process 0 on node9

pi is approximately 3.1415926537981260, Error is 0.0000000002083329

wall clock time=0.001900

2)節點為 2時

當測試兩個結點時:

Process 0 on node9

Process 1 on node8

pi is approximately 3.1415926537981315, Error is 0.0000000002083368

wall clock time=0.001545

3)節點為 3時

Process 0 on node9

Process 1 on node8

Process 2 on node6

pi is approximately 3.1415926537981351, Error is 0.0000000002083415

wall clock time=0.001238

2.1.2 假設二

結點個數固定為3,計算規模n不斷變化

1)當 n=30 000時

Process 0 on node9

Process 1 on node8

Process 2 on node6

圖1 計算規模n=20 000,節點變化時,加速比和效率的值Fig.1 Scale of calculate n=20 000, the node changes,speedup and efficiency

pi is approximately 3.1415926628490523, Error is 0.0000000092592591

wall clock time=0.000913

2)當 n=55 000 時

Process 0 on node9

Process 1 on node8

Process 2 on node6

pi is approximately 3.1415926536173409, Error is 0.0000000000275477

wall clock time=0.002289

3)當 n=222 000時

Process 0 on node9

Process 1 on node8

Process 2 on node6

pi is approximately 3.1415926535914891, Error is 0.0000000000016960

wall clock time=0.006891

圖2 結點個數固定為3,計算規模n不斷變化時,加速比和效率的值Fig.2 Number of nodes is 3, n changing, speedup and efficiency

2.2 加速比和效率分析結果

由以上的加速比和效率圖可知,問題規模較小n等于20 000時,進程執行的墻上時間和加速比隨著節點數的增加而增大,效率隨著節點數的增加而減少,原因是進程啟動、調用、切換等時間開銷所占的比例相對較大;而問題規模較大時,加速比和效率均隨著規模的增加而增加,進程啟動、調用、切換等時間開銷所占的比例相對較小,說明該程序適合進行并行計算,并行的優勢體現的更明顯。

3 結束語

本文通過對PI計算程序的研究,以及對并行計算加速比和效率兩個并行程序性能評價參數的分析,提出了應用并行計算程序是提高計算機計算速度的有效途徑的結論。該結論將對復雜的多個進程計算問題提供了有效地解決方案。

[1]張林波,遲學斌.并行計算導論[M].北京:清華大學出版社,2006.

[2]陳國良,安虹.并行算法實踐[M].北京:高等教育出版社,2004.

[3]于澤德.基于SIMD-MC2的并行FFT算法 [J].現代計算機:專業版,2008(10):57-58.

YU Ze-de.Based on the SIMD-MC2 parallel FFT algorithm[J].Modern Computer:Professional Edition,2008(10):57-58.

[4]陳文光.并行計算的普及與挑戰[N].中國電子報,2008.

[5]陳良育.并行符號算法若干問題的研究與應用[D].上海:華東師范大學,2008.

[6]文劍.并行計算平臺的建立及性能分析[D].廣州:廣東工業大學,2007.

猜你喜歡
進程程序效率
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
跟蹤導練(一)2
“錢”、“事”脫節效率低
中國衛生(2014年11期)2014-11-12 13:11:32
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
主站蜘蛛池模板: 国产成人综合久久| 中文字幕久久精品波多野结| 亚洲AV无码精品无码久久蜜桃| 精品欧美一区二区三区在线| 亚洲精品不卡午夜精品| 日韩精品无码免费一区二区三区| 88av在线看| 成人国产免费| 久久精品国产999大香线焦| 国产欧美高清| 欧美日韩免费观看| 黄色国产在线| 2020亚洲精品无码| 久久一本日韩精品中文字幕屁孩| 亚洲婷婷丁香| 国产成人综合在线视频| 久久96热在精品国产高清| 国产精品林美惠子在线播放| 一级爆乳无码av| 久久亚洲国产最新网站| 免费va国产在线观看| 久久精品人妻中文系列| 久久成人免费| 国产无码精品在线| 在线精品亚洲一区二区古装| 国产欧美精品一区二区| 在线网站18禁| 四虎亚洲国产成人久久精品| 久久精品人人做人人| 91成人在线免费观看| 国产精品99一区不卡| 免费人成视网站在线不卡| 亚洲人成影视在线观看| 国产色网站| 国产成在线观看免费视频| 亚洲69视频| 91久久国产热精品免费| 亚洲无码电影| 成人永久免费A∨一级在线播放| 免费一级全黄少妇性色生活片| 成年人福利视频| 亚洲欧美激情小说另类| 亚洲成人高清在线观看| 毛片卡一卡二| 久久一本日韩精品中文字幕屁孩| 在线看片中文字幕| 欧美在线免费| 色香蕉影院| av一区二区无码在线| 中文字幕在线日本| 久久综合色88| 亚洲欧洲日韩国产综合在线二区| 国产成人精品亚洲77美色| 国产男人的天堂| 成人一级免费视频| www.亚洲色图.com| 亚洲人成网址| 久久精品这里只有国产中文精品| 精品国产黑色丝袜高跟鞋| 亚洲日韩精品伊甸| 欧美高清视频一区二区三区| 天天摸天天操免费播放小视频| 思思99热精品在线| 精品国产美女福到在线不卡f| 91精品专区国产盗摄| 中文字幕欧美日韩高清| 91九色国产porny| 成人福利在线视频| 国产丰满成熟女性性满足视频| 911亚洲精品| 午夜在线不卡| 99视频在线免费观看| 国产精品妖精视频| h网站在线播放| 波多野结衣爽到高潮漏水大喷| 国产在线一二三区| 一区二区三区在线不卡免费| 超清无码一区二区三区| 亚洲无码一区在线观看| 久久国产精品电影| 91久久国产成人免费观看| 中文字幕av一区二区三区欲色|