Skip to content

Version 20.03.0 (March 31, 2020)

Compare
Choose a tag to compare
@elliottslaughter elliottslaughter released this 31 Mar 22:54
· 11099 commits to stable since this release
  • Regent
    • Behavior change: __fields and __physical now both require explicit field names, i.e., __fields(r.{x, y}) rather than __fields(r). This makes the behavior more unambiguous and helps to avoid bugs
    • Added complete and incomplete keywords that can be used to mark partitions as such
    • Added support for setting mapper ID and tag via t:set_mapper_id() and t:set_mapping_tag_id()
    • Initial support for predicated execution of if and while statements
    • Fixed several bugs, memory leaks and improved compile times
  • Legion
    • Introduction of Fortran bindings for Legion
    • Support for creating deferred index spaces from future values
    • Support for construction of partitions from a map of domains or from a future map
    • Support for reducing a future map to a single future asynchronously
  • Realm
    • Support for Kokkos parallel launch constructs in Realm (and therefore Legion) tasks. Currently supported Kokkos execution spaces are: Serial, OpenMP, CUDA. Application data remains in logical regions, but accessors can be converted to Kokkos (unmanaged) Views if needed. See the kokkos_interop example
    • Introduction of experimental MPI-based network layer, enabled with REALM_NETWORKS=mpi (make) or -DRealm_NETWORKS=mpi (cmake). Use REALM_NETWORKS=gasnet1 (or USE_GASNET=1, which still works) for the GASNet-based network layer (which works with GASNet-1 or GASNet-EX)
    • CUDA Runtime API interposer (a.k.a. "hijack") can now be disabled with USE_CUDART_HIJACK=0 (make) or -DLegion_HIJACK_CUDART=OFF (cmake). This can reduce effectivenes of task-parallelism for CUDA tasks, so use only if needed
    • More control over GPU selection via: -cuda:skipgpus N which leaves the first N GPUs available for other uses, -cuda:skipbusy which skips over busy GPUs, and -cuda:minavailmem M which skips GPUs with less than M device memory available
    • Reduction in memory usage of Realm internal data structures
  • Tools
    • There is a now a generic launcher script for running Python code with Legion that will execute an aribtrary Python program in the top-level task of a Legion program. This script mirrors the interface to CPython as closely as possible.
    • Legion Spy now supports verification and rendering of indirection copies
    • Legion Prof supports Instance layout constraints related to dimension ordering and field alignnment
    • Legion Prof contains a menu option for viewing ready state of operations