# High Performance Scientific Computing

- Institution: IIT Bombay
- Department: Mathematics
- Teacher: Prof. Shivasubramanian Gopalakrishnan Prof. Om Jadhav Prof. S Vamshi Krishna Prof. Ashish Kuvelkar
- Level: Undergraduate
- Language: English
- Subjects: Mathematics
- Source: [NPTEL](https://nptel.ac.in/courses/111101611)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/111101611)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

## Lectures

1. [Week 0: Lec 0: Introduction to High Performance Scientific Computing](https://invisiblenetwork.ai/learn/nptel/111101611/1c102ce333e9) (Video)
2. [Week 1: Lecture 1: Introduction to Operating System.](https://invisiblenetwork.ai/learn/nptel/111101611/c20a16bf68cd) (Video)
3. [Week 1: Lecture 2: Linux Kernel Explained](https://invisiblenetwork.ai/learn/nptel/111101611/4029f1bf736b) (Video)
4. [Week 1: Lecture 3: Mastering Linux Directory and File Management](https://invisiblenetwork.ai/learn/nptel/111101611/4405fd135bb8) (Video)
5. [Week 1: Lecture 4: Understanding File Permissions and Ownership in Linux](https://invisiblenetwork.ai/learn/nptel/111101611/e1424d23494e) (Video)
6. [Week 1: Lecture 5: Mastering Linux Text Processing and File Management](https://invisiblenetwork.ai/learn/nptel/111101611/9adc1d2871da) (Video)
7. [Week 1: Lecture 6: Linux Memory and Networking Commands](https://invisiblenetwork.ai/learn/nptel/111101611/93d0af7bf191) (Video)
8. [Week 2: Lecture 1: Understanding Shell Scripting: Parent-Child Processes and User Input Handling](https://invisiblenetwork.ai/learn/nptel/111101611/e9ce3c0ec008) (Video)
9. [Week 2: Lecture 2: Shell Scripting Tutorial for Beginners](https://invisiblenetwork.ai/learn/nptel/111101611/c964147c22f6) (Video)
10. [Week 2: Lecture 3: Introduction to High-Performance Computing (HPC) and Its Key Components](https://invisiblenetwork.ai/learn/nptel/111101611/ca6952a5347e) (Video)
11. [Week 2: Lecture 4: Exploring Computing Platform Architecture and CPU Optimization Techniques](https://invisiblenetwork.ai/learn/nptel/111101611/e015621c7481) (Video)
12. [Week 2: Lecture 5: Hierarchical Memory Systems and Scalable Architectures in Large-Scale Computing](https://invisiblenetwork.ai/learn/nptel/111101611/910ecd434dc8) (Video)
13. [Week 2: Lecture 6: Concurrency and Synchronization in Parallel Programming:Techniques and Frameworks](https://invisiblenetwork.ai/learn/nptel/111101611/1052d283ed21) (Video)
14. [Week 3: Lecture 1: Need for Parallel Computing](https://invisiblenetwork.ai/learn/nptel/111101611/614d7f62e527) (Video)
15. [Week 3: Lecture 2: Role of Numerical Models in Solving complex problems on Computers](https://invisiblenetwork.ai/learn/nptel/111101611/fcfbad8fc450) (Video)
16. [Week 3: Lecture 3: Common Challenges with Memory in Computer Architecture](https://invisiblenetwork.ai/learn/nptel/111101611/dae92ac2cc4e) (Video)
17. [Week 3: Lecture 4: Organization of hardware in Large HPC systems](https://invisiblenetwork.ai/learn/nptel/111101611/524377b4b6a1) (Video)
18. [Week 3: Lecture 5: Architecture of Nvidias Grace Hopper Superchip](https://invisiblenetwork.ai/learn/nptel/111101611/170b846999f3) (Video)
19. [Week 3: Lecture 6: Introduction to Shared Memory Programming using OpenMP](https://invisiblenetwork.ai/learn/nptel/111101611/ba24db6d8007) (Video)
20. [Week 4: Lecture 1: Distribution of work using multiple OpenMP Threads](https://invisiblenetwork.ai/learn/nptel/111101611/1b047b124c8c) (Video)
21. [Week 4: Lecture 2: Synchronization and Parallel Loops in OpenMP](https://invisiblenetwork.ai/learn/nptel/111101611/c0335cbbe962) (Video)
22. [Week 4: Lecture 3: Storage attributes of different variables in OpenMP](https://invisiblenetwork.ai/learn/nptel/111101611/6db97f7c04a1) (Video)
23. [Week 4: Lecture 4: OpenMP Memory Model, Irregular Parallelism, and Tasks](https://invisiblenetwork.ai/learn/nptel/111101611/70fe24641e89) (Video)
24. [Week 4: Lecture 5: Parallelization of example codes using OpenMP - Part 1](https://invisiblenetwork.ai/learn/nptel/111101611/c595aae314fb) (Video)
25. [Week 4: Lecture 6: Parallelization of example codes using OpenMP - Part 2](https://invisiblenetwork.ai/learn/nptel/111101611/d7615dbc0ada) (Video)
26. [Week 5: Lecture 1: Introduction to Message Passing Interface (MPI)](https://invisiblenetwork.ai/learn/nptel/111101611/c985d0b27131) (Video)
27. [Week 5: Lecture 2: Sending and Receiving the messages using MPI](https://invisiblenetwork.ai/learn/nptel/111101611/9054bad4d988) (Video)
28. [Week 5: Lecture 3: Collective Communication in MPI](https://invisiblenetwork.ai/learn/nptel/111101611/8760c654c163) (Video)
29. [Week 5: Lecture 4: Domain Decomposition](https://invisiblenetwork.ai/learn/nptel/111101611/a8f1c53af202) (Video)
30. [Week 5: Lecture 5: Parallelization of example code using MPI](https://invisiblenetwork.ai/learn/nptel/111101611/c15ae14e9800) (Video)
31. [Week 5: Lecture 6: Performance Analysis Frameworks for Parallel Programming](https://invisiblenetwork.ai/learn/nptel/111101611/28f8c6e0a3a1) (Video)
32. [Week 6: Lecture 1: Examples of Collective Communication in MPI: Part 1](https://invisiblenetwork.ai/learn/nptel/111101611/82b7b8c08bb0) (Video)
33. [Week 6: Lecture 2: Examples of Collective Communication in MPI: Part 2](https://invisiblenetwork.ai/learn/nptel/111101611/630e7843b6e4) (Video)
34. [Week 6: Lecture 3: Introduction to GPU Computing](https://invisiblenetwork.ai/learn/nptel/111101611/a5ba2dcbb04e) (Video)
35. [Week 6: Lecture 4: A Dive into Software Stack and Nvidia Architecture](https://invisiblenetwork.ai/learn/nptel/111101611/ae365585578f) (Video)
36. [Week 6: Lecture 5: Comparative Analysis of NVIDIA and Intel GPU Architectures](https://invisiblenetwork.ai/learn/nptel/111101611/632ed6ce0f0b) (Video)
37. [Week 6: Lecture 6: Understanding FLOPS and Memory Bandwidth Calculations for NVIDIA GPUs](https://invisiblenetwork.ai/learn/nptel/111101611/e4393aa8d8e3) (Video)
38. [Week 7: Lecture 1: SIMD vs. SIMT: Thread Mapping, Scheduling, and Pipelining in NVIDIA GPUs](https://invisiblenetwork.ai/learn/nptel/111101611/beebd22fb0cc) (Video)
39. [Week 7: Lecture 2: Understanding 1D, 2D, and 3D Grid Arrangements Part 1](https://invisiblenetwork.ai/learn/nptel/111101611/6aea42eb27c3) (Video)
40. [Week 7: Lecture 3: Understanding 1D, 2D, and 3D Grid Arrangements Part 2](https://invisiblenetwork.ai/learn/nptel/111101611/2fb496e0cded) (Video)
41. [Week 7: Lecture 4: Thread Block Mapping and Warp Scheduling in GPU](https://invisiblenetwork.ai/learn/nptel/111101611/3dac54cda592) (Video)
42. [Week 7: Lecture 5: Exploring Warp Scheduling and Latency Management in NVIDIA GPUs](https://invisiblenetwork.ai/learn/nptel/111101611/28eabe5c935d) (Video)
43. [Week 8: Lecture 1: An Introduction to GPU Programming: Tools, Techniques, and CUDA Part - 1](https://invisiblenetwork.ai/learn/nptel/111101611/39b73e6b252a) (Video)
44. [Week 8: Lecture 2: An Introduction to GPU Programming: Tools, Techniques, and CUDA Part - 2](https://invisiblenetwork.ai/learn/nptel/111101611/3f304f072dce) (Video)
45. [Week 8: Lecture 3: Understanding NVIDIA GPU Memory Types and Efficient Memory Management Part 1](https://invisiblenetwork.ai/learn/nptel/111101611/9fe05e161b07) (Video)
46. [Week 8: Lecture 4: Understanding NVIDIA GPU Memory Types and Efficient Memory Management Part 2](https://invisiblenetwork.ai/learn/nptel/111101611/ba24b8041dca) (Video)
47. [Week 8: Lecture 5: Understanding Third Divergence in Parallel Computing and Its Impact on GPU Perf..](https://invisiblenetwork.ai/learn/nptel/111101611/a9be5cda389e) (Video)
48. [Week 8: Lecture 6: Memory Layouts and Their Role in Optimizing Computing Performance](https://invisiblenetwork.ai/learn/nptel/111101611/4e85edcdf927) (Video)
49. [Week 9: Lecture 1: CUDA Program Compilation and Execution: A Step-by-Step Guide Part 1](https://invisiblenetwork.ai/learn/nptel/111101611/a5a27b084042) (Video)
50. [Week 9: Lecture 2: CUDA Program Compilation and Execution: A Step-by-Step Guide Part 2](https://invisiblenetwork.ai/learn/nptel/111101611/26ed80a890ee) (Video)
51. [Week 9: Lecture 3: Introduction to OpenACC](https://invisiblenetwork.ai/learn/nptel/111101611/29b616796116) (Video)
52. [Week 9: Lecture 4: Parallelization of loops using OpenACC](https://invisiblenetwork.ai/learn/nptel/111101611/50804ee8b73c) (Video)
53. [Week 9: Lecture 5: OpenACC Data Management](https://invisiblenetwork.ai/learn/nptel/111101611/7b6083608948) (Video)
54. [Week 9: Lecture 6: OpenACC Loop Optimizations](https://invisiblenetwork.ai/learn/nptel/111101611/849f33de6639) (Video)
55. [Week 9: Lecture 7: Implementing Asynchronous behavior in OpenACC](https://invisiblenetwork.ai/learn/nptel/111101611/36d6defdda74) (Video)
56. [Week 9: Lecture 8: Programming for multiple-device architecture using OpenACC](https://invisiblenetwork.ai/learn/nptel/111101611/432d03c16e4f) (Video)
57. [Week 10: Lecture 1: Profiling and Parallelizing the serial code using OpenACC](https://invisiblenetwork.ai/learn/nptel/111101611/bd1c73d1c1e0) (Video)
58. [Week 10: Lecture 2: Programming for multiple-device architecture using MPI and CUDA](https://invisiblenetwork.ai/learn/nptel/111101611/a8298ffa69c6) (Video)
59. [Week 10: Lecture 3: Programming for multiple-device architecture using MPI and OpenACC](https://invisiblenetwork.ai/learn/nptel/111101611/f9def7ee8495) (Video)
60. [Week 10: Lecture 4: Profiling Serial codes using GNU gprof](https://invisiblenetwork.ai/learn/nptel/111101611/962f3bcfc602) (Video)
61. [Week 10: Lecture 5: Profiling and Debugging of the codes using Valgrind](https://invisiblenetwork.ai/learn/nptel/111101611/1bf793e448a8) (Video)
62. [Week 10: Lecture 6: Code Debugging using GDB](https://invisiblenetwork.ai/learn/nptel/111101611/d3603da8dc08) (Video)
63. [Week 11: Lecture 1: Performance Analysis of MPI codes](https://invisiblenetwork.ai/learn/nptel/111101611/a1547f1b206e) (Video)
64. [Week 11: Lecture 2: Parallel Debugging of MPI Programs using Open Source Tools](https://invisiblenetwork.ai/learn/nptel/111101611/3cab9738b899) (Video)
65. [Week 11: Lecture 3: Role of Numerical Methods in High Performance Scientific Computing](https://invisiblenetwork.ai/learn/nptel/111101611/e7f789b3eb8e) (Video)
66. [Week 11: Lecture 4: Libraries used in High Performance Scientific Computing](https://invisiblenetwork.ai/learn/nptel/111101611/2a3029617fd6) (Video)
67. [Week 11: Lecture 5: Introduction to HPC Schedulers using SLURM and PBS](https://invisiblenetwork.ai/learn/nptel/111101611/e01312dde698) (Video)
68. [Week 11: Lecture 6: Scientific Visualization](https://invisiblenetwork.ai/learn/nptel/111101611/79ec41a8ca32) (Video)
69. [Week 12: Lecture 1: Revision and challenges in the future](https://invisiblenetwork.ai/learn/nptel/111101611/3efae4281935) (Video)
70. [Week 12: Lecture 2: OpenMP Revision](https://invisiblenetwork.ai/learn/nptel/111101611/50f4cc2cb960) (Video)
71. [Week 12: Lecture 3: CUDA Revision](https://invisiblenetwork.ai/learn/nptel/111101611/3fb6702b1875) (Video)
72. [Week 12: Lecture 4: MPI Revision](https://invisiblenetwork.ai/learn/nptel/111101611/3b831a3149ba) (Video)
73. [Week 12: Lecture 5: OpenACC Revision](https://invisiblenetwork.ai/learn/nptel/111101611/4705a1d758a3) (Video)
74. [Week 12: Lecture 6: Heterogeneous Computing](https://invisiblenetwork.ai/learn/nptel/111101611/133ab9c7c27a) (Video)
75. [Week 12: Lecture 7: Trends in Microprocessor Architectures](https://invisiblenetwork.ai/learn/nptel/111101611/abd678aac15e) (Video)
76. [Live Session 28-01-2025](https://invisiblenetwork.ai/learn/nptel/111101611/c20a16bf68cd-2) (Video)
77. [Live Session 07-03-2025](https://invisiblenetwork.ai/learn/nptel/111101611/4029f1bf736b-2) (Video)
