This file is indexed.

/usr/lib/mpich/bin/mpirun is in mpich-bin 1.2.7-10ubuntu1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
#! /bin/sh 

# MPIRUN for MPICH
# (Don't change the above line - we use it to identify MPICH mpirun as
# opposed to others (e.g., SGI's mpirun)
#
# This script tries to start jobs on whatever kind of machine you're on.
# Strategy - This program is built with a default device it uses in
# certain ways. The user can override this default from the command line.
#
# This sh script is designed to use other scripts to provide the commands
# to run each system, using the . filename.sh mechanism
#
# Debuggers should be handled by running 
# mpirun.db.<debugger_name>
# e.g., mpirun.db.gdb or mpirun.db.xxgdb.
# This will allow users to add there own debuggers 
# (with -debug=<debugger_name>)
#
# Set default variables
AUTOMOUNTFIX="sed -e s@/tmp_mnt/@/@g"
DEFAULT_DEVICE=ch_p4
RSHCOMMAND="/usr/bin/rsh"
SYNCLOC=/bin/sync
CC="cc"
COMM=
GLOBUSDIR=@GLOBUSDIR@
CLINKER="cc"
prefix=/usr/lib/mpich
bindir=/usr/lib/mpich/bin
# Record the value of sbindir.  Some useful utilities, such as 
# cleanipcs (used for cleaning up shared memory segments and semaphores)
# are placed in this directory.
# exec_prefix is set because the sbindir by default is exec_prefix/sbin
exec_prefix=${prefix}
sbindir=${exec_prefix}/sbin
# This value for datadir is the default value setup by configure
# This value for datadir is the default value setup by configure
datadir=/usr/lib/mpich/share
DEFAULT_MACHINE=ch_p4
DEFAULT_ARCH=LINUX

# Derived variables
MPIRUN_BIN=$bindir
MPIRUN_HOME=$MPIRUN_BIN
MPIVERSION="1.2.7 (release) of : 2005/11/04 11:54:51"

# The command line argument for the head and tail commands.  Some
# later versions of GNU utilities do not accept the classic commandline
# option (!!)
HEADARG="-"
#set verbose
#
# Local routines
#
# End of routine

#
#
# Special, system specific values
#
# polling_mode is for systems that can select between polling and 
# interrupt-driven operation.  Currently, only IBM POE is so supported
# (TMC CMMD has some support for this choice of mode)
polling_mode=1

# Parse command line arguments
# The ultimate goal is to determine what kind of parallel machine this
# is we are running on. Then we know how to start jobs...
#
# Process common arguments (currently does ALL, but should pass unrecognized
# ones to called files)
#
hasprinthelp=1
. $MPIRUN_HOME/mpirun.args
argsset=1

#
# Jump to the correct code for the device (by pseudo machine)
#
mpirun_version=""
case $machine in
    ch_cmmd)
	mpirun_version=$MPIRUN_HOME/mpirun.ch_cmmd
	;;
    ibmspx|ch_eui|ch_mpl)
	mpirun_version=$MPIRUN_HOME/mpirun.ch_mpl
	;;
    anlspx)
	mpirun_version=$MPIRUN_HOME/mpirun.anlspx
	;;
    ch_meiko|meiko)
	mpirun_version=$MPIRUN_HOME/mpirun.meiko
	;;
    cray_t3d|t3d)
	mpirun_version=$MPIRUN_HOME/mpirun.t3d
	;;
    ch_nc)
	mpirun_version=$MPIRUN_HOME/mpirun.ch_nc
	;;
    paragon|ch_nx|nx)
	mpirun_version=$MPIRUN_HOME/mpirun.paragon
	;;
    inteldelta)
	mpirun_version=$MPIRUN_HOME/mpirun.delta
	;;
    i860|ipsc860)
	mpirun_version=$MPIRUN_HOME/mpirun.i860
	;;
    p4|ch_p4|sgi_mp)
	mpirun_version=$MPIRUN_HOME/mpirun.ch_p4
	;;
    gm|ch_gm|myrinet)
        mpirun_version=$MPIRUN_HOME/mpirun.ch_gm
	;;
    execer)
	mpirun_version=$MPIRUN_HOME/mpirun.execer
	;;
    ch_shmem|ch_spp|smp|convex_spp)
	# sgi_mp is reserved for the p4 version
	mpirun_version=$MPIRUN_HOME/mpirun.ch_shmem
    	;;
    ksr|symm_ptx)
	mpirun_version=$MPIRUN_HOME/mpirun.p4shmem
	;;
    ch_tcp|tcp)
	mpirun_version=$MPIRUN_HOME/mpirun.ch_tcp
	;;
    globus)
	mpirun_version=$MPIRUN_HOME/mpirun.globus
	;;
    *)    
	#
	# This allows us to add a device without changing the base mpirun
	# code
	if [ -x $MPIRUN_HOME/mpirun.$device ] ; then
	    mpirun_version=$MPIRUN_HOME/mpirun.$device
	elif [ -x $MPIRUN_HOME/mpirun.$default_device ] ; then
	    mpirun_version=$MPIRUN_HOME/mpirun.$default_device
	    device=$default_device
	else
	    echo "Cannot find MPIRUN machine file for machine $machine"
	    echo "and architecture $arch ."
            if [ -n "$device" ] ; then
	        echo "(Looking for $MPIRUN_HOME/mpirun.$device)"
	    else
	        echo "(No device specified.)"
            fi
	    # . $MPIRUN_HOME/mpirun.default
	    exit 1
	fi
  	;;
esac
exitstatus=1
if [ -n "$mpirun_version" ] ; then
    if [ -x $mpirun_version ] ; then
        # The mpirun script *must* set exitstatus (or exit itself)
        . $mpirun_version
    else
       	echo "$mpirun_version is not available."
	    exit 1
    fi
else
    echo "No mpirun script for this configuration!"
    exit 1
fi
exit $exitstatus