在 HPC 上部署 C++ (MPI) 时如何避免问题
How to avoid problems when deploying C++ (MPI) at an HPC
我是一名研究员,我正在处理优化问题。
通过这种方式,我打算使用可以通过 SSH 访问的 HPC(C++ 和 MPI)。我已经检查了他们的模块,它有一些像英特尔这样的编译器。
所以我的问题是,我如何开始以一种更容易 运行 在 HPC 上最大限度地减少未来可能出现的问题的方式来编程和开发所有内容?
我是否必须使用他们提供的相同编译器来开发我的程序?会有帮助吗?或者只为 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/
我是一名研究员,我正在处理优化问题。
通过这种方式,我打算使用可以通过 SSH 访问的 HPC(C++ 和 MPI)。我已经检查了他们的模块,它有一些像英特尔这样的编译器。
所以我的问题是,我如何开始以一种更容易 运行 在 HPC 上最大限度地减少未来可能出现的问题的方式来编程和开发所有内容?
我是否必须使用他们提供的相同编译器来开发我的程序?会有帮助吗?或者只为 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/