Learn · High Performance Scientific Computing
Lecture 61 of 77week-10
Week 10: Lecture 5: Profiling and Debugging of the codes using Valgrind
Prof. Shivasubramanian Gopalakrishnan Prof. Om Jadhav Prof. S Vamshi Krishna Prof. Ashish Kuvelkar · IIT Bombay
Credits and licence
- From
- High Performance Scientific Computing, IIT Bombay (at NPTEL)
- Licence
- CC BY-NC-SA, as NPTEL states it. Non-commercial use only.
- Attribution
- NPTEL states: "Distributed under Creative Commons Attribution-ShareAlike / CC BY - NC - SA", beside a BY-NC-SA badge.
- Who can watch
- Tweens profiles and older. How courses are placed
All the lectures
- Week 0: Lec 0: Introduction to High Performance Scientific Computing
- Week 1: Lecture 1: Introduction to Operating System.
- Week 1: Lecture 2: Linux Kernel Explained
- Week 1: Lecture 3: Mastering Linux Directory and File Management
- Week 1: Lecture 4: Understanding File Permissions and Ownership in Linux
- Week 1: Lecture 5: Mastering Linux Text Processing and File Management
- Week 1: Lecture 6: Linux Memory and Networking Commands
- Week 2: Lecture 1: Understanding Shell Scripting: Parent-Child Processes and User Input Handling
- Week 2: Lecture 2: Shell Scripting Tutorial for Beginners
- Week 2: Lecture 3: Introduction to High-Performance Computing (HPC) and Its Key Components
- Week 2: Lecture 4: Exploring Computing Platform Architecture and CPU Optimization Techniques
- Week 2: Lecture 5: Hierarchical Memory Systems and Scalable Architectures in Large-Scale Computing
- Week 2: Lecture 6: Concurrency and Synchronization in Parallel Programming:Techniques and Frameworks
- Week 3: Lecture 1: Need for Parallel Computing
- Week 3: Lecture 2: Role of Numerical Models in Solving complex problems on Computers
- Week 3: Lecture 3: Common Challenges with Memory in Computer Architecture
- Week 3: Lecture 4: Organization of hardware in Large HPC systems
- Week 3: Lecture 5: Architecture of Nvidias Grace Hopper Superchip
- Week 3: Lecture 6: Introduction to Shared Memory Programming using OpenMP
- Week 4: Lecture 1: Distribution of work using multiple OpenMP Threads
- Week 4: Lecture 2: Synchronization and Parallel Loops in OpenMP
- Week 4: Lecture 3: Storage attributes of different variables in OpenMP
- Week 4: Lecture 4: OpenMP Memory Model, Irregular Parallelism, and Tasks
- Week 4: Lecture 5: Parallelization of example codes using OpenMP - Part 1
- Week 4: Lecture 6: Parallelization of example codes using OpenMP - Part 2
- Week 5: Lecture 1: Introduction to Message Passing Interface (MPI)
- Week 5: Lecture 2: Sending and Receiving the messages using MPI
- Week 5: Lecture 3: Collective Communication in MPI
- Week 5: Lecture 4: Domain Decomposition
- Week 5: Lecture 5: Parallelization of example code using MPI
- Week 5: Lecture 6: Performance Analysis Frameworks for Parallel Programming
- Week 6: Lecture 1: Examples of Collective Communication in MPI: Part 1
- Week 6: Lecture 2: Examples of Collective Communication in MPI: Part 2
- Week 6: Lecture 3: Introduction to GPU Computing
- Week 6: Lecture 4: A Dive into Software Stack and Nvidia Architecture
- Week 6: Lecture 5: Comparative Analysis of NVIDIA and Intel GPU Architectures
- Week 6: Lecture 6: Understanding FLOPS and Memory Bandwidth Calculations for NVIDIA GPUs
- Week 7: Lecture 1: SIMD vs. SIMT: Thread Mapping, Scheduling, and Pipelining in NVIDIA GPUs
- Week 7: Lecture 2: Understanding 1D, 2D, and 3D Grid Arrangements Part 1
- Week 7: Lecture 3: Understanding 1D, 2D, and 3D Grid Arrangements Part 2
- Week 7: Lecture 4: Thread Block Mapping and Warp Scheduling in GPU
- Week 7: Lecture 5: Exploring Warp Scheduling and Latency Management in NVIDIA GPUs
- Week 8: Lecture 1: An Introduction to GPU Programming: Tools, Techniques, and CUDA Part - 1
- Week 8: Lecture 2: An Introduction to GPU Programming: Tools, Techniques, and CUDA Part - 2
- Week 8: Lecture 3: Understanding NVIDIA GPU Memory Types and Efficient Memory Management Part 1
- Week 8: Lecture 4: Understanding NVIDIA GPU Memory Types and Efficient Memory Management Part 2
- Week 8: Lecture 5: Understanding Third Divergence in Parallel Computing and Its Impact on GPU Perf..
- Week 8: Lecture 6: Memory Layouts and Their Role in Optimizing Computing Performance
- Week 9: Lecture 1: CUDA Program Compilation and Execution: A Step-by-Step Guide Part 1
- Week 9: Lecture 2: CUDA Program Compilation and Execution: A Step-by-Step Guide Part 2
- Week 9: Lecture 3: Introduction to OpenACC
- Week 9: Lecture 4: Parallelization of loops using OpenACC
- Week 9: Lecture 5: OpenACC Data Management
- Week 9: Lecture 6: OpenACC Loop Optimizations
- Week 9: Lecture 7: Implementing Asynchronous behavior in OpenACC
- Week 9: Lecture 8: Programming for multiple-device architecture using OpenACC
- Week 10: Lecture 1: Profiling and Parallelizing the serial code using OpenACC
- Week 10: Lecture 2: Programming for multiple-device architecture using MPI and CUDA
- Week 10: Lecture 3: Programming for multiple-device architecture using MPI and OpenACC
- Week 10: Lecture 4: Profiling Serial codes using GNU gprof
- Week 10: Lecture 5: Profiling and Debugging of the codes using Valgrind
- Week 10: Lecture 6: Code Debugging using GDB
- Week 11: Lecture 1: Performance Analysis of MPI codes
- Week 11: Lecture 2: Parallel Debugging of MPI Programs using Open Source Tools
- Week 11: Lecture 3: Role of Numerical Methods in High Performance Scientific Computing
- Week 11: Lecture 4: Libraries used in High Performance Scientific Computing
- Week 11: Lecture 5: Introduction to HPC Schedulers using SLURM and PBS
- Week 11: Lecture 6: Scientific Visualization
- Week 12: Lecture 1: Revision and challenges in the future
- Week 12: Lecture 2: OpenMP Revision
- Week 12: Lecture 3: CUDA Revision
- Week 12: Lecture 4: MPI Revision
- Week 12: Lecture 5: OpenACC Revision
- Week 12: Lecture 6: Heterogeneous Computing
- Week 12: Lecture 7: Trends in Microprocessor Architectures
- Live Session 28-01-2025
- Live Session 07-03-2025