SCIENTIFIC COMPUTING & VISUALIZATION (Fall 2024)
Course Number: CSCI 596
Section: 30280D (lecture); 30146R (hands-on)
Session: 048
Instructor:
Aiichiro Nakano;
office: VHE 610; email: anakano@usc.edu
TA: Taufeq Razakh (razakh@usc.edu), Kai Chen (kchen035@usc.edu), Pranav Jain (pranavj@usc.edu)
Lecture: 3:30-4:50pm M W, SOS B2
Hands-on: 3:30-4:20pm F, ZHS 159
Office Hour: 4:30-5:20pm F, VHE 610
CARC (Center for Advanced Research Computing) Office Hour:
2:30-5:00 pm T
Assignment Submission and Grade Posting: Brightspace
Prerequisites: Basic knowledge of programming, data structures,
linear algebra, and calculus;
A nice introduction for a non-computer science student to fill the gap:
Y. Patt and S. Patel,
Introduction to Computing Systems: From Bits and Gates to C and beyond;
A fun reading about the whole computer-science discipline: T. Hey and G. Papay,
The Computing Universe;
A survival guide for daily computational research: A. Scopatz and K. D. Huff,
Effective Computation in Physics --
USC students have free access through
Safari Online;
Introductory courses on mathematical methods:
Methods of Computational Physics &
part I of Deep Learning book.
Textbooks:
W. D. Gropp, E. Lusk, and A. Skjellum, "Using MPI, 3rd Ed."
(MIT Press, 2014)--recommended
M. Woo, et al., "OpenGL Programming Guide, Version 4.5, 9th Ed."
(Addison-Wesley, 2016)--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. For details, please see
course information sheet.
Visualization of 112 million-atom reactive molecular dynamics simulation to study
high-temperature oxidation of a silicon-carbide nanoparticle on 786,432 IBM Blue Gene/Q cores.
Announcements
- 8/26 (M): The class begins.
- 8/26 (M): Registration is open till Sep. 16 (M) for the
ALCF Hands-on HPC Workshop (Oct. 29-31, Argonne National Laboratory, IL).
- 8/29 (Th): Seminar by Prof. John Paul Strachan (RWTH Aachen, Germany)
on
Engineering memristor-CMOS based neuromorphic architectures for computational acceleration: NP-hard optimization problem solvers and building associative memories.
- 9/2 (M): Labor day--no class.
- 9/4 (W): You have been added as a user of the project, anakano_429, at CARC.
- 9/4 (W): The Office of International Services (OIS) has informed us
that the US Citizenship and Immigration Services (USCIS) has begun auditing
the physical location of our F-1 international students.
US immigration regulations require physical in-person class attendance
for students on F-1 visas during the Fall and Spring semesters.
Students who need exam or attendance accommodations related to accessibility
and illness should go through the university's Office of Student Accessibility
Services (OSAS) office to receive approval for such accommodations; please
contact the
VASE Academic Services and Programs team for guidance.
- 9/6 (F): CARC workshop,
scientific computing: overview of an HPC cluster and essential Linux commands,
at 10 am-12 noon;
registration.
- 9/13 (F): Assignment 1 due at 11:59 pm.
- 9/17 (T):
CARC in-person office hour has resumed: Leavey Library 3L, 2:30-5:00 pm
every Tuesday.
- 9/18 (W):
Center for Computational Language Sciences Kick-off
at 1-3 pm in BCI Cammilleri Hall.
- 9/20 (F): CARC workshop on
Installing and using software on CARC systems at 10 am.
- 9/20 (F): Assignment 2 due at 11:59 pm.
- 9/24 (T): Seminar by
Dr. Albert Musaelian (Harvard)
on
Designing neural network architectures for effective scientific computing
at 4 pm in ZHS 352.
- 9/27 (F): CARC workshop on
Running jobs on CARC systems at 10 am.
- 9/27 (F): Assignment 3 due at 11:59 pm.
- 10/3 (Th): Workshop on Frontiers of Engineered Coherent Matter and Systems
at 5 am-3:15 pm;
register.
- 10/4 (F): Assignment 4 due at 11:59 pm.
- 10/8 (T): See the 2024 Nobel prize in physics for John Hopfield & Geoffrey Hinton
on
machine learning with artificial neural networks.
- 10/9 (W): See the 2024 Nobel prize in chemistry for David Baker, Demis Hassabis, & John Jumper
on
computational protein design & deep-learning prediction of protein structures.
- 10/11 (F): Fall recess--no class.
- 10/21 (M): Assignment 5 due at 11:59 pm.
- 10/21 (M): See the news on
Oracle's planned Zettaflop/s computer in 2025.
- 10/25 (F): CARC workshop,
Optimizing Python for HPC at 10 am.
- 10/28 (M): Registration is open for
USC Quantum Technologies Forum on Thursday, Nov. 7, 9 am-6 pm.
- 10/28 (M): Assignment 6 due at 11:59 pm.
- 11/1 (F): CARC workshop,
GPU programming with Python at 10 am.
- 11/7 (Th):
USC Quantum Technologies Forum at 9 am-6 pm in Town & Gown.
- 11/8 (F): CARC workshop,
Building neural networks for deep learning applications at 10 am.
- 11/8 (F): Assignment 7 due at 11:59 pm.
- 11/11 (M): Veterans day--no class.
- 11/15 (F): CARC workshop,
Running deep learning applications on HPC systems at 10 am.
- 11/15 (F): Assignment 8 due at 11:59 pm.
- 11/16 (Sa) & 17 (Su): Awe & Wonder --
dance performances inspired by scientists in AI & metaverse, including
my quantum simulations on supercomputers.
- 11/18 (M): Seminar on
recent advances in pushing back the system-size and accuracy limitations
in density functional theory by
Prof. Vikram Gavini (Michigan).
- 11/22 (F): Please meet with me to discuss your final-project idea with me by Nov. 22.
- 11/25 (M): Register for a webinar on
remote workflows.
- 11/27 (W) & 11/29 (F): Thanksgiving holiday--no class.
- 12/2 (M): Volunteer job openings for computer vision, deep learning, image processing,
robotics, and 3D point clouds at USC Civil Engineering; apply
here.
- 12/13 (F): Final project repository due.
Class Schedule
- 8/26 (M): Course information;
big picture: cyber-science nexus
- 8/28 (W):
Introduction: what is scientific computing?;
see
ten computer codes that transformed science,
J. Perkel, Nat. Phys. 589, 345 (2021)
- 8/30 (F):
Introduction (continued): what you will learn in CSCI 596
- 9/4 (W): Molecular dynamics (MD): notes;
slides;
see
Computer Meets Theoretical Physics,
G. Battimelli et al. (Springer, 2020)
- 9/6 (F): Linear-scaling MD:
notes on linked-list cell MD;
slides (starting page 26);
asymptotic analysis of functions
- 9/9 (M): Discussion of assignment 1 (see Brightspot for the assignment);
theoretical peak performance of a computer;
why assignments are too easy?
- 9/11 (W): Message passing interface (MPI):
notes; slides;
getting started with Discovery cluster
- 9/13 (F): MPI -- global operations; discussion of assignment 2
- 9/16 (M): MPI -- communicator and asynchronous message passing;
additional information on assignment 2
- 9/18 (W): Parallel computation of Pi:
scalability analysis of parallel program
- 9/20 (F): Discussion of assignment 3 -- see frequently asked questions
on assignment 3
- 9/23 (M): Parallel MD: notes;
slides;
additional information on assignment 3
- 9/25 (W): Discussion of assignment 4, part 1 -- see frequently asked questions
on assignment 4 and
parallel MD;
additional information on assignment 4, part 1
- 9/27 (F):
In situ analysis of MD simulation data using communicators;
discussion of assignment 4, part 2 -- see frequently asked questions
on assignment 4 and
parallel MD;
additional information on assignment 4, part 2
- 9/30 (M): Scalability analysis of parallel MD;
MD machines;
Shaw's NT algorithm
- 10/2 (W): Discussion of final project topics,
notes on final project;
parallel quantum dynamics
- 10/4 (F): Introduction to GitHub
for final projects;
Git examples
- 10/7 (M): Multithreading by OpenMP
- 10/9 (W): Hybrid MPI+OpenMP MD;
2024 Nobel prize
- 10/14 (M): Discussion of assignment 5;
additional information on assignment 5, part 1
- 10/16 (W): Scaling of hybrid MPI+OpenMP MD;
frequently asked questions on assignment 5;
order-invariant real number summation;
additional information on assignment 5, part 2
- 10/18 (F): Multithreading on graphics processing units (GPUs) by
CUDA
- 10/21 (M): Pair distribution computation with CUDA;
frequently asked questions on assignment 6;
discussion of assignment 6, part 1;
additional information on assignment 6, part 1
- 10/23 (W): Hybrid MPI+OpenMP+CUDA computing;
discussion of assignment 6, part 2;
additional information on assignment 6, part 2
- 10/25 (F): Advanced CUDA topics
- 10/28 (M): Visualizing molecular dynamics;
slides;
how to install OpenGL and GLUT;
massive dataset visualization
- 10/30 (W): VMD & OVITO visualization of molecular dynamics;
discussion of assignment 7;
see J. Buriak,
Summarize your work in 100 milliseconds or less,
ACS Nano 5, 7685 (2011)
- 11/1 (F): Virtual-reality programming
- 11/4 (M): OpenMP target offload
for heterogeneous data parallel computing
- 11/6 (W): SYCL
for unified heterogeneous parallel computing;
parallel programming: now what?
- 11/8 (F): Discussion of assignment 8 (OpenMP target offload and SYCL);
Intel Tiber AI Cloud;
using Intel Tiber AI Cloud
- 11/13 (W): Optimizing molecular dynamics;
see Berkeley CS267 lecture on
Memory hierarchies and matrix multiplication
- 11/15 (F):
Performance profiling hands-on;
see
Intel Vtune/Advisor tutorial by K. O'Leary
- 11/18 (M): Grid computing;
MapReduce;
discussion with a special guest,
Prof. Vikram Gavini (Michigan)
- 11/20 (W): Quantum computing hands-on:
lecture on quantum computing for science;
hands-on exercise on
qubits and quantum gates and
quantum dynamics simulation;
IBM Quantum Cloud
- 11/22 (F): Final project discussion
- 11/25 (M): Summary
-- what we have learned & where to go from here;
final project discussion
- 12/2 (M): Final-project presentations (1); see
final all-star lineup
- 12/4 (W): Final-project presentations (2)
- 12/6 (F): Final-project presentations (3)