Man Linux: Main Page and Category List

NAME

       XMPI - X Window MPI user interface

SYNTAX

       xmpi [-h] [<boot_schema>]

DESCRIPTION

       XMPI is a graphical user interface for running MPI programs, monitoring
       MPI processes and messages, and  viewing  execution  trace  files.   It
       exploits  the  debugging  capabilities  of  LAM,  a  parallel computing
       environment for UNIX clusters.  XMPI  is  constructed  from  the  Motif
       widget set.

       XMPI  does  not  provide an interface for starting a LAM session.  This
       must be accomplished prior to running  XMPI,  which  is  itself  a  LAM
       program.   The  boot  schema from which LAM was started can (should) be
       provided to XMPI so that it may be presented as an inventory  of  nodes
       on which programs may be run.  If XMPI is to be used only to view trace
       files then starting LAM is not required.

       This description assumes a basic knowledge of MPI.

TYPICAL USAGE

       XMPI provides a graphical display of the state of the processes  within
       an  MPI application.  The state information is obtained from one of two
       sources, a running application started by XMPI  or  a  file  containing
       trace  data  from  a traced MPI application.  When XMPI is started, its
       top-level overview window is blank.  Once an application is started  or
       a  trace file is loaded the overview window fills with a tiled group of
       hexagons, each representing the state of one MPI process and labeled by
       the  process  rank  within  MPI_COMM_WORLD.   A  traffic  light  symbol
       indicates whether the process is running or blocked.  No traffic  light
       is  shown  for  processes  which  have  either  finalized  or  not  yet
       initialized the MPI library.

       When monitoring a running  application  the  camera  "Snap"  button  or
       "Snapshot" item in the "Application" menu updates the state information
       on all processes at any  time.   When  viewing  trace  data  the  state
       information  is  updated according to the currently selected time point
       (see "XMPI TRACE FILES").

       A mouse click inside a hexagon pops up an additional window  containing
       more  detailed  information  about  the  process.   If  the  process is
       blocked, the function name, peer process  rank,  communicator,  message
       tag  and  element  count  are  displayed.   If  unreceived messages are
       available, their quantity, source process rank,  communicator,  message
       tag  and element count are displayed.  By leaving a few process windows
       on the screen, a user can focus debugging on  a  small  and  manageable
       collection of misbehaving processes.

       The "Clean" button or "Clean" item in the "Application" menu terminates
       an application and the development cycle can be repeated.  The previous
       application can be rerun with the "Rerun" button or "Rerun" item in the
       "Application" menu.

RUNNING AN APPLICATION

       An application schema specifies an  MPI  application  by  listing  each
       process’s  program  name,  program  location,  target  processor(s) and
       optional command line arguments.

       The "Browse&Run" item in the "Application" menu pops up a  simple  file
       browser  for  choosing  and  running  a pre-written application schema.
       Alternatively an application schema can be  configured  with  the  XMPI
       application  builder  dialog,  invoked  by  the "Build&Run" item in the
       "Application" menu.

       The builder dialog has an area to specify each  process  and  an  arrow
       button  to  add  it to the application schema, which is shown below the
       arrow button in a scrolled list.  The lines in the list show the syntax
       that would be used in creating the same application with a text editor.
       Indeed, the "Save" button saves the application schema in  a  file  for
       later use and/or editing.

       A  specified  process does not become part of the application until the
       arrow (commit) button is pressed.  Once it appears in  the  application
       scrolled  list,  a  process can be deleted by selecting it and pressing
       the <Delete> key.

       Pressing the "Run" button with anything in the application list  causes
       that  application  to  be run.  The overview window is then initialized
       with the status of the application.

   Program Specification
       A file browser in the middle of the builder dialog aids in selecting  a
       program  file.   The  browser only navigates the file space of the node
       running XMPI.  If a program is located on another node outside the file
       space  (outside  NFS,  etc.) its pathname may need to be typed into the
       process specification area.  Selecting the "Use Full  Pathname"  toggle
       button  will cause programs to be placed into the application schema as
       full pathnames.

       XMPI limits the choice of a program source  node  to  either  the  node
       running  XMPI  or  the  process  target  node.   The latter case is the
       default and is the most efficient because LAM does not need to transfer
       the  program from source to target node.  The "Transfer Program" toggle
       button selects the source node policy.

   Multiple Program Copies
       The number of copies of a program to be run can be set in  the  process
       specification  area.  Clicking on the increment or decrement arrow will
       increment or decrement the count by one. Clicking with  the  shift  key
       down will increment or decrement by ten.

   Command-line Arguments
       Command-line  arguments  must  be  typed into the process specification
       area.

   Node Specification
       A boot schema specifies the computers participating as nodes in  a  LAM
       multicomputer.   If  XMPI is given a boot schema filename, its contents
       will appear in a scrolled list on the right side of the builder dialog.
       XMPI will search for the given schema in the local directory.  The boot
       schema filename is displayed above the list  of  its  nodes.   Multiple
       target   nodes  can  be  selected  from  the  scrolled  list  with  the
       corresponding node mnemonic  appearing  in  the  process  specification
       area.   Selecting  multiple  target  nodes specifies multiple processes
       with the program name, arguments and source node policy held  constant.

       If no boot schema was specified only the special node selectors "LOCAL"
       (meaning the node on  which  XMPI  is  running)  and  "ALL  NODES"  are
       provided.

       Target  node  descriptions  may also be typed directly into the process
       specification area.  The local node is specified as h.  The origin node
       from which the machine was booted, if not local, can be specified as o.
       All usable nodes are specified as N.  Nodes are generically  identified
       as  n<list>,  where <list> can be a single node identifier or a list of
       node identifiers.  Identifiers can be written in decimal or hexadecimal
       notation.  Examples are n1 or n0-7,0x10.

   Run-time Options
       Applications  can  be  run with various run-time options to specify the
       behaviour of the MPI library.  These can be configured from a  separate
       dialog  which  is  activated  from  the "Runtime" item in the "Options"
       menu.  Options remain in effect until changed.

       ·      tracing mode (default enabled)

       ·      fast client-to-client communication (default disabled)

       ·      GER protocol and error detection (default enabled)

       ·      homogeneous LAM node optimization (default disabled)

