在并行的“ foreach”循环中更新单个公共变量

时间:2019-02-10 04:23:51

标签: r

我需要对神经成像数据进行置换分析,如果我们将每个置换解决方案存储在内存中,通常对内存的要求很高。为了避免出现此问题,我们跟踪排列结果超出参考值多少次,因此,我们所需要的只是一个超过计数的向量。这在for循环中可以正常工作,但是我无法弄清楚如何使用foreach并行化任务。我的问题是我找不到单个foreach工作人员更新单个公共变量(或对象)的方法。在线上的所有建议都是创建一个包含foreach循环所有输出的数据表,但这对于大数据分析而言效率不高。我可以尝试让所有foreach工作人员都写入一个通用文件,但是这将是另一个问题,如何处理这样的文件以获取按列的计数(这不是一个很好的解决方案)。但是,从概念上讲,该解决方案应该很容易:每个foreach工作人员都应读取并修改,从而引用保存在内存中的单个公共向量。

我使用ANTsR包进行分析,该包将图像存储为S4对象(指向内存的指针),以避免在将参数传递给函数等时重复信息。由于S4对象是指向内存的指针,尽管我可以制作{ {1}}更新了单个S4对象,但是当传递给foreach工人时,似乎S4指针没有正确引用。

有人解决吗?

foreach

0 个答案:

没有答案