v22.10.00
Release 22.10 contains several improvements to memory management. Those changes are to recycle memory space from GC'ed Legate stores more eagerly for fresh ones. Another big change in this release is a new build infrastructure based on CMake and scikit-build for the Legate ecosystem, which is a big leap over the previous ad-hoc build system. The release also includes two useful debugging features: 1) provenance tracking for tasks and other operator kinds issued by client libraries and 2) detailed logging for client library mappers.
Conda packages for this release are available at https://anaconda.org/legate/legate-core.
What's Changed
🐛 Bug Fixes
- Fix target_memory setting for task futures by @manopapad in #327
- avoiding division by 0 in slicing by @ipdemes in #319
- Use the correct key when adding types to a library TypeSystem by @manopapad in #333
- fix partitioning of empty regions by @ipdemes in #337
- Correctly inline map 0d stores by @magnatelee in #340
- Fix error and warning message when --launcher is missing by @manopapad in #341
- make sure communicators are destroyed one by one by @eddy16112 in #345
- Specify an upper bound for return value sizes for
core::extract_scalar
by @magnatelee in #346 - Set an upper bound for allocations for the serdez type used in the core by @magnatelee in #348
- fix cpu communicator for omp by @eddy16112 in #352
- Use Legion primitives to coordinate accesses to the shared instance manager by @magnatelee in #355
- Synchronize instance manager accesses from mapper calls other than
map_task
by @magnatelee in #358 - Follow-on changes to #353 by @magnatelee in #360
- Scalar store fix by @magnatelee in #365
- InstanceManager segfault fixes by @manopapad in #368
- Fix typos in solver.py by @magnatelee in #366
- legate_core_cpp.cmake: add missing barrier header file in export by @rohany in #389
- Use Python GC to release Legion handles from destroyed RegionManagers by @magnatelee in #391
- legate/driver: fix driver legion_module path by @rohany in #394
- Legion bug WAR: don't instantiate futures on framebuffer by @manopapad in #409
- Revive dead region managers on field allocations by @magnatelee in #418
🚀 New Features
- Support for mapper logging by @magnatelee in #356
- Provenance tracking by @magnatelee in #370
- Add Fill operation by @manopapad in #369
- add jupyter config for legate by @eddy16112 in #309
🛠️ Improvements
- Make stores have an explicit bottom in their transform stacks by @magnatelee in #320
- Update conda env files to match cunumeric by @manopapad in #324
- An internal method to force initialize communicators by @magnatelee in #328
- Use empty buffers to create empty output stores by @magnatelee in #330
- Two improvements to error handling by @magnatelee in #336
- Skip conduit check when binding by @manopapad in #342
- Make numactl optional by @manopapad in #343
- Remove deprecated option --no-tensor by @manopapad in #344
- Silence shard registration warnings by @manopapad in #347
- Instance manager improvements by @magnatelee in #350
- A custom task wrapper for efficient handling of return values by @magnatelee in #353
- Refactoring to make the runtime object singleton by @magnatelee in #363
- Turn off the precise stacktrace capturing by default by @magnatelee in #362
- Add CMake build for C++ and scikit-build infrastructure for Python package installation by @jjwilke in #323
- Support building with GASNet-Ex and MPI backends by @manopapad in #384
- Better store management by @magnatelee in #364
- Modularize the legate driver by @bryevdv in #371
- Add a pool of region managers with LRU eviction by @magnatelee in #392
- Adjust consensus match frequency based on field sizes by @magnatelee in #402
- On mapping failure retry after tightening non-RO reqs by @manopapad in #424
📖 Documentation
New Contributors
Full Changelog: v22.08.00...v22.10.00