This lesson is still being designed and assembled (Pre-Alpha version)

Introduction to High Performance Computing for Life Scientists

Description

High-performance computing (HPC) is a fundamental technology used to solve a wide range of scientific research problems. Many important challenges in science such as protein folding, the search for the Higgs boson, drug discovery, and the development of nuclear fusion all depend on simulations, models and analyses run on HPC facilities to make progress.

This course introduces HPC to life science researchers, focusing on the aspects that are most important for those new to this technology to understand. It will help you judge how HPC can best benefit your research, and equip you to go on to successfully and efficiently make use of HPC facilities in future. The course will cover basic concepts in HPC hardware, software, user environments, filesystems, and programming models. It also provides an opportunity to gain hands-on practical experience and assistance using an HPC system (ARCHER2, the UK national supercomputing service) through examples drawn from the life sciences, such as biomolecular simulation.


General Information

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below). They are also required to abide by the ARCHER2 Training Code of Conduct.

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organizers have checked that:

Materials will be provided in advance of the lesson and large-print handouts are available if needed by notifying the organizers in advance. If we can help making learning easier for you (e.g. sign-language interpreters, lactation facilities) please get in touch (using contact details below) and we will attempt to provide them.

Contact: Please email J.Sindt@ed.ac.uk for more information.


Prerequisites

You should have used remote HPC facilities before. In particular, you should be happy with connecting using SSH, know what a batch scheduling system is and be familiar with using the Linux command line. You should also be happy editing plain text files in a remote terminal (or, alternatively, editing them on your local system and copying them to the remote HPC system using scp). Finally, you should be comfortable with compiling parallel HPC source code that uses MPI and OpenMP.


Schedule

Setup Download files required for the lesson
Day 1 10:00 1. Welcome What can I expect from this course?
How will the course work and how will I get help?
How can I give feedback to improve the course?
10:15 2. Who we are: Introducing BioExcel, PRACE, and EPCC training What is BioExcel?
What is PRACE?
What is EPCC?
Who else is attending this course?
11:00 3. LECTURE: High-Performance Computing (HPC) What is high-performance computing?
What is a high-performance computer?
Why are computer clusters used?
11:20 4. PRACTICAL: Connecting to ARCHER2 and transferring data How can I access ARCHER2 interactively and transfer data?
11:40 5. BREAK Break
12:00 6. LECTURE: HPC Architectures [pre-recorded] What makes a high-performance computer?
How are HPC systems built??
12:20 7. PRACTICAL: Overview of the ARCHER2 system and modules What hardware and software is available on ARCHER2?
How does the hardware fit together?
What software is available on ARCHER2 and how can I use it?
13:00 8. LUNCH Break
13:40 9. LECTURE: Batch systems and parallel application launchers [pre-recorded] What is a queueing system?
What is an application launcher
How do they work?
14:00 10. PRACTICAL: Batch Systems and ARCHER2 Slurm Scheduler How do I write job submission scripts?
How do I control jobs?
How do I find out what resources are available?
14:30 11. BREAK Break
14:50 12. LECTURE: Parallel Computing Why parallel programming?
15:20 13. PRACTICAL: HMMER (1 of 2)
15:55 14. LECTURE: Review of Day 1
16:00 Finish
Day 2 10:00 15. Welcome What can I expect from this course?
How will the course work and how will I get help?
How can I give feedback to improve the course?
10:05 16. LECTURE: Measuring Parallel Performance What is scaling?
How well does my application scale?
10:35 17. PRACTICAL: HMMER (2 of 2)
11:20 18. BREAK Break
11:40 19. LECTURE: Computational Building Blocks: Software To be determined
12:10 20. LECTURE: Computational Building Blocks: Hardware To be determined
12:40 21. LUNCH Break
13:30 22. PRACTICAL: Benchmarking Molecular Dynamics Performance Using GROMACS 1 How does a small, 80k-atom system performance scale as more cores are used?
What about a larger, 12M-atom system?
14:00 23. LECTURE: Parallel Models to Exploit Parallelism To be determined
14:30 24. BREAK Break
14:50 25. PRACTICAL: Benchmarking Molecular Dynamics Using GROMACS 2 How do we run hybrid MPI and OpenMP jobs on ARCHER2?
Does adding OpenMP to MPI GROMACS affect performance?
15:20 26. LECTURE: Building and compiling software: from algorithm to executable What is compiling?
To be determined
15:45 27. LECTURE: Review of Day 2
15:50 Finish
Day 3 10:00 28. Welcome What can I expect from this course?
How will the course work and how will I get help?
How can I give feedback to improve the course?
10:05 29. PRACTICAL: Benchmarking Molecular Dynamics Using GROMACS 3 What is multithreading?
How does load balancing affect GROMACS performance?
10:35 30. LECTURE: Pipelines and Workflows To be determined
11:20 31. BREAK Break
11:40 32. QM/MM Simulations Using CP2K To be determined
12:40 33. LUNCH Break
13:30 34. LECTURE: The future of HPC To be determined
14:00 35. QM/MM Simulations Using CP2K To be determined
14:30 36. BREAK Break
14:50 37. LECTURE: The HPC landcsape in the EU and UK To be determined
15:20 38. LECTURE: Course review and where next? To be determined
15:40 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.