PCN Abstract Machine Emulator
Authors: Steve Tuecke and Ian Foster
Argonne National Laboratory
Please see the DISCLAIMER file in the top level directory of the
distribution regarding the provisions under which this software
is distributed.
Running on iPSC/860
To run the system, log into the iPSC/860 front end (SRM). At this
point, you can still only run it from the SRM, even though there is no
host PCN node on the SRM -- the SRM takes care of loading PCN on the
nodes, etc. Then you can run the pcn.ipsc860 executable in one of two
ways: directly, or by way of the 'runpcn' program in the directory.
To run pcn.ipsc860 directly, you would do the following:
% getcube -t 4
% load pcn.ipsc860 -k 700; waitcube
% killcube
% relcube
Unfortunately, there are some problems associated with running it this
way. If you try to kill the emulator with ^C, only the waitcube will
be killed. So output from the emulator will keep coming. The
killcube will still work. But if the emulator is spewing lots of
output, you have to type the killcube while this output is flying at
you.
A better way of running pcn.ipsc860 is to use either the 'runpcn' or
the 'pcn' program included in this directory.
If 'runpcn' and 'pcn' are not yet installed, log into the SRM, change
to the top level PCN source directory, and type:
./install_srm
Altenatively, to only install 'runpcn' and 'pcn', log into the SRM,
change to this directory, and type:
make pcn runpcn
make install
Assuming there is a 'pcn.ipsc860' executable in the current directory,
the above four commands can be replaced by:
% runpcn -t 4 -k 700
Alternatively, if you want to do the getcube/relcube yourself (perhaps
so that you don't have to give up your nodes, or if you are going to
run pcn multiple time), you can do:
% getcube -t 4
% runpcn -k 700
...
% relcube
You can get the syntax for runpcn by running 'runpcn -h'. It is:
runpcn [-t ] [] [ ...]
In other words, the (optional) cubetype must come first. If this
argument is left off, it is assumed that a getcube was already done.
Otherwise, runpcn does the appropriate getcube and relcube.
After the cubetype, the iPSC/860 node executable is (optionally)
specified. If this argument is left off, the default name of
'pcn.ipsc860' is used from the current directory, if the file exists.
Otherwise, a default node executable (i.e.
/usr/local/pcn/bin/pcn.ipsc860) is used.
Finally, the pcn emulator arguments are (optionally) given.
Alternatively, you can use the 'pcn' program in this directory to run
the node executable. The 'pcn' uses 'pcn.ipsc860' in the current
directory if it exists, otherwise '/usr/lcoao/pcn/bin/pcn.ipsc860'.
It just passes all of its arguments through to the node executable.
So to run it, you would do something like:
% getcube -t 4
% pcn -k 700
% relcube
'pcncc.ipsc860' can be used just like all the other versions of pcncc.
To create a version of the emulator for the iPSC/860 that has file.o
linked in and has the name 'mypcn', log into the cross compilation
machine and run:
% pgcc -c file.c -node
% pcncc.ipsc860 file.o -o mypcn
Then to run it:
% runpcn -t 4 mypcn
or:
% runpcn -t 4 mypcn -k 700
or:
% getcube -t 4
% runpcn mypcn
% relcube
or whatever.
By default, pcncc.ipsc860 produces a node executable called 'pcn.ipsc860'.