FOCUSING ON A PROCESS

       More information on a process’s state can be obtained by  clicking  the
       left mouse button within the process hexagon.  This will pop up a focus
       window.  The upper area of the focus window is  the  process  area  and
       displays  the  current  state  of  the  process.  The lower area is the
       message area and displays information on the process’s message queue.

       The focus window banner contains a tack button which can be clicked  to
       dismiss  the window and a label containing the process’s identity along
       with the program name.  In XMPI processes are identified first by their
       rank  in  MPI_COMM_WORLD  and  if  the process is communicating, with a
       slash followed by the process’s rank within the  current  communicator.
       The  focus  window  can also be dismissed by clicking once again in the
       process hexagon.

       The process area describes the current state of  the  process  together
       with  the name of and (where appropriate) arguments to the MPI function
       currently being executed.  The layout is fairly self-explanatory and we
       describe only the less obvious features.

   Communicator Identification
       The  "comm"  area  shows the communicator being used in the current MPI
       function.  Communicators are opaque objects which MPI does not identify
       in  any  meaningful,  printable  way.   LAM’s MPI implementation adds a
       simple numerical identifier to communicators,  which  is  displayed  in
       XMPI  as <x> where x is the identifier.  This identifier can be matched
       to communicator variables in an MPI  program  with  the  LAM  function,
       MPIL_Comm_id(2).

   Group Membership
       The  button  to  the  right  of  the  "comm" area will highlight in the
       overview window the hexagons of the processes in the communicator.  For
       an  intracommunicator,  the  hexagons  will be highlighted in the color
       specified  by  the  "lcomCol"  resource.   For  an   intercommunicator,
       processes in the local group will be highlighted in the color specified
       by the "lcomCol" resource and those in the remote group  in  the  color
       specified  by  the  "rcomCol"  resource.  For highlighted processes the
       process identification at the bottom of the hexagon is  changed  to  be
       the  rank  in  MPI_COMM_WORLD  followed  by a slash and the rank in the
       communicator being highlighted.

   Datatype
       The datatype button to the right of the "cnt" area will display in  the
       datatype  window  (see  "DATATYPE WINDOW") the type map of the datatype
       argument to the current MPI function.

       The message area describes the current state of the queue  of  messages
       destined to the process and not yet received.  Once again the layout is
       fairly self-explanatory and we describe only the less obvious features.

   Message Aggregates
       Identical  undelivered  messages  are aggregated. The "copy" area shows
       the number of messages within the visible aggregate,  followed  by  the
       total  number of messages in the queue.  The button to the right of the
       "copy" area cycles through the message aggregates.

   Source Rank
       The  "src"  area  shows  the  rank  of  the   source   process   within
       MPI_COMM_WORLD  followed  by  the  rank  of  the  source process in the
       communicator in which the message was sent.

   Datatype
       The datatype button to the right of the "cnt" area will display in  the
       datatype window the type map of the message’s datatype.

   Group Membership
       The  button  to the right of the "comm" area will highlight the message
       communicator in the manner previously described.

