Home | Syllabus | Lectures | Readings | Assignments | Codes | Links |
---|

**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.

- 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.

- 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)