Introduction to Parallel Programming on parasol.cs.tamu.edu -- PARASOL’s 16 processor V2200 Jack Perdue / System Analyst II January 29, 2001 CPSC 626
HW Overview 16 PA-8200 CPU’s (PA = HP’s Precision Architecture) - 64 bit 200MHz RISC [each CPU costs $25,000 (that’s a lot of Athlons)] 2MB Data and 2MB Instruction Cache (off processor but on processor card [L2]) 8x8 Hyperplane (Exemplar Routing Attachment Controller) provides 960MB/sec each way for each channel for a total of 15.3GB/sec bidirectional bandwidth 4GB RAM in parasol.cs.tamu.edu
HW Overview (cont’d) EPAC - Exemplar Processor Agent Controller -- connects two CPUs to EPIC and ERAC EPIC - Exemplar PCI Interface Controller ERAC - Exemplar Routing Attachment Controller (four combined together create the 8x8 Hyperplane crossbar) EMAC - Exemplar Memory Agent Controller -- each can access 4 banks of memory
SW Overview OS is HP-UX 11.0, Hewlett Packard’s Unix OS on parasol.cs (and all V-class systems) runs in 64-bit mode providing 40 bits of addressable physical memory (HP-UX also runs in 32-bit) CPU capable of full 64-bit but only 40 bits used on V-class to reduce cost -- still provides a terabyte of addressing 32 bit programming sufficient for most tasks (e.g. this class) and is the default 64 (40) bit addressing can be used for applications that need more than 2GB of RAM (+DA2.0W)
Compiling/Linking with POSIX Threads (pthreads) “-D_POSIX_C_SOURCE=199506L” needed at compile time “-lpthread” needed during final link ppcall.o (from.c) needed for “PARDO API” provided in example Easiest to copy/modify provided Makefile “make sum.pthread” creates sum.pthread Appendix A in HP’s “Parallel Programming Guide for HP-UX Systems” is basis for the sample program [it could be improved ]
Creating MPI based programs number of ways to actually compile best to use the provided mpicc/mpiCC scripts (in /opt/omni/bin) -- they will invoke HP’s ANSI C/C++ compiler e.g. “mpicc -o sum.mpi sum.mpi.c” creates the MPI based executable sum.mpi present MPI example blows doors on the pthread example [blame ppcall.c]
More Information links to more documentation -- the Developer’s Resource Library is very helpful some notes for those familiar with CS department systems complete software/hardware listing