COMPILING AND RUNNING The code is under the fish-code directory. Assignment: index.html Base sequential implementation: fish-code/sequential Primary parallel implementations: fish-code/mpi fish-code/pthreads fish-code/openmp To compile the code, use a sequence like the following: mkdir build cd build ../fish-code/configure make On Seaborg, load a few modules first: module load vampir vampirtrace This will leave the source untouched and place executables in appropriate directories under build/. Run build/sequential/fish -h to see the basic options all programs take. The pthreads program takes an additional -p option to specify the number of threads. On CITRIS, you run an MPI job with mpirun -np 4 build/mpi/fish (for 4 processors). Seaborg is a bit more complex; see NERSC's web pages for full information. The interactive equivalent to mpirun is poe. You run on four processors with poe build/mpi/fish -nodes 4 Using fish_vt will produce a Vampir trace in fish_vt.bvt. Display it with vampir fish_vt.bvt or vampir -install fish_vt.bvt if you receive a ton of color-related messages. To see the "fish": mpirun -np 4 build/mpi/fish -o fishies ./aquarium fishies Try using aquarium from the x86 Millennium machines (napa.millennium.berkeley.edu, sonoma.millennium.berkeley.edu). No one else seems to have Tkinter installed. OpenMP uses an environment variable to set the number of processors. For four threads, use env OMP_NUM_THREADS=4 build/openmp/fish I haven't gotten OpenMP to work on the CITRIS cluster. Please tell me if you do... Good luck, and let me know of the inevitable bugs. -- Jason Riedy ejr@cs.berkeley.edu