A-Cell is a high-level abstraction of fine-grained parallelism specifically designed to be applicable to all range of parallel devices from super computers based on CPUs or GPUs, to network of embedded devices. To achieve this, A-Cell adopts a programming model called "connectionist computing" and with that takes a leap step away from Turing programming model. Also, in contrast with most common solutions like PGAS that are holistic, the philosophy of A-Cell is reductionist. An ACell encapsulates a fine-grained task with its related variables. A source-to-source compiler translates the program to a set of programs that are compilable to the target devices. Execution of the task is through massive instantiation of an A-Cell prototype. The runtime system takes the responsibility of distributing A-Cell instances between all available nodes, cores or multiprocessors (MPs). The runtime system also assures synchronization and consistency between A-Cell instances. This paper introduces the theoretical aspect of A-Cell, its semantics and its design logic, and reports the progress made for its materialization, including the A-Cell simulator, C/C++ runtime system, and precompiler.
[1]
William Gropp,et al.
Programming for Exascale Computers
,
2013,
Computing in Science & Engineering.
[2]
Gilles Kahn,et al.
The Semantics of a Simple Language for Parallel Programming
,
1974,
IFIP Congress.
[3]
Takao Terano,et al.
Knowledge Request-Broker Architecture: A Platform for Social Computational Intelligence
,
2010
.
[4]
Sreedhar B. Kodali,et al.
The Asynchronous Partitioned Global Address Space Model
,
2010
.
[5]
Pascal Fradet,et al.
Principles of Chemical Programming
,
2004,
RULE@RDP.
[6]
Hans-Wolfgang Loidl,et al.
Algorithm + strategy = parallelism
,
1998,
Journal of Functional Programming.
[7]
Pascal Raymond,et al.
The synchronous data flow programming language LUSTRE
,
1991,
Proc. IEEE.
[8]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[9]
Message Passing Interface Forum.
MPI: A message - passing interface standard
,
1994
.