我有以下问题。 我是一名物理学家。对于我目前的工作,我必须对一些问题进行数值研究。
我使用蒙特卡罗方法计算一些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++){
.....
}
答案 0 :(得分:1)
OpenMP是通过一个处理器的核心分发代码。如果您想使用多个处理器,例如您的电脑和VM,您将需要查看MPI。 如何将两者连接在一起,我不知道。但现在你有了一个起点。
您也可以使用CUDA在显卡上运行代码。