UCERD Gathering Intellectuals Fostering Innovations
Unal Center of Educaiton Research & Development

The Journey of Supercomputing in Pakistan
Past Present and Future

UCERD Rawalpindi
Supercomputing Center
UCERD Murree
In a supercomputer system, thousands or even millions of processors work in parallel using advanced programming models and process the real-life science and engineering applications delivering power up to millions of times higher than of normal personal computer. With the integration of Artificial Intelligence (AI) based supercomputers, the machines allow scientist and engineers for simulation and data analysis that require a large amount of data in a short period of time. Today supercomputers are considered as the main pillar of science and are an essential tool for accelerating country's strength, overall growth, financial power, national security, defensive ability, and promote the timely development of the highly modern tool and technology.



A supercomputer is a computer with a high-level computational capacity compared to a general-purpose computer.
A supercomputer holds a group of computers that act as one collective machine capable of processing enormous
amounts of data. For the best efficacy, the supercomputer system has high Performance processing architecture,
easy Programmable programming models, Portability, and Scalable against scientific algorithms, Accessible by
the users, Power Efficient and Low Cost. A generic supercomputing system contains five major groups (shown
in Figure ) which are the Scientists, the Programmers, the Hardware Experts, the System Manager, and the
Programming Tool, Developers.
1. The scientist group responsibility is to propose and provide algorithms related to sciences and engineering e.g. linear, differential equations and filters for quick analysis, observation and decision.
2. The Programmers duty is to take a sequential algorithm and convert it into the parallel program which can execute efficiently on supercomputer architecture.
3. The Hardware Experts proposes hardware architectures which can execute a parallel program generated by Programmers group and give high performance. There are three types of hardware architectures for the supercomputing system CPU-based, CPU, GPU-based and Embedded CPU-GPU based.
4. The Programming Tool Developers is to prove software solutions. The solutions can be used by Scientists and Programmers to best utilize the resources of High Performance Computing. The Programming Tool Developers has to deal with, the hardware scalability issues by using Operating Systems (OS). Suitability of the mainstream OS for Supercomputers with potentially hundreds and thousands of heterogeneous processing
cores are one of the hottest debated subjects in the academic and research community. The OS supports, in a scalable manner, hundreds of heterogeneous processor cores. It follows the fundamental design principle, space sharing, support for heterogeneity, power efficiency, virtualization, and layering. The Programming Tool Developers has to propose and provide Programming Models. Real applications use SISD (CPU), SIMD (GPU), and MIMD (FPGA, Multi-core) architectures, executing the sequential parts on the SISD and compute-intensive parts of the SIMD or MIMD cores. Supercomputer requires a practical programming model that facilitates parallel implementation and supports proper management of data delivery to the processing nodes. This is why the CUDA programming model, introduced by NVIDIA in 2007, is designed to support joint CPU-GPU (SISD-SIMD) architecture. The demand for supporting joint CPU-GPU execution is further reflected in more recent programming models such as OpenCL, OpenACC, and C++AMP.
5. The system manager has to deal with hardware maintenance issues, software installations, power management, and network management, etc..