Chapel is a programming language for improved parallelism, which is designed and developed by Cray Inc. and academia. It's intended for large-scale supercomputing as well as clusters, but also suitable for common multicore workstations, desktop computers and laptops.
Chapel is an imperative structured language, shares many attributes with C, C++, Fortra, Java, Python and Matlab, but doesn't derive from either. It supports multithreading, abstractions for data and nested task parallelism, concurrency, locale data target specifiers, global-view data aggregates, natural expressions for distributed data structures, to facilitate its multiresolution design. It's object-oriented, allows type inference, generic programming and rapid prototyping, and code or library integration.
Homepage
Download
Recent Releases
1.11.023 May 2015 09:05
minor feature:
revamped 'chpldoc' and used it to create web docs for all standard modules.
added a new FileSystem standard module supporting operations on files/dirs.
added a new FFTW standard module supporting key FFTW routines.
added task intents to forall loops, plus new intents such as 'in' and 'reduce'.
added support for standalone parallel iterators, used by non-zippered foralls.
added support for vectorization of data parallel loops and operations.
optimized away communication code for module-scope variables and local arrays.
added an early prototype interactive/interpreted mode for writing Chapel code.
initial support for Python- Chapel interoperability via PyChapel.
made 'ugni'/'muxed' the default comm/tasking choices for cray-x* module users.
added a new 'chpltags' utility to generate emacs/vim tags for Chapel code.
numerous other improvements for better performance and cleaner generated code.
improved portability to NetBSD and additional flavors of Linux.
upgraded the bundled versions of GASNet, hwloc, llvm, and dygraphs.
numerous bug fixes.
1.10.003 Oct 2014 12:45
major feature:
* License and contributor agreement changed to Apache 2.0 license.
* made Qthreads the default tasking layer for Chapel on most platforms
* added initial support for Intel Xeon Phi Knights Corner (KNC) processors
* added new standard modules for bit operations, prefetch, file/directory utils
* extended auxiliary file system support for HDFS to include Lustre and cURL
* added support for set-based operations on associative domains and arrays
* added draft support for vector methods on 1D arrays with a personal domain
* added the ability to query arrays for the subdomain(s) that the locale owns
* added the ability to pass contiguous Chapel arrays to extern procedures
* performance boosts due to Qthreads tasking, improved LICM, less communication
* several generated code cleanups including C for loops and fewer ref temps
* significantly improved const-ness checking for fields, indices, domains/arrays
* fixed the semantics for passing sync/single variables to generic arguments
* improved support for, and orthogonality of, constructor calls
* added a compiler flag to support specializing for the target architecture
* added symbolic CHPL_RT_NUM_THREADS_PER_LOCALE values to support common cases
* added an --about flag to Chapel executables to print compilation information
* new primer examples for associative domains/arrays, vector ops, random numbers
* two new shootout benchmarks and many improvements to the existing ones
* split setchplenv.* source scripts into "quick start" and "production" modes
* by default, attempt to build and enable RE2 and GMP when possible
* updated versions of hwloc, tcmalloc, and gasnet third-party packages
* numerous bug fixes
* many test system improvements including C-based testing and external timers
* many developer process improvements such as GitHub, Travis, Coverity, Jenkins
* many other developer-oriented improvements and refactorings
|