This file is indexed.

/usr/lib/mpich-shmem/bin/mpirun.ch_shmem is in mpich-shmem-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
#! /bin/sh
exitstatus=1
if [ "$argsset" = "" ] ; then
   . $MPIRUN_HOME/mpirun.args
   argsset=1
fi
# ch_shmem device
#
# Pass to mpirun that this is a shared memory device.  Since there
# may be several, try using the default value.
# This may not be what we want....
MPIRUN_DEVICE=$default_device
export MPIRUN_DEVICE
#
#
# Handle debuggers
#
#startpgm="eval"
MPICH_NP=$np
export MPICH_NP
# If MPICH_NP doesn't work, use -np $np
startpgm="$progname $cmdLineArgs"

if [ "$debugger" != "" ] ; then
    if [ "$debugger" = "totalview" ] ; then
        if [ "$TOTALVIEW" = "" ] ; then
	   TOTALVIEW="totalview"
        fi
        # We need to put -mpichtv into an environment variable
        startpgm="$TOTALVIEW $progname -a $cmdLineArgs -mpichtv"
    else
	# There should be a way to specify a debugger startup method, for
        # special vendor-specific debuggers (like SGI's cvd) etc.
	# gdb or dbx-like debuggers
        dbgfile=$PWD_TRIAL/PId$$
        echo "Test" > $dbgfile
        if [ -s $dbgfile ] ; then
	    /bin/rm -f $dbgfile
        else
            dbgfile=$HOME/PId$$
        fi
        # If gdb has an equivalent, the documentation is well hidden.
        #  - .gdbinit - and the documentation IS well hidden.  Fortunately,
        # the .gbdinit file is read; gdb provides the -nx (instead of -x)
        # command if you don't want to read the default init file.
        if [ "$debugger" = "dbx" -a -r $HOME/.dbxinit ] ; then
	    cat $HOME/.dbxinit > $dbgfile
        fi
        # Regretably, xxgdb does NOT provide this argument (even though it
        # claims to).
    #    if [ "$debugger" = "xxgdb" -a -r $HOME/.gdbinit ] ; then
    #	cat $HOME/.gdbini > $dbgfile
    #    fi
        # handle USR1 pass for gdb; add an initial break 
        if [ "$debugger" = "gdb" -o "$debugger" = "xxgdb" -o \
	     "$debugger" = "ddd" ] ; then
	    echo "handle SIGUSR1 nostop pass" >> $dbgfile
	    echo "br MPI_Init" >> $dbgfile
	    #echo "set args $cmdLineArgs -np $np" >> $dbgfile
	    echo "set args $cmdLineArgs" >> $dbgfile
	    echo "run" >> $dbgfile
        else 
            echo "ignore USR1" >> $dbgfile
            # This may not work, depending on when the symbol table is read.
            # An alternative is to use the startup file to load the 
            # program with "debug $progname" ,followed with this, followed
	    # with run command args.
	    echo "debug $progname" >> $dbgfile
   	    echo "stop in MPI_Init" >> $dbgfile
#	    echo "run $cmdLineArgs -np $np" >> $dbgfile
	    echo "run $cmdLineArgs" >> $dbgfile
        fi
    #	cat >> $dbgfile <<.
    ## Use this command to start your programm:
    #run  $cmdLineArgs -p4pg $p4pgfile
    #.
	    commandfile=`echo $commandfile | sed -e s@%f@$dbgfile@g`
	    startpgm="$debugger $commandfile $progname"
    fi
fi

#
# Build a suitable command for the whole thing
#
if [ $just_testing = 1 ] ; then
  doitall="echo"
else
  doitall="eval"
fi
#
$doitall $startpgm
exitstatus=$?
exit $exitstatus