Skip to content

Commit

Permalink
Merge branch 'develop' into feature/aposmm_ibcdfo
Browse files Browse the repository at this point in the history
  • Loading branch information
jmlarson1 committed Jun 30, 2023
2 parents bc8e68d + f8f1636 commit 0c58500
Show file tree
Hide file tree
Showing 174 changed files with 5,931 additions and 2,971 deletions.
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ per-file-ignores =
libensemble/tests/regression_tests/test_ytopt_heffte.py:E402
libensemble/tests/functionality_tests/test_uniform_sampling_then_persistent_localopt_runs.py:E402
libensemble/tests/functionality_tests/test_active_persistent_worker_abort.py:E402
libensemble/tests/functionality_tests/test_mpi_runners.py:E501
libensemble/tests/functionality_tests/test_mpi_runners_zrw_supernode_uneven.py:E501
libensemble/tests/deprecated_tests/test_old_aposmm*:E402
libensemble/tests/unit_tests/test_persistent_aposmm.py:E402

Expand Down
31 changes: 22 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ jobs:
include:
- os: macos-latest
python-version: 3.9
mpi-version: "mpich"
mpi-version: "mpich=4.0.3"
comms-type: m
- os: macos-latest
python-version: 3.9
mpi-version: "mpich"
mpi-version: "mpich=4.0.3"
comms-type: l
- os: ubuntu-latest
python-version: "3.10"
Expand Down Expand Up @@ -53,7 +53,7 @@ jobs:
shell: bash -l {0}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Setup conda - Python ${{ matrix.python-version }}
uses: conda-incubator/setup-miniconda@v2
with:
Expand All @@ -64,8 +64,8 @@ jobs:
channel-priority: flexible
auto-update-conda: true

- uses: actions/cache@v3
name: Cache installed dependencies
- uses: actions/cache/restore@v3
name: Restore cached dependencies
id: cache
if: matrix.os == 'ubuntu-latest'
with:
Expand All @@ -76,7 +76,7 @@ jobs:
/usr/share/miniconda3/bin
/usr/share/miniconda3/lib
/usr/share/miniconda3/include
key: libe-${{ github.ref_name }}-${{ matrix.python-version }}
key: libe-${{ github.ref_name }}-${{ matrix.python-version }}-${{ matrix.comms-type }}

- name: Force-update certifi
run: |
Expand Down Expand Up @@ -131,7 +131,7 @@ jobs:
conda env update --file install/gen_deps_environment.yml
pip install ax-platform==0.2.8
pip install --upgrade git+https://github.com/mosesyhc/surmise.git@development/PCGPwM
pip install --upgrade git+https://github.com/surmising/surmise.git@develop
- name: Build ytopt and dependencies
if: matrix.python-version != '3.11' && matrix.os != 'windows-latest' && matrix.os != 'macos-latest'
Expand Down Expand Up @@ -200,6 +200,19 @@ jobs:
sed -i -e "s/pyzmq>=22.1.0,<23.0.0/pyzmq>=23.0.0,<24.0.0/" ./balsam/setup.cfg
cd balsam; pip install -e .; cd ..
- uses: actions/cache/save@v3
name: Save dependencies to cache
if: matrix.os == 'ubuntu-latest'
with:
path: |
/home/runner/work/libensemble/libensemble/heffte/build/
/home/runner/.local
/usr/share/miniconda3/envs/condaenv
/usr/share/miniconda3/bin
/usr/share/miniconda3/lib
/usr/share/miniconda3/include
key: libe-${{ github.ref_name }}-${{ matrix.python-version }}-${{ matrix.comms-type }}

- name: Install libEnsemble, flake8, lock environment
run: |
pip install -e .
Expand All @@ -208,7 +221,7 @@ jobs:
- name: Activate API unit test if using mpich
if: matrix.mpi-version == 'mpich'
run: |
mv libensemble/tests/unit_tests/mpich-only_test_api.py libensemble/tests/unit_tests/test_alt_api.py
mv libensemble/tests/unit_tests/mpich-only_test_ensemble.py libensemble/tests/unit_tests/test_ensemble.py
- name: Remove ytopt-heffte test on Python 3.11 (easy way)
if: matrix.python-version == '3.11'
Expand Down Expand Up @@ -258,5 +271,5 @@ jobs:
if: contains(github.base_ref, 'main')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: crate-ci/typos@v1.0.4
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repos:
exclude: ^(.*\.xml|.*\.svg)$

- repo: https://github.com/pycqa/isort
rev: 5.11.4
rev: 5.12.0
hooks:
- id: isort
args: [--profile=black, --line-length=120]
Expand Down
10 changes: 4 additions & 6 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
version: 2

# conda:
# environment: install/environment.yml
build:
os: "ubuntu-22.04"
tools:
python: "3.9"

sphinx:
configuration: docs/conf.py

build:
image: latest

formats:
- pdf

python:
version: 3.7
install:
- requirements: docs/requirements.txt
- method: pip
Expand Down
4 changes: 2 additions & 2 deletions .wci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ description: |
language: Python

release:
version: 0.9.3
date: 2022-10-13
version: 0.10.0
date: 2023-05-26

documentation:
general: https://libensemble.readthedocs.io
Expand Down
61 changes: 61 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,67 @@ GitHub issues are referenced, and can be viewed with hyperlinks on the `github r

.. _`github releases page`: https://github.com/Libensemble/libensemble/releases

Release 0.10.0
--------------

:Date: May 26, 2023

New capabilities:

* Enhance portability and simplify the assignment of procs/GPUs to worker resources #928 / #983
* Auto-detect GPUs across systems (inc. Nvidia, AMD, and Intel GPUs).
* Auto-determination of GPU assignment method by MPI runner or provided platform.
* Portable `auto_assign_gpus` / `match_procs_to_gpus` and `num_gpus` arguments added to the MPI executor submit.
* Add `set_to_gpus` function (similar to `set_to_slots`).
* Allow users to specify known systems via option or environment variable.
* Allow users to specify their own system configurations.
* These changes remove a number of tweaks that were needed for particular platforms.

* Resource management supports GPU and non-GPU simulations in the same ensemble. #993
* User's can specify `num_procs` and `num_gpus` in the generator for each evaluation.

* Pydantic models are used for validating major libE input (input can be provided as classes or dictionaries). #878
* Added option to store output and ensemble directories in a workflow directory. #982
* Simplify user function interface. Valid user functions can accept <4 parameters and return <3 values. #971
* New option to parse settings from **TOML**. #745
* New `dry_run` option to `libE()` that checks scripts are valid and returns. #987
* Added an option to the executor submit function to pre-execute a script in the task environment. #996

Breaking changes:

* Removed old Balsam Executor. #921
* Ensemble class moved from `libensemble.api` to `libensemble.ensemble`. #1003
* Default to one resource set per simulation in dynamic scheduling mode. #996

Documentation:

* Added type hints/annotations for major modules/functions. #823
* Added Polaris Guide. #930
* Added Frontier Guide. #909
* Added PBS example scripts. #956 #930
* Streamlined and improved the readability of docs. #1004

Tests and Examples:

* Updated forces_gpu tutorial example. #956
* Source code edit is not required for the GPU version.
* Reports whether running on device or host.
* Increases problem size.
* Added versions with persistent generator and multi-task (GPU v non-GPU).
* Moved multiple tests, generators, and simulators to the community repo.
* Added ytopt example. And updated heFFTe example. #943
* Support Python 3.11 #922

:Note:

* Tested platforms include Linux, MacOS, Windows and major systems: Frontier (OLCF), Polaris (ALCF), and Perlmutter (NERSC). The major system tests ran heterogeneous workflows.
* Recent testing was also carried out on Summit (IBM Power9/LSF), but this was not possible at time of release.
* Tested Python versions: (Cpython) 3.7, 3.8, 3.9, 3.10, 3.11.

:Known issues:

* See known issues section in the documentation.

Release 0.9.3
-------------

Expand Down

0 comments on commit 0c58500

Please sign in to comment.