=====Note: Induction Course===== Please see the CHPC [[https://moodle.chpc.ac.za/course/view.php?id=21|Induction]] course for new users. ======Practical HPC — CHPC Winter School====== This page collects all the lecture notes, video links and worksheets from the CHPC's Winter School in one place for use by anyone who wants to self-study or teach. The Practical HPC course is intended to teach practical skills for using the CHPC supercomputer cluster effectively and efficiently. It cover two main topics: - Workflow to Job Script - Scaling over two weeks. These topics are approximately 6 sections, with a core of 4 sections and 2 optional sections. =====Prerequisites===== Students will need to be familiar with both the Linux command line and the concepts of High Performance Computing. ====Supercomputing MOOC==== {{ :workshops:prace_epcc_logo.jpg?200 |}} This course is presented in conjunction with [[http://www.prace-ri.eu/|PRACE]] and [[https://www.ed.ac.uk/|EPCC]] who provide a free online course on the basic concepts of HPC. This provides the main background knowledge you will need to understand HPC and how the CHPC cluster works. * PRACE **[[https://www.futurelearn.com/courses/supercomputing|Supercomputing]]** MOOC The first 4 weeks of the PRACE Supercomputing MOOC provide the necessary foundational information and concepts for this Practical HPC course. You will need to complete all of the first 4 weeks of the Supercomputing MOOC to be fully prepared for all the topics in the CHPC Practical HPC course. ====Linux Shell Command Line==== There are many resources on the Internet that introduce the basic commands of the Linux shell. We recommend: * [[https://swcarpentry.github.io/shell-novice/index.html|The Unix Shell]] --- //Software Carpentry// * //Learn Linux// [[https://www.learnlinux.org.za/courses/web-courses|Fundamentals]] course =====Welcome and Overview===== * {{ :workshops:chpc-ws-session-1-welcome.pdf |Slides}} from opening session. =====Introduction===== ====The Centre==== ===Video: CHPC Introduction part 1=== [[https://www.youtube.com/watch?v=hyhubx-oVZI|{{:workshops:hpcschool:vid01.png?nolink&200|https://www.youtube.com/watch?v=hyhubx-oVZI}}]] ===Video: CHPC Introduction part 2=== [[https://www.youtube.com/watch?v=B7EmuL9s_90|{{:workshops:hpcschool:vid02.png?nolink&200|https://www.youtube.com/watch?v=B7EmuL9s_90}}]] ===Video: How to Access the CHPC=== [[https://www.youtube.com/watch?v=qB7t4B39YXA|{{:workshops:hpcschool:vid03.png?nolink&200|}}]] ====CHPC Hardware==== * [[workshops:hpcschool:chpchardware|CHPC Hardware]] * {{ :workshops:hpcschool:special_nodes.pdf |Special Nodes}} =====Workflow to Job Script===== First we cover the basics of the user's view of the cluster and how to write, submit and monitor a job script. ====Connection to the CHPC==== * [[https://www.youtube.com/watch?v=wdblSZczXSw|Video:]] Connecting to the CHPC cluster * {{ :workshops:hpcschool:01_connecting_to_chpc.pdf |Notes}} ====The CHPC Cluster Environment==== ====PBSPro Scheduler and Jobs==== =====Scaling===== Scaling is the performance of a parallel program across different number of nodes and cores. First we cover the basics of compiling a program for the cluster, then we look at performance measurement and scaling. ====Compilers and Libraries==== ====Performance==== =====Further Reading===== ====Parallel Programming==== We are often asked about porting or writing programs to parallel hardware. This is a large and more advanced topic and so we can point you to some resources that can help you start. ===Parallel Programming for Scientists and Engineers=== [[https://www.tacc.utexas.edu/about/directory/victor-eijkhout|Victor Eijkhout]] of [[https://www.tacc.utexas.edu/|TACC]] has written a series of superlative textbooks which are all available for free at //[[https://theartofhpc.com/|The Art of HPC]]//.