on HPC systems on the Udemy. This basic course has been specially designed to enable you to utilize parallel and distributed programming and computing to accelerate the solution of a complex problem with the help of High Performance Computing (HPC) systems and Supercomputers.
Learn about Supercomputing
A Little bit of Supercomputing history, Supercomputing examples, Supercomputers vs. HPC clusters, HPC clusters computers, Benefits of using cluster computing.
Components of a HPC system
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.
PBS - Portable Batch System
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 Matlatb example
SLURM -Workload Manager
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
Parallel programming - OpenMP and MPI
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!
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.
A cluster of computers joins computational powers of the compute nodes to provide a more combined computational power. Therefore, as in the client-server model, rather than a simple client making requests of one or more servers, cluster computing utilize multiple machines to provide a more powerful computing environment perhaps through a single operating system.
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.
Ahmed Arefin, PhD is an enthusiastic computer programmer with more than a decade of well-rounded computational experience. He likes to code, but loves to write, research and teach. Following a PhD and Postdoc research in the area of data-parallelism he moved forward to become a Scientific Computing professional, keeping his research interests on, in the area of parallel, distributed and accelerated computing.
In his day job, he pets a few of the world’s fastest T500 supercomputers at a large Australian agency for scientific research.