[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r28790 - in msh/doc: . fig/svg
From: |
gnunet |
Subject: |
[GNUnet-SVN] r28790 - in msh/doc: . fig/svg |
Date: |
Thu, 22 Aug 2013 12:01:44 +0200 |
Author: harsha
Date: 2013-08-22 12:01:44 +0200 (Thu, 22 Aug 2013)
New Revision: 28790
Modified:
msh/doc/fig/svg/job_startup.svg
msh/doc/msh.tex
Log:
- update doc; modify architecture description to describe the current
implementation
Modified: msh/doc/fig/svg/job_startup.svg
===================================================================
--- msh/doc/fig/svg/job_startup.svg 2013-08-22 09:42:17 UTC (rev 28789)
+++ msh/doc/fig/svg/job_startup.svg 2013-08-22 10:01:44 UTC (rev 28790)
@@ -67,9 +67,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="1.4"
- inkscape:cx="358.57492"
- inkscape:cy="220.78611"
+ inkscape:zoom="3.959798"
+ inkscape:cx="177.40865"
+ inkscape:cy="119.88147"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
@@ -77,9 +77,9 @@
inkscape:guide-bbox="true"
inkscape:snap-midpoints="true"
inkscape:window-width="1920"
- inkscape:window-height="1141"
+ inkscape:window-height="1061"
inkscape:window-x="0"
- inkscape:window-y="27"
+ inkscape:window-y="2"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
@@ -263,7 +263,7 @@
y="416.56683" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4,
4;stroke-dashoffset:0;marker-end:url(#Arrow1Mend)"
- d="m 168.16199,423.96933 200.75202,-0.0631"
+ d="m 168.16199,427.96933 200.75202,-0.0631"
id="path4498"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@@ -271,51 +271,45 @@
xml:space="preserve"
style="font-size:10px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Sans
Italic"
x="265.58035"
- y="420.79111"
+ y="424.79111"
id="text4720"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4722"
x="265.58035"
- y="420.79111"
+ y="424.79111"
style="font-style:italic">starts</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Sans
Italic"
x="265.58035"
- y="434.00995"
+ y="438.00995"
id="text4724"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4726"
x="265.58035"
- y="434.00995"
+ y="438.00995"
style="font-style:normal">(indirect MPI)</tspan></text>
<path
-
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
- d="M 120.05231,424.68362 C 84.921624,410.23754 80.335048,349.14789
100.44643,335.479"
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="M 120.05231,424.68362 C 83.811222,414.77578 84.686394,352.17218
101.2907,331.92244"
id="path4728"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:10px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Sans
Italic"
- x="78.388351"
- y="379.25613"
+ x="80.388351"
+ y="381.25613"
id="text4912"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4914"
- x="78.388351"
- y="379.25613"
- style="font-style:normal">6</tspan></text>
+ x="80.388351"
+ y="381.25613"
+ style="font-style:normal">6,8</tspan></text>
<path
-
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="m 192.35392,340.32647 c 76.98614,-0.0152 107.42483,-0.0879
161.04659,-0.009"
- id="path4916"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cc" />
- <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="m 394.64287,343.09357 -1e-5,71.06255"
id="path5100"
@@ -332,36 +326,19 @@
id="tspan5286"
x="396.73215"
y="375.54449"
- style="font-style:normal">8</tspan></text>
+ style="font-style:normal">10</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Sans
Italic"
x="266.08542"
- y="315.98129"
+ y="327.98129"
id="text5288"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5290"
x="266.08542"
- y="315.98129"
+ y="327.98129"
style="font-style:normal">3</tspan></text>
- <path
-
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
- d="m 180.46234,379.66373 c 40.43052,-0.51583 172.21624,6.62702
198.64481,35.19845"
- id="path6064"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cc" />
- <text
- xml:space="preserve"
-
style="font-size:10px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Sans
Italic"
- x="265.35715"
- y="378.07648"
- id="text6252"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan6254"
- x="265.35715"
- y="378.07648">TCP/UDP connect</tspan></text>
<rect
style="fill:none;stroke:#0f0707;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect6256"
@@ -489,8 +466,8 @@
y="200.4348"
style="font-style:normal">1</tspan></text>
<path
-
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
- d="m 354.54962,320.25537 c -18.36215,-0.16369 -135.03737,0.0345
-160.55643,0.60971"
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="m 353.03439,332.25537 c -18.36215,-0.16369 -133.52214,0.0345
-159.0412,0.60971"
id="path4039"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@@ -504,18 +481,18 @@
sodipodi:role="line"
id="tspan4233"
x="269.71039"
- y="350.38989">3, 7</tspan></text>
+ y="350.38989" /></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Sans"
x="266.65179"
- y="333.34824"
+ y="345.34824"
id="text4272"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4274"
x="266.65179"
- y="333.34824">MPI</tspan></text>
+ y="345.34824">MPI</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
@@ -528,5 +505,28 @@
y="334.14789"
id="tspan4262-0"
style="text-align:start;text-anchor:start">mshd
(worker)</tspan></text>
+ <path
+ style="fill:none;stroke:none"
+ d="m 33.84011,163.65058 c -44.194174,26.26397 0.252538,90.66119
18.182746,87.88327"
+ id="path3063"
+ inkscape:connector-curvature="0"
+ transform="translate(68.4375,169.14286)" />
+ <path
+
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+ d="M 100.51018,251.28131 285.36809,168.4488"
+ id="path4225"
+ inkscape:connector-curvature="0"
+ transform="translate(68.4375,169.14286)"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
+ x="266.47687"
+ y="394.60437"
+ id="text5543"><tspan
+ sodipodi:role="line"
+ id="tspan5545"
+ x="268.06866"
+ y="394.60437">7, 9, 11 </tspan></text>
</g>
</svg>
Modified: msh/doc/msh.tex
===================================================================
--- msh/doc/msh.tex 2013-08-22 09:42:17 UTC (rev 28789)
+++ msh/doc/msh.tex 2013-08-22 10:01:44 UTC (rev 28790)
@@ -15,10 +15,10 @@
\maketitle{}
\begin{abstract}
- MPI-Shell (MSH) is a remote shell for executing commands remotely on
- hosts using the Message Passing Interface (MPI) layer for communication.
Such
- hosts are commonly found in High Performance Computing (HPC) systems such as
- compute clusters or supercomputers.
+ MPI-Shell (MSH) is a remote shell for executing commands remotely on hosts
+ where Message Passing Interface (MPI) layer is available for communication.
+ Such hosts are commonly found in High Performance Computing (HPC) systems
such
+ as compute clusters or supercomputers.
The motivation for this project is that often in such systems \texttt{ssh} is
either unavailable or restricted for users due to security reasons. As a
@@ -33,15 +33,21 @@
MSH consists of two components: the \texttt{mshd} daemon and the \texttt{msh}
client. \texttt{mshd} is similar to \texttt{sshd} in that it is started one
-daemon per host and executes the commands given from remote \texttt{msh}, but
-differs from \texttt{sshd} in that \texttt{msh} clients do not connect to it
-directly. Furthermore, \texttt{mshd} is started by the job scheduler and only
-runs during the job. \texttt{msh} clients always connect to their local
-\texttt{mshd} for executing remote commands. The local \texttt{mshd} then
-communicates the command to the remote \texttt{mshd}. Similarly, the input and
-output of the executed command is indirectly relayed from and to the respective
-\texttt{msh} client through the local \texttt{mshd}.
+daemon per host and executes the commands given from remote \texttt{msh}
+clients. However, unlike \texttt{sshd}, \texttt{mshd} is started by the job
+scheduler and only runs during the job.
+MSH client, \texttt{msh}, takes the IP address of the target host and the
remote
+command string as arguments. The client relies on the local \texttt{mshd} for
+learning the address of the remote \texttt{mshd} and authenticating itself to
+the remote \texttt{mshd}.
+
+The command string is executed by the remote \texttt{mshd} after successful
+authentication of \texttt{msh}. The input for the executed command string is
+relayed by \texttt{msh} to the remote \texttt{mshd}. Similarly, the output
from
+the executed command string is relayed from the remote \texttt{mshd} to
+\texttt{msh};
+
\begin{figure}[ht]
\centering
\input{fig/svg/job_startup.pdf_tex}
@@ -56,27 +62,35 @@
multiple instances of MPI programs. Examples for execution wrappers are
\texttt{mpiexec}, \texttt{mpirun}, \texttt{poe} and \texttt{srun}.
\item The execution wrapper starts an \texttt{mshd} instance on each of the
- allocated hosts. We distinguish the instance having MPI id 0 as the master
+ allocated hosts. We distinguish the instance having MPI ID 0 as the master
instance and all other instances as worker instances.
\item The instances resolve their addresses. This is further detailed in
Section~\ref{sec:addressing}.
-\item All the instances open a local socket for IPC and set an environmental
- variable to refer to this socket. The master instance then starts the given
- application which defaults to \texttt{bash} if it is not specified as a
- parameter to \texttt{mshd} in the execution wrapper.
-\item The application calls \texttt{msh} for executing a remote command on one
- of the allocated hosts.
-\item The \texttt{msh} program inherits the environmental variable set by the
- master instance and communicates to the master instance the remote command to
- be executed through IPC. Additionally, it forwards its stdin, stdout and
- stderr as from the remote command to the master instance.
-\item The master instance determines the worker instance responsible for
- executing the remote command from the instance--IP mapping and relays the
- remote command, its stdin and stderr to the worker instance through MPI.
-\item The worker instance executes the remote command with the relayed stdin
and
- stderr. The remote command may also use \texttt{msh} to execute commands to
- other hosts. In this case, the \texttt{msh} will connect to the local worker
- instance for relaying the command to the remote instance.
+\item All the \texttt{mshd} instances open a local socket for IPC and set the
+ environmental variable \texttt{MSHD\_SOCK} to refer to this socket. They
also
+ write to a file the addresses of hosts they learn in step 3. The name of
this
+ file is made available through environmental variable
+ \texttt{MP\_SAVEHOSTFILE}. The master instance then starts the given
+ application given as an argument to \texttt{mshd} in the execution wrapper.
+\item The application knows about the available hosts through the environmental
+ variable \texttt{MP\_SAVEHOSTFILE} and calls \texttt{msh} for executing a
+ remote commands on those hosts.
+\item The \texttt{msh} program inherits the environmental variables
+ \texttt{MSHD\_SOCK} set by the master instance and uses it for establishing
+ IPC with the master instance. Using this IPC it learns from the local
+ \texttt{mshd} instance the address of the remote \texttt{mshd} running on the
+ given host.
+\item \texttt{msh} establishes connection to the remote \texttt{mshd} on the
+ learned address and delivers the remote command string that is to be
+ executed. The remote \texttt{mshd} responds with an authentication
challenge.
+\item \texttt{msh} forwards the authentication challenge to its local
+ \texttt{mshd} through the IPC it established from step 6. The local
+ \texttt{mshd} responds with a challenge-response.
+\item The challenge-response is forwarded to the remote \texttt{mshd}.
+\item The remote \texttt{mshd} verifies the challenge-response and it
+ successfully verified, it starts executes the command string
+\item The input and output streams for the remote command string are relayed
+ from \texttt{msh} and \texttt{mshd} to each other respectively.
\end{enumerate}
\section{Addressing}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r28790 - in msh/doc: . fig/svg,
gnunet <=