Thanks, Greg. That helps me understand the status of things. And there's nothing wrong with vendors having secret sauce - Intel's pays my salary :-)
Jeff On Thu, Apr 16, 2015 at 9:19 AM, Greg Titus <[email protected]> wrote: > Hi Jeff -- > > Muxed isn't released in source form due to Cray IP issues, and for the same > reason we can't talk about the implementation in detail. But as you > surmised, it's pretty similar to Qthreads in that it does lightweight Chapel > task switching at user level. Because we don't release it in source form it > can only be used as part of the pre-built Chapel modules for Cray X* > targets. > > greg > > > > On 4/16/2015 9:09 AM, Jeff Hammond wrote: >> >> I tried to get more info about muxed but can't find anything online. >> Is this a Cray package that is amenable to use in other contexts? I >> cannot find anything but opaque references in the source. Is it a >> close approximation to Qthreads but with CLE-specific optimizations >> and/or bugfixes? >> >> As someone who works on parallel runtimes, I am always interested in >> the current state-of-the-art and what others have done that might be >> extensible to my projects, including platform-specific stuff like >> uGNI, etc. >> >> Thanks, >> >> Jeff >> >> On Thu, Apr 2, 2015 at 6:09 PM, Brad Chamberlain <[email protected]> wrote: >>> >>> Dear Chapel community -- >>> >>> Cray Inc. and the Chapel open-source community are pleased to announce >>> the >>> release of version 1.11.0 of Chapel. This release's highlights include: >>> >>> * Web-based Standard Library Documentation: Using our newly revamped >>> 'chpldoc' tool for creating source-based documentation (also part of >>> this release), we've updated all of our standard library documentation >>> and put it on the web: >>> >>> http://chapel.cray.com/docs/latest/ >>> >>> * A new FileSystem Module: As part of a recent effort to beef up our >>> standard libraries, this release contains a new FileSystem module >>> which >>> supports copying, renaming, and moving files and directories, as well >>> as >>> a number of iterators for interacting with the file system serially or >>> in parallel. For more information, see its web-based documentation >>> at: >>> >>> >>> http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html >>> >>> * A new FFTW Module: Contributed by Nikhil Padmanabhan (Yale University), >>> this library module wraps a number of key 64-bit FFTW routines in a >>> Chapel-oriented interface. For more information, see: >>> >>> http://chapel.cray.com/docs/latest/modules/standard/FFTW.html >>> >>> * Vectorization: When using the --fast or --vectorize flags and a >>> back-end >>> version of gcc/icc that supports vectorization, the serial inner loops >>> generated for Chapel data parallel operations are now annotated >>> to hint to the back-end compiler that the loop is safe for >>> vectorization. For more information see the --vectorize flag on the >>> 'chpl' man page. >>> >>> * Less Conservative Communication: One of Chapel's traditional >>> performance >>> limiters in distributed-memory settings has been the generation of >>> far-too-conservative communication code by the Chapel compiler. This >>> release contains a stepping stone toward remedying this situation by >>> supporting a developer-oriented pragma that can be used to assert the >>> locality of class references and applying it to the internal data >>> structures used to implement arrays. This results in cleaner >>> generated >>> scalar code, enabling additional back-end C compiler optimizations and >>> reducing unnecessary runtime locality checks. >>> >>> * Default to ugni/muxed on Crays: For users of the Cray module, this >>> release makes the ugni/muxed runtime layers the default, resulting >>> in significant performance gains over the previous default of >>> gasnet/qthreads. See doc/platforms/README.cray in the release for >>> more details. >>> >>> * Initial Support for Python->Chapel Interoperability: This release >>> contains initial support for making calls from Python to Chapel as >>> part >>> of our ongoing interoperability effort, developed by Simon Lund of the >>> University of Copenhagen. For more information, see: >>> >>> http://pychapel.readthedocs.org/ >>> >>> * Prototype Chapel Interpreter: We have recently started on an effort to >>> support Chapel in an interactive/interpreted mode in which the >>> environment executes the Chapel code as it is entered, as in popular >>> scripting and productivity languages. This release contains an early >>> prototype of this effort (chpl-ipe) for those who would like to >>> preview the concept. For more information, refer to: >>> >>> >>> >>> https://github.com/chapel-lang/chapel/blob/release/1.11/doc/release/technotes/README.chpl-ipe.rst >>> >>> * Standalone Parallel Iterators: Traditionally, Chapel's forall loops >>> have been implemented using leader-follower iterators, which support >>> the ability to perform zippered iteration over multiple collections. >>> In the case of forall loops over a single object, however, this >>> interface introduced unnecessary complexity and overheads. To remedy >>> this, Chapel now supports standalone parallel iterators which support >>> the optimized implementation of non-zippered data parallel loops. >>> >>> * Forall Intents and Improved Task Intents: Continuing work started in >>> previous releases for task parallel constructs, version 1.11 extends >>> task intent semantics to forall loops, reducing the chances of race >>> conditions in common cases. As with task intents, a with-clause may >>> be applied to the forall loop to request semantics other than the >>> default. This release also adds support for intents other than 'ref', >>> such as 'in' and 'const'. Finally, it includes an early prototype of >>> a >>> new 'reduce' intent on forall loops. >>> >>> * A 'chpltags' Utility: For those developing large Chapel codes, >>> util/chpltags can be used to index Chapel source files, permitting >>> emacs >>> and vim users to jump to definitions of functions, iterators, and the >>> like. >>> >>> * Numerous other improvements to performance, generated code, and >>> portability, as well as bug fixes, documentation improvements, etc. >>> >>> ...and much more! For more information on the features above, or to see >>> a >>> more complete list of changes in version 1.11.0, refer to the list at the >>> end of this message, or to $CHPL_HOME/CHANGES within the release itself. >>> >>> >>> Contributors to this release include: >>> >>> Sean Billig, individual contributor >>> Kyle Brady, Cray Inc. >>> Brad Chamberlain, Cray Inc. >>> Sung-Eun Choi, Cray Inc. >>> Lydia Duncan, Cray Inc. >>> Michael Ferguson, Cray Inc. >>> Ben Harshbarger, Cray Inc. >>> Tom Hildebrandt, Cray Inc. >>> David Iten, Cray Inc. >>> Vassily Litvinov, Cray Inc. >>> Simon Lund, Københavns Universitet (University of Copenhagen) >>> Tom MacDonald, Cray Inc. >>> Phil Nelson, Western Washington University >>> Michael Noakes, Cray Inc. >>> Nikhil Padmanabhan, Yale University >>> Elliot Ronaghan, Cray Inc. >>> Francisco Souza, individual contributor >>> Greg Titus, Cray Inc. >>> Thomas Van Doren, Cray Inc. >>> >>> >>> To download the 1.11 release, visit its page at GitHub: >>> >>> https://github.com/chapel-lang/chapel/releases/tag/1.11.0 >>> >>> Our development repository is also hosted at GitHub, making it the best >>> place to track or contribute to ongoing Chapel development: >>> >>> https://github.com/chapel-lang/chapel >>> >>> Whether you're a Facebook user, or would simply like to stalk us, check >>> our >>> project Facebook page for a steady stream of informal posts about the >>> project and language: >>> >>> https://www.facebook.com/ChapelLanguage >>> >>> Chapel mailing lists devoted to users, developers, educators, and >>> announcements like this one continue to be hosted from our SourceForge >>> project page (which also hosts a mirror of the 1.11.0 release): >>> >>> http://sourceforge.net/p/chapel/mailman/ >>> >>> Our main project page continues to be hosted at: >>> >>> http://chapel.cray.com >>> >>> and it remains the best place to find Chapel-related information such as >>> papers, presentations, blog posts, tutorials, news items, collaborations, >>> job listings and the like. >>> >>> As always, we're interested in your feedback on how we can make the >>> Chapel >>> language and implementation more useful to you. >>> >>> On behalf of the Chapel Development Team, >>> -Brad Chamberlain >>> >>> >>> ======================================= >>> Release Changes List for version 1.11.0 >>> ======================================= >>> >>> Fourteenth public release of Chapel, April 2, 2015 >>> >>> Highlights >>> ---------- >>> * revamped 'chpldoc' and used it to create web docs for all standard >>> modules >>> (see http://chapel.cray.com/docs/latest/) >>> * added a new FileSystem standard module supporting operations on >>> files/dirs >>> (see >>> http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html) >>> * added a new FFTW standard module supporting key FFTW routines >>> (see http://chapel.cray.com/docs/latest/modules/standard/FFTW.html) >>> * added task intents to forall loops, plus new intents such as 'in' and >>> 'reduce' >>> (see 'Semantic Changes' and 'New Features' sections below) >>> * added support for standalone parallel iterators, used by non-zippered >>> foralls >>> (see examples/primers/parIters.chpl) >>> * added support for vectorization of data parallel loops and operations >>> (see '--vectorize' flag in 'man chpl') >>> * optimized away communication code for module-scope variables and local >>> arrays >>> (see release note slides at >>> http://chapel.cray.com/download.html#releaseNotes) >>> * added an early prototype interactive/interpreted mode for writing >>> Chapel >>> code >>> (see doc/technotes/README.chpl-ipe.rst for more details) >>> * initial support for Python->Chapel interoperability via PyChapel >>> (see http://pychapel.readthedocs.org/ for more details) >>> * made 'ugni'/'muxed' the default comm/tasking choices for cray-x* module >>> users >>> (see doc/platforms/README.cray and doc/README.chplenv) >>> * added a new 'chpltags' utility to generate emacs/vim tags for Chapel >>> code >>> (see 'util/chpltags --help' and 'util/README') >>> * numerous other improvements for better performance and cleaner >>> generated >>> code >>> (see 'Performance Improvements' section below) >>> * improved portability to NetBSD and additional flavors of Linux >>> (see 'Portability Improvements' section below) >>> * upgraded the bundled versions of GASNet, hwloc, llvm, and dygraphs >>> (see 'Third-Party Software Changes' section below) >>> * numerous bug fixes >>> (see 'Bug Fixes' section below) >>> >>> Environment/Configuration Changes >>> --------------------------------- >>> * made the setchplenv.* scripts prepend to PATH and MANPATH rather than >>> append >>> * made the "quickstart" scripts set CHPL_COMM to 'none' and not set >>> CHPL_MEM >>> * improved the logic for auto-detecting when CHPL_ATOMICS should be >>> 'intrinsics' >>> * added auto-detection of CHPL_*_PLATFORM for 'cray-xc'/'cray-xe' systems >>> * added support for building runtime/third-party with the bundled clang >>> version >>> (see references to 'clang-included' in README.chplenv) >>> * split the 'cygwin' CHPL_*_PLATFORM value into 'cygwin32' and 'cygwin64' >>> * added new 'netbsd32' and 'netbsd64' values for CHPL_*_PLATFORM >>> * changed CHPL_COMM/TASKS to default to ugni/muxed when using the cray-x* >>> module >>> (see doc/README.chplenv, doc/platforms/README.cray, and/or >>> doc/README.tasks) >>> * made CHPL_TASKS default to 'fifo' for 'cray-prgenv-cray' >>> CHPL_TARGET_COMPILER >>> >>> Packaging Changes >>> ----------------- >>> * updated Makefiles to support building Chapel in parallel via 'make -j' >>> * avoid rebuilding gmp and re2 speculatively when previous builds have >>> failed >>> >>> Tool Changes >>> ------------ >>> * added an early prototype interactive/interpreted mode for writing >>> Chapel >>> code >>> (see doc/technotes/README.chpl-ipe.rst for more details) >>> * revamped 'chpldoc' to create HTML files via Sphinx for documenting >>> Chapel >>> code >>> (see doc/technotes/README.chpldoc.rst and 'man chpldoc' for more >>> details) >>> * added a new 'chpltags' utility to generate emacs/vim tags for Chapel >>> code >>> (see 'util/chpltags --help' and 'util/README' for more information) >>> >>> Syntactic/Naming Changes >>> ------------------------ >>> * removed the placeholder keyword 'refvar' in favor of the new keyword >>> 'ref' >>> * removed support for the use of 'var' as a return intent (use 'ref' >>> instead) >>> >>> Semantic Changes / Changes to Chapel Language >>> --------------------------------------------- >>> * added support for task intent clauses and semantics to forall loops >>> (see 'Data Parallelism: Forall Intents' in the language specification) >>> * added initial support for 'reduce' intents on forall loops >>> (see doc/technotes/README.reduceIntents) >>> * removed the 'type select x' syntax in favor of simply using 'select >>> x.type' >>> * made read()s of sync/single variables result in a compiler error >>> >>> New Features >>> ------------ >>> * added "blank", 'const', 'in', 'const in' and 'const ref' task intents >>> (see 'Task Parallelism: Task Intents' in the language specification) >>> * added "standalone parallel iterators", used by non-zippered forall >>> loops >>> (see examples/primers/parIters.chpl) >>> * added support for aliasing of domains via the '=>' operator >>> >>> New Interoperability Features >>> ----------------------------- >>> * inital support for Python->Chapel interoperability via PyChapel >>> (see http://pychapel.readthedocs.org/ for more details) >>> * added a prototype capability to embed external dependences to source >>> via >>> 'use' >>> (e.g., use "foo.h", "-lfoo"; is like adding these to the 'chpl' >>> command-line) >>> * added support for passing multidimensional arrays to external routines >>> (see doc/technotes/README.extern) >>> * added munging of all user identifiers by default to avoid naming >>> conflicts >>> (see --[no-]munge-user-idents in 'man chpl' and doc/README.executing) >>> * added an error when passing Chapel strings to C routines; use c_string >>> instead >>> >>> Standard Library/Modules >>> ------------------------ >>> * added a new module, FileSystem, containing numerous file system >>> operations >>> (see >>> http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html) >>> * added support for key 64-bit FFTW routines (single- and multi-threaded) >>> (see http://chapel.cray.com/docs/latest/modules/standard/FFTW.html and >>> http://chapel.cray.com/docs/latest/modules/standard/FFTW_MT.html) >>> * added parity() and rotate() operations to the BitOps module >>> (see http://chapel.cray.com/docs/latest/modules/standard/BitOps.html) >>> * added parallel versions of the glob(), walkdirs(), and findfiles() >>> iterators >>> (see >>> http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html) >>> * started a new module, Path, supporting realPath(), curDir, parentDir, >>> pathSep >>> (see http://chapel.cray.com/docs/latest/modules/standard/Path.html) >>> * added a new module, Assert, defining a simple assertion capability >>> (see http://chapel.cray.com/docs/latest/modules/standard/Assert.html) >>> * added support for C types c_ptrdiff, c_uintptr, and c_intptr to >>> SysCTypes.chpl >>> (see >>> >>> http://chapel.cray.com/docs/latest/modules/standard/gen/doc/SysCTypes.html) >>> * changed cwd() and chdir() from standalone functions to locale methods >>> (see >>> http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html) >>> * made mkdir(parents=true) behave more like 'mkdir -p' >>> * added a .safeCast() method to integer types to value-check downcasts >>> (see http://chapel.cray.com/docs/latest/modules/standard/Types.html) >>> * changed min(t) and max(t) to return 'param' values for integral types >>> 't' >>> (see http://chapel.cray.com/docs/latest/modules/standard/Types.html) >>> * parameterized RandomStream by an 'eltType' and updated its methods >>> accordingly >>> (see http://chapel.cray.com/docs/latest/modules/standard/Random.html) >>> * removed the parSafe arguments from RandomStream's methods in the Random >>> module >>> (see http://chapel.cray.com/docs/latest/modules/standard/Random.html) >>> * added support for escaping pattern-style format strings using %{} >>> (e.g., "writef("#%{##}", 10)" => "#10") >>> * added support for readf()/writef() of octal values >>> * changed 'BigInt' methods to use Chapel types rather than C types >>> * folded the prototypical 'Filerator' module into the new 'FileSystem' >>> module >>> * retired the 'Containers' module in favor of vector operations on arrays >>> (see examples/primers/arrayVectorOps.chpl) >>> >>> Performance Improvements >>> ------------------------ >>> * added support for vectorization of data parallel loops and operations >>> (see '--vectorize' flag in 'man chpl') >>> * optimized away the creation of anonymous ranges in loops >>> (e.g., 'for i in 1..10' no longer creates an anonymous range object >>> for >>> 1..10) >>> * optimized away communication code for module-scope variables and local >>> arrays >>> * optimized iterations over ranges in data parallel constructs like >>> 'forall' >>> * added standalone parallel iterators for ranges and default domain maps >>> * extended loop-invariant code motion to include certain global variables >>> * added an 'assertNoSlicing' config that can be used to optimize array >>> accesses >>> (see $CHPL_HOME/PERFORMANCE) >>> * avoided creating new singleton tasks within serial execution contexts >>> >>> Memory Improvements >>> ------------------- >>> * reduced memory leaks due to compilerWarning()s and runtime string >>> arguments >>> * distinguished between "owned" and "unowned" c_strings in implementation >>> * improved the handling of strings across multiple locales >>> >>> Launcher-specific Changes >>> ------------------------- >>> * in the 'pbs-aprun' launcher, removed reliance on the mpp* options >>> * added a --nodelist option to the 'slurm-srun' launcher >>> * in the 'slurm-srun' launcher, stopped using expect scripts >>> >>> Platform-specific Changes >>> ------------------------- >>> * fixed an issue in which Qthreads would not handle sleep() correctly for >>> darwin >>> * added a micro-sleep when yielding threads on Cygwin to improve >>> throughput >>> * changed CHPL_COMM/TASKS to default to ugni/muxed when using the cray-x* >>> module >>> (see doc/README.chplenv, doc/platforms/README.cray, and/or >>> doc/README.tasks) >>> * enabled 'ugni' tasking to be usable with 'qthreads' as well as 'muxed' >>> * reduced default heap size used for CHPL_COMM='ugni' to 2/3 free node >>> memory >>> (see doc/platforms/README.cray) >>> * changed 'muxed' tasking to use # of threads equal to the # of CPUs by >>> default >>> (see doc/platforms/README.cray) >>> * disabled optimizations by default for cray-prgenv-cray compilations >>> * split the 'cygwin' platform value into 'cygwin32' and 'cygwin64' >>> * split the 'netbsd' platform value into 'netbsd32' and 'netbsd64' >>> * made CHPL_TASKS default to 'fifo' for 'cray-prgenv-cray' >>> CHPL_TARGET_COMPILER >>> >>> Portability Improvements >>> ------------------------ >>> * fixed several portability issues on NetBSD platforms >>> * fixed the use of the --llvm flag on Mac OS X ('darwin') platforms >>> * fixed some portability issues with the use of hwloc and -lnuma for >>> 'qthreads' >>> * fixed some static/dynamic linking issues with certain >>> platforms/compilers >>> * fixed a gmp build issue for 32-bit platforms >>> >>> Third-Party Software Changes >>> ---------------------------- >>> * updated the bundled version of GASNet to 1.24.0 >>> * updated the bundled version of hwloc to 1.10.1 >>> * updated the bundled version of llvm to 3.6.0 >>> * upgraded the bundled version of dygraphs to version 1.1.0 >>> * added support for dynamically installing Python packages required by >>> 'chpldoc' >>> (see 'chpldov-venv' in third-party/README) >>> * rearchitected scripting framework for third-party dependences >>> * made the re2 build do a better job of propagating errors back to the >>> Makefiles >>> * changed Qthreads to avoid using guard pages when mprotect() won't work >>> * fixed a bug in limiting the maximum size of Qthreads memory pools >>> >>> Documentation >>> ------------- >>> * added web-based docs for all standard modules and removed from >>> spec/READMEs >>> (see http://chapel.cray.com/docs/latest/) >>> * made some minor improvements to the Quick Reference document >>> * added documentation for class and record destructors to the spec >>> * removed an outdated distinction between function calls using () vs. [] >>> in >>> spec >>> * clarified that integer literals may be 'int' or 'uint' in the spec >>> * added a note for 'zsh' users to the top-level README >>> * added a note to CONTRIBUTORS noting mis-attributed code authors within >>> GitHub >>> * improved the documentation of the slurm* launchers >>> (see doc/README.launcher, doc/platforms/README.cray) >>> * added a note about ugni memory registration and concurrency with slurm >>> (see doc/platforms/README.cray) >>> * added a note about a longstanding undocumented feature to squash ref >>> counting >>> (see $CHPL_HOME/PERFORMANCE) >>> >>> Example Codes >>> ------------- >>> * added a new primer example demonstrating use of the FFTW module >>> (see examples/primers/FFTWlib.chpl) >>> * added standalone parallel iterators to the leader-follower primer and >>> renamed >>> (see examples/primers/parIters.chpl) >>> * updated and renamed the chpldoc primer example to reflect chpldoc's >>> changes >>> (see examples/primers/chpldoc.doc.chpl) >>> * updated the random numbers primer to reflect changes to the interface >>> (see examples/primers/randomNumbers.chpl) >>> * fixed a bug in our lulesh implementation when using the 3D >>> representation >>> * updated miniMD's Stencil distribution to track changes in BlockDist >>> * changed miniMD to work around a bug in passing remote records by blank >>> intent >>> * updated the HPCC FFT example to use new BitOps >>> * updated SSCA2 to reflect new intent semantics for forall-loops >>> * updated the regexdna shootout to accept extra arguments as used by >>> framework >>> * made stream and ra save their problem sizes when performance testing >>> * replaced the use of format() in example codes with writef() >>> >>> Compiler Flags (see 'man chpl' for details) >>> ------------------------------------------- >>> * added --[no-]use-noinit to permit 'noinit' to be ignored >>> * added support for setting --fast via environment variable CHPL_FAST >>> * added --[no-]ignore-classes to disable local class optimizations >>> * added --[no-]vectorize to enable/disable generation of vectorization >>> hints >>> * added --[no-]cast-checks to enable/disable value checking in safeCast >>> methods >>> * added --[no-]munge-user-idents to control munging of generated >>> identifiers >>> * removed all documentation-related options; use 'chpldoc' instead >>> * added a flag --[no-]task-tracking to enable/disable runtime task >>> tracking >>> >>> New Semantic Checks (for old semantics) >>> --------------------------------------- >>> * Improved 'const' checking for array/tuple fields and array/domain >>> aliases >>> >>> Error Message Improvements >>> -------------------------- >>> * added an error when compiling for a configuration whose runtime is not >>> built >>> * improved error messages for several range overflow conditions >>> >>> Bug Fixes >>> --------- >>> * fixed a bug with dynamically dispatched iterators >>> * fixed a bug with parallel iteration over non-naturally-aligned ranges >>> * fixed a bug in which record variables did not call user-defined >>> constructors >>> * fixed a bug in which arrays of associative domains could cause a >>> segfault >>> * fixed a bug in which user identifiers could easily conflict with C >>> identifiers >>> * fixed a bug with formatted writes of integers using "###." >>> * fixed an infinite loop in binary reads of strings when EOF is reached >>> * fixed a bug preventing sparse domains from having 'uint' indices >>> * fixed a bug when casting param 'int(64)' and 'uint(?)' to 'c_string' >>> * fixed a bug in which secondary parentheses-less methods did not work >>> well >>> * fixed a buffer overrun issue in certain I/O routines >>> * fixed a bug in which defining multiple destructors caused a segfault >>> * fixed some bugs in the standard Buffers module >>> * fixed a bug in which filenames generated by --cpp-lines would get >>> corrupted >>> * fixed a bug in --cache-remote for 32-bit platforms >>> * fixed a bug with loop invariant code motion in the context of nested >>> functions >>> * fixed a crash when using multiple formal type queries for primitives >>> types >>> * fixed a bug in which iterators yielding locale types caused an internal >>> error >>> * fixed a bug in which --no-remove-copy-calls would break certain extern >>> records >>> * fixed a bug in the parser causing issues with &&= and ||= for >>> --baseline >>> * fixed a bug in which developer pragmas were only attached to the first >>> symbol >>> >>> Platform-specific bug fixes >>> --------------------------- >>> * fixed a bug in which I/O errors would print "unknown" for paths for >>> 'cygwin' >>> * fixed a warning in our calls to glob() when compiling with >>> 'prgenv-cray' >>> * fixed an issue in which generated identifiers could be too long for >>> 'pgi' >>> * fixed a bug in which 'gmp' would not build cleanly for 32-bit Ubuntu >>> systems >>> * fixed a bug in atomic operations on 'real' types for CHPL_COMM='ugni' >>> >>> Runtime Library Changes >>> ----------------------- >>> * enabled 'ugni' tasking to be usable with 'qthreads' as well as 'muxed' >>> * changed Qthreads to yield after uncontested sync var locks to avoid >>> starvation >>> >>> Compiler Performance >>> -------------------- >>> * accelerated compilation times by disabling the task table by default >>> (see '--[no-]task-tracking' on the 'chpl' man page and >>> doc/README.executing) >>> >>> Testing System >>> -------------- >>> * added support for specifying 'skipif' files as executable scripts >>> * added a mode in which only futures with .skipif files are tested >>> * check for .skipif conditions before wasting any effort on a test >>> * switched to a consistent and simpler naming scheme for test >>> configurations >>> * added timing measurements to the log for various aspects of testing >>> * revamped emails sent by testing scripts for maintainability and spam >>> avoidance >>> * made the test system less sensitive to line/versions #s in .bad >>> comparisons >>> * added a --test-root flag, improving start_test when run from outside >>> CHPL_HOME >>> * fixed a bug in which '-nl' was passed to C tests for multilocale >>> testing >>> * added support for jUnit XML-style report generation to start_test and >>> paratest >>> * made paratest.server's compopts/execopts accumulate rather than >>> overwrite >>> * added CHPL_TEST_UNIQUIFY_EXE to support simultaneous test runs on a >>> directory >>> * added the ability to set the default testing timeout via >>> CHPL_TEST_TIMEOUT >>> * added support for CHPL_TEST_NUM_TRIALS to be set by a user's >>> environment >>> * squashed duplicate error messages due to sub_test failures >>> * fixed a bug with stdin redirects for tests with multiple .execopts >>> * made start_test smarter about stdin and launchers for multilocale >>> testing >>> * improved the testing system's handling of timeouts when launchers are >>> used >>> * added validation for CHPL_NIGHTLY_LOGDIR in nightly testing >>> * fixed a bug for tests with multiple execopts settings that timed out >>> * permitted suppression files to contain blank lines >>> * fix bug in which suppression-based issues only appeared in the test >>> summary >>> * fixed a bad interaction between env. vars. set in sub_test vs. execenv >>> files >>> * made sub_test ignore OS errors during unlinking to quiet false >>> negatives >>> >>> Performance Testing/Graphing System >>> ----------------------------------- >>> * allow scrolling of the list of graphs independently from graphs >>> themselves >>> * embed more information in the URL of performance graphs for sharing >>> purposes >>> * improved the portability of URLs from the performance graphing system >>> * added support for 'today' as a date in the perf graph system's URL >>> encodings >>> * accelerated graphs by moving sorting of graphs' legends into genGraphs >>> script >>> * track top processes between performance runs to look for causes of >>> noise >>> * improved support for comparing multiple performance testing >>> configurations >>> * started logging the sha values for performance runs, for historical >>> reference >>> * changed performance graphs to use json rather than csv >>> * automatically strip punctuation characters from the end of graph keys >>> >>> Developer-oriented changes: Utility Changes >>> ------------------------------------------- >>> * added a new compiler gdb command 'locid' which prints an AST's source >>> location >>> * made build_configs.py support parallel execution >>> >>> Developer-oriented changes: Compiler Flags >>> ------------------------------------------ >>> * added --report-order-independent-loops to note loops with vectorization >>> hints >>> * added --remove-unreachable-blocks to attempt early removal of dead code >>> * fixed a code pointer in the --help message for --log >>> >>> Developer-oriented changes: Module improvements >>> ----------------------------------------------- >>> * added a pragma for asserting that a class field is local to the object >>> * moved routines in support of iterators to a new module >>> ChapelIteratorSupport >>> * split _build_range() into several routines with better names >>> * refactored overloads of range operator definitions >>> * changed Filerator routines to use new isLink(), isDir(), and isFile() >>> routines >>> * removed requirement to add 'no ChapelStandard' pragma to internal >>> modules >>> >>> Developer-oriented changes: Makefile improvements >>> ------------------------------------------------- >>> * added a "WARNINGS" macro that can be used to turn on C-level warnings >>> * moved check for standard C headers into the post-commit smoke test >>> * simplified and regularized third-party Makefiles >>> >>> Developer-oriented changes: Compiler improvements/changes >>> --------------------------------------------------------- >>> * changed the parser to a "pure push" style of parser >>> * changed the compiler to require bison 2.5 (or later) >>> * dramatically reworked representation and manipulation of loop AST nodes >>> * made more AST members private and increased the use of query methods >>> * added a new, prototype AST pretty-printer for Chapel-oriented output >>> * made improvements to list_view() >>> * made flags on a symbol print in a deterministic order >>> * extended DeadCodeElimination to reclaim degenerate C for loops >>> * made 'narrowWideReferences' its own compiler pass and refactor it >>> * moved the 'docs' pass earlier in compilation >>> * reorder localCopyPropagation to avoid a ref-before-def bug >>> * improved verification of expressions to check correctness of AList >>> links >>> * fixed a bug in which failed chpl__tryToken resolutions could roll back >>> too >>> far >>> * removed flags: FLAG_LABEL_BREAK, FLAG_LABEL_CONTINUE, FLAG_USER_NAMED >>> * distinguished FLAG_WIDE from FLAG_WIDE_REF >>> * deprecated the use of the MOD_MAIN tag >>> * simplified code related to calling user-defined constructors vs. >>> _defaultOf >>> * converted the collapsing of nested BlockStmts to use a visitor >>> * added a predicate to determine if an expression is a "statement >>> expression" >>> * converted some uses of C arrays to std::vector in compiler >>> * added binary operators to the BitVec implementation >>> * replaced the basic block macros with private static functions >>> * fixed a bug in basic block analysis >>> * moved the handling of boolean short-circuiting from 'parse' to >>> 'normalize' >>> * renamed 'by' operators in the compiler's IR to avoid naming conflicts >>> * refactored fix_def_expr() in the normalize pass >>> * refactored constant folding vs. dead code elimination for CondStmts >>> * fixed several code issues identified by coverity scan >>> * many other code refactorings and improvements >>> >>> Developer-oriented changes: Runtime improvements >>> ------------------------------------------------ >>> * simplified interactions between locale models and the runtime >>> * improved the non-blocking communication interface >>> * added support for the main process to run Chapel tasks >>> * guarded against some src==dst calls to memcpy() >>> * for optimized builds of the runtime, set NDEBUG to turn off assertions >>> * fixed several code issues identified by coverity scan >>> >>> Developer-oriented changes: Generated Code improvements >>> ------------------------------------------------------- >>> * improved the spacing when printing IDs via --gen-ids >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Dive into the World of Parallel Programming The Go Parallel Website, >>> sponsored >>> by Intel and developed in partnership with Slashdot Media, is your hub >>> for >>> all >>> things parallel software development, from weekly thought leadership >>> blogs >>> to >>> news, videos, case studies, tutorials and more. Take a look and join the >>> conversation now. http://goparallel.sourceforge.net/ >>> _______________________________________________ >>> Chapel-announce mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/chapel-announce >>> >> >> > -- Jeff Hammond [email protected] http://jeffhammond.github.io/ ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ Chapel-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/chapel-developers
