ASUH: API for Scientific Utilization of Heterogeneity
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
• 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
Investigate the differences in simulation power and time consumption when offloading data analysis to accelerators, instead of incorporating it into simulation runtimes