Skip to content

Commit

Permalink
Merge pull request #310 from Libensemble/develop
Browse files Browse the repository at this point in the history
Release v0.6.0
  • Loading branch information
shuds13 committed Dec 4, 2019
2 parents f06bdd3 + 9a3d36a commit f226891
Show file tree
Hide file tree
Showing 234 changed files with 7,413 additions and 2,784 deletions.
14 changes: 5 additions & 9 deletions .flake8
@@ -1,5 +1,5 @@
[flake8]
ignore =
ignore =
# Not worrying about line length for now
E501,
# Not worrying about spaces around arithmetic operations
Expand All @@ -12,20 +12,16 @@ ignore =
W504
# Lambda expressions are okay
E731
exclude =
exclude =
# Don't need to check .git
.git,
# Largely autogenerated
docs/conf.py
# Keeping bad python format to match PETSc source code
# Keeping bad python format to match PETSc source code
libensemble/sim_funcs/chwirut1.py
examples/sim_funcs/chwirut1.py
# This is not implemented yet
controller_tests/test_jobcontroller_manager_poll.py
# Not checking these scripts yet
postproc_scripts
# Do not check these experimental tests
balsam_tests

# Note that you can use wildcard exceptions with something such as
# libensemble/libensemble/tests/regression_tests/*:F401
Expand All @@ -35,5 +31,5 @@ per-file-ignores =
libensemble/libensemble/__init__.py:F401
# Need to turn of matching probes (before other imports) on some
# systems/versions of MPI:
libensemble/tests/standalone_tests/mpi_launch_test/create_mpi_jobs.py:E402
libensemble/libensemble/tests/standalone_tests/mpi_launch_test/create_mpi_jobs.py:E402
libensemble/tests/standalone_tests/mpi_launch_test/create_mpi_jobs.py:E402
libensemble/libensemble/tests/standalone_tests/mpi_launch_test/create_mpi_jobs.py:E402
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -8,3 +8,4 @@ code/tests/regression_tests/output/
.cache
libensemble.egg-info
docs/_build
x.log
23 changes: 18 additions & 5 deletions .readthedocs.yml
@@ -1,7 +1,20 @@
version: 2

conda:
file: conda/environment.yml

environment: conda/environment.yml

sphinx:
configuration: docs/conf.py

build:
image: latest

formats:
- pdf

python:
version: 3.6
pip_install: true
setup_py_install: true
install:
- method: pip
path: .
extra_requirements:
- docs
2 changes: 1 addition & 1 deletion .style.yapf
Expand Up @@ -6,7 +6,7 @@ SPLIT_BEFORE_DOT = True
COLUMN_LIMIT = 79
SPLIT_BEFORE_NAMED_ASSIGNS = False
SPACE_BETWEEN_ENDING_COMMA_AND_CLOSING_BRACKET = False
ALLOW_SPLIT_BEFORE_DEFAULT_OR_NAMED_ASSIGNS = False
ALLOW_SPLIT_BEFORE_DEFAULT_OR_NAMED_ASSIGNS = False
ALLOW_SPLIT_BEFORE_DICT_VALUE = False
DEDENT_CLOSING_BRACKETS = False
EACH_DICT_ENTRY_ON_SEPARATE_LINE = True
Expand Down
64 changes: 27 additions & 37 deletions .travis.yml
Expand Up @@ -14,87 +14,77 @@ env:
- OMPI_MCA_rmaps_base_oversubscribe=yes
matrix:
- MPI=mpich
#- MPI=openmpi

matrix:
include:
- os: osx
osx_image: xcode11
env: MPI=mpich PY=3
osx_image: xcode10.1
env: MPI=mpich PY=3.7
language: generic
python: 3
python: 3.7

# matrix:
# allow_failures:
# - env: MPI=openmpi

# addons:
# apt:
# packages:
# - gfortran
# - libblas-dev
# - liblapack-dev
services:
- postgresql

cache:
pip: true
apt: true

# Setup Miniconda
before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
wget https://repo.continuum.io/miniconda/Miniconda3-4.6.14-MacOSX-x86_64.sh -O miniconda.sh;
wget https://repo.continuum.io/miniconda/Miniconda3-4.7.10-MacOSX-x86_64.sh -O miniconda.sh;
else
wget https://repo.continuum.io/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh -O miniconda.sh;
wget https://repo.continuum.io/miniconda/Miniconda3-4.7.10-Linux-x86_64.sh -O miniconda.sh;
fi
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- hash -r
- conda config --set always_yes yes --set changeps1 no
#- conda update -q -y conda
- conda info -a # For debugging any issues with conda
- conda info -a # For debugging conda issues
- conda config --add channels conda-forge
- conda create --yes --name condaenv python=$TRAVIS_PYTHON_VERSION
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
conda create --yes --name condaenv python=3.7;
else
conda create --yes --name condaenv python=$TRAVIS_PYTHON_VERSION;
fi
- source activate condaenv

