NAG Software Optimization and Code Modernization can help you improve the cost-effectiveness and performance of your numerical computing in science, engineering, finance, analytics and more.
The overwhelming proportion of performance from all mainstream current and future processors comes from parallel processing techniques. In addition, system architectures have increasingly complex memory hierarchies and performance characteristics. Software must be modified, or ‘modernized’, in order to exploit this hardware complexity to access the potential performance. Un-modernized software risks operating at a severely restricted level of capability.
Software modernization is often a required step for an application to be able to effectively use GPUs (e.g., from NVIDIA or AMD), Intel’s Xeon Phi, and other many-core processors. However, software modernization also delivers significant performance advantages on more traditional processors, such as Intel’s Xeon family.
Step 1: Discover
The first step is to analyze the software to identify the code structure, performance bottlenecks, portability issues, etc. A report is produced to describe the current performance limitations (if any) and recommend the modernization needed.
This typically takes a few days to a week.
Step 2: Deliver
Once a software modernization plan is agreed, including an understanding of the business benefits, then the experienced HPC software engineers at NAG work closely with your code owners and/or key users to deliver the modernizations and performance improvements.
A key part of Step 2 is the testing phase. Quality Assurance processes will check the performance and robustness of the modernized software.
Modernizing a code can take anything from a few days to many months, depending on the complexity of the code, the improvements needed, and the target hardware platform(s).
Cost-effectiveness and business capability
- Get the best performance out of current systems to improve cost-effectiveness and business capability
Enabling new technologies
- Enable the use of new technologies such as GPUs, Xeon Phi, ARM processors and more
Exploit future architectures
- Protect the application software’s ability to exploit future architectures
Balance of cost, quality and time
- Achieve software modernization needs with the right balance of cost, quality and time
NAG has been working with numerical software for over five decades to improve portability, implement parallelism, better scalability, and optimize performance whilst ensuring application robustness. NAG’s unique combination of expertise in HPC technology and numerical software engineering - over 80 HPC software innovation projects - enables NAG to deliver assured Software Optimization and Code Modernization services to customers. NAG delivers successful HPC and software engineering projects throughout academia, government and industry, including Oil & Gas, Manufacturing, Aerospace, Financial Services, and Data Analytics.