【问题标题】:How is memory allocated among parallel workers when using the SPMD setup in the MATLAB 2013b Parallel Toolbox在 MATLAB 2013b Parallel Toolbox 中使用 SPMD 设置时如何在并行工作者之间分配内存
【发布时间】:2014-03-23 07:34:10
【问题描述】:

我目前正在使用 MATLAB 2013b 中的 SPMD 函数并行运行一系列实验并遇到内存问题(here 是脚本的粗略轮廓)。

我可以设计一种方法来避免这些问题,但需要了解在使用此设置时如何在实验室(工作人员/核心)之间分配内存。

具体来说,我想知道:

  1. 有没有办法评估实验室工作区中存在的变量的内存使用情况?

  2. 每个实验室是否预先分配了固定数量的内存?如果有,多少钱?否则,假设每个实验室都被授予所需的内存是否正确(因此,如果我有 48 GB 的 RAM 和 8 个工作人员,则可能 1 个实验室用完 24 GB,其余实验室平均分配 24 GB)

  3. 根据上述情况,当实验室超出其分配的内存限制时会发生什么(假设它没有响应但内存已释放)。如果每个实验室都没有固定的内存限制,那么发送“后退”请求的实验室会发生什么情况(即在总内存为 48 GB 的系统上请求 49 GB 内存的实验室会发生什么情况? )。

【问题讨论】:

    标签: matlab memory parallel-processing shared-memory


    【解决方案1】:
    1. 由于工作空间透明度的限制,计算出 SPMD 块中存在的变量的大小并非易事 - 基本上,您不能调用 WHOS。更多in the doc
    2. 不,实验室只是大多数普通的 MATLAB 进程。它们没有任何预先分配的内存,并在您创建变量时获取必要的内存。
    3. 实验室可能会遇到正常的 MATLAB 内存不足错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多