如何更改代码以使其适用于分布式计算

How to change code so that it worked for distributed computing

我有以下问题。 我是一名物理学家。对于我目前的工作,我必须对一些问题进行数值研究。

我使用 monte carlo 方法计算了一些 7D 积分。我使用 OpenMP 进行并行计算,但我的程序在一台计算机上运行缓慢。上班的时候,IT部门的,说他可以做虚拟机,我可以用分布式计算来计算。

我使用 C++ 和 OpenMP(用于并行计算)。 我的问题如下:

我的程序可以在具有分布式计算的虚拟机上运行吗?我应该如何修改我的分布式计算代码(如果需要)?

我的并行计算代码很简单

omp_set_dynamic(0);
omp_set_num_threads(Npot);
#pragma omp parallel for shared(result, errors) private(i)`
for (i = 0; i < Npot; i++){
..... 
}

OpenMP 是将代码分布在一个处理器的内核上。如果你想使用多个处理器,比如你的个人电脑和虚拟机,你将不得不研究 MPI。 你如何将两者联系在一起,我不知道。但现在你有了一个起点。

您还可以使用 CUDA 运行 您的显卡上的代码。