Summary and Setup
This is a new lesson built with The Carpentries Workbench.
The HPC-user Software Carpentry module is aimed at researchers with some background in using scientific computing. This lesson will teach scientists to understand and deal with performance issues that arise when moving from a personal computer to a High-Performance Computing (HPC) environment (a SuperComputer). The basic concepts that affect performance are covered in a general manner, then a survey of the capabilities and performance of many languages commonly used in scientific computations are discussed along with example codes illustrating the performance concerns of each language. Each person who completes this module should have a good general overview of what each computer language can do and what performance bottlenecks to avoid.
Prerequisites
Each user must begin with some knowledge of Linux and at least one of the languages that this module covers (Python, R, C/C++, Fortran, Matlab). The examples in the first part of this module are currently only in Python but will eventually be adjustable to display in any of these languages. Each user may also need to know how to run jobs in an HPC environment. These prerequisites may all be covered by having an HPC Unix Shell carpentry module taught right before this one.
Data Sets
Download the code examples zip file and unzip it to your Desktop.
Software Setup
Details
Your instructor should provide you with information on how to access a Linux system or Supercomputer. You will need to use the directions below to access that system using a terminal window so you can use the command line interface. You will also need to transfer the code files to the Linux system, again by following the directions for your operating system below. Once the code files are copied over, you may edit them on the Linux side with vim or nano, or if you are more comfortable you may edit the code files on your personal computer and transfer them to the Linux system instead.
Programming Language for Example Code
Your instructor will direct you to click on the tab of a particular programming language below. This will select the language for all example codes and diagrams for the first few chapters of this workshop. As you go through each lesson, you may always click on the other tabs to see how each code is implemented in the different programming languages.
NOTE - Example programs for sections 2-6 are currently only available in Python and C. I’m looking volunteers to program the R, Matlab, and modern Fortran example programs.