
Meet the course instructor and explore how experts in scientific programming guide you through advanced scientific coding deb ups and Linux administration to solve real world problems.
Explore the interactive shell in this scientific computing masterclass to practice shell commands and learn how it works. Look forward to enjoying the course and the next lesson.
Explore high performance computing systems, including supercomputers and clusters, for solving large scientific problems with parallelism, distributed memory and disk space limits, and job scheduling.
Supercomputers play an important role in today’s research world. They aid us to solve compute-intensive problems such as physical simulation, climate research, molecular modeling and so on. Before we get into how to operate on a supercomputer, let’s revisit its history a bit.
discover the fastest chinese supercomputer, ranked number one with a 93 benchmark, designed by a national research center for parallel computing, featuring 64-bit architecture and 256 processing ports.
Learn to build an HPC system in VMware using virtual boxes as a head/login node and a compute node, with a scheduler, job submission, and inter-node communication on a network.
Discover how HPC software modules streamline setting up software environments on compute systems, and learn to view available versions, load and unload modules, and reference them in job scripts.
Explore HPC job scheduling with Slurm and PBS, comparing open-source and commercial options, and learn how these workload managers allocate tasks and resources on supercomputers.
Explore Slurm entities, partitions, and how compute nodes allocate jobs across partitions, illustrating with partition 1 and partition 2 allocations and multi-step jobs.
Learn slurm job scripting with the mpi taught job, name it hybrid, request 5 minutes on 4 nodes with 10 CPUs and 1 gigabyte memory, and submit from login node.
Explore heterogeneous computing by comparing host memory and GPU device memory in CUDA programs, and learn how data and code move between host and device to run computations concurrently.
Explore the gpgpu schema of the Nvidia chip, including tpc blocks and streaming multiprocessors. See cores, register files, local memory, shared memory, and parallel threads across blocks.
Learn CUDA grid organisation and memory hierarchy, mapping blocks and threads across multiprocessors, and compare device memory, level two and level one caches, registers, and unified memory.
Explore how a cuda kernel runs on the device with __global__, launch from the host using blocks and threads, and run a hello world example.
Discover how a CUDA kernel executes in parallel across a grid of blocks to add vectors elementwise, using block indices to access a and b and write to c.
Explore CUDA variable blocks and threads to perform vector addition, computing indices with blockIdx.x and threadIdx.x, and launching kernels with host-device memory transfers.
Demonstrate cuda vector addition by implementing a gpu kernel that adds two vectors A and B on the gpu, transferring data between host and device, and configuring blocks and threads.
Welcome to the First-ever High Performance Computing (HPC) Systems course on the Udemy platform. The goal main of this course is to introduce you with the HPC systems and its software stack. This course has been specially designed to enable you to utilize parallel & distributed programming and computing resources to accelerate the solution of a complex problem with the help of HPC systems and Supercomputers. You can then use your knowledge in Machine learning, Deep learning, Data Sciences, Big data and so on.
HPC clusters typically have a large number of computers (often called ‘nodes’) and, in general, most of these nodes would be configured identically. Though from the out side the cluster may look like a single system, the internal workings to make this happen can be quite complex. This idea should not be confused with a more general client-server model of computing as the idea behind clusters is quite unique. Cluster computing utilize multiple machines to provide a more powerful computing environment perhaps through a single operating system.
WHAT DO YOU LEARN?
A Little bit of Supercomputing history, Supercomputing examples, Supercomputers vs. HPC clusters, HPC clusters computers, Benefits of using cluster computing.
Components of a High Performance Systems (HPC) cluster, Properties of Login node(s), Compute node(s), Master node(s), Storage node(s), HPC networks and so on.
Introduction to PBS, PBS basic commands, PBS `qsub`, PBS `qstat`, PBS `qdel` command, PBS `qalter`, PBS job states, PBS variables, PBS interactive jobs, PBS arrays, PBS MATLAB example
Introduction to Slurm, Slurm commands, A simple Slurm job, Slurm distrbuted MPI and GPU jobs, Slurm multi-threaded OpenMP jobs, Slurm interactive jobs, Slurm array jobs, Slurm job dependencies
OpenMP basics, Open MP - clauses, worksharing constructs, OpenMP- Hello world!, reduction and parallel `for-loop`, section parallelization, vector addition,
MPI - hello world! send/ receive and `ping-pong`
Parallel programming - GPU and CUDA: Finally, it gives you a concise beginner friendly guide to the GPUs - graphics processing units, GPU Programming - CUDA, CUDA - hello world and so on! We understand that CUDA is a difficult API, particularly the memory models. We have added some easy to understand CUDA lessons with examples to make your life easy and comfortable to grasp the basics fast!
Parallel programming - AMD GPU and HIP (New! Aug 2023): Learn parallel programming on AMD GPU's with ROCm and HIP from basic concepts to advance implementations. We will start our discussion by looking at basic concepts including AMD GPU programming, execution model, and memory model. Then we will show you how to implement algorithms using ROCm and HIP.
AWS HPC: With the recent advantage of the faster Cloud technologies, AWS provides the most elastic and scalable cloud infrastructure to run your HPC applications. With virtually unlimited capacity, engineers, researchers, and HPC system owners can innovate beyond the limitations of on-premises HPC infrastructure. We have added lectures to show and tell you on how to build a AWS HPC cluster and how to run codes -easily!
Based on your earlier feedback, we are introducing a Zoom live class lecture series on this course through which we will explain different aspects of the Parallel and distributed computing and the High Performance Computing (HPC) systems software stack: Slurm, PBS Pro, OpenMP, MPI and CUDA! Live classes will be delivered through the Scientific Programming School, which is an interactive and advanced e-learning platform for learning scientific coding. Students purchasing this course will receive free access to the interactive version (with Scientific code playgrounds) of this course from the Scientific Programming School (SCIENTIFIC PROGRAMMING IO). Instructions to join are given in the additional contents section.
DISCLAIMER
We created here a total of one university semester worth of knowledge (valued USD $2500-6000) into one single video course, and hence, it's a high-level overview. Don't forget to join our Q&A live community where you can get free help anytime from other students and the instructor. This awesome course is a component of the Learn Scientific Computing master course.