我正在阅读Julia的并行计算文档,由于我从未进行过任何并行编程,所以我希望有一个更温和的介绍。因此,我想到了一个(可能)简单的问题,即我无法弄清楚如何在并行Julia范例中编写代码。
假设我有一个矩阵/数据框“df”,它的N行是变量,M列是样本。我有一个方法“pwCorr(..)”,用于计算行之间的成对相关性。如果我想要一个NxN的所有成对相关性矩阵,我可能会运行一个for循环,该循环会迭代N*N/2次(矩阵的上三角或下三角),并填写值;但是,由于每个“pwCorr()”调用都与其他调用无关,因此这似乎是可以并行化的完美事情。(我的这种思考方式是正确的吗?什么可以并行化,什么不能?)
为了实现这一点,我觉得我必须创建一个由“@parallel”for循环填充的“DArray”。如果是这样,我不确定如何在Julia中实现这一点。如果这不是正确的方法,我想我甚至不知道从哪里开始。
假设我有一个矩阵/数据框“df”,它的N行是变量,M列是样本。我有一个方法“pwCorr(..)”,用于计算行之间的成对相关性。如果我想要一个NxN的所有成对相关性矩阵,我可能会运行一个for循环,该循环会迭代N*N/2次(矩阵的上三角或下三角),并填写值;但是,由于每个“pwCorr()”调用都与其他调用无关,因此这似乎是可以并行化的完美事情。(我的这种思考方式是正确的吗?什么可以并行化,什么不能?)
为了实现这一点,我觉得我必须创建一个由“@parallel”for循环填充的“DArray”。如果是这样,我不确定如何在Julia中实现这一点。如果这不是正确的方法,我想我甚至不知道从哪里开始。