Version 1.00

aCe

Architecture Adaptive Computing Environment

Parallel Computing by Design


Abstract

aCe is a data-parallel computing environment designed to improve the adaptability of algorithms to diverse architectures. The primary purpose of aCe is to encourage programmers to implement applications on parallel architectures by providing them the assurance that future architectures will be able to run their applications with a minimum of modification. A secondary purpose is to encourage computer architects to develop new types of architectures by providing an easily implemented software development environment and a library of test applications.

Goal

The goals of aCe are:

Programming Method

aCe is based on the concept of structured parallel execution. First the programmer designs a virtual architecture that reflects the spatial organization of an algorithm. A virtual architecture may consist of many groups, clusters of many virtual processing elements (PE) or bundles of threads of execution. Then code is written reflecting the temporal organization of the algorithm. The code defines the threads of execution performed on each PE. Together the virtual architecture and threads of execution define the algorithm's execution.

aCe is both data-parallel and task-parallel, data parallel in that processing elements of a cluster execute common threads of execution, and task parallel because processing elements of different clusters execute different bundles of threads of execution .

aCe is architecture-adaptive, because different virtual architectures may be used for different physical architectures, to improve architecture dependent performance.

Supported Languages

Supported Machines

Software

Current State

The current version of aCe C is Version 1.00. aCe is an evolving project and has not yet reached its stated goals. Any comments would be greatly appreciated and may be sent to John.E.Dorband@nasa.gov.


John E. Dorband / NASA GSFC / John.E.Dorband@nasa.gov