Title: Is System X for Me
1Is System X for Me?
- Cal Ribbens
- Computer Science Department
- Lab. For Adv. Scientific Comput. Applications
(LASCA)
2Outline
- System X configuration
- Programming model and environment
- Problems most suited for System X
- Next steps
- Take-away messages
3System X Configuration
- A cluster multiple computers used as a single,
unified resource.'' (Pfister, 1998) - 1100 Apple G5 Xserves
- CPU PPC970, 2GHz, 64 bit.
- Node 2 CPUs, 4 GB RAM, 160 GB disk
- Primary interconnect InfiniBand
- Secondary interconnect Gigabit Ethernet
- Peak theoretical speed 17.6 TF
- Linpack benchmark 10.3 TF
4Key Architectural Features
- Distributed memory
- Both physically and logically distributed
- As opposed to SMP or DSM/VSM
- Standard OS on each node --- unix
- High-performance interconnection network
- NFS over fast Ethernet for file i/o, data
staging, etc.
5Programming Model Environment
- Automagic compiler/IDE? Sorry.
- New programming language? Maybe if you are
writing new code from scratch. - Commercial or community codes? Slowly emerging
in some areas. - Existing languages (Fortran, C, C) plus MPI?
Most common. Possibly threads within a node.
6MPI Message Passing Interface
- Programming model multiple processes (usually
each an instance of the same program),
communicating by explicit message passing. - MPI is a de facto standard API.
- Several implementations available for tcp/ip and
for fast networks, e.g., Myrinet, InfiniBand. - Goals of MPI
- Portable, high-performance parallel codes
- Support for writing parallel libraries
7MPI Hello World
include 'mpif.h' integer myid, ierr,
token, status(mpi_status_size) call
mpi_init (ierr) call mpi_comm_rank
(mpi_comm_world, myid, ierr ) if (myid
.eq. 0) then print , "hello"
call mpi_send (token, 1, mpi_integer, 1, 0,
mpi_comm_world, ierr) else call
mpi_recv (token, 1, mpi_integer, 0, 0,
mpi_comm_world, status, ierr) print ,
"world" endif call mpi_finalize
(ierr) stop end
8Code Development Environment
- Standard editors, compilers, Unix tools. Work
done on a front-end node. - Job startup Batch system or command-line, e.g.,
mpirun np 4 myexecutable - Debugging? Usual tools within node. Totalview
for MPI. - Performance debugging? Tau
9What will run well on X (and be worth the
trouble)?
- Large-scale computations 100s GB RAM, months
of compute time. - Regular computations where work and data is
easily decomposed into many large, uniform
chunks. - Dense vs. sparse matrices
- Regular vs. irregular meshes
- Molecular statics vs. molecular dynamics
10What runs well? (continued)
- Scalable computations
- (work / communication) stays away from zero
- Load stays balanced
- Number of independent tasks scales up (and down)
- Reasonable interprocess communication
requirements - Too much ? communication will be bottleneck
- Too little ? not a problem but maybe consider
grid computing.
11Next Steps
- Basic MPI short-course Feb 17, 19, 24, 26.
- Future LASCA short-courses likely
- Consulting grad student office hours or meet
with LASCA faculty (lasca_at_cs.vt.edu) - Summer FDI on parallel programming
- CS 4234 in F04, CS 5984 or 6404 in S05.
- Refs
- Gropp, Lusk, Skjellum, Using MPI, (2nd ed.), MIT
Press, 1999. - www-unix.mcs.anl.gov/mpi
- research.cs.vt.edu/lasca
12Last Comments
- HPC is hard
- Models, machines, algorithms, software
- Students should get credit
- Collaboration is required
- System X
- will make a huge difference for a few
- will make a big difference for many
- will be a success if we do great research,
leverage the visibility, and build a community.