当使用MATLAB 2013b并行工具箱中的SPMD设置时,如何在并行工作程序之间分配内存



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

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

具体来说,我想知道:

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

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

  3. 基于以上内容,当实验室超过其分配的内存限制时会发生什么(假设它没有响应,但内存已释放)。如果每个实验室没有固定的内存限制,那么发送"反向中断"请求的实验室会发生什么(即,在总内存为48 GB的系统上要求49 GB内存的实验室会出现什么)。

  1. 由于工作区透明度约束,计算SPMD块中存在的变量有多大并非易事——基本上,您不能调用WHOS。文档中有更多内容
  2. 不,实验室基本上都是正常的MATLAB过程。它们没有任何预先分配的内存,并且在创建变量时获得必要的内存
  3. 实验室可以达到正常的MATLAB内存不足错误

最新更新