install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
wget https://github.com/phracker/MacOSX-SDKs/releases/download/10.13/MacOSX10.13.sdk.tar.xz;
mkdir ../sdk; tar xf MacOSX10.13.sdk.tar.xz -C ../sdk;
COMPILERS=clang_osx-64;
MUMPS=mumps-mpi=5.1.2=haf446c3_1007;
else
COMPILERS=gcc_linux-64;
MUMPS=mumps-mpi=5.1.2=h5bebb2f_1007;
fi

- conda install $COMPILERS
#S- conda install nlopt petsc4py petsc mpi4py scipy $MPI
- conda install libblas libopenblas # Prevent 'File exists' error
- conda install nlopt petsc4py petsc $MUMPS mpi4py scipy $MPI
# pip install these as the conda installs downgrade pytest on python3.4
- pip install flake8
- pip install flake8 # Conda installs downgrade pytest on python3.4
- pip install pytest
- pip install pytest-cov
- pip install pytest-timeout
- pip install mock
- pip install coveralls
# For confirmation of MPI library being used.
- python conda/find_mpi.py # locate compilers
- mpiexec --version # Show MPI library details
- pip install -e .

- python conda/find_mpi.py # Locate compilers. Confirm MPI library
- mpiexec --version # Show MPI library details
- pip install -e . # Installing libEnsemble
- wget https://github.com/balsam-alcf/balsam/archive/0.3.5.1.tar.gz
- mkdir ../balsam; tar xf 0.3.5.1.tar.gz -C ../balsam;
- python conda/install-balsam.py

before_script:
- flake8 libensemble
# Set conda compilers to use new SDK instead of Travis default.
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
echo "export CONDA_BUILD_SYSROOT=/Users/travis/build/Libensemble/sdk/MacOSX10.13.sdk" > setenv.sh;
source setenv.sh;
fi
- echo "export BALSAM_DB_PATH=~/test-balsam" > setbalsampath.sh
- source setbalsampath.sh # Imperfect method for env var persist after setup
- ulimit -Sn 10000 # More concurrent file descriptors (for persis aposmm)

# Run test (-z show output)
script:
- libensemble/tests/run-tests.sh -z
- ./libensemble/tests/run-tests.sh -z

# Coverage
# Track code coverage
after_success:
- mv libensemble/tests/.cov* .
- coveralls
Expand Down
40 changes: 32 additions & 8 deletions CHANGELOG.rst
Expand Up @@ -2,6 +2,38 @@
Release Notes
=============

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

:Date: December 4, 2019

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).
* 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)

New example functions:

* Addition of a persistent APOSMM generator function (#217).

Other changes:

* Overhaul of documentation, including HPC platform guides and a new pdf structure (inc. #232, #282)
* Addition of OpenMP threading and GPU support to forces test (#250).
* Balsam job_controller now tested on Travis (#47)

:Note:

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

:Known issues:

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

Release 0.5.2
-------------
Expand All @@ -27,7 +59,6 @@ Release 0.5.2

* These are unchanged from v0.5.0


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

Expand All @@ -46,7 +77,6 @@ Release 0.5.1

* These are unchanged from v0.5.0


Release 0.5.0
-------------

Expand Down Expand Up @@ -80,20 +110,17 @@ Release 0.5.0
* 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.


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

:Date: February 20, 2019


* 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)
* New scaling test added (not part of current CI test suite) (#114)


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

Expand All @@ -111,7 +138,6 @@ Release 0.4.0

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


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

Expand All @@ -133,7 +159,6 @@ Release 0.3.0

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


Release 0.2.0
-------------

Expand All @@ -150,7 +175,6 @@ Release 0.2.0
* Killing MPI jobs does not work correctly on some systems (including Cray XC40 and CS400). In these cases, libEnsemble continues, but processes remain running.
* OpenMPI does not work correctly with direct launches (and has not been tested with Balsam).


Release 0.1.0
-------------

Expand Down
19 changes: 12 additions & 7 deletions CONTRIBUTING.rst
@@ -1,26 +1,29 @@
Contributing
============
Contributing to libEnsemble
===========================

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

https://github.com/Libensemble/libensemble

libEnsemble uses the Gitflow model. Contributors should branch from, and
make pull requests to, the develop branch. The master branch is used only
for releases. Code should pass flake8 tests, allowing for the exceptions
given in the ".flake8" configuration file in the project directory.
for releases. Pull requests may be made from a fork, for those without
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:

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:

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.
example types are feature, bugfix, testing, docs, and experimental.
Administrators may take a hotfix branch from the 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.
Expand Down Expand Up @@ -64,3 +67,5 @@ following:
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

.. _flake8: https://github.com/Libensemble/libensemble/blob/develop/.flake8

0 comments on commit f226891

Please sign in to comment.