Course Contents

Introduction to Cluster Computing: Linux, Shell Scripting, Queuing systems, Cluster architecture

This course introduces participants to the computing environment found in UH high performance computing clusters such as Maxwell and Opuntia, including how to prepare work-flows, submit jobs to the queuing systems, and retrieve results. Other topics covered include general HPC concepts, Maxwell’s system architecture, system access, customizing your user environment, compiling and linking codes for CPUs or GPUs, the PBS/SLURM batch scheduling system, batch job scripts, Matlab jobs, submission of serial or interactive or parallel (gpu/cpu) jobs to the batch system.

Topics in Linux covered include user accounts, file permissions, file system navigation, the Command Line Interface (CLI), command line utility programs, file & folder manipulation, and common text editors.

Topics covered in Shell scripting include built-in commands, control structures, file descriptors, functions, parameters & variables, and shell scripting.

Scientific Programming with Python

Python is an easy to learn, powerful programming language. It has efficient high-level data structures that make it suitable rapid application development. Topics covered in this session will include data types, conditional and loop statements, functions, input/output, modules, classes and exceptions. Upon completion of this tutorial series, participants should be able to understand existing scientific python codes as well as write their own simple python applications. This training session also introduces participants to scientific computing extensions of python like numpy for use in high-performance computing. Using advanced python libraries like regular expressions, scipy, pandas, seaborn, scikit-learn, etc for every day scientific computing are also taught.