Cray Inc. and the Chapel open-source community are pleased to announce the
release of version 1.10.0 of the Chapel Compiler.
The highlights of this release include:
The runtime tasking layer has switched to the lighter-weight Qthreads-based
implementation by default, resulting in performance improvements for most
computations. This release also includes initial support for Intel Xeon Phi
Knights Corner (KNC) processors using the 'fifo' tasking layer.
New capabilities on arrays and domains include: support for set-based
operations on associative domains and arrays; draft support for vector methods
on 1D arrays that have their own individual domain; the ability to query
distributed arrays to determine the subdomain that a given locale owns; and the
ability to pass contiguous Chapel arrays to external procedures.
The standard library has been expanded to support library routines for bit
operations, utility functions for files and directories, and prefetch; regular
expression and multiple precision arithmetic support has also been enabled when
using a back-end C compiler that supports re2 and GMP, respectively.
The compiler has been improved to implement better const-ness checking, to fix
the semantics for passing sync/single variables to generic arguments, and to
improve the support for constructor calls. More generally, the release includes
improvements to performance, the quality of the generated code, error messages,
and numerous bug fixes.
The example code section has been expanded to include new primer examples for
associative domains and arrays, for vector operations, and for random numbers;
in addition, two new Computer Language Benchmark Game computations have been
added, and several others have been improved.
The auxiliary file system features now include web requests with libcurl and
Lustre, in addition to better integration of HDFS.
This release of Chapel contains stable support for the base language, and for
task and regular data parallelism using one or more locales. Data parallel
operations on irregular domains and arrays are currently supported in a
single-locale implementation. While performance has received a great deal of
attention in Chapel's design and is generally improving from
release-to-release, this release is lacking a number of crucial performance
optimizations. See $CHPL_HOME/PERFORMANCE for additional notes on Chapel
performance.