The era of high-performance computing has rapidly evolved into heterogeneous computing by bringing together architecturally different devices in computer systems; with a promise of opportunities to enhance the application performance using the different computational units. The benefits of heterogeneous computing are yielded through hybrid applications having specific programming models and instructions that help in the execution of tasks on to corresponding computing devices. In a large HPC system, the computational power of the heterogeneous devices is harnessed with judicious mechanisms of tasks execution based on resource availability. In heterogeneous clusters, the jobs in the queue experience increased turnaround time due to demand for accelerators for the execution of code. This paper describes the concept and implementation of an adaptive and dynamic load re-targeting scheme for applications on heterogeneous platforms to reduce the turnaround time of jobs.
The evolution of cluster computers based on multicores, many cores and GPGPU accelerators is encouraging application developers to write hybrid parallel programs. Hybrid parallel programming is quite complex as it requires use of multiple programming paradigms such as MPI, OpenMP, CUDA/OpenCL to exploit the varied computational power available in a system. The paper brings out the challenges faced by application developers desiring to use heterogeneous HPC clusters. It describes a unified development environment which eases the complete development lifecycle of hybrid parallel programs on a HPC cluster. The software is capable of providing access to multiple clusters of different architectures, owing to the modularity of design and web based approach. The paper also serves as a good resource for researchers interested to gain an insight into hybrid parallel programming.
The new generation accelerator based HPC clusters use OpenCL language for exploiting the heterogeneous compute power. OpenCL is a portable language which allows dynamic binding of heterogeneous compute devices at runtime. It uses a kernel programming method by which the different functionality of the program can execute simultaneously on heterogeneous devices. An OpenCL program is made up of host code, execution environment and device code making the program lengthy and complex. This paper describes the software named OpenCLGen which automatically generates OpenCL programs for single or multiple CPU or GPU devices. A complete OpenCL program is generated with minimum programming effort based on the kernel code supplied by the user; thereby helping to improve programmer productivity. OpenCLGen produces a downloadable package aggregating the host code, header files, runtime for kernel code, Makefile and user instructions. This paper describes the design of the OpenCLGen software and offers a comparison to other similar software.
The superior performance:power ratio of accelerators is motivating new cluster architectures with varied accelerator combinations. Monitoring ensures normal functioning of the cluster by detecting service degradations and prompt rectification. This paper describes a modular and extendable monitoring framework for heterogeneous multi-accelerator clusters which will be useful for future HPC systems. The framework can support third party software plugins to provide different functional features. A monitoring tool has been developed on the basis of this framework to monitor CPU, GPGPU and FPGA accelerators, network, storage, user jobs and other relevant services of a heterogeneous cluster; the tool is also capable of auto rectification to a certain extent.
Proliferation of GPGPU and other accelerators, is making the industry consider accelerator based systems as a viable option for high-performance: low-power HPC systems. This paper describes a multi-accelerator heterogeneous cluster in which each node has GPGPU and FPGA cards. Extracting the maximum computational power simultaneously of all the compute elements, i.e. multi-core CPU, GPGPU and FPGA is an important challenge. StarPU is a popular open source runtime that supports heterogeneous architectures. This paper describes the key features of heterogeneous runtime and how StarPU has been adapted to execute parallel programs which span across both GPGPU and FPGA accelerators.
Computational grid involves the sharing of dynamic and geographically distributed heterogeneous resources to cater to highend scientific problems. The dynamic nature of grid makes monitoring and maintenance of grid health a challenging task. Grid monitoring is a central part of grid as it functions as the dynamic information repository for both system administrators and developers for status checking, troubleshooting, scheduling, performance tuning and analysis. We have developed and deployed a grid-monitoring tool to monitor Indian national grid “GARUDA”. The unique features of it are monitoring network and computational resources, grid middleware, jobs, storage, softwares, and special scientific instruments. It also captures the service degradations of resources and notifies for corrective actions.