sh, bsh, csh, ksh, tcsh, bash, tsh. If you experience problems during your first login, try to remove operating-system specific stuff from your shell configuration file (for example, AIX does not have the
archcommand; you can use
unameinstead). The file
/usr/lpp/bos/READMEcontains information about the release of AIX used on our SP-2. In addition to
manyou can use InfoExplorer to get more information about commands and usage of the machine. To use this program, set up your remote display properly and type
poeto run parallel jobs that use neither Active Massages nor Split-C (and
info -l peor
man poeto read more about
/usr/u/sww. Be sure that
are in your path.
Split-CSplit-C is a simple extension to C for parallel computing. It provides a global address space though global pointers which can be dereferenced just like regular pointers. Split-phase assignment statements allow programmers to hide the latency of remote accesses by overlapping computation and communication. Examples and makefiles can be found in
Before working with Split-C, source
~sww/sp2/etc/sp2-setenv. Users of non-csh shells should execute commands in
~sww/sp2/etc/sp2-setenv-non-csh. To compile Split-C programs, create a
Makefile(look at samples in various directories in
~sww/sp2/split-c-bench/cu-bench) and type
gmake. You must include
Makefile! Split-C programs are run in the same way as Active Messages programs, i.e. using
amrscripts located in
/usr/u/sww/sp-2/bin. For example, to run a program
fooon 3 processors type
Debugging Split-CTo debug a Split-C program, the following steps need to be done:
- include split-c/debug.h
- insert splitc_debug() as the first statement to be executed after splitc_main()
- compile and run your program as described in the previous section
- you will see the following message in node 0 (most commonly run on granita1): Debugging Split-C -- hit enter to continue:"
- before hitting return, log onto the node you want to debug (if you want to debug the master node, open a new shell)
- go to the directory where your program source is located
- run gdb
- inside gdb, do:
file am_run, and then
attach pid, where pid the the proc id of the am_run process on the node being debugged
- hit return on node 0 to let computation proceed
- once you've attached gdb to am_run, am_run is stopped by gdb, and you can set breakpoints, look at stack frames, etc.
Active MessagesActive Messages is a low-overhead communication layer that offers high-performance communication on many parallel machines. A native Active Messages layer (SP2AM) is now available for the SP-2. The main performance characteristics of SP2 AM are a one-word round-trip latency of 51 us and an asymptotic network bandwidth of 34.3 MB/s.
The SP2AM library is found in
/usr/u/sww/sp-2/lib/libsp2gam.aand the header file is in
/usr/u/sww/sp-2/include. Before running programs that use Active Messages, source
amrscripts are located also in
MPIMPI is a popular message passing interface for portable parallel programs. We have an implementation of MPI (based on the MPICH library) running over Active Messages on the SP-2. The header files are located in
/usr/u/sww/sp-2/include. The library file is located in
/usr/u/sww/sp-2/lib. The easiest way to compile and link is with the script file "ampicc" (which is built on top of xlC):
ampicc -O3 foo.c -o foo
You can also compile MPI programs with xlC, gcc, and split-cc (please look at the examples in the directory ~sww/sp2/ampi/examples for information about this). MPI programs are run exactly like ordinary Active Messages programs (i.e. "
amr4 foo"). Be sure to source
Other softwareSoftware available on granita1 and granita2 also includes tcsh, bash, C Set ++ (xlC), Fortran (xlf), xpdbx, X11, matlab. GNU software installed in
~sww/sp2/gnuincludes emacs, gmake, gcc, g++, gdb, bison. Some of it is replicated locally in /usr/local/gnu/bin.
ProblemsIf you experience difficulties with the SP-2, please contact the SP-2 czar Grzegorz Czajkowski.