Version 1.00
aCe
Architecture Adaptive Computing Environment
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:
- to allow easy expression of algorithms in an architecture
independent manner.
- to facilitate the programmer's ability to port algorithms between
diverse computer architectures.
- to facilitate the programmer's ability to adapt algorithms to
different architectures.
- to facilitate the programmer's ability to efficiently implement
algorithms on diverse computer architectures.
- to facilitate the ease of implementation of algorithms on diverse
computing architectures.
- to facilitate the ease of optimization of algorithms on diverse
computing architectures.
- to facilitate development of applications on heterogeneous
computing environments.
- to facilitate development of programming environments for new
computer architectures.
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
- Currently only a super set of C based on ANS C is available.
Supported Machines
- LINUX
- LINUX clusters
- Mac OS X
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