Skip to content

Commit

Permalink
Merge pull request #49 from bbopt/develop
Browse files Browse the repository at this point in the history
Update master for Release 4.1
  • Loading branch information
ctribes committed Jul 7, 2021
2 parents 75754f2 + 52886f9 commit 89234cb
Show file tree
Hide file tree
Showing 4,053 changed files with 8,622 additions and 349,810 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,18 @@ XCode/
*.vscode
VisualStudio/**
build/
build/release/**
builds/
dev_tests/*.txt
Testing/
examples/**/*.exe
examples/**/cache.txt
src/*.txt
src/nbproject/
*.swp
src/Attribute/*.hpp
examples/**/history*
examples/**/sol*
examples/**/stats*
examples/**/runTestLog*
integration_tests/**/*.exe
integration_tests/**/stats*
26 changes: 11 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)

# name of the project
project (Nomad VERSION 4.0.2)
project (Nomad VERSION 4.1.0)

# use standard compilers parameters for c++14
SET(CMAKE_CXX_STANDARD 14 )
Expand All @@ -23,16 +23,21 @@ endif()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
# require at least gcc 4
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)
message(FATAL_ERROR "GCC version < 8 has not been tested for Nomad!")
message(FATAL_ERROR "GCC version < 8 has not been tested for Nomad")
endif()
elseif (("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
# require at least clang 5
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
message(FATAL_ERROR "Clang version has not been tested for Nomad!")
message(FATAL_ERROR "Clang version has not been tested for Nomad")
endif()
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# require at least 15.0 (MSVC 2017) for C++14 support
if (MSVC_TOOLSET_VERSION VERSION_LESS 141)
message(FATAL_ERROR "MSVC version ${CMAKE_CXX_COMPILER_VERSION} has not been tested for Nomad")
endif()
else()
message(WARNING "You are using an unsupported compiler! Compilation has only been tested with Clang and GCC.")
message(WARNING "You are using an unsupported compiler. Compilation has only been tested with Clang, GCC, and MSVC.")
endif()

#options
Expand Down Expand Up @@ -63,7 +68,7 @@ message(STATUS " Installation prefix set to ${CMAKE_INSTALL_PREFIX}")
#
# Use sgtelib
#
set(USE_SGTELIB ON)
option(USE_SGTELIB "Option to use the Sgtelib library" ON)
if(USE_SGTELIB MATCHES ON)
message(CHECK_START " Configuring for use of Sgtelib library")

Expand All @@ -89,6 +94,7 @@ if(TIME_STATS MATCHES ON)
add_compile_definitions(TIME_STATS)
endif()


#
# Test openMP package
#
Expand Down Expand Up @@ -119,16 +125,6 @@ else()
message(STATUS " Examples NOT built")
endif()

option(BUILD_INTEGRATION_TESTS "Option to build integration tests" OFF)
if(BUILD_INTEGRATION_TESTS MATCHES ON)
message(CHECK_START " Configuring build for integration tests")

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/integration_tests)
message(CHECK_PASS " done")
else()
message(STATUS " Integration tests NOT built")
endif()

#
# Choose to build the interface
#
Expand Down
26 changes: 26 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Guidelines for contributing to NOMAD - A blackbox optimization software.

### NOMAD 4
For questions, bugs, feature requests and other issues, please open a new issue at https://github.com/bbopt/nomad/issues.
To add a feature, especially if it involves algorithmic developments, or to otherwise suggest changes to the code, do [contact us](mailto:nomad@gerad.ca) for more information.

### NOMAD 3
NOMAD 3 is still available. It is not on GitHub. For any question or issue specific to NOMAD 3, [email us](mailto:nomad@gerad.ca).

### Questions
We are happy to help. An issue may be opened with the question, or you can [email us](mailto:nomad@gerad.ca).

### Bugs
Make sure to include these informations:
* A clear description of the bug, with the expected behavior
* Steps to reproduce
* OS / platform
* NOMAD version
* It may be useful to have a trace of the output with the parameter `DISPLAY_DEGREE 4`

### Features / Enhancements
If the feature is already in the list of issues, input should be added to that issue. Otherwise, a new issue may be opened. Please check the [roadmap](https://github.com/bbopt/nomad/ROADMAP.md) for upcoming features.

### Pull requests
We will review carefully pull requests, but we will not merge them directly. Our current development path involves a private repository that we may update with the suggested changes before updating the public repository.

1 change: 1 addition & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Solène Kojtych
Guillaume Lameynardie
Wim Lavrijsen
Alexis Montoison
Ferdinand Mosca
Caroline Rocha
Ludovic Salomon
Renaud Saltet
43 changes: 26 additions & 17 deletions README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
#---------------------------------------------------------------------------------#
# NOMAD - Nonlinear Optimization by Mesh Adaptive Direct Search - #
# #
# NOMAD - Version 4.0 has been created by #
# NOMAD - Version 4 has been created by #
# Viviane Rochon Montplaisir - Polytechnique Montreal #
# Christophe Tribes - Polytechnique Montreal #
# #
# The copyright of NOMAD - version 4.0 is owned by #
# The copyright of NOMAD - version 4 is owned by #
# Charles Audet - Polytechnique Montreal #
# Sebastien Le Digabel - Polytechnique Montreal #
# Viviane Rochon Montplaisir - Polytechnique Montreal #
# Christophe Tribes - Polytechnique Montreal #
# #
# NOMAD v4 has been funded by Rio Tinto, Hydro-Québec, Huawei-Canada, #
# NOMAD 4 has been funded by Rio Tinto, Hydro-Québec, Huawei-Canada, #
# NSERC (Natural Sciences and Engineering Research Council of Canada), #
# InnovÉÉ (Innovation en Énergie Électrique) and IVADO (The Institute #
# for Data Valorization) #
Expand Down Expand Up @@ -69,18 +69,27 @@ CONTACT:
nomad@gerad.ca


VERSION WARNING:

This repository is for NOMAD 4. NOMAD 3 is not on GitHub.
NOMAD 4 is similar in usage to NOMAD 3. It does not have all
functionalities from NOMAD 3 yet. NOMAD 4 has a new software
architecture, uses OpenMP to run evaluations in parallel,
and also has some new functionalities.


COMPILATION (Release):

On Linux, Unix, Windows and Mac OS X, NOMAD can be compiled using CMake.
The minimum version of CMake is 3.14. Older versions will trigger
an error. A recent C++ compiler is also required.
an error. A recent C++ compiler is also required.

The procedure is the following. On the command line in the
$NOMAD_HOME directory:

cmake -S . -B build/release ---> Create the CMake files and directories for
cmake -S . -B build/release ---> Create the CMake files and directories for
building (-B) in build/release.
The source (-S) CMakeLists.txt file is in
The source (-S) CMakeLists.txt file is in
the $NOMAD_HOME directory.
To enable time stats build:
cmake -DTIME_STATS=ON -S . -B build/release
Expand All @@ -92,18 +101,18 @@ cmake -S . -B build/release ---> Create the CMake files and directories for
cmake -DTEST_OPENMP=OFF -S . -B build/release


cmake --build build/release ---> Build all the libraries and applications
cmake --build build/release ---> Build all the libraries and applications
Option --parallel xx can be added for faster
build.
Option --config Release should be used on
*Windows* to compile in Release configuration.
Option --config Release should be used on
*Windows* to compile Release configuration.
The default configuration is Debug.

cmake --install build/release ---> Copy binaries and headers in
cmake --install build/release ---> Copy binaries and headers in
build/release/[bin, include, lib]
and in the examples/tests directories.
Option --config Release should be used on
Windows to install in Release configuration.
Windows to install Release configuration.
The default configuration is Debug.

The executable "nomad" will installed into the directory:
Expand All @@ -119,20 +128,20 @@ cmake --install $NOMAD_HOME/build/release

COMPILATION (Debug):

The procedure to build the debug version is the following.
The procedure to build the debug version is the following.
On the command line in the $NOMAD_HOME directory:

cmake -S . -B build/debug -D CMAKE_BUILD_TYPE=Debug
---> On Windows, all 4 configurations are always build
Debug, RelWithDebugInfo, MinSizeRel, Release);
flag CMAKE_BUILD_TYPE is ignored.

cmake --build build/debug ---> Build the libraries and applications
cmake --build build/debug ---> Build the libraries and applications
Option --parallel xx can be added for faster
build.
On Windows, the default configuration is Debug.

cmake --install build/debug ---> Copy binaries and headers in
cmake --install build/debug ---> Copy binaries and headers in
build/debug/[bin, include, lib]
and in the examples/tests directories

Expand All @@ -141,13 +150,13 @@ EXAMPLES OF OPTIMIZATION:

Batch Mode:
There are examples in batch mode in examples/basic/batch/.
In each directory, the blackbox (usually named bb) are compiled by default.
In each directory, the blackbox functions (usually named bb) are compiled by default.
The problem may be resolved using NOMAD and the parameter file:
nomad param.txt

Library Mode:
There are examples in library mode in examples/basic/library/.
In each directory, the executable may be compiled when building
Nomad application. The problems may be resolved by execution,
In each directory, the executable may be compiled when building
Nomad application. The problems may be resolved by execution,
for instance:
example_lib.exe
34 changes: 34 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## Next releases

### v4.1 - July 2021

* Windows version of the nomad executable

* Static surrogate may be used for sorting or for optimizing

* Variable Neighborhood Search (VNS)

* Poll direction ORTHO N+1 NEG added

### v4.2 - October 2021

These are the features we consider for 4.2:

* Improvements to VNS

* Poll direction ORTHO N+1 MODEL

* Use models for sorting

* Matlab interface

* Python interface on Windows

* Periodic variables

* Coordinate search algorithm

* Functionality to interrupt the resolution to show the current best solution, and then resume



2 changes: 1 addition & 1 deletion doc/doxygen/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "NOMAD Source"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = "Version 4.0.0 Beta"
PROJECT_NUMBER = "Version 4.1"

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
103 changes: 0 additions & 103 deletions doc/doxygen/html/_algo_stop_reasons_8cpp.html

This file was deleted.

Loading

0 comments on commit 89234cb

Please sign in to comment.