XMPI TRACE FILES

       XMPI can be used to view existing trace files and can be used to create
       trace files for applications run under XMPI.

       To  load  and view an existing trace file select the "View" item in the
       "Trace" menu.

       If an application is run under XMPI with tracing enabled (the default),
       LAM will trace the application.  Before the trace data can be viewed in
       XMPI it must be dumped to a file.  This is done by selecting the "Dump"
       item  from the "Trace" menu.  You will be prompted for a file name.  By
       convention XMPI trace files have a ".lamtr" suffix.  The trace file can
       be  viewed  by loading it as described above.  As a shortcut select the
       "Express" item in the "Trace" menu, or equivalently click  the  "Trace"
       button  in  the  overview  window.   This  dumps  the  trace  data to a
       temporary file and then immediately loads the file for viewing.  If you
       decide that you want to save trace data for later viewing then you must
       dump it using the "Dump" item from the  "Trace"  menu.   Dumping  trace
       data  to  file does not purge any trace data and a subsequent dump will
       contain all the trace data from the start of the application  up  until
       the time of dumping.  Terminating an application via the "Clean" button
       or menu item purges all trace data.

       While viewing a  trace  an  application  previously  launched  by  XMPI
       continues  to  run  in  the  background.  Upon the closing of the trace
       window XMPI will  return  to  snapshot  mode  if  there  is  a  running
       application.

       When   loading   trace   files   containing   multiple   segments  (see
       MPIL_Trace_on(2) and MPIL_Trace_off(2)) you will be  prompted  for  the
       number  of  the  segment you wish to view.  If you wish later to view a
       different segment, simply reload the trace file  and  specify  the  new
       segment  number  when  prompted.   Reloading  is done via the "View" or
       "Express" items in the "Trace" menu.

   Communication Timeline Window
       Across the top of the timeline window  is  a  control  and  information
       area.   The  trace  data  is displayed below this on timelines, one per
       process in the traced application.  The state of the application  at  a
       particular  time  is  represented  by  the  corresponding traffic light
       color.  Green represents running, red  represents  blocked  waiting  on
       communication  and  yellow represents time spent inside an MPI function
       not blocked on communication (we call this system overhead time  as  it
       typically represents time doing data conversion, message packing, etc).

       The dial can be used to select a time point at which the process states
       are  to be displayed.  In the overview window the process states at the
       dial time are displayed in hexagon form.  As with  snapshot  mode  more
       detailed  information  on  a process can be obtained by bringing up its
       focus window.  The dial may be moved by clicking with the  left  button
       in the trace view area or via the VCR controls.  Below the VCR controls
       are displayed from left to right, the time of  the  left  edge  of  the
       displayed  timeline,  the  current  dial time and the time of the right
       edge of the displayed timeline.

       To  the  right  of  the  VCR  controls   is   displayed   the   current
       magnification.   When  a  trace  file is loaded XMPI chooses an initial
       scaling factor and sets this to be  the  1x1  magnification.   You  can
       increase  and  decrease  the  magnification  using the zoom and un-zoom
       buttons.

       A segment of the  currently  displayed  timeline  can  be  selected  by
       dragging  the  right  mouse  button in the timeline display area.  Upon
       release of the right button the display is zoomed to show the  selected
       segment.   To cancel a drag in progress, drag the cursor up or down out
       of the timeline display area.

   How Communication Is Represented
       Collective
           A collective communication  is  represented  for  each  process  by
           contiguous  line segments showing the time spent in system overhead
           and the time spent blocked waiting for communication.  No lines are
           drawn  connecting  the  processes  participating  in the collective
           communication.

       Blocking_point_to_point
           For both the send and receive process contiguous line segments  are
           drawn  showing the time spent in system overhead and the time spent
           blocked waiting for the communication to complete.  A line is drawn
           connecting the send to the receive.  It originates at the beginning
           of the send segments and is  drawn  to  the  end  of  the  matching
           receive segments.

       Non-blocking_point_to_point
           At  the  time  a non-blocking send or receive is initiated a system
           overhead segment is drawn.  When the communication is completed via
           a  wait or test, segments showing system overhead and blocking time
           are drawn.  Lines are drawn between matching  sends  and  receives,
           except  in  this  case the line is drawn from the segment where the
           send was initiated to where the corresponding receive completed.

       Waits_and_tests
           If a non-blocking communication is  completed  inside  a  wait/test
           function  XMPI  will  show the function name in the focus window as
           the wait/test function followed in parentheses by the  send/receive
           function  being  completed.   For  example,  if  an MPI_Issend() is
           completed inside an MPI_Wait(), the  function  will  read  MPI_Wait
           (MPI_Issend).

       Missing_traces
           Owing  to  the  use  of  trace segments or the dropping of overflow
           traces (see lamtrace(1)) there may be send or receive traces  which
           have  no match in the trace data.  In these cases a short stub line
           is drawn out from a send or in to a receive.

   Kiviat Window
       When viewing a trace file,  the "Kiviat" button or "Kiviat"  item  from
       the "Trace" menu brings up the Kiviat window.  This window displays, in
       a segmented pie-chart format, the cumulative time  up  to  the  current
       dial  time,  spent by each process in the running, overhead and blocked
       states.

MESSAGE SOURCE MATRIX

       The message source window displays a square matrix of  process  message
       queue lengths.  For each process it shows the number of queued messages
       from each other process in the application.  It can be brought up while
       monitoring  a  running  application  or  while viewing a trace file, by
       selecting the "Matrix" button or "Matrix" item in the "Trace" menu.

DATATYPE WINDOW

       The datatype window displays a textual representation of the  type  map
       of  an  MPI  datatype.  This window is associated at any instant with a
       particular process and mode.  The associated process is  shown  in  the
       window’s banner and the mode is indicated by a traffic light or message
       queue icon shown in the left part of the window.  When in process  mode
       the  datatype  being shown, if any, is the datatype argument of the MPI
       function the process is executing.  When in message mode  the  datatype
       is  that of the current message aggregate selected in the process focus
       window.  Switching between processes and  modes  is  effected  via  the
       datatype buttons in the process focus windows.

       The  type  map  might  not fit completely into the default size window.
       Simply resize the window to see the whole map.

SWITCHING INFORMATION SOURCES

       XMPI will gather and display  information  from  either  the  currently
       executing application or a trace file.  When an application is launched
       from XMPI, the information source is the executing application and  the
       "Snap" button is active.  Though the application may be producing trace
       data,  the  "Snap"  button  does  not  use  it,  but  instead  acquires
       information  from  debugging  hooks  in the MPI implementation.  At any
       moment, an existing trace file may be loaded into XMPI or the currently
       accumulating  trace  data  may  be fetched from the MPI implementation,
       stored in a file, and loaded.   This  action  changes  the  information
       source to the loaded trace file.  Information display is now controlled
       from the dial in the timeline window and not from  the  "Snap"  button,
       which  is  now  inactive.  Though the application may still be running,
       the timeline dial does not use the runtime debugging hooks, but instead
       acquires  information  from the loaded trace file.  Upon the closing of
       the trace window XMPI will return  to  snapshot  mode  if  there  is  a
       running application.

RESOURCES

       XMPI defines the following application resources.

       XMPI.helpCmd        command  that  is run to provide help.  The default
                           is typically a command which fires up a Web browser
                           to  view  a  help  page.  You should change this to
                           invoke your favourite browser.

       XMPI.rankFont       process rank font in hexagon

       XMPI.msgFont        total message count font in hexagon (may need to be
                           adjusted to fit inside message icon)

       XMPI.lcomCol        color   used  to  highlight  the  processes  in  an
                           intracommunicator or in the the local group  of  an
                           intercommunicator

       XMPI.rcomCol        color used to highlight the processes in the remote
                           group of an intercommunicator

       XMPI.bandCol        color used for the zoom selection rubber band

       XMPI.bandDash       if True use a dashed line rubber band to  show  the
                           zoom selection otherwise use a solid line

       XMPI.bandWidth      width of the zoom selection rubber band

       XMPI  gets  important  default  resources from the application defaults
       file, XMPI.   If  this  file  is  not  installed  in  the  X11  default
       directory,  its  directory  can be added to the XAPPLRESDIR environment
       variable.

LIMITATIONS

       An application must be started by XMPI to be monitored by it.

       When using the fast client-to-client communication mode process  states
       in  snapshot mode are always shown as running and no useful information
       is shown in the process focus windows.

       XMPI uses lamclean(1).  Errors reported by this tool will  still  print
       to  standard  output.   A  shorter message will appear in an XMPI error
       dialog.

SEE ALSO

       mpimsg(1), mpirun(1), mpitask(1), lamtrace(1)

-RELEASEVERSION-                 -RELEASEDATE-