Skip to content

Releases: Libensemble/libensemble

v1.5.0

10 Apr 20:23
c9a5140
Compare
Choose a tag to compare

:Date: Apr 10, 2025

General Updates:

  • Migrate package build system to pyproject.toml (with pixi support). #1459
  • Improve handling when no MPI found. #1514
  • ensemble.save_output() can save without appending attributes append_attrs=False. #1531
  • Improve handling of worker-specific persis_info fields when they are not initially provided. #1531
    • Bugfix: Fix final_gen_send when there are no worker-specific persis_info fields.
    • Handle worker-generated persis_info fields.
    • Ensure persis_info is initialized to an empty dictionary in user functions instead of None.

Examples:

  • Update Ax generator for Ax v0.5.0. #1508
  • Rename gpCAM generators. #1516
    • persistent_gpCAM_ask_tell to persistent_gpCAM
    • persistent_gpCAM_simple to persistent_gpCAM_covar (in fact less simple)
  • Persistent generators return None as first return value unless H_o is updated. #1515
  • Add LUMI to known platforms. #1546

Documentation:

  • Revamp Examples and HPC section of documentation. #1501, #1536, #1539
  • Add tutorial and notebook demonstrating surrogate model creation with gpCAM. #1531
  • Update Aurora guide. #1510
  • Update and documented APOSMM/WarpX example. #1543

:Note:

  • Tests were run on Linux and MacOS with Python versions 3.10, 3.11, 3.12, 3.13
  • Heterogeneous workflows tested on Aurora (ALCF), Polaris (ALCF), LUMI (EuroHPC JU), and Perlmutter (NERSC).

:Known Issues:

  • See known issues section in the documentation.

v1.4.3

16 Dec 20:35
5d56011
Compare
Choose a tag to compare

:Date: Dec 16, 2024

  • Fix wait_on_start type-instance condition checking. #1474

  • Logging updates:

    • Add VDEBUG logging level for the tracking of log message communications. #1486
    • Show worker node in the log only when running in distributed mode and with DEBUG logging. #1486
    • Update uneven distribution messaging. #1486

:Scripts:

  • Add scripts for plotting APOSMM optimization runs. #1461
  • Convert test runner to Python. #1437

: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

14 Aug 22:17
2892c86
Compare
Choose a tag to compare

: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 as None.
  • 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

29 Jul 19:58
33118cc
Compare
Choose a tag to compare

:Date: July 29, 2024

  • Fix erroneous nworkers warning when using mpi4py 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

25 Jul 23:34
6635c22
Compare
Choose a tag to compare

:Date: July 25, 2024

  • Add a live_data option for real-time data collection / plotting. #1310
  • nworkers/is_manager are set when Ensemble object is created. #1331/ #1336
    • This update locks the comms method when Ensemble object is created.
  • 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:

Example user functions:

  • Update gpCAM generators to work with latest interface. #1355
  • Change one_d_func to norm_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

01 May 20:31
99934db
Compare
Choose a tag to compare

: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.
  • 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

21 Mar 18:55
fdbd062
Compare
Choose a tag to compare

: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

23 Feb 17:08
7c59373
Compare
Choose a tag to compare

: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

08 Feb 22:41
ce47158
Compare
Choose a tag to compare

: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 when parse_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.
  • Add platform guide for Improv. #1235
  • Detection of Perlmutter GPU nodes updated. #1211
  • Make srun GPU setting default to gpus_per_task instead of gpus_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

08 Nov 22:48
06ae667
Compare
Choose a tag to compare

: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 when save_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.