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.
The NAG Software Porting and Tuning Service assists your application move to new hardware or software technology. We can enable your application to exploit the potential cost/performance benefits of GPUs or manycore coprocessors.
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.
Your application running on new technology
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.
Custom editions of NAG software
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 numerical 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 for use on manycore/coprocessor/GPU processors.