Hardware Acceleration & Parallel Programming

Over the years, the Video Card (also known as the Graphics Processing Unit or GPU) has evolved into a highly parallel computing device, capable of performing hundreds of computations every second over large data sets.

Parallel Programming by means of Hardware Acceleration using the GPU consists in developing algorithms suitable for performing computations over large sets of data simultaneously, thus providing a great speedup for an implementation when compared to a typical implementation on a CPU.

Leveraging the latest parallel technologies allows us to develop software solutions that can satisfy today and tomorrow’s information needs faster, by scaling transparently with the latest hardware and enabling the processing of ever-growing information and data sets.

Key technologies behind parallel programming on the GPU include NVIDIA CUDA and OpenCL, which since their introduction, have provided incredible computing time speedups that can dramatically reduce the processing time needed to complete a given task.OpenCL

Typical applications suitable for acceleration include image and media processing, signal processing, physics simulation, computational finance and computational biology. The key relies in correctly partitioning the problem to solve in order to offload it to the GPU as a parallel program that can be solved simultaneously.

We posses the necessary knowledge needed to help analyze, divide and code a given problem into parts suitable for parallel processing on the Video Card, allowing our software solutions to serve our customer’s computing needs faster and more efficiently, by leveraging commodity hardware that is usually neglected entirely by the traditional software development process.