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.
- 11/11 (M): Veterans day--no class.
- 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/27 (W) & 11/29 (F): Thanksgiving holiday--no class.
- 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
- 10/16 (W): Scaling of hybrid MPI+OpenMP MD;
frequently asked questions on assignment 5;
order-invariant real number summation
- 10/18 (F): Multithreading on graphics processing units (GPUs) by
CUDA
- 12/2 (M): Final-project presentations (1)
- 12/4 (W): Final-project presentations (2)
- 12/6 (F): Final-project presentations (3)