Main Content

本页采用了机器翻译。点击此处可查看英文原文。

codistributor2dbc.defaultWorkerGrid

二维块循环分布式数组的默认计算网格

    说明

    示例

    grid = codistributor2dbc.defaultWorkerGrid 返回一个向量,定义 nrow-by-ncol 工作进程的计算网格,使得乘积是当前 spmd 代码块或通信作业中运行的工作进程数量。要获取当前 spmd 代码块中运行的工作进程数量,请使用 spmdSize 函数。codistributor2dbc.defaultWorkerGrid 定义的网格尽可能接近正方形。以下规则定义网格的 nrowncol

    • 如果当前 spmd 代码块中运行的工作进程数量是完全平方数,则 nrow = ncol = sqrt(spmdSize)

    • 如果当前 spmd 代码块中运行的工作进程数量是 2 的奇数次方,那么 nrow = ncol/2 = sqrt(spmdSize/2)

    • nrow <= ncol.

    • 如果当前 spmd 代码块中运行的工作进程数量是素数,则 nrow = 1ncol = spmdSize

    • nrow 是小于或等于 sqrt(spmdSize) 的最大整数,其中 ncol = spmdSize/nrow 也是一个整数。

    示例

    全部折叠

    使用 codistributor2dbc.defaultWorkerGrid 获取 spmd 代码块中二维块循环分布数组的默认计算网格布局。

    创建一个有四个工作进程的并行池。

    parpool(4);

    当您在创建并行池后执行 spmd 代码块时,默认情况下,池中所有可用的工作进程都会运行 spmd 代码块内的代码。

    查看当前 spmd 代码块的默认分布方案的计算网格布局。

    spmd
        grid = codistributor2dbc.defaultWorkerGrid
    end
    Worker 3: 
      
      grid =
      
           2     2
      
    Worker 4: 
      
      grid =
      
           2     2
      
    Worker 1: 
      
      grid =
      
           2     2
      
    Worker 2: 
      
      grid =
      
           2     2
      

    输出参量

    全部折叠

    spmd 代码块中二维块循环分布式数组的默认计算网格,以 nrow-by-ncol 工作进程向量的形式返回。nrow*nrow 的乘积是运行当前 spmd 代码块或通信作业的工作进程数量。

    版本历史记录

    在 R2009b 中推出

    全部展开