High Performance Computing

 

The size of EO archives is continuously increasing, and processing such a large scale data (i.e. petabytes) takes enormous amount of time. In time critical events such as, flood disaster, earthquake, forest fire RS data is a vital source of information as it provides a synoptic coverage of an affected area. However, processing a large amount of RS data is a time consuming process and hence, High Performance Computing (HPC) could play a very important role during such disaster events.

A variety of HPC technologies are available, e.g. cluster computing, distributed computing, Field Programmable Gate Arrays (FPGA), Graphical Processing Units (GPUs) etc. In last few years, Graphics Processing Units (GPUs) have evolved as a highly parallel, multithreaded, many core processor with tremendous computational horsepower and very high memory bandwidth. The main concern about cluster computers is the cost of installation and hence it is unsuitable for on board processing (e.g. satellite platform, UAV’s onboard processing). Due to this cost and infrastructure requirements, clusters and distributed systems are more expensive as compared to GPUs.

As compared to CPU, a large numbers of transistors are fitted into a GPU device for data processing with a lightweight data caching and flow control. The architecture of a GPU is highly suitable for the problems which have inherent data parallelism. According to Jack Dongarra (Director of the Innovative Computing Laboratory, University of Tennessee), “GPUs have evolved to the point where many real-world applications are easily implemented on them and run significantly faster than on multi-core systems. Future computing architectures will be hybrid systems with parallel-core GPUs working in tandem with multi-core CPUs”.

Many programming frameworks such as open computing language (OpenCL), NVIDIA’s compute unified device architecture (CUDA) have been developed to use the GPU’s SIMD architecture for general-purpose computing. To exploit the GPU capability for general-purpose scientific and engineering applications, NVIDIA© has developed a proprietary programming framework. It is an extension of the existing C language with lower learning curve for the developers familiar with C and C++. The goal of CUDA is to scale a program over thousands of GPU cores using millions of parallel CUDA threads to facilitate heterogeneous computing (CPU+GPU).

We have a GeoHPC- hybrid (CPU+GPU) based multi-GPU cluster (departmental) facility installed in our lab. The following table shows the hardware specifications of our GeoHPC cluster.

 

Hardware Details

Master nodes (1)

Compute Nodes (3)

CPU Type

2x Intel® Xeon® CPU

E5-2640v3 @2.60GHz 8core

2x Intel® Xeon® CPU

E5-2640v3 @2.60GHz 8core

GPU

2x Tesla K40

No of CPUs (Cores)

2 CPU’s (16 cores)

2 CPU’s (16 cores)

RAM

4x 16GB RAM = 64GB

4x 8GB RAM = 32GB

HDD

3x 4TB SATA HDD

2x 1TB SATA HDD

Operating System

CentOS 6.6 64 bit

CentOS 6.6 64 bit

Connectivity

Infiniband

1x IB switch (Intel 12200-18 18port switch)

Ethernet

1x D-Link Ethernet Switch