Benefits of using cluster computing

HPC systems derive their computational power by exploiting parallelism. Programs for HPC systems must be splitted up into many smaller sub-programs which can be executed in parallel on different processors. HPC systems can offer parallelism at a much larger scale, with 100’s or 1000’s, or even millions of tasks running concurrently.However, writing parallel software can be challenging, and many existing software packages do not already support parallelism & may require development.

Therefore, HPCs are userful when you have:

  • A program that can be recompiled or reconfigured to use optimized numerical libraries that are available on HPC systems but not on your own system;

  • You have a parallel problem, e.g. you have a single application that needs to be rerun many times with different parameters;

  • You have an application that has already been designed with parallelism;

  • To make use of the large memory available;

  • problem solutions require backups for future use. HPC facilities are reliable and regularly backed up.

When not to use HPC systems?

  • You have a single threaded job which will only run one job at a time (typical of MatLab users);

  • You rely on DBMS/ databases;

  • You have a lot of data to transfer between your local machine and the HPC on a continuous basis (e.g. per job);

  • You need to have a GUI to interact with your program.