Investigating Application Analysis and Design Methodologies for Computational Accelerators
Volodymyr Kindratenko, Robert J. Brunner, Guochun Shi, Dylan W. Roeh, Austin Martinez · 2009
The impact of these hardware design trends on scientific applications and the investment required to utilize these resources is not fully understood in the scientific computing community. While nextgeneration computing architectures offer great potential performance, the execution models, software architectures, and development processes that are required to realize that potential currently differ dramatically from existing computational architectures. These new architectures require different methods for application analysis, hardware selection, software development, application adaptation, and performance optimization. Methods and practices for these new architectures are not welldeveloped and existing knowledge and experiences are fragmented across small groups of early adopters. While numerous exemplary applications have been implemented on accelerator architectures—with varying success—the scientific computing community has yet to take a broad view on the problem and to formulate formal procedures and methods for application development when considering accelerator technologies. In this report, we document an exploratory investigation to understand the impact of accelerator technologies on scientific and engineering codes and to quantify the efforts and requirements necessary to implement these codes on the newly emerging accelerator technologies. We implement a commonly used algorithm on several accelerator architectures and, in doing so, develop guidelines and recipes that other researchers can adopt when porting their own applications to similar accelerator-based architectures. The chosen accelerators are NVIDIA GPUs, IBM Cell Broadband Engine, and Nallatech H101 FPGA accelerator, their characteristics are listed in Table 1. The chosen algorithm is the two-point angular correlation function (TPACF) as applied in the field of astronomy. Correlation analyses are a common tool from the field of spatial statistics, and thereby impact a wide range of scientific disciplines. The report is organized as follows. We first introduce the mathematics behind the two-point angular correlation function. We then briefly discuss its implementation on a conventional microprocessor followed by a detailed analysis and implementation descriptions for FPGA, GPU, and Cell architectures. We conclude the report with an analysis of design methodologies for different accelerator architectures.