Skip to content

Releases: Libensemble/libensemble

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.

v1.0.0

26 Sep 02:37
52e45af
Compare
Choose a tag to compare

:Date: September 25, 2023

New capabilities:

  • libE_specs option final_gen_send returns last results to the generator (replaces final_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 and gen_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() argument mpi_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 of out to be consistent with inputs. #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 of final_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 to Ensemble constructor. #1065
  • The executor can be passed as an option to the Ensemble constructor. #1078
  • Better handling of Ensemble.add_random_streams and ensemble.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 to multi_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.

v0.10.2

24 Jul 22:27
0ffcc5f
Compare
Choose a tag to compare

:Date: July 24, 2023

  • Fixes issues with workflow directories:

    • Ensure relative paths are interpreted from where libEnsemble is run. #1020
    • Create intermediate directories for workflow paths. #1017
  • Fixes issue where libEnsemble pre-initialized a shared multiprocssing queue. #1026

:Note:

  • Tested platforms include Linux, MacOS, Windows and major systems including Frontier (OLCF), Polaris (ALCF), Perlmutter (NERSC), Theta (ALCF) and Bebop. The major system tests ran heterogeneous workflows.

:Known issues: