Releases: Libensemble/libensemble
v1.4.3
:Date: Dec 16, 2024
-
Fix
wait_on_start
type-instance condition checking. #1474 -
Logging updates:
:Scripts:
:Examples:
- Move dragonfly GP, heFFTe, ytopt, and Ax multitask tests to community examples. #1439
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12, 3.13
- Heterogeneous workflows tested on Polaris (ALCF) and Perlmutter (NERSC).
:Known Issues:
- See known issues section in the documentation.
v1.4.2
:Date: August 14, 2024
- Fix under-utilized resource usage. #1398
- Fixes bug causing executor to wrongly increase processor counts when not all nodes are utilized.
- Fixes case where setting
num_gpus
to zero was treated asNone
.
- Add missing PerlmutterGPU specs (these were detected anyway). #1393
- Handle case where Perlmutter finds no partition. #1391
- Launch environment scripts in shell. #1392
:Examples:
- Add proxystore example (uses a proxy in history array). #1326
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Frontier (OLCF), Polaris (ALCF), and Perlmutter (NERSC).
- Note that tests have been recently run on Aurora (ALCF), but the system was unavailable at time of release.
:Known Issues:
- See known issues section in the documentation.
v1.4.1
:Date: July 29, 2024
- Fix erroneous
nworkers
warning when usingmpi4py
comms. #1383
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Frontier (OLCF), Polaris (ALCF), and Perlmutter (NERSC).
- Note that tests have been recently run on Aurora (ALCF), but the system was unavailable at time of release.
:Known Issues:
- See known issues section in the documentation.
v1.4.0
:Date: July 25, 2024
- Add a
live_data
option for real-time data collection / plotting. #1310 nworkers
/is_manager
are set whenEnsemble
object is created. #1331/ #1336- This update locks the comms method when
Ensemble
object is created.
- This update locks the comms method when
- Add a
group_size
option to deal with unevenly resourced nodes. #1349 - Bug fix: Fix shutdown hang on worker error when using
gen_on_manager
. #1348 - Bug fix: Log level was locked to
INFO
when using class interface. #1351 - Updated code to support
numpy
2.0. #1332
Documentation:
- Notebook examples with Colab links added to documentation. #1310
- Example of templating input files added to forces tutorial. #1310
Example user functions:
- Update
gpCAM
generators to work with latest interface. #1355 - Change
one_d_func
tonorm_eval
. Works with multiple dimensions. #1352 / #1354
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Frontier (OLCF), Polaris (ALCF), and Perlmutter (NERSC).
- Note that tests have been recently run on Aurora (ALCF), but the system was unavailable at time of release.
- Tests were also run on Bebop and Improv LCRC systems.
:Known Issues:
- See known issues section in the documentation.
v1.3.0
:Date: May 01, 2024
- Support generator running on the manager (on a thread). #1216/#1290
- Set
libE_specs["gen_on_manager"] = True
- Then run with
nworkers
equal to the number of simulation workers.
- Set
- Default to local comms when
nworkers
is supplied and no MPI runner detected. #1169 - Parse args defaults to local comms when
--nworkers
(or-n
) is set on command line. #1169
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Frontier (OLCF), Polaris (ALCF), and Perlmutter (NERSC).
- Note that tests have been recently run on Aurora (ALCF), but the system was unavailable at time of release.
- Tests were also run on Bebop and Improv LCRC systems.
:Known Issues:
- See known issues section in the documentation.
v1.2.2
:Date: March 21, 2024
- Bugfix: Some
libE_specs
were not passed through correctly when added after ensemble initialization. #1264 platform_specs
options are merged with detected platforms, rather than replacing. #1265- Ensure simulations directories are created when
sim_input_dir
is specified, likewise for gen dirs. #1266
Example user functions:
- Improved structure of gpCAM generator. #1260
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Frontier (OLCF), Polaris, and Perlmutter (NERSC).
- Note that recent tests have been run on Aurora (ALCF), but the system was unavailable at time of release.
- Tests were also run on Bebop and Improv LCRC systems.
:Known Issues:
- See known issues section in the documentation.
v1.2.1
:Date: February 23, 2024
- Fix documentation bug where pydantic models do not display correctly. #1249
- Improve internal efficiency. #1243 / #1249
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Aurora (ALCF), Frontier (OLCF), Polaris, and Perlmutter (NERSC).
- Tests were also run on Bebop and Improv LCRC systems.
:Known Issues:
- See known issues section in the documentation.
v1.2.0
:Date: February 8, 2024
New capabilities:
- Support for both Pydantic 1 and 2. #1135
- Support
object
dtype in history array. #1179 / #1181 - Users can add additional fields to output arrays in user functions. #1203
- Decorators to provide user function in/out specs. #1072
Fixes:
- Bug fix - Overwrite history file on completion when even when the pathname is unchanged. #1177
- Prevent duplicate save when using
save_every_k_gens
. #1154 - Add a
FAILED_TO_START
task status. #1229 - Set
ensemble.nworkers
when create ensemble object even whenparse_args
is False. #1162
Platform support:
- Add platform support for Aurora. #1183
- Support for GPU tiles (new platform spec
tiles_per_gpu
). - Add libE_specs option
use_tiles_as_gpus
to treat each tile as a GPU. - Add Aurora platform guide.
- Support for GPU tiles (new platform spec
- Add platform guide for Improv. #1235
- Detection of Perlmutter GPU nodes updated. #1211
- Make
srun
GPU setting default togpus_per_task
instead ofgpus_per_node
. #1206 - Remove Theta support and guide. #1200
Example user functions:
- Add gpCAM generator. #1189 / #1213 / #1220
- Support for IBCDFO local optimization methods in APOSMM. #998
- Add
mock_sim
to enable replay of a previous run using history file. #1207 - Fix Sine tutorial. #1168
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Aurora (ALCF), Frontier (OLCF), Polaris, and Perlmutter (NERSC).
- Tests were also run on Bebop and Improv LCRC systems.
:Known Issues:
- See known issues section in the documentation.
v1.1.0
:Date: November 8, 2023
New capabilities:
- New history array save options in libE_specs. #1103/#1139/#1141
save_H_on_completion
saves history before exiting main libE function.save_H_with_date
includes date and timestamp in the save.H_file_prefix
provides prefix for saved file.save_H_on_completion
defaults to True whensave_every_k_gens/sims
is set.
Support for Python versions:
- Adds support/testing for Python 3.12
- Removes testing of Python 3.8
:Note:
- Tests were run on Linux and MacOS with Python versions 3.9, 3.10, 3.11, 3.12
- Heterogeneous workflows tested on Frontier (OLCF), Polaris, and Perlmutter (NERSC).
- Tests were also run on Bebop and Improv LCRC systems.
:Known Issues:
- See known issues section in the documentation.
v1.0.0
:Date: September 25, 2023
New capabilities:
- libE_specs option
final_gen_send
returns last results to the generator (replacesfinal_fields
). #1086 - libE_specs option
reuse_output_dir
allows reuse of workflow and ensemble directories. #1028 #1041 - libE_specs option
calc_dir_id_width
no. of digits for calc ID in output sim/gen directories. #1052 / #1066 - Added
gen_num_procs
andgen_num_gpus
libE_specs (and persis_info) options for resourcing a generator. #1068 - Added
gpu_env_fallback
option to platform fields - specifies a GPU environment variable (for non-MPI usage). #1050 - New MPIExecutor
submit()
argumentmpi_runner_type
specifies an MPI runner for current call only. #1054 - Allow oversubscription when using the
num_procs
gen_specs["out"] option. #1058 - sim/gen_specs can use
outputs
in place ofout
to be consistent withinputs
. #1075 - Executor can be obtained from
libE_info
(4th parameter) in user functions. #1078
Breaking changes:
- libE_specs option
final_fields
is removed in favor offinal_gen_send
. #1086 - libE_specs option
kill_canceled_sims
now defaults to False. #1062 - parse_args is not run automatically by
Ensemble
constructor.
Updates to Object Oriented Ensemble interface:
- Added
parse_args
as option toEnsemble
constructor. #1065 - The executor can be passed as an option to the
Ensemble
constructor. #1078 - Better handling of
Ensemble.add_random_streams
andensemble.persis_info
. #1074
Output changes:
- The worker ID suffix is removed from sim/gen output directories. #1041
- Separate ensemble.log and libE_stats.txt for different workflows directories. #1027 #1041
- Defaults to four digits for sim/gen ID in output directories (adds digits on overflow). #1052 / #1066
Bug fixes:
- Resolved PETSc/OpenMPI issue (when using the Executor). #1064
- Prevent
mpi4py
validation running during local comms (when using OO interface). #1065
Performance changes:
- Optimize
kill_cancelled_sims
function. #1043 / #1063 safe_mode
defaults to False (for performance). #1053
Updates to example functions:
- Multiple regression tests and examples ported to use OO ensemble interface. #1014
Update forces examples:
- Make persistent generator the default for both simple and GPU examples (inc. updated tutorials).
- Update to object oriented interface.
- Added separate variable resources example for forces GPU.
- Rename
multi_task
example tomulti_app
.
Documentation:
- General overhaul and simplification of documentation. #992
:Note:
- Tested platforms include Linux, MacOS, Windows, and major systems such as Frontier (OLCF), Polaris, and Perlmutter (NERSC). The major system tests ran heterogeneous workflows.
- Tested Python versions: (Cpython) 3.8, 3.9, 3.10, 3.11.
:Known Issues:
- See known issues section in the documentation.