【发布时间】:2017-03-05 11:18:00
【问题描述】:
我有以下问题。 我是物理学家。对于我目前的工作,我必须对一些问题进行数值调查。
我使用蒙特卡罗方法计算了一些 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++){
.....
}
【问题讨论】:
-
可能是使用高端显卡的CUDA?
-
我对编程一点也不熟悉。如果我理解正确,如果操作简单,图形卡计算是好的。但在我的例子中,被积函数包含平方二维积分,包含特殊函数(如具有复杂参数的超几何函数)。
-
“我有一个问题。我是物理学家。” - 喜欢它:-)
-
虚拟机不太可能使算法运行得更快,因为最终您仍然只有相同数量的硬件。
-
这取决于虚拟机中包含的真实核心的数量。