You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pages/docs/admin-docs/docs-hpc.md
+15-10Lines changed: 15 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,9 +16,10 @@ We are in the process of developing Singularity Hub, which will allow for genera
16
16
17
17
- The <ahref="http://sherlock.stanford.edu"target="_blank"class="no-after">Sherlock cluster</a> at <ahref="https://srcc.stanford.edu/"class="no-after"target="_blank">Stanford University</a>
18
18
- <ahref="https://www.xsede.org/news/-/news/item/7624"target="_blank"class="no-after">SDSC Comet and Gordon</a> (XSEDE)
19
+
- <ahref="http://docs.massive.org.au/index.html"target="_blank"class="no-after">MASSIVE M1 M2 and M3</a> (Monash University and Australian National Merit Allocation Scheme)
19
20
20
21
### Integration with MPI
21
-
Another result of the Singularity architecture is the ability to properly integrate with the Message Passing Interface (MPI). Work has already been done for out of the box compatibility with Open MPI (both in Open MPI v2.x as well as part of Singularity). The Open MPI/Singularity workflow works as follows:
22
+
Another result of the Singularity architecture is the ability to properly integrate with the Message Passing Interface (MPI). Work has already been done for out of the box compatibility with Open MPI (both in Open MPI v2.1.x as well as part of Singularity). The Open MPI/Singularity workflow works as follows:
22
23
23
24
1. mpirun is called by the resource manager or the user directly from a shell
24
25
2. Open MPI then calls the process management daemon (ORTED)
@@ -27,7 +28,9 @@ Another result of the Singularity architecture is the ability to properly integr
27
28
5. Singularity then launches the MPI application within the container
28
29
6. The MPI application launches and loads the Open MPI libraries
29
30
7. The Open MPI libraries connect back to the ORTED process via the Process Management Interface (PMI)
30
-
8. At this point the processes within the container run as they would normally directly on the host at full bandwidth! This entire process happens behind the scenes, and from the user's perspective running via MPI is as simple as just calling mpirun on the host as they would normally.
31
+
8. At this point the processes within the container run as they would normally directly on the host.
32
+
33
+
This entire process happens behind the scenes, and from the user's perspective running via MPI is as simple as just calling mpirun on the host as they would normally.
31
34
32
35
Below are example snippets of building and installing OpenMPI into a container and then running an example MPI program through Singularity.
33
36
@@ -38,8 +41,14 @@ Below are example snippets of building and installing OpenMPI into a container a
38
41
39
42
#### MPI Development Example
40
43
41
-
**What are supported Open MPI Version(s)?**
42
-
To achieve proper container'ized Open MPI support, you must use Open MPI version 2.1. Open MPI version 2.1.0 includes a bug in its configure script affecting some interfaces (at least Mellanox cards operating in RoCE mode using libmxm). For this reason, we show the example first.
44
+
**What are supported Open MPI Version(s)?**
45
+
To achieve proper container'ized Open MPI support, you should use Open MPI version 2.1. There are however three caveats:
46
+
1. Open MPI 1.10.x *may* work but we expect you will need exactly matching version of PMI and Open MPI on both host and container (the 2.1 series should relax this requirement)
47
+
2. Open MPI 2.1.0 has a bug affecting compilation of libraries for some interfaces (particularly Mellanox interfaces using libmxm are known to fail). If your in this situation you should use
48
+
the master branch of Open MPI rather than the release.
49
+
3. Using Open MPI 2.1 does not magically allow your container to connect to networking fabric libraries in the host. If your cluster has, for example, an infiniband network you still need to install OFED libraries into the container. Alternatively you could bind mount both Open MPI and networking libraries into the container, but this could run afoul of glib compatibility issues (its generally OK if the container glibc is more recent than the host, but not the other way around)
50
+
51
+
#### Code Example using Open MPI 2.1.0 Stable
43
52
44
53
```bash
45
54
$ # Include the appropriate development tools into the container (notice we are calling
The following example (using their master) should work fine on most hardware but if you have an issue, try running this example below:
82
+
The previous example (using the Open MPI 2.1.0 stable release) should work fine on most hardware but if you have an issue, try running the example below (using the Open MPI Master branch):
78
83
79
84
```bash
80
85
$ # Include the appropriate development tools into the container (notice we are calling
0 commit comments