Version 20.03.0 (March 31, 2020)
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
andincomplete
keywords that can be used to mark partitions as such - Added support for setting mapper ID and tag via
t:set_mapper_id()
andt:set_mapping_tag_id()
- Initial support for predicated execution of
if
andwhile
statements - Fixed several bugs, memory leaks and improved compile times
- Behavior change:
- 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). UseREALM_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
- 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
- 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