About SARMAD cluster and High Performance Computing (HPC) center at Shahid Beheshti University (SBU)

What is HPC ?

"High-Performance Computing," or HPC, is the application of "supercomputers" to computational problems that are either too large for standard computers or would take too long. HPC can perform calculations many times faster than a conventional processor. A desktop computer generally has had a single processing chip, commonly called a CPU. An HPC system, on the other hand, is essentially a network of nodes, each of which contains one or more processing chips, as well as its own memory. The most common users of HPC systems are scientific researchers, engineers and academic institutions.

Who should be using HPC ?

The HPC systems put enormous computational capability in the hands of researchers. In many disciplines the use of HPC systems is well established and forms an integral part of the research. HPC systems at KFUPM intend to provide a substantial boost to research in these areas by providing locally accessible resources.

example graphic

In addition, there are areas of research which have a computational element, currently provided by desktop systems. However, the capacity of the desktop systems has been reached and is now limiting the progress of the research. We encourage researchers who are constrained by their desktop systems to use HPC. Jobs having high requirements in terms of memory or storage are strong HPC candidates.

Programs for HPC systems must be split up into many smaller "programs" called threads, corresponding to each core. To piece the larger program together, the cores must be able communicate with each other efficiently, and the system as a whole must be organized well.

HPC Performance Trends in Comparison to Desktop Machines

For most designers and engineers, modeling the world may be confined to rendering, simulation, and analysis. The latest generation of workstations equipped with multi-core CPUs can easily churn out realistic models on modeling software's. Following are the performance trends of HPC at KFUPM for MATLAB and Message Passing Interface.

MATLAB

Matlab is installed on the HPC cluster, but in order to use it properly, your code should include parallel tool box functions like matlabpool, parfor, spmd, etc. to take advantage of the cluster.

The Results in above figure, show that performing 1,000 Monte-Carlo iterations on HPC using 4 cores in parallel saves users 9.7 execution hours, in contrast to single core serial execution. Moreover, executing the code in serial on HPC doesn’t have any advantage when compared to desktop machine (i.e., with i5 Processor,4 GB RAM) as can be seen in figure.

Message Passing Interface (MPI)

The MPI routines are accessed in the same way as any other third-party library - by including the appropriate header in C/C++ or using the relevant module in Fortran.

MPI performance plots for Jacobi iterative method illustrates that using 4 nodes for parallel MPI execution on HPC improves the performance 3.75 times, when compared to single node serial MPI execution for a matrix size (N) of 512. Whereas, using 2 nodes improves the performance 2 times the single node serial MPI execution for 512 size matrix space.