| [0b990d] | 1 | 
 | 
|---|
 | 2 | /** \page mpqcrun
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | The mpqcrun program simplifies running MPQC.
 | 
|---|
 | 5 | 
 | 
|---|
 | 6 | \if man
 | 
|---|
 | 7 | <h1>Synopsis</h1>
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 | <pre>
 | 
|---|
 | 10 | mpqcrun [options] [file1.in] [file2.in] ...
 | 
|---|
 | 11 | </pre>
 | 
|---|
 | 12 | \endif
 | 
|---|
 | 13 | 
 | 
|---|
 | 14 | <h1>Description</h1>
 | 
|---|
 | 15 | 
 | 
|---|
 | 16 | The mpqcrun program simplifies the task of running MPQC on multiple input
 | 
|---|
 | 17 | files.  Although it was primarily designed to run the validation suite,
 | 
|---|
 | 18 | mpqcrun, is
 | 
|---|
 | 19 | general enough to be useful in other situations.  If multiple nodes or
 | 
|---|
 | 20 | processors are present, it can be used to manage multiple invocations of
 | 
|---|
 | 21 | MPQC.
 | 
|---|
 | 22 | 
 | 
|---|
 | 23 | <h1>Running mpqcrun</h1>
 | 
|---|
 | 24 | 
 | 
|---|
 | 25 | mpqcrun takes the following command line options:
 | 
|---|
 | 26 | 
 | 
|---|
 | 27 | <dl>
 | 
|---|
 | 28 | 
 | 
|---|
 | 29 |   <dt><tt>--mpqc</tt> path<dd>The mpqc executable to use.
 | 
|---|
 | 30 |   <dt><tt>--objdir</tt><dd>Run the mpqc executable in the compile directory,
 | 
|---|
 | 31 |                            rather than the install directory.
 | 
|---|
 | 32 |   <dt><tt>--small</tt><dd>Skip big runs in verification suite.
 | 
|---|
 | 33 |   <dt><tt>--nnodeperjob</tt> n<dd>Run with n nodes per job.  If this is <tt>nnode</tt>, use all available nodes.
 | 
|---|
 | 34 |   <dt><tt>--nprocpernode</tt> n<dd>Run with n processes per node.
 | 
|---|
 | 35 |   <dt><tt>--nprocperjob</tt> n<dd>Run with n processes per job.  The default is to use all available processors.
 | 
|---|
 | 36 |   <dt><tt>--nthreadperproc</tt> n<dd>Use n threads per process.
 | 
|---|
 | 37 |   <dt><tt>--threadgrp</tt> grp<dd>Use the given threading layer.
 | 
|---|
 | 38 |   <dl>
 | 
|---|
 | 39 |        <dt>grp=<tt>none</tt><dd>Use MPQC's default.
 | 
|---|
 | 40 |        <dt>grp=<tt>proc</tt><dd>Do a single threaded run.
 | 
|---|
 | 41 |        <dt>grp=<tt>posix</tt><dd>Use POSIX threads.
 | 
|---|
 | 42 |   </dl>
 | 
|---|
 | 43 |   <dt><tt>--messagegrp</tt> grp<dd>Use the given communication layer.
 | 
|---|
 | 44 |   <dl>
 | 
|---|
 | 45 |        <dt>grp=<tt>none</tt><dd>Use MPQC's default.
 | 
|---|
 | 46 |        <dt>grp=<tt>proc</tt><dd>Does a single processor run.
 | 
|---|
 | 47 |        <dt>grp=<tt>mpi</tt><dd>Use MPI.
 | 
|---|
 | 48 |   </dl>
 | 
|---|
 | 49 |   <dt><tt>--memorygrp</tt> grp<dd>Use the given remote memory communication layer.
 | 
|---|
 | 50 |   <dl>
 | 
|---|
 | 51 |        <dt>grp=<tt>none</tt><dd>Use MPQC's default.
 | 
|---|
 | 52 |        <dt>grp=<tt>proc</tt><dd>Does a single processor run.
 | 
|---|
 | 53 |        <dt>grp=<tt>mtmpi</tt><dd>Use multi-threaded MPI.
 | 
|---|
 | 54 |        <dt>grp=<tt>armci</tt><dd>Use ARMCI.
 | 
|---|
 | 55 |   </dl>
 | 
|---|
 | 56 |   <dt><tt>--launch</tt> cmd<dd>Use the given command to launch jobs. See below.
 | 
|---|
 | 57 |   <dt><tt>--nodefile</tt> file<dd>Specifies a file listing nodes to use.
 | 
|---|
 | 58 |                                  Duplicated nodes are removed.
 | 
|---|
 | 59 |   <dt><tt>--nodes</tt> nodes<dd>Specifies list of machines to use.
 | 
|---|
 | 60 |                                 A range of nodes can be given with two
 | 
|---|
 | 61 |                                 integers separated by a dash.  Groups of
 | 
|---|
 | 62 |                                 nodes can be separated by a comma.
 | 
|---|
 | 63 |   <dt><tt>--nodename</tt> fmt<dd>This is a format string that converts the
 | 
|---|
 | 64 |                                  node number to its name.
 | 
|---|
 | 65 |   <dt><tt>--seq</tt> regex<dd>Run inputs matching reqex sequentially.
 | 
|---|
 | 66 |                               This is useful when one input requires that
 | 
|---|
 | 67 |                               another be run first, and more than
 | 
|---|
 | 68 |                               one job is run at a time.
 | 
|---|
 | 69 |   <dt><tt>--exclude</tt> regex<dd>Exclude files matching regex.
 | 
|---|
 | 70 |   <dt><tt>--readdir</tt> dir<dd>Run mpqc on all files matching dir/*.in.
 | 
|---|
 | 71 |   <dt><tt>--inputprefix</tt> prefix<dd>Prepend prefix to all input file names.
 | 
|---|
 | 72 |   <dt><tt>--outputprefix</tt> prefix<dd>Prepend prefix to all output file names.
 | 
|---|
 | 73 |   <dt><tt>--count</tt><dd>Print the number of input files that would be run.
 | 
|---|
 | 74 |   <dt><tt>--printfiles</tt><dd>Print the list of input files that would be run.
 | 
|---|
 | 75 |   <dt><tt>--rerun</tt><dd>Overwrite output file, even if up-to-date.
 | 
|---|
 | 76 |   <dt><tt>--onlynew</tt><dd>Do not overwrite output file, even if not up-to-date.
 | 
|---|
 | 77 |   <dt><tt>--simpout</tt><dd>Do not append extra info like nnode to filename.
 | 
|---|
 | 78 |   <dt><tt>--uniqout</tt><dd>Generate unique output filenames.
 | 
|---|
 | 79 |   <dt><tt>--autoout</tt><dd>Generate output filenames by replacing
 | 
|---|
 | 80 |                             the suffix with "out".
 | 
|---|
 | 81 |   <dt><tt>--verbose</tt><dd>Print out what action is to be taken on each file.
 | 
|---|
 | 82 |   <dt><tt>--debug</tt><dd>Don't actually run mpqc.
 | 
|---|
 | 83 |   <dt><tt>--help</tt><dd>Print the documentation.
 | 
|---|
 | 84 | 
 | 
|---|
 | 85 | </dl>
 | 
|---|
 | 86 | 
 | 
|---|
 | 87 | The cmd given with the <tt>--launch</tt> option can contain special strings
 | 
|---|
 | 88 | that will be substituted:
 | 
|---|
 | 89 | <dl>
 | 
|---|
 | 90 |   <dt><tt>\%MPQC%</tt><dd>The MPQC program to run.
 | 
|---|
 | 91 |   <dt><tt>\%INPUT%</tt><dd>The input filename.
 | 
|---|
 | 92 |   <dt><tt>\%OUTPUT%</tt><dd>The output filename.
 | 
|---|
 | 93 |   <dt><tt>\%NPROC%</tt><dd>The number of processes to start.
 | 
|---|
 | 94 |   <dt><tt>\%NODEFILE%</tt><dd>The name of a file containing the node names.
 | 
|---|
 | 95 |   <dt><tt>\%NODELIST%</tt><dd>A comma separated list of node names.
 | 
|---|
 | 96 | </dl>
 | 
|---|
 | 97 | 
 | 
|---|
 | 98 | For these last two, if they are contained within square brackets
 | 
|---|
 | 99 | and a substitution is not available, then everything within the
 | 
|---|
 | 100 | the brackets is removed.
 | 
|---|
 | 101 | 
 | 
|---|
 | 102 | This argument will launch MPI jobs giving mpirun a nodefile.
 | 
|---|
 | 103 | <pre>
 | 
|---|
 | 104 |   --launch "mpirun [-hf %NODEFILE%] -n %NPROC% %MPQC% -o %OUTPUT% %INPUT%"
 | 
|---|
 | 105 | </pre>
 | 
|---|
 | 106 | 
 | 
|---|
 | 107 | This argument will launch MPI jobs giving mpirun list of hosts on the
 | 
|---|
 | 108 | command line.
 | 
|---|
 | 109 | <pre>
 | 
|---|
 | 110 |   --launch "mpirun [-H %NODELIST%] -n %NPROC% %MPQC% -o %OUTPUT% %INPUT%"
 | 
|---|
 | 111 | </pre>
 | 
|---|
 | 112 | 
 | 
|---|
 | 113 | <h1>License</h1>
 | 
|---|
 | 114 | 
 | 
|---|
 | 115 | mpqcrun is open-source software; you can redistribute it and/or modify it
 | 
|---|
 | 116 | under the terms of the GNU General Public License as published by the Free
 | 
|---|
 | 117 | Software Foundation; either version 2 of the License, or (at your option)
 | 
|---|
 | 118 | any later version.
 | 
|---|
 | 119 | 
 | 
|---|
 | 120 | <h1>Warranty</h1>
 | 
|---|
 | 121 | 
 | 
|---|
 | 122 | mpqcrun is distributed in the hope that it will be useful, but WITHOUT ANY
 | 
|---|
 | 123 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
|---|
 | 124 | FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
|---|
 | 125 | details.
 | 
|---|
 | 126 | 
 | 
|---|
 | 127 | */
 | 
|---|