ASUH: API for Scientific Utilization of Heterogeneity


Andrew Conegliano
Patrick Gray
Jae Lee

Prof. Manish Parashar


What is an API?
• An API is an application programming interface used to accelerate application creation by providing programmers with a library of data structures, algorithms, and functions
• Examples: Google Maps API, SAGA, Rotten Tomatoes API, Twitter API

Why create an API?
• Separate modules simplify debugging
• Common reuse of functions requires less code
• Standardization of I/O data mitigates procedural error
• Easily expandable over time
• Each module provides users with an example of how new modules should work


The field of High Performance Computing needs a better method for analyzing vastly large amounts of output data without flooding networks and increasing the amount of computing carried out on High Performance Computers

Proposed Solution
• Accelerators: devices attached to computers that can be utilized to perform analysis of data
• GPUs are perfect for highly parallel processes and data
• CPUs can be accessed for highly serial computations, and also when the GPU is being taxed to capacity

Research Focus
Investigate the differences in simulation power and time consumption when offloading data analysis to accelerators, instead of incorporating it into simulation runtimes