将MPI与docker容器一起使用

前端之家收集整理的这篇文章主要介绍了将MPI与docker容器一起使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经基于Ubuntu 16.04创建了一个docker镜像,并且具有运行MPI所需的所有依赖项.

它在Docker-hub上公开:https://hub.docker.com/r/orwel84/ubuntu-16-mpi/

我用这个图像来创建一个MPI容器.我还可以编译一个简单的mpi-hello-world.c(它位于容器内)并用mpirun运行它.

这些是我使用的步骤,(如果你安装了Docker,你也可以重现它们):

> docker run -it orwel84 / ubuntu-16-mpi bash
>(在容器的外壳上)
mpirun -np 4 –allow-run-as-root ./mpi_hello_world

你会看到输出

Hello world from processor 6f9b11cef939,rank 0 out of 4 processors

Hello world from processor 6f9b11cef939,rank 1 out of 4 processors

Hello world from processor 6f9b11cef939,rank 2 out of 4 processors

Hello world from processor 6f9b11cef939,rank 3 out of 4 processors

题:

现在所有上述四个mpi进程都在一个容器内运行.

如何在单个主机上使用mpirun在多个容器上运行?还有我如何使用Docker swarm在swarm的多个节点上运行?

请帮忙.谢谢.

最佳答案
对于一台机器中的多个容器:

1.您可以在一台主机上创建多个容器并检查其IP地址(在docker bridge网络下).

docker inspect -f "{{ .NetworkSettings.IPAddress }}" containerName

2.现在连接到其中一个容器并创建一个主机文件,列出您创建的容器的ip-addresses.

3.现在运行应用程序:

mpirun -np 4 -hostfile hostfile_you_created ./mpi_hello_world

猜你在找的Docker相关文章