Skip to content

Standard Training: Software

Excellent and Free Textbook by Victor Eijkhout: "The Art of HPC"

Use KRG pdf cache (on 2024-01-08) if referred chapters/sections do not match the current version

HPC Carpentry

Volume 4 has a good coverage of technical skills needed by our group

Base Environment

Set up KRG Program Environment (docker) if you don't have a unix-like system

To practice the remainder of this training, you will need a unix-like system with a number of packages installed.

Follow Level 1 Docker tutorial to setup KRG Program Environment (koresearch/develop-environment-base), which is a cross-platform solution for MS Windows, Mac OSX, and Linux.

keeping configurations

If you chose to use this container approach, you might find it handy to mount a host folder to /root in the guest (container file system) so that you can retain the settings (e.g., git configurations)

use an unimportant folder to share documents with containers

The host folder should be dedicated for this training since docker runs as super user, it can delete important file from inside the container if the mounted volume (folder) is not isolated.

Please report issues

If you spot any missing packages when using koresearch/develop-environment-base to practice this training, please open an issue.

A wonderful tutorial series: "The Missing Semester of Your CS Education"

Recommended Minimal Set in The Missing Semester Course

While the entire course is recommended, the most relevant topics are:

optional resources

Software Carpentry Lessons

checklist

Programming

Prototyping: quick development for testing ideas

Recommedations

some other options
  • octave/matlab
  • Mathematica
  • julia (also high-performance language)
keep the test examples simple

Most languages good for prototyping may not offer optimal performance and/or scalability.

High-Performance Computing: performance and scalability for production

Recommedations

strategy

It is recommended to know both for KRG objectives. For those not fluent in C/C++, start with modern Fortran (e.g., Fortran2008).

begin with a prototype

High-performance languages are often more involved to write than prototyping ones. Always start with a prototype to test correctness against.

use a build system for compilation

Fortran and C/C++ codes need to be compiled, it is worth learning build systems to automate the procedure:

Domain-Specific Software

scientific software

move QE and LAMMPS to scientific-software/ folder

Electronic Structure

Molecular Dynamics

  • DeepMD-kit
  • LAMMPS

HPC Cluster Operation

Additional Training for Using HPC Clusters

Other Information

Other Software
  • MS Teams + Planner
  • freeplane
KRG Software Repository