Hiya,
Saw this today, and its syntax is intriguing.
* http://chapel.cray.com/
Description:
Chapel is a new parallel programming language being developed by Cray
Inc. as part of the DARPA-led High Productivity Computing Systems
program (HPCS). Chapel is designed to improve the productivity of
high-end computer users while also serving as a portable parallel
programming model that can be used on commodity clusters or desktop
multicore systems. Chapel strives to vastly improve the
programmability of large-scale parallel computers while matching or
beating the performance and portability of current programming models
like MPI.
Chapel supports a multithreaded execution model via high-level
abstractions for data parallelism, task parallelism, concurrency, and
nested parallelism. Chapel's locale type enables users to specify and
reason about the placement of data and tasks on a target architecture
in order to tune for locality. Chapel supports global-view data
aggregates with user-defined implementations, permitting operations on
distributed data structures to be expressed in a natural manner. In
contrast to many previous higher-level parallel languages, Chapel is
designed around a multiresolution philosophy, permitting users to
initially write very abstract code and then incrementally add more
detail until they are as close to the machine as their needs require.
Chapel supports code reuse and rapid prototyping via object-oriented
design, type inference, and features for generic programming.
Chapel was designed from first principles rather than by extending an
existing language. It is an imperative block-structured language,
designed to be easy to learn for users of C, C++, Fortran, Java, Perl,
Matlab, and other popular languages. While Chapel builds on concepts
and syntax from many previous languages, its parallel features are
most directly influenced by ZPL, High-Performance Fortran (HPF), and
the Cray MTA's extensions to C and Fortran.
Or more usefully - copied from the download, two examples:
* Generic linked list : http://pastebin.com/f75623d12
* Producer Consumer : http://pastebin.com/f6f69a91d
Interesting to note the use of a yield keyword used in a very python like way.
The fact it supports generic containers cleanly, and yielding behaviour
strikes me as an interesting example to play with making a mini axon for.
(Adapting the two above exampes would be where I'd personally start)
Michael
--
You received this message because you are subscribed to the Google Groups
"kamaelia" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/kamaelia?hl=en.