Interactive Code Adaptation Tool (ICAT)

Purpose

ICAT assists users in modifying, compiling, and optimally running their applications on HPC platforms equipped with the Intel Knights Landing (KNL) processors.

Overview

The process of code adaptation to take advantage of the latest innovations in a supercomputing platform begins with learning about the details of the platform's underlying hardware. It can be challenging for many users to spend time and effort in developing an understanding of the innovative features in a supercomputing platform - such as deep memory hierarchies - and to harness their maximum possible performance by manually modernizing their applications.

To mitigate the aforementioned challenge, we are developing an Interactive Code Adaptation Tool (ICAT). In its current form, ICAT assists users in modifying, compiling, and optimally running their applications on HPC platforms that are equipped with the Intel Knights Landing (KNL) processors. ICAT detects a given application's characteristics such as its memory usage pattern, type of memory allocation, and execution time. Depending upon the application's characteristics, it advises the user on optimal ways to take advantage of the KNL processor and its memory hierarchy.

Impact

ICAT is being developed to support users in memory-based optimization, advanced vectorization, and in optimally using the Intel KNL processors.

Contributors

Lars Koesterke
Manager, HPC Software Tools, Research Associate, High Performance Computing

Publications

"Interactive Code Adaptation Tool for Modernizing Applications for Intel Knights Landing Processors," Ritu Arora and Lars Koesterke, Proceedings of the Practice and Experience in Advanced Research Computing 2017 on Sustainability, Success and Impact (PEARC17), July 2017.