Software Porting and Tuning

Multicore technology is now pervasive in computing systems. Your software won't achieve the performance potential of the multiple cores unless it is optimized for such architectures. In fact, applications that are not optimized for multicore hardware may even run slower on multicore systems than on older technology, as the serial performance of individual cores may be less and there is increased contention for system resources such as memory bandwidth. As the computer industry looks to deliver more cores, more parallelism and more diverse processing capabilities, rather than higher clock rates, investing in the wider aspects of productivity - people and software - can now be the critical differentiator for a user of technical computing, rather than the traditional budget focus on hardware.Ā 

Need to move your application to new hardware or software technology? Want your application to exploit the potential cost/performance benefits of GPUs or manycore coprocessors? Need a custom version of the NAG products for particular system?

The NAG Software Porting and Tuning Service can help you with all your porting needs.

NAG expertise and experience has been proven through four decades of developing and supporting high quality software products across a wide variety of systems, and through porting and tuning a range of user applications in our HPC services (e.g. the HECToR Support Service).

Your application running on new technology

Safely benefit from the advantages of new technologies for your applications by working with NAG’s application migration service. NAG’s expertise, proven processes and tools work with you to reliably port your applications in a maintainable fashion to new processors, systems or software technology with reduced risk. NAG understands the technical issues at the heart of reliably porting, tuning and verifying software. NAG is the trusted partner to enable your applications to safely benefit from new generations of hardware.

Custom editions of the NAG products

NAG has the infrastructure to port the NAG library and customer specific numerical routines to your architecture of choice. We have developed a range of tools for checking and improving numerical code to make the porting exercise and future maintenance more reliable. As well as CPU implementations appropriate NAG routines can be ported to GPU and coprocessor systems. We regularly tune our high-performance math library by request for specialist and custom computer systems.

Porting to GPUs and manycore processors

NAG can assess your code to identify the likely value of porting to GPU or manycore processors. Where performance or cost benefits are possible, NAG can port your code to GPUs or other manycore coprocessors using appropriate standards and languages – e.g. CUDA, OpenCL or OpenMP.

We can also advise on appropriate alternative algorithms that may be better suited to manycore/coprocessor/GPU processors.