File: ssh.html

package info (click to toggle)
openmpi 5.0.8-6.1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 201,692 kB
  • sloc: ansic: 613,078; makefile: 42,350; sh: 11,194; javascript: 9,244; f90: 7,052; java: 6,404; perl: 5,179; python: 1,859; lex: 740; fortran: 61; cpp: 20; tcl: 12
file content (393 lines) | stat: -rw-r--r-- 27,327 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
<!DOCTYPE html>
<html class="writer-html5" lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>10.6. Launching with SSH &mdash; Open MPI 5.0.8 documentation</title>
      <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
      <link rel="stylesheet" type="text/css" href="../_static/css/theme.css" />

  
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
        <script src="../_static/doctools.js"></script>
        <script src="../_static/sphinx_highlight.js"></script>
    <script src="../_static/js/theme.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="10.7. Launching with Slurm" href="slurm.html" />
    <link rel="prev" title="10.5. Launching only on the local node" href="localhost.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="../index.html" class="icon icon-home">
            Open MPI
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../quickstart.html">1. Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting-help.html">2. Getting help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release-notes/index.html">3. Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installing-open-mpi/index.html">4. Building and installing Open MPI</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features/index.html">5. Open MPI-specific features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../validate.html">6. Validating your installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../version-numbering.html">7. Version numbers and compatibility</a></li>
<li class="toctree-l1"><a class="reference internal" href="../mca.html">8. The Modular Component Architecture (MCA)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../building-apps/index.html">9. Building MPI applications</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">10. Launching MPI applications</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="quickstart.html">10.1. Quick start: Launching MPI applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="prerequisites.html">10.2. Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="pmix-and-prrte.html">10.3. The role of PMIx and PRRTE</a></li>
<li class="toctree-l2"><a class="reference internal" href="scheduling.html">10.4. Scheduling processes across hosts</a></li>
<li class="toctree-l2"><a class="reference internal" href="localhost.html">10.5. Launching only on the local node</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">10.6. Launching with SSH</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#specifying-the-hosts-for-an-mpi-job">10.6.1. Specifying the hosts for an MPI job</a></li>
<li class="toctree-l3"><a class="reference internal" href="#non-interactive-ssh-logins">10.6.2. Non-interactive <code class="docutils literal notranslate"><span class="pre">ssh</span></code> logins</a></li>
<li class="toctree-l3"><a class="reference internal" href="#finding-open-mpi-executables-and-libraries">10.6.3. Finding Open MPI executables and libraries</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#use-prefix-behavior">10.6.3.1. Use “prefix” behavior</a></li>
<li class="toctree-l4"><a class="reference internal" href="#set-the-path-and-ld-library-path-in-your-shell-startup-files">10.6.3.2. Set the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> and <code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> in your shell startup files</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="slurm.html">10.7. Launching with Slurm</a></li>
<li class="toctree-l2"><a class="reference internal" href="lsf.html">10.8. Launching with LSF</a></li>
<li class="toctree-l2"><a class="reference internal" href="tm.html">10.9. Launching with PBS / Torque</a></li>
<li class="toctree-l2"><a class="reference internal" href="gridengine.html">10.10. Launching with Grid Engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="unusual.html">10.11. Unusual jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">10.12. Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../tuning-apps/index.html">11. Run-time operation and tuning MPI applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../app-debug/index.html">12. Debugging Open MPI Parallel Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../developers/index.html">13. Developer’s guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">14. Contributing to Open MPI</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license/index.html">15. License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../history.html">16. History of Open MPI</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man-openmpi/index.html">17. Open MPI manual pages</a></li>
<li class="toctree-l1"><a class="reference internal" href="../man-openshmem/index.html">18. OpenSHMEM manual pages</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">Open MPI</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
          <li class="breadcrumb-item"><a href="index.html"><span class="section-number">10. </span>Launching MPI applications</a></li>
      <li class="breadcrumb-item active"><span class="section-number">10.6. </span>Launching with SSH</li>
      <li class="wy-breadcrumbs-aside">
            <a href="../_sources/launching-apps/ssh.rst.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <style>
.wy-table-responsive table td,.wy-table-responsive table th{white-space:normal}
</style><div class="section" id="launching-with-ssh">
<h1><span class="section-number">10.6. </span>Launching with SSH<a class="headerlink" href="#launching-with-ssh" title="Permalink to this heading"></a></h1>
<p>When launching Open MPI jobs in a non-scheduled environment, <code class="docutils literal notranslate"><span class="pre">ssh</span></code>
is typically used to launch commands on remote nodes.  As listed in
the <a class="reference internal" href="quickstart.html"><span class="doc">quick start section</span></a>,
successfully launching MPI applications with <code class="docutils literal notranslate"><span class="pre">ssh</span></code> requires the
following:</p>
<ol class="arabic simple">
<li><p>You must be able to non-interactively login — without
entering a password or passphrase — to all remote nodes from
all remotes nodes.</p></li>
<li><p>Open MPI’s executables must be findable (e.g., in your <code class="docutils literal notranslate"><span class="pre">PATH</span></code>).</p></li>
<li><p>Open MPI’s libraries must be findable (e.g., in your
<code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code>).</p></li>
</ol>
<div class="section" id="specifying-the-hosts-for-an-mpi-job">
<h2><span class="section-number">10.6.1. </span>Specifying the hosts for an MPI job<a class="headerlink" href="#specifying-the-hosts-for-an-mpi-job" title="Permalink to this heading"></a></h2>
<p>There are three mechanisms for specifying the hosts that an MPI job will run on:</p>
<ol class="arabic">
<li><p>The <code class="docutils literal notranslate"><span class="pre">--hostfile</span></code> option to <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a>.</p>
<p>Use this option to specify a list of hosts on which to run.  Note
that for compatibility with other MPI implementations,
<code class="docutils literal notranslate"><span class="pre">--machinefile</span></code> is a synonym for <code class="docutils literal notranslate"><span class="pre">--hostfile</span></code>.
See <a class="reference internal" href="scheduling.html#running-scheduling-hostfile-option-label"><span class="std std-ref">this section</span></a> for more
information about the <code class="docutils literal notranslate"><span class="pre">--hostfile</span></code> option.</p>
</li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">--host</span></code> option to <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a>.</p>
<p>This option can be used to specify a list of hosts on which to run
on the command line.
See <a class="reference internal" href="scheduling.html#running-scheduling-host-option-label"><span class="std std-ref">this section</span></a> for more
information about the <code class="docutils literal notranslate"><span class="pre">--host</span></code> option.</p>
</li>
<li><p>Running in a scheduled environment.</p>
<p>If you are running in a scheduled environment (e.g., in a Slurm,
Torque, or LSF job), Open MPI will automatically get the lists of
hosts from the scheduler.  See the next subsections for details about
launching MPI jobs in supported scheduled environements.</p>
</li>
</ol>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>The specification of hosts using any of the above
methods has nothing to do with the network interfaces
that are used for MPI traffic.  The list of hosts is
<em>only</em> used for specifying which hosts on which to
launch MPI processes.</p>
</div>
</div>
<div class="section" id="non-interactive-ssh-logins">
<h2><span class="section-number">10.6.2. </span>Non-interactive <code class="docutils literal notranslate"><span class="pre">ssh</span></code> logins<a class="headerlink" href="#non-interactive-ssh-logins" title="Permalink to this heading"></a></h2>
<p>SSH keys must be setup such that the following can be executed without
being prompted for password or passphrase:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span>ssh<span class="w"> </span>othernode<span class="w"> </span><span class="nb">echo</span><span class="w"> </span>hello
hello
shell$
</pre></div>
</div>
<p>Consult instructions and tutorials from around the internet to learn
how to setup SSH keys.  Try Google search terms like “passwordless
SSH” or “SSH key authentication”.</p>
<p>For simplicity, it may be desirable to configure your SSH keys
without passphrases.  This adds some risk, however (e.g., if your SSH
keys are compromised).  But it simplifies your SSH setup because you
will not need to use <code class="docutils literal notranslate"><span class="pre">ssh-agent</span></code>.  Evaluate the risk level you are
comfortable with.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Open MPI uses a tree-based pattern to launch processes
on remote nodes.  This means that Open MPI must be able to
non-interactively login — without being prompted for password
or passphrase — <em>to any node</em> in the host list <em>from any
node</em> in the host list.</p>
<p>It may <em>not</em> be sufficient to only setup an SSH key from the node
where you are invoking <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a> to all other
nodes.</p>
</div>
<p>If you have a shared <code class="docutils literal notranslate"><span class="pre">$HOME</span></code> filesystem between your nodes, you can
setup a single SSH key that is used to login to all nodes.</p>
</div>
<div class="section" id="finding-open-mpi-executables-and-libraries">
<h2><span class="section-number">10.6.3. </span>Finding Open MPI executables and libraries<a class="headerlink" href="#finding-open-mpi-executables-and-libraries" title="Permalink to this heading"></a></h2>
<p>Once Open MPI is able to use <code class="docutils literal notranslate"><span class="pre">ssh</span></code> to invoke executables on a remote
node, it must be able to find its helper executables and shared
libraries on that remote node.</p>
<p>If Open MPI is installed in a system-level folder (e.g., in
<code class="docutils literal notranslate"><span class="pre">/usr/bin</span></code>), Open MPI will likely be able to find its executables
and libraries on the remote node with no additional assistance.</p>
<p>If, however, Open MPI is installed into a path that is not searched by
default, you will need to provide assistance so that Open MPI can find
its executables and libraries.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>For simplicity, it is <em>strongly</em> recommended that you
install Open MPI in the same location on all nodes in your job.
See the <a class="reference internal" href="../installing-open-mpi/installation-location.html"><span class="doc">Installation location section</span></a> for more details.</p>
</div>
<p>You can do this in one of two ways.</p>
<div class="section" id="use-prefix-behavior">
<h3><span class="section-number">10.6.3.1. </span>Use “prefix” behavior<a class="headerlink" href="#use-prefix-behavior" title="Permalink to this heading"></a></h3>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>“Prefix” behavior is only available with <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a>; it is not available via resource manager direct
launch mechanisms.  However, this section is about using <code class="docutils literal notranslate"><span class="pre">ssh</span></code> to
launch MPI jobs, which means that there is no resource manager, and
therefore there is no direct launch mechanism available.</p>
</div>
<p>When “prefix” behavior is enabled, Open MPI will automatically set the
<code class="docutils literal notranslate"><span class="pre">$PATH</span></code> and <code class="docutils literal notranslate"><span class="pre">$LD_LIBRARY_PATH</span></code> on remote nodes before executing
remote commands.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Open MPI assumes that the installation <code class="docutils literal notranslate"><span class="pre">prefix</span></code>,
<code class="docutils literal notranslate"><span class="pre">bindir</span></code>, and <code class="docutils literal notranslate"><span class="pre">libdir</span></code> are the same on the remote node as they
are on the local node.  If they are not, <em>then you should not use
the “prefix” behavior.</em></p>
</div>
<p>You can enable “prefix” behavior in one of three ways:</p>
<ol class="arabic">
<li><p>Use an absolute path name to invoke <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a>.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span><span class="nv">$HOME</span>/my-openmpi/bin/mpirun<span class="w"> </span>--hostfile<span class="w"> </span>my-hostfile.txt<span class="w"> </span>mpi-hello-world
</pre></div>
</div>
<p>Simply using the absolute path name to <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a> tells Open MPI to enable “prefix” mode.</p>
</li>
<li><p>Use the <code class="docutils literal notranslate"><span class="pre">--prefix</span></code> option to <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a>.</p></li>
</ol>
<blockquote>
<div><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="w">  </span>shell$<span class="w"> </span><span class="nv">$HOME</span>/my-openmpi/bin/mpirun<span class="w"> </span>--hostfile<span class="w"> </span>my-hostfile.txt<span class="w"> </span><span class="se">\</span>
<span class="w">      </span>--prefix<span class="w"> </span><span class="nv">$HOME</span>/my-openmpi<span class="w"> </span><span class="se">\</span>
<span class="w">      </span>mpi-hello-world

The<span class="w"> </span><span class="sb">``</span>-prefix<span class="sb">``</span><span class="w"> </span>option<span class="w"> </span>takes<span class="w"> </span>a<span class="w"> </span>single<span class="w"> </span>argument:<span class="w"> </span>the<span class="w"> </span>prefix<span class="w"> </span>path<span class="w"> </span>to
use<span class="w"> </span><span class="k">for</span><span class="w"> </span>the<span class="w"> </span>bindir<span class="w"> </span>and<span class="w"> </span>libdir<span class="w"> </span>on<span class="w"> </span>the<span class="w"> </span>remote<span class="w"> </span>node.
</pre></div>
</div>
</div></blockquote>
<ol class="arabic">
<li><p>Configure Open MPI with <code class="docutils literal notranslate"><span class="pre">--enable-mpirun-prefix-by-default</span></code>.</p>
<p>If Open MPI is built this way, <a class="reference internal" href="../man-openmpi/man1/mpirun.1.html#man1-mpirun"><span class="std std-ref">mpirun(1)</span></a> will
always enable “prefix” behavior.</p>
</li>
</ol>
</div>
<div class="section" id="set-the-path-and-ld-library-path-in-your-shell-startup-files">
<h3><span class="section-number">10.6.3.2. </span>Set the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> and <code class="docutils literal notranslate"><span class="pre">LD_LIBRARY_PATH</span></code> in your shell startup files<a class="headerlink" href="#set-the-path-and-ld-library-path-in-your-shell-startup-files" title="Permalink to this heading"></a></h3>
<p>Consider the case where Open MPI was configured with:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>shell$<span class="w"> </span>./configure<span class="w"> </span>--prefix<span class="o">=</span><span class="nv">$HOME</span>/my-openmpi<span class="w"> </span>...
</pre></div>
</div>
<p>In this cause, Open MPI will be installed into <code class="docutils literal notranslate"><span class="pre">$HOME/my-openmpi</span></code>.
This path is almost certainly not in any system-default search paths,
so it must be added to the <code class="docutils literal notranslate"><span class="pre">$PATH</span></code> and <code class="docutils literal notranslate"><span class="pre">$LD_LIBRARY_PATH</span></code>
environment variables.</p>
<p>Specifically: the goal is that the following non-interactive commands
must be able to execute without error:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># First, ensure that this command returns the correct ompi_info</span>
<span class="c1"># instance (i.e., $HOME/my-openmpi/bin/ompi_info).</span>
shell$<span class="w"> </span>ssh<span class="w"> </span>remotenode<span class="w"> </span>which<span class="w"> </span>ompi_info
/home/myusername/my-openmpi/bin/ompi_info

<span class="c1"># Next, ensure that you can run that ompi_info command without</span>
<span class="c1"># error</span>
shell$<span class="w"> </span>ssh<span class="w"> </span>remotenode<span class="w"> </span>ompi_info

<span class="c1"># ... lots of output ...</span>
</pre></div>
</div>
<p>Ensure that you do not see any errors about libraries that cannot be
found.</p>
<p>All shells have some kind of script file that is executed at login
time perform environmental setup tasks.  This startup file is the one
that needs to be edited to:</p>
<ol class="arabic simple">
<li><p>Add Open MPI’s executable path (which is likely <code class="docutils literal notranslate"><span class="pre">$prefix/bin</span></code>, or
<code class="docutils literal notranslate"><span class="pre">$HOME/my-openmpi/bin</span></code> in this example) to the <code class="docutils literal notranslate"><span class="pre">$PATH</span></code>
environment variable.</p></li>
<li><p>Add Open MPI’s library path (which is likely <code class="docutils literal notranslate"><span class="pre">$prefix/lib</span></code>, or
<code class="docutils literal notranslate"><span class="pre">$HOME/my-openmpi/lib</span></code> in this example) to the
<code class="docutils literal notranslate"><span class="pre">$LD_LIBRARY_PATH</span></code> environment variable.</p></li>
</ol>
<p>You probably want to add Open MPI’s libraries to the <em>front</em> of
<code class="docutils literal notranslate"><span class="pre">$PATH</span></code> and <code class="docutils literal notranslate"><span class="pre">$LD_LIBRARY_PATH</span></code> to ensure that this Open MPI
installation’s files are found <em>first</em>.</p>
<p>Consult the manual page for your shell for specific details (some
shells are picky about the permissions of the startup file, for
example).  The list below contains some common shells and the startup
files that they read/execute upon login:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Shell</p></th>
<th class="head"><p>Non-interactive login</p></th>
<th class="head"><p>Interactive login</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">bash</span></code> or <code class="docutils literal notranslate"><span class="pre">zsh</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">$HOME/.bashrc</span></code> if it exists.</p></td>
<td><ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">$HOME/.bash_profile</span></code> if it exists, or</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">$HOME/.bash_login</span></code> if it exists, or</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">$HOME/.profile</span></code> if it exists (in that order).</p></li>
</ol>
<p>Note that some Linux distributions automatically come
with <code class="docutils literal notranslate"><span class="pre">$HOME/.bash_profile</span></code> scripts for users that
automatically execute <code class="docutils literal notranslate"><span class="pre">$HOME/.bashrc</span></code> as well. Consult the
bash man page for more information.</p>
</td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">sh</span></code></p></td>
<td><p>This shell does not execute any file automatically, so Open MPI
will execute the <code class="docutils literal notranslate"><span class="pre">$HOME/.profile</span></code> script before invoking Open
MPI executables on remote nodes</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">$HOME/.profile</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">csh</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">$HOME/.cshrc</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">$HOME/.cshrc</span></code> followed by <code class="docutils literal notranslate"><span class="pre">$HOME/.login</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">tcsh</span></code></p></td>
<td><ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">$HOME/.tcshrc</span></code> if it exists, or</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">$HOME/.cshrc</span></code> if it does not</p></li>
</ol>
</td>
<td><ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">$HOME/.tcshrc</span></code> if it exists, or</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">$HOME/.cshrc</span></code> if it does not</p></li>
</ol>
<p>Afterwards, execute <code class="docutils literal notranslate"><span class="pre">$HOME/.login</span></code></p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="localhost.html" class="btn btn-neutral float-left" title="10.5. Launching only on the local node" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="slurm.html" class="btn btn-neutral float-right" title="10.7. Launching with Slurm" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2003-2025, The Open MPI Community.
      <span class="lastupdated">Last updated on 2025-05-30 16:41:43 UTC.
      </span></p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>