70 likes | 231 Views
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)]
E N D
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 • http://www.cs.tamu.edu/research/parasol/resources/ • 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