我是一名研究人员,我正在处理优化问题。
通过这种方式,我计划使用可以通过 SSH 访问的 HPC(C++ 和 MPI)。我已经检查了他们的模块,它有一些像 Intel 一样的编译器。
所以我的问题是,我怎样才能开始以一种更容易在 HPC 上运行并最大限度地减少 future 可能出现的问题的方式来编程和开发所有内容?
我是否必须使用他们提供的相同编译器来开发我的程序?会有帮助吗?或者只为 Linux 编译就可以了?这类问题...
最佳答案
一般来说,你应该在目标机器上编译这些东西。简单地在那里 ssh 并尝试编译和运行简单的 MPI 应用程序
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
MPI_Init(NULL, NULL);
int rank;
int world;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &world);
printf("Hello: rank %d, world: %d\n",rank, world);
MPI_Finalize();
}
尝试编译运行
mpicc -o hello ./hello.c
mpirun -np 2 ./hello
然后,您应该熟悉那里的提交系统。它用于提交您的作业。有不同的解决方案,最好的方法是询问支持人员如何准备职位描述以及如何提交。
然后,您所要做的就是适本地组织您的代码并开发应用程序。我建议熟悉这个:
Ian Foster,设计和构建并行程序,http://www.mcs.anl.gov/~itf/dbpp/
关于c++ - 在 HPC 上部署 C++ (MPI) 时如何避免问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44695000/