Parallel Computing

The recent explosion of GPU (Graphical Processing Unit) power has not been fully utilised by many SMEs, possibly because GPU programming requires specialist skills different from those of conventional programming. GPSME will provide the SME participants with a simple route to accessing GPU power.

Each of the SME participants is facing increasing competition in the market and GPSME will allow them to greatly improve their products in terms of speed and quality without major overheads. By involving close cooperation between the SMEs and RTD performers, GPSME will develop a toolkit to automate the conversion of existing sequential CPU code to an optimal GPU implementation. With such a toolkit, the SMEs will be able to convert their existing CPU code without committing significant effort and time. It will also support the execution of advanced techniques within acceptable runtimes and hence  allow the SMEs to use more complex computing models in their new products. This will bring them major commercial benefits and significantly improve their market positions.

Technically, GPSME features techniques to adapt automatic parallelization to the latest GPU compute architecture to deliver  optimal performance. This is expected to greatly improve on traditional CPU-based automatic parallelization. The literature  review has suggested that the techniques in this area are still very much in their infancy and that there is no existing toolkit that can benefit the SMEs immediately.

 The application areas of the SME participants are widely differing, so GPSME will produce a breakthrough that will open the  door for great performance gains across many areas of application. This development will be particularly suitable for SMEs  that focus applications on moderate platforms. In the long term, the outcomes of GPSME will benefit many companies and improve industrial competitiveness across the whole European Union.

SMEs, particularly those whose business is focused on developing innovative products, are subject to many pressures in maintaining and growing their market share and ensuring that their products remain competitive in an age of rapid technological change. Small companies with high-tech products are subject to particular demands as their direct competitors are often large multinational companies which have vastly more resources at their disposal in product development.

In many high-tech fields, users are experiencing a huge growth in data, with increases in quantity, in resolution, in variety, etc., while the work often present significant time constraints on the associated data processing. This leads to a continual upward pressure on computational resources and, indeed, the speed of computation is now a major bottleneck that dramatically limits the applicability of available technology in many applications in SMEs. All of the SMEs in this project have found themselves subject to these pressures.

For a SME to maintain a strong foothold in R&D, it must have access to facilities that are powerful, that provide here-and-now availability and that are under its direct control. Local computing power facilitates research exploration by allowing the developers to frequently experiment with computing models and parameters. It also helps to address security and legal problems as the SME’s data and software can remain in-house if no use is made of external computing resources. While providing services in different areas, many SMEs all face a common problem: the quality of their products has been inhibited by a lack of computing power. This lack of power may not be with the SME but is possibly a feature of the equipment that the users of their products can be expected to have – in other words, the product developed is constrained by the computational resources of the likely user base. Hence, the availability and affordability of the equipment necessary to use the SME’s products can affect their marketing and become a major obstacle to their competitiveness in the future. 

Parallel computing offers fast computing by splitting tasks into small components and distributing them among multiple processors/threads. Many computing tasks exhibit a parallel nature and are hence suitable for parallel computing. Conventional parallel computing takes place using multi-core CPUs or via distributed, grid, high performance computers. The remarkably increased power of Graphics Processing Unit (GPU) in recent years offers a very attractive alternative, which can handle many demanding tasks by only harnessing local computing resource in low-cost computer platforms.  The most important development in GPUs in recent years has been the marked increase in their versatility. While they were initially designed for use in highly visual tasks, mostly associated with computer games development, their capabilities are now much more widely applicable and they have become used in many computational areas - this is known as General Purpose GPU programming (GPGPU). As discussed below, if the capacities of the GPU are harnessed properly, it is now the most powerful processor in a desktop computer and its development continues to outpace developments in CPUs. The GPU does, however, demand very specific skills to ensure that its potential is fully realised. These skills are still in relatively short supply and, for the moment, it certainly makes sense for an SME to outsource such work.

The GPSME project has provided a general toolkit for converting CPU code to its GPU version with limited user input. It is a two-year project funded by the European Commission under the 7th Programme Framework. More information can be found at http://www.gp-sme.eu/