Skip to content

Commit

Permalink
Merge f22e383 into 2c2b488
Browse files Browse the repository at this point in the history
  • Loading branch information
jmlarson1 committed Jan 3, 2020
2 parents 2c2b488 + f22e383 commit 7ee6bcd
Show file tree
Hide file tree
Showing 69 changed files with 688 additions and 664 deletions.
70 changes: 36 additions & 34 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
Release Notes
=============

Below are the notes from all libEnsemble releases.

Release 0.6.0
-------------

Expand All @@ -10,7 +12,7 @@ Release 0.6.0
API changes:

* sim/gen/alloc_specs options that do not directly involve these routines are moved to libE_specs (see docs) (#266, #269)
* sim/gen/alloc_specs now require user-defined attributes to be added under the 'user' field (see docs and examples) (#266, #269).
* sim/gen/alloc_specs now require user-defined attributes to be added under the ``'user'`` field (see docs and examples) (#266, #269).
* Addition of a utils module to help users create calling scripts. Includes an argument parser and utility functions (#308).
* check_inputs() function is moved to the utils module (#308).
* The libE_specs option ``nprocesses`` has been changed to ``nworkers`` (#235)
Expand All @@ -27,55 +29,55 @@ Other changes:

:Note:

* Tested platforms include: Linux, MacOS, Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), Bebop (Cray CS400/Slurm), Cori (Cray XC40/Slurm).
* Tested platforms include Linux, MacOS, Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), Bebop (Cray CS400/Slurm), and Cori (Cray XC40/Slurm).
* Tested Python versions: (Cpython) 3.5, 3.6, 3.7

:Known issues:

* These are unchanged from v0.5.0
* These are unchanged from v0.5.0.
* A known issues section has now been added to the documentation.

Release 0.5.2
-------------

:Date: August 19, 2019

* Code restructured to meet xSDK package policies for interoperable ECP software (version 0.5.0). #208
* Removed use of MPI.COMM_WORLD. Uses a duplicate of COMM_WORLD if no communicator passed (any process not in communicator returns with an exit code of 3). #108
* Code has been restructured to meet xSDK package policies for interoperable ECP software (version 0.5.0). #208
* The use of MPI.COMM_WORLD has been removed. Uses a duplicate of COMM_WORLD if no communicator passed (any process not in communicator returns with an exit code of 3). #108
* All output from libEnsemble goes via logger. MANAGER_WARNING level added. This level and above are echoed to stderr by default. API option to change echo level.
* Simulation directories are only created as required and are suffixed by _worker. #146
* New user function libE.check_inputs() can be used to check valid configuration of inputs. Can be called in serial or under MPI (See libE API). #65
* Installation option added to install dependencies used in tests ``pip install libensemble[extras]``
* Simulation directories are created only as required and are suffixed by _worker. #146
* New user function libE.check_inputs() can be used to check valid configuration of inputs. Can be called in serial or under MPI (see libE API). #65
* Installation option has been added to install dependencies used in tests ``pip install libensemble[extras]``
* A profiling option has been added to sim_specs. #170
* Results comparison scripts have been included for convenience.

:Note:

* Tested platforms include: Linux, MacOS (**New**), Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), Bebop (Cray CS400/Slurm).
* Tested platforms include Linux, MacOS (**New**), Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), and Bebop (Cray CS400/Slurm).
* Tested Python versions: (Cpython) 3.5, 3.6, 3.7
* **Note** Support has been removed for Python 3.4 as it is officially retired. Also NumPy has removed support.
* **Note** Support has been removed for Python 3.4 since it is officially retired. Also NumPy has removed support.

:Known issues:

* These are unchanged from v0.5.0
* These are unchanged from v0.5.0.

Release 0.5.1
-------------

:Date: July 11, 2019

* Fixed LSF resource detection for large jobs on LSF systems (e.g. Summit) #184
* Fixed LSF resource detection for large jobs on LSF systems (e.g., Summit) #184
* Added support for macOS #182
* Documentation has been improved (including addition of beginner's tutorial and FAQ).
* Improved the documentation (including addition of beginner's tutorial and FAQ)

:Note:

* Tested platforms include: Local Linux, Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), Bebop (Cray CS400/Slurm).
* Tested platforms include Local Linux, Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), and Bebop (Cray CS400/Slurm).
* Tested Python versions: (Cpython) 3.4, 3.5, 3.6, 3.7

:Known issues:

* These are unchanged from v0.5.0
* These are unchanged from v0.5.0.

Release 0.5.0
-------------
Expand All @@ -84,12 +86,12 @@ Release 0.5.0

* Added local (multiprocessing) and TCP options for manager/worker communications, in addition to mpi4py (#42).

* E.g., libEnsemble can be run on MOM/launch nodes (e.g., those of ALCF/Theta & OLCF/Summit) and can remotely detect compute resources.
* E.g., libEnsemble can be run on a system without MPI.
* E.g., libEnsemble can be run with a local manager and remote TCP workers.
* Example: libEnsemble can be run on MOM/launch nodes (e.g., those of ALCF/Theta & OLCF/Summit) and can remotely detect compute resources.
* Example: libEnsemble can be run on a system without MPI.
* Example: libEnsemble can be run with a local manager and remote TCP workers.

* Added support for Summit/LSF scheduler in job controller.
* MPI job controller detects and re-tries launches on failure; adding resilience (#143).
* MPI job controller detects and retries launches on failure; adding resilience (#143).
* Job controller supports option to extract/print job times in libE_stats.txt (#136).
* Default logging level changed to INFO (#164).
* Logging interface added, which allows user to change logging level and file (#110).
Expand All @@ -100,51 +102,51 @@ Release 0.5.0
:Note:

* **This version no longer supports Python 2.**
* Tested platforms include: Local Linux, Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), Bebop (Cray CS400/Slurm).
* Tested platforms include Local Linux, Theta (Cray XC40/Cobalt), Summit (IBM Power9/LSF), and Bebop (Cray CS400/Slurm).

:Known issues:

* OpenMPI does not work with direct MPI job launches in mpi4py comms mode, as it does not support nested MPI launches
* OpenMPI does not work with direct MPI job launches in mpi4py comms mode, since it does not support nested MPI launches
(Either use local mode or Balsam job controller).
* Local comms mode (multiprocessing) may fail if MPI is initialized before forking processors. This is thought to be responsible for issues combining with PETSc.
* Remote detection of logical cores via LSB_HOSTS (e.g., Summit) returns number of physical cores as SMT info not available.
* TCP mode does not support: 1) more than one libEnsemble call in a given script or 2) the auto-resources option to the job controller.
* Remote detection of logical cores via LSB_HOSTS (e.g., Summit) returns number of physical cores since SMT info not available.
* TCP mode does not support (1) more than one libEnsemble call in a given script or (2) the auto-resources option to the job controller.

Release 0.4.1
-------------

:Date: February 20, 2019

* Logging no longer uses root logger (Also added option to change libEnsemble log level) (#105)
* Logging no longer uses root logger (also added option to change libEnsemble log level) (#105)
* Added wait_on_run option for job controller launch to block until jobs have started (#111)
* persis_info can be passed to sim as well as gen functions (#112)
* Post-processing scripts added to create performance/utilization graphs (#102)
* Postprocessing scripts added to create performance/utilization graphs (#102)
* New scaling test added (not part of current CI test suite) (#114)

Release 0.4.0
-------------

:Date: November 7, 2018

* Separate job controller classes into different modules including a base class (API change)
* Add central_mode run option to distributed type (MPI) job_controllers (API addition) (#93)
* Make poll and kill job methods (API change)
* Separated job controller classes into different modules including a base class (API change)
* Added central_mode run option to distributed type (MPI) job_controllers (API addition) (#93)
* Made poll and kill job methods (API change)
* In job_controller, set_kill_mode is removed and replaced by a wait argument for a hard kill (API change)
* Removed register module - incorporated into job_controller (API change)
* APOSMM has improved asynchronicity when batch mode is false (with new example). (#96)
* Manager errors (instead of hangs) when alloc_f or gen_f don't return work when all workers are idle. (#95)

:Known issues:

* OpenMPI is not supported with direct MPI launches as nested MPI launches are not supported.
* OpenMPI is not supported with direct MPI launches since nested MPI launches are not supported.

Release 0.3.0
-------------

:Date: September 7, 2018

* Issues with killing jobs have been fixed (#21)
* Fix to job_controller manager_poll to work with multiple jobs (#62)
* Fixed job_controller manager_poll to work with multiple jobs (#62)
* API change: persis_info now included as an argument to libE and is returned from libE instead of gen_info
* Gen funcs: aposmm_logic module renamed to aposmm.
* New example gen and allocation functions.
Expand All @@ -157,7 +159,7 @@ Release 0.3.0

:Known issues:

* OpenMPI is not supported with direct MPI launches as nested MPI launches are not supported.
* OpenMPI is not supported with direct MPI launches since nested MPI launches are not supported.

Release 0.2.0
-------------
Expand All @@ -166,9 +168,9 @@ Release 0.2.0

* Added job_controller interface (for portable user scripts).
* Added support for using the Balsam job manager. Enables portability and dynamic scheduling.
* Added auto-detection of system resources.
* Added autodetection of system resources.
* Scalability testing: Ensemble performed with 1023 workers on Theta (Cray XC40) using Balsam.
* Tested MPI libraries: MPICH, Intel MPI.
* Tested MPI libraries: MPICH and Intel MPI.

:Known issues:

Expand All @@ -180,4 +182,4 @@ Release 0.1.0

:Date: November 30, 2017

* Initial Release.
* Initial release.
15 changes: 6 additions & 9 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Contributing to libEnsemble
===========================

Contributions may be made via GitHub pull request to:
Contributions may be made via a GitHub pull request to

https://github.com/Libensemble/libensemble

Expand All @@ -13,30 +13,27 @@ repository write access.
Code should pass flake8 tests, allowing for the exceptions
given in the flake8_ file in the project directory.

Issues can be raised at:
Issues can be raised at

https://github.com/Libensemble/libensemble/issues

Issues may include reporting bugs or suggested features. Administrators
will add issues, as appropriate, to the project board at:
will add issues, as appropriate, to the project board at

https://github.com/Libensemble/libensemble/projects

By convention, user branch names should have a <type>/<name> format, where
example types are feature, bugfix, testing, docs, and experimental.
Administrators may take a hotfix branch from the master, which will be
merged into master (as a patch) and develop. Administrators may also take a
release branch off develop and merge into master and develop for a release.
Most branches should relate to an issue.
release branch off develop and then merge this branch into master and develop
for a release. Most branches should relate to an issue or feature.

When a branch closes a related issue, the pull request message should include
the phrase "Closes #N" where N is the issue number. This will automatically
the phrase "Closes #N," where N is the issue number. This will automatically
close out the issues when they are pulled into the default branch (currently
master).

The release process for libEnsemble can be found in the Developer Guide
section of the documentation.

libEnsemble is distributed under a 3-clause BSD license (see LICENSE). The
act of submitting a pull request (with or without an explicit
Signed-off-by tag) will be understood as an affirmation of the
Expand Down

0 comments on commit 7ee6bcd

Please sign in to comment.