Download presentation
Presentation is loading. Please wait.
Published byJeffrey McCoy Modified over 6 years ago
1
Is System X for Me? Cal Ribbens Computer Science Department
Lab. For Adv. Scientific Comput. & Applications (LASCA)
2
Outline System X configuration Programming model and environment
Problems most suited for System X Next steps Take-away messages
3
System 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
4
Key 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.
5
Programming 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.
6
MPI: 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
7
MPI 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
8
Code 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
9
What will run well on X (and be worth the trouble)?
Large-scale computations: 100’s 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
10
What 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.
11
Next 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 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
12
Last Comments HPC is hard: System X …
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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.