SCIENTIFIC COMPUTING AND VISUALIZATION (Fall 09)
Course Number: CSCI 596
Class Number: 30173R
Instructor:
Aiichiro Nakano;
office: VHE 610; phone: (213) 821-2657; email: anakano@usc.edu
Lecture: 3:30-4:50pm M W, SGM 601
Office Hours: 3:30-4:50pm F
Prerequisites: Basic knowledge of programming, data structures,
linear algebra, and differential equations.
Textbooks:
W. D. Gropp, E. Lusk, and A. Skjellum, "Using MPI, 2nd Ed."
(MIT Press, 1999)--recommended
M. Woo, et al., "OpenGL Programming Guide, Version 2.1, 6th Ed."
(Addison-Wesley, 2007)--recommended
A. Grama, A. Gupta, G. Karypis, and V. Kumar, "Introduction to Parallel Computing, 2nd Ed."
(Addison-Wesley, 2003)--recommended
Course Description
Particle and continuum simulations are used as a vehicle to learn basic elements of high
performance scientific computing and visualization. Students will obtain
hands-on experience in: 1) formulating a mathematical model to describe a physical
phenomenon; 2) discretizing the model, which often consists of continuous differential
or integral equations, into algebraic forms in order to allow numerical solution on
computers; 3) designing/analyzing numerical algorithms to solve the algebraic equations
efficiently on parallel computers; 4) translating the algorithms into a program;
5) performing a computer experiment by executing the program;
6) visualizing simulation data in an immersive and interactive virtual environment;
and 7) managing/mining large datasets.

Visualization of 209 million-atom simulation of hypervelocity impact on
a high-strength ceramic plate on a tiled display.
Syllabus
- Basic molecular dynamics (MD) algorithms
- Integration of ordinary differential equations; periodic boundary
condition; linked-list cells
- Parallel MD
- Spatial decomposition (interprocessor caching and migration);
load balancing; scalability analysis; asynchronous MD
- Message passing interface (MPI) vs. shared memory (OpenMP) programming
- Hybrid MPI+OpenMP programming
- Build-it-yourself PC cluster
- Multicore parallel programming (e.g., Cell, GPU)
- Scientific visualization
- OpenGL programming
- Virtual environment programming--CAVE Library, ImmersaDesk, tiled display
- Scientific data management/mining
- Data compression for scalable I/O
- Graph-based knowledge discovery
- Grid scientific computing
- Computation steering on the Grid-integrated parallel computing, data
storage, and visualization resources via high-speed networks
- Grid enabling parallel applications
- Object-oriented scientific programming
- Parallel software tools for irregular data structures;
object-oriented MD; Python wrappers
- Other simulation methods
- Stochastic simulations: Monte Carlo method
- Continuum simulations: Schrodinger equation in quantum mechanics
Announcements
- 8/26/09 (W): You may be interested in a Webnar on
parallel computing with Matlab on Sep. 22 (T).
- 9/2/09 (W): For assignments, both electronic submission via email and a hard copy
at the class will be accepted.
- 9/2/09 (W): You may use any computer with a C compiler for assignment 1.
- 9/14/09 (M): Please see information on
Oklahoma Supercomputing Symposium 2009.
- 9/16/09 (W): Tour of HPCC--please bring your photo ID;
we will meet at the classroom and will take a tram together. Thank you very much, Maureen,
for the great tour.
- 9/28/09 (M): Please see a sample PBS script
for assignment 2.
- 10/1/09 (Th): See artiles on parallel molecular-dynamics simulations on
GPU and
special-purpose hardware
in the Communications of the ACM.
- The submission date of assignment 2 has been extended to Friday, Oct. 2.
- 10/7/09 (W): For advanced communication schemes for MD simulation, see:
K. J. Bowers, et al.,
J. Chem. Phys. 124, 184109 ('06).
- 10/7/09 (W): For "metascalable" parallel molecular dynamics, see:
K. Nomura, et al.,
Proc. of IPDPS 2009.
- 10/14/09 (W): Tour of VizLab (SSL 104) + building PC.
- 10/19/09 (M): Special lecture on
large scale computing at Linkedin
by Bhupesh Bansal (Linkedin); also see (1)
Linkedin Grads Guide:
How to leverage linkedin to the max for students; and (2)
Linkedin job/internship openings.
- 10/26/09 (M): For tensor-field visualization mentioned in assignment 5, see:
L. Hesselink, et al.,
IEEE Computer Graphics & Applications 14, 76 ('93);
W. Ribarsky, et al.,
IEEE Computer 27(7), 57 ('94);
A. Sigfridsson, et al.,
IEEE Visualization 2002, (IEEE, 2002) p. 371.
- 11/2/09 (M): Discussion session for assignment 5 at 5:00pm in VHE 610.
- 11/2/09 (M): If you are woking in a group for the final project, please participate in
the
survey at the Annenberg School of Communication; for questions regarding the survey,
please email Li Lu.
- 11/4/09 (W): Special lecture on
"FPGA on-chip debugging tools and methodologies"
by Dr. Jingzhao Ou of Xilink, Inc.
Lecture Notes
Assignments
Source Codes
- Sequential MD program: md.c, md.h, md.in
- Linked-list cell MD program: lmd.c, lmd.h, lmd.in
- MPI basics: mpi_simple.c, mpi_comm.c, irecv_comm.c, mpi_simple_sample.pbs
- Parallel MD program: pmd.c, pmd.h, pmd.in
- Visualizing MD simulation: atomv.c, atomv.h, md.conf
- Quantum dynamics: qd.c, qd.h, qd.in; qd1.c, qd1.h, qd1.in
- OpenMP basics: omp_example.c, omp_example_set.c, omp_pi_critical.c, omp_pi.c
- Hybrid MPI+OpenMP: hpi.c
Useful Links
- Message Passing Interface (MPI)
- OpenMP
- OpenGL
- CUDA
- Parallel Computing
- Network/Grid Scientific Computing
- Virtual Reality/Visualization
- CAVE programming
at Electronic Visualization Laboratory at University of Illinois at Chicago
- IEEE Virtual Reality Conference
- ACM SIGGRAPH Conference
- IEEE Visualization Conference
- VMD:
Visual Molecular Dynamics at University of Illinois at Urbana-Champaign
-
Atomsviewer: A scalable molecular visualization code
- VisIT visualization tool
at Lawrence Livermore National Laboratory
- ParaView parallel visualization application
at Los Alamos National Laboratory
- VISTA scalable volume renderer
at Sandiego Supercomputing Center
- Scientific Object Oriented Programming
- Linux Cluster
- Network/Interconnect
- Supercomputing & Information Technology for Science & Engineering
- Computational Science
- Numerical Methods