zoukankan      html  css  js  c++  java
  • 并行计算中,借助参数myid把多个计算任务分配给numprocs个进程

    并行计算程序设计时,常面临把 一系列任务分配给 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)
  • 相关阅读:
    递归分治策略
    矩阵连乘问题
    棋盘覆盖问题
    选择排序
    Dijkstra的双栈算术表达式求值算法
    斐波那契数列
    二分算法
    Linux服务器上tengine的安装配置
    Excel Sheet Column Number
    Excel Sheet Column Title
  • 原文地址:https://www.cnblogs.com/cy163/p/760356.html
Copyright © 2011-2022 走看看