Releases: bsc-pm/dlb
Releases · bsc-pm/dlb
Version 2.0.1
Minor hotfixes
Version 2.0
Added
- Callback system
- API for subprocesses
- New interaction mode choice (synchronous as it was before, or asynchronous)
- Doxygen HTML and man pages documentation
- Test coverage support
- OMPT experimental support
Changed
- API reworked
- A petition of a CPU now registers the process into a CPU petition queue. If this CPU
becomes available, DLB can schedule which process will acquire it - A petition of an unspecified CPU registers the process into a global petition queue,
this queue has less priority than the CPU queue - DLB acquire now does not schedule because it forces the acquisition, DLB Borrow does
scheduling but only looks for idle CPUs and never creates a CPU request - DLB options print format reworked,
DLB_ARGS
is now used to pass options to DLB. - Fortran Interface is now a Fortran include with ISO C bindings.
- Shared Memory synchronization mechanism is now managed using a pthread spinlock
- DROM services now use the same shmem handler so no need to call
DLB_Init
andDLB_DROM_Init
- DROM services Get/Set process mask are now asynchronous functions
Fixed
- Test suite now follows a Unit Testing approach and does not need undocumented external tools
- Several minor bugs
- PreInit service now correctly handles environment variables and allows forks
Deprecated
DLB_MASK
is no longer used, only registered CPUs may be used by other processesDLB_DROM_GetCpus
service has been removedLB_OPTION
type of environment variables is deprecated
Version 1.3.2
Minor hotfixes
Version 1.3.1
Minor hotfixes
Version 1.3
Added
- Shared Memory consistency checks upon registration
- The binary
dlb_taskset
can now be used to launch processes under DLB - Service
DLB_Barrier
to perform a barrier between all processes in the node - DLB Services now return an error code
- New User Option
LB_PRIORITY
to manage how CPUs are distributed according to HW locality - Add services for DROM to PreInit and PostFinalize to manage process that will fork/exec
- Add services to check if the process mask needs to be changed
Changed
- Refactor policy based Shared Memory into two general purpose
cpuinfo
andprocinfo
- DROM interface is now considered stable. External processes can manage the CPU ownership of DLB processes
- DLB options are now parsed through the environment variable
DLB_ARGS
Fixed
- Several minor bugs
Deprecated
- Signal handler feature is no longer supported
Version 1.2
Changed
- Improved User Guide
- Improved configure script and macros
Fixed
- Compatibility with gcc6
- Compatibility with icc17
- Compatibility with C11 standard
- Several minor bugs
Version 1.1
Added
- Policy
Autonomous Lewi Mask
to micro-manage each thread individually - DLB services to init/finalize without MPI support
- DLB services to enable/disable or mark a serial/parallel sections of code
- DLB service to modify User Options during program execution
- New library independent from MPI
- Binary
dlb_shm
to manage Shared Memory from CLI - Binary
dlb_taskset
to manage processes' mask from CLI - BG/Q support
- Add
LB_MASK
environment variable to specify aDLB_MASK
common to all processes - Experimental implementation of
DLB_Stats
interface - Experimental implementation of
DLB_DROM
interface - Signal handler feature to clean up DLB on termination
- In-code Doxygen documentation
- User guide using Sphynx generator
- Distributable examples
Changed
- Replace IPC with POSIX Shared Memory
- Replace Shared Memory synchronization mechanism from semaphores to pthread mutexes
- Shared Memory creation is now decentralized from rank 0 and it will be created when necessary
- Shared Memory internal structure reworked to host information about ownership and guesting of CPUs
- CPUs from
DLB_MASK
can guest any process, but they will not have an owner - Improve support for detection of Shared Memory runtimes
Fixed
- Compatibility with gcc 4.4 and 4.5
- Compatibility with MPI-3 standard
- Fotran interfaces now use the correct types
- Several minor bugs
Version 1.0
Added
- DLB Interface
- MPI Interception Interface
- User options configured by environment variables
LB_*
- Lend When Idle algorithm implementation
- DPD
- Extrae instrumentation
- Paraver configs for DLB events
- Inter-Process Communication (IPC) Shared Memory
- Inter-Process Communication (IPC) Sockets
- Thread binding interface
LeWI
policies to support SMPSS and OpenMPLeWI mask
policy to support OmpSs- RaL and PERaL policies for redistribution of resources
- HWLOC optional dependency to query HW info
- Scheduling decisions based on HW locality
- Binary
dlb