并行計算程序設計時,常面臨把 一系列任務分配給 n個節點的問題。比如,在經典的計算pi值的程序中
?
for
?(i?
=
?myid?
+
?
1
;?i?
<=
?n;?i?
+=
?numprocs)
????
{
????x?
=
?h?
*
?((
double
)i?
-
?
0.5
);
????sum?
+=
?f(x);
????}
myid出現在循環設計中,它的出現使得,各個進程(節點)對循環作不同的解釋,比如 numprocs=3, n =15
( 1 )node-1/proc-1對循環的解釋是
for(i= 1 ;? i<15; i +=3)
{
.....
}
它將產生如下序列:1,4,7,10,13
( 2 )node-2/proc-2對循環的解釋是
for(i= 2 ;? i<15; i +=3)
{
.....
}
它將產生如下序列:2,5,8,11,14
( 3 )node-1/proc-1對循環的解釋是
for(i=3;? i<15; i +=3)
{
.....
}
它將產生如下序列:3,6,9,12,15
要把一個目錄下的 文件分給 numprocs 個去處理,可使用下面的循環
for(i = myid; i<FileNum; i += numprocs)






myid出現在循環設計中,它的出現使得,各個進程(節點)對循環作不同的解釋,比如 numprocs=3, n =15
( 1 )node-1/proc-1對循環的解釋是
for(i= 1 ;? i<15; i +=3)
{
.....
}
它將產生如下序列:1,4,7,10,13
( 2 )node-2/proc-2對循環的解釋是
for(i= 2 ;? i<15; i +=3)
{
.....
}
它將產生如下序列:2,5,8,11,14
( 3 )node-1/proc-1對循環的解釋是
for(i=3;? i<15; i +=3)
{
.....
}
它將產生如下序列:3,6,9,12,15
要把一個目錄下的 文件分給 numprocs 個去處理,可使用下面的循環
for(i = myid; i<FileNum; i += numprocs)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
