Extract and Extend Parallelism using C/C++ Extension for Array Notation on Multicore and Many-core Platforms: An Empirical Investigation with Quantitative Finance Examples.


引用 0|浏览4
ABSTRACTIn this paper, we explore the newly introduced array notion syntax extension in recent release of Intel Compiler with a few representative quantitative finance workloads. We will explore the array syntax both as an abstraction tool to allow the user to succinctly express the intended operations and as a performance tool that facilitates the most efficient implementation which can take advantage of the parallel hardware resource such as vector processing units and ever increasing number of processor cores. We specifically look at how these new array style programming capability can help the financial modeler and software developers to extract the parallelism from the numerical algorithm and extend it from multicore host processor to a hybrid of multicore many-core accelerated computing environment. We start with a functional introduction to the C++ array notation syntax that will be used in the subsequent examples. We, then, present background information on a few derivative pricing algorithms in quantitative finance. For each algorithm, we present a scalar program first and take a performance measurement as baseline. As we choose to use the array programming mechanism, we will look at the programming language related issues and postulate what syntax motivate the developer to use then what the alternative syntax are and why some might be more popular than others. Then we look at the performance related issues and look at the code generation on Intel Architecture based multicore and many-core platforms, and investigate mechanism for performance optimization. We conclude the paper by creating a hybrid program that runs both on multicore and many-core environment, concurrently.
AI 理解论文
Chat Paper