gnunet-svn
[Top][All Lists]
Advanced

[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}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]