c++ - 在 HPC 上部署 C++ (MPI) 时如何避免问题

标签 c++ mpi hpc

我是一名研究人员,我正在处理优化问题。

通过这种方式,我计划使用可以通过 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/

相关文章:

c++ - 无需重新创建匹配 map

C++ 生成器-Piece.cpp(20) : E2316 'Button1Click' is not a member of 'TForm'

c - MPI初始化错误

c - 程序何时受内存带宽限制?

r - Slurm 作业内存不足 [RAM?] 但未达到内存限制

c++ - 访问模板类对象的成员

c++ - ifstream 读取失败

c - 尝试使用 MPI_Recv 接收 vector

c - 在 MPI 中广播(共享)数组

hardware - nVidia Quadro 和 Geforce 卡的区别?