
Using Maisie
This document is primarily intended for UCLA students who are writing
parallel Maisie programs for class or research. A set of Maisie
documentation is available online at http://pcl.cs.ucla.edu/projects/maisie/,
including tutorials for parallel programming and simulation, and the
user's manual.
How to use Maisie on CS machines
If you are a graduate student in the CS department, you should have
an account on the CS machines. If so, you can use the *sequential*
implementation of Maisie available on the departmental server. It is
located in /r/misc1/maisie/solaris_maisie (the compiler is in
/r/misc1/maisie/solaris_maisie/bin). If you want to use the parallel
implementation, or if you don't have an account on the CS machines,
you have to use Maisie on the OAC IBM SP2 (see below). For more detailed
information on compiler flags etc., see below (and the manual).
How to use Maisie on the IBM SP
To login, type:
rlogin cluster.oac.ucla.edu -l login_id
Setup
In general, maisie runs better with tcsh, so if you want to change your
default shell to tcsh, use chsh.
Add the following to your default path:
~ieczmay/maisie/bin
If your default shell is /bin/csh, you can do this with the following
command:
set path=($path ~ieczmay/maisie/bin)
In order to run maisie programs on the SP, you need to set three
environmental variables. For convenience, you may wish to place these
definitions in your .cshrc file.
setenv MP_PROCS 4 #or number of processors you wish to use
setenv MP_HOSTFILE hostfile #hostfile is a list of nodes, see below
setenv MP_EUILIB ip
In order to run your program on multiple processors, you need to
create a hostfile (a regular text file) in the current
directory. The contents of the file should be:
alpha
beta
gamma
delta
f01n09.sp
f01n10.sp
f01n11.sp
f01n12.sp
f01n13.sp
f01n14.sp
f01n15.sp
f01n16.sp
These are the names of the SP2's interactive nodes (processors).
Compilation
To compile your maisie program, type:
mc -sync mpc -o binary_name program_name
To run your program, type:
binary_name -procs 4
(if procs is not specified, MP_PROCS is used)
Troubleshooting
Due to a bug in the compiler, you must:
- always define a variable for all messages
- define all variable in the beginning of entity
For more information check out ~idpbbsp/maisie/README,
~idpbbsp/maisie/PARALLEL.NOTE, ~idpbbsp/maisie/manual/manual.ps
and gopher://cluster.oac.ucla.edu
Getting Better Times
As you will notice, the timing results you get on the SP2 are very
inconsistent. In part, this is because the machine itself is having
problems mounting the filesystems. It is also due to inconsistent
loads.
Of perhaps equal significance, when you run your programs
interactively, the different nodes use standard IP to communicate,
instead of using the high-speed interconnect mechanism. In order to
better utilize the system, there is a command for submitting jobs to
non-interactive nodes. There is a script for submitting jobs to run
in "batch" mode at ~ibuzram/bin/submit.sh.
The syntax is as follows:
submit.sh (p or x) (us or ip) procs (your command and its parameters)
where
A sample call could be:
submit.sh p us 8 mmult -input i16 -output o16 -block 4
which would run on a set of 8 shared processors using the underlying
communication system.
The following supplementary commands are also available.
- llq, shows the queue of waiting jobs
- llcancel, cancels a queued job
Written by Richard A. Meyer with input from
Brian Park and Yuan Chen.
Last updated