Here we list a whole set of topics that you could consider when considering HPC Development.
Programming
Programming
Introduction to C++
Description: An introduction to C++ from experts.
Training Material: To view the material please click on the link below:
Credit: cplusplus.com
(to open their website click here)
Introduction to C
Description: An introduction to C from experts.
Training Material: To view the material please click on the link below:
Credit: Cornell Virtual Workshop
(to open their website click here)
Introduction to Fortran
Description: An introduction to Fortran from experts.
Training Material: To view the material please click on the link below:
Introduction to Fortran
Credit: Cornell Virtual Workshop
(to open their website click here)
Python
Python
Introduction to Python - Part 1
Description: Novices (and people looking for an argument) often ask, "What's the best programming language?" The answer depends on what we want to do. If we want to squeeze the last ounce of performance out of our hardware, then compiled languages like C++, C#, and Fortran are still good options, but if we want to write small programs quickly, and be able to manage the complexity of larger ones, then dynamic languages like Python, Ruby, R, and MATLAB optimize development time, which is often the biggest bottleneck for researchers. Learning how to structure a program as reusable pieces, each of which is small enough to fit into a programmer's working memory, is the key to building large programs efficiently.
Training Material: To view the material please click on the link below:
Introduction to Python - Part 1
Credit: Software Carpentry
(to open their website click here)
Introduction to Python - Part 2
Description: Novices (and people looking for an argument) often ask, "What's the best programming language?" The answer depends on what we want to do. If we want to squeeze the last ounce of performance out of our hardware, then compiled languages like C++, C#, and Fortran are still good options, but if we want to write small programs quickly, and be able to manage the complexity of larger ones, then dynamic languages like Python, Ruby, R, and MATLAB optimize development time, which is often the biggest bottleneck for researchers. Learning how to structure a program as reusable pieces, each of which is small enough to fit into a programmer's working memory, is the key to building large programs efficiently.
Training Material: To view the material please click on the link below:
Introduction to Python - Part 2
Credit: Software Carpentry
(to open their website click here)
Python - Unit Testing
Description: It's pretty obvious that if we want to be sure our programs are right, we need to put in some effort. What isn't so obvious is that focusing on quality is also the best way—in fact, the only way—to improve productivity as well. Getting something wrong and then fixing it almost always takes longer than getting it right in the first place. Designing testable code, practicing defensive programming, writing and running tests, and thinking about what the right answer is supposed to be all help get us answers faster, as well as ones that are more likely to be correct.
Training Material: To view the material please click on the link below:
Credit: Software Carpentry
(to open their website click here)
Python for High Performance
Description: While Python is a scripting language, it has plenty of facilities for high performance computing.
Training Material: To view the material please click on the link below:
Credit: Cornell Virtual Workshop
(to open their website click here)
OpenMP
OpenMP
To view the material please click on the link below: Credit: HP-SEE (to open their website click here)OpenMP
To view the material please click on the link below: Introduction to shared memory parallel programming with OpenMP Credit: HP-SEE (to open their website click here) Another introduction to OpenMP, this time from Cornell. To view the material please click on the link below: Credit: Cornell Virtual Workshop (to open their website click here)Introduction to shared memory parallel programming with OpenMP
Online Introduction to OpenMP
Compiler Directives for Accelerators - 1
This set of 3 lectures covers the use of compiler directives to program accelerators. Most of the focus is on OpenMP 4.0 with some discussion of alternative possibilities.
To view the material please click on the link below:
Compiler Directives for Accelerators - 1
Credit: LinkSCEEM
Compiler Directives for Accelerators - 2
This set of 3 lectures covers the use of compiler directives to program accelerators. Most of the focus is on OpenMP 4.0 with some discussion of alternative possibilities.
To view the material please click on the link below:
Compiler Directives for Accelerators - 2
Credit: LinkSCEEM
Compiler Directives for Accelerators - 3
This set of 3 lectures covers the use of compiler directives to program accelerators. Most of the focus is on OpenMP 4.0 with some discussion of alternative possibilities.
To view the material please click on the link in the box below:
Compiler Directives for Accelerators - 3
Credit: LinkSCEEM
MPI
MPI
Programming with MPI
To view the material please click on the link below:
Credit: HP-SEE
(to open their website click here)
Programming with MPI & OpenMP
To view the material please click on the link below:
Credit: HP-SEE
(to open their website click here)
Message Passing Interface (MPI) Basics
To view the material please click on the link below:
Message Passing Interface (MPI) Basics
Credit: Cornell Virtual Workshop
(to open their website click here)
Introduction to parallel computing concepts and technics
To view the material please click on the link below:
Introduction to parallel computing concepts and technics
Credit: HP-SEE
(to open their website click here)
MPI
To view the material please click on the link below:
Credit: HP-SEE
(to open their website click here)
Introduction to parallel programming with MPI
To view the material please click on the link below:
Introduction to parallel programming with MPI
Credit: Institute of Information and Communication Technologies (IICT)
(to open their website click here)
MPI Point-to-Point
To view the material please click on the link below:
Credit: Cornell Virtual Workshop
(to open their website click here)
MPI Collective Communications
To view the material please click on the link below:
Credit: Cornell Virtual Workshop
(to open their website click here)
MPI One-sided Communication
To view the material please click on the link below:
MPI One-sided Communication
Credit: Cornell Virtual Workshop
(to open their website click here)
MPI Advanced Topics
To view the material please click on the link below:
Credit: Cornell Virtual Workshop
(to open their website click here)
GPU Programming
GPU Programming
HPCReS 2014 – Workshop on HPC research services (GPU Tutorial)
To view the material please click on the link below:
HPCReS 2014 – Workshop on HPC research services (GPU Tutorial)
Credit: HOST Project
(to open their website click here)
Introduction to GPU computing
To view the material please click on the link below:
Credit: Institute of Information and Communication Technologies (IICT)
(to open their website click here)
General Training Material
General Training Material
Parallel Computing Course
To view the material please click on the link below:
Parallel Computing Course
Credit: Dana Petcu
(to open their website click here)
HPC programming techniques
To view the material please click on the link below:
HPC programming techniques
Credit: HP-SEE
(to open their website click here)
HPSEE Training Center
To view the material please click on the link below:
HPSEE Training Center
Credit: HP-SEE
(to open their website click here)