The POOMA framework is a C++ class library for the development of large-scale parallel scientific applications. POOMA's Field class implements a templated, multidimensional, data-parallel array that partitions data in simulation domain into sub-blocks. These subdomain blocks are used on a parallel computer in data-parallel Field expressions. In this paper we describe the design of Fields, their implementation in the POOMA framework, and their performance on a Silicon Graphics Inc. Origin 2000. We focus on the aspects of the Field implementation which relate to efficient memory use and improvement of run-time performance: reducing the number of temporaries through expression templates reducing the total memmory used by compressing constant regions, and performing calculations on sparsely populated Fields by using sparse index lists.
展开▼
机译:POOMA框架是用于开发大规模并行科学应用程序的C ++类库。 POOMA的Field类实现了一个模板化的多维数据并行数组,该数组将模拟域中的数据划分为子块。这些子域块在并行计算机上的数据并行字段表达式中使用。在本文中,我们描述了Fields的设计,它们在POOMA框架中的实现以及它们在Silicon Graphics Inc. Origin 2000上的性能。性能:通过表达式模板减少临时数,从而减少压缩常量区域所使用的总内存,并通过使用稀疏索引列表对稀疏填充的字段执行计算。
展开▼