diff --git a/.github/workflows/build_ubuntu_debug.yml b/.github/workflows/build_ubuntu_debug.yml deleted file mode 100644 index 58aac6a42..000000000 --- a/.github/workflows/build_ubuntu_debug.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Build Debug (Ubuntu) -on: [push, pull_request] - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Debug - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. - # You can convert this to a matrix build if you need cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-latest - strategy: - matrix: - compiler: [g++-10, g++-9, g++-8, g++-7, clang-6, clang-7, clang-8, clang-9, clang-10, clang-11, clang-12] - - steps: - - uses: actions/checkout@v4 - - - name: Caching objects - id: cache-objects - uses: actions/cache@v4 - with: - path: ~/.cache/ccache - key: ${{ runner.os }}-${{env.BUILD_TYPE}}-${{ matrix.compiler }}-objects - - - name: Install Dependencies - shell: bash - run: | - sudo apt-get install libeigen3-dev libboost-dev - - - name: Configure - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEDO=ON -DEDO_USE_LIB=Eigen3 -DENABLE_CMAKE_EXAMPLE=ON -DENABLE_CMAKE_TESTING=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - - name: Test - working-directory: ${{github.workspace}}/build - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{env.BUILD_TYPE}} - diff --git a/.gitignore b/.gitignore index ef1e87e20..5de8ffbd3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,11 @@ -# ignore generated files +# ignore html files *.html -*.pdf # ignore all textual files *.txt -*.swp -*.swo -.kak_history -*.log -*.csv -*.ods # ignore object and archive files *.[oa] -*.bak -*.tar* tags # ignore auto-saved files @@ -38,7 +29,4 @@ debug/* build/* website/EO_star.png website/paradiseo_logo.png -Release/* -Debug/* -Build/* diff --git a/AUTHORS b/AUTHORS index 47e9ce4b9..604157f80 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,52 +1,41 @@ Current maintainers =================== - +Arnaud Liefooghe +Clive Canape Johann Dreo +Sébastien Verel +Active developpers +================== +Alexandre Quemy +Benjamin Bouvier +Caner Candan +Pierre Savéant Past contributors ================= - atantar -Alesandro Sidero -Alexandre Quemy -Alix Zheng -Amine Aziz-Alaoui -Arnaud Liefooghe -Benjamin Bouvier -Bahri -Caner Candan -Clive Canape fatene Gustavo Romero Lopez jboisson Jeroen Eggermont Jochen Küpper -Joost +Joost Juan Julian Merelo Guervos Jérémie Humeau -Jxtopher Karima Boufaras -legillono -Leo Bertheas +legillon Louis Da Costa Loïc Jean David Arjanen Maarten Keijzer -Mammar Amara -Manu Marc Schoenauer Marie-Éleonore Mostepha Khouadjia Olivier König -Pierre Savéant Pedro Angel Castillo Valdivieso -Potalas -Ronald Pinho Steve Madere Sébastien Cahon -Sébastien Verel Thomas Legrand -Thibault Lasnier Victor Manuel Rivas Santos wcancino xohm diff --git a/CMakeLists.txt b/CMakeLists.txt index 52c1fa4a5..814feac2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,24 +13,13 @@ cmake_minimum_required(VERSION 3.10 FATAL_ERROR) ## Name project("ParadisEO" - VERSION 3.1.3 + VERSION 3.0.0 DESCRIPTION "Evolutionary optimization framework" LANGUAGES C CXX) ## Language set(CMAKE_CXX_STANDARD 17) -## ccache -find_program(CCACHE_PROGRAM ccache) - -if (CCACHE_PROGRAM) - message(NOTICE "-- ccache is enabled (found here: ${CCACHE_PROGRAM})") - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "\"${CCACHE_PROGRAM}\"") - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "\"${CCACHE_PROGRAM}\"") -else () - message(NOTICE "-- ccache has not been found") -endif () - ###################################################################################### ### 2) Check dependencies @@ -63,16 +52,16 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Target.cmake) ###################################################################################### ## Paths to sources of modules -set( EO_SRC_DIR "${PROJECT_SOURCE_DIR}/eo" CACHE INTERNAL "ParadisEO-EO source directory" FORCE) -set( EDO_SRC_DIR "${PROJECT_SOURCE_DIR}/edo" CACHE INTERNAL "ParadisEO-EDO source directory" FORCE) -set( MO_SRC_DIR "${PROJECT_SOURCE_DIR}/mo" CACHE INTERNAL "ParadisEO-MO source directory" FORCE) -set(MOEO_SRC_DIR "${PROJECT_SOURCE_DIR}/moeo" CACHE INTERNAL "ParadisEO-MOEO source directory" FORCE) -set( SMP_SRC_DIR "${PROJECT_SOURCE_DIR}/smp" CACHE INTERNAL "ParadisEO-SMP source directory" FORCE) -set( MPI_SRC_DIR "${PROJECT_SOURCE_DIR}/eo/src/mpi" CACHE INTERNAL "ParadisEO-MPI source directory" FORCE) +set( EO_SRC_DIR "${CMAKE_SOURCE_DIR}/eo" CACHE INTERNAL "ParadisEO-EO source directory" FORCE) +set( EDO_SRC_DIR "${CMAKE_SOURCE_DIR}/edo" CACHE INTERNAL "ParadisEO-EDO source directory" FORCE) +set( MO_SRC_DIR "${CMAKE_SOURCE_DIR}/mo" CACHE INTERNAL "ParadisEO-MO source directory" FORCE) +set(MOEO_SRC_DIR "${CMAKE_SOURCE_DIR}/moeo" CACHE INTERNAL "ParadisEO-MOEO source directory" FORCE) +set( SMP_SRC_DIR "${CMAKE_SOURCE_DIR}/smp" CACHE INTERNAL "ParadisEO-SMP source directory" FORCE) +set( MPI_SRC_DIR "${CMAKE_SOURCE_DIR}/eo/src/mpi" CACHE INTERNAL "ParadisEO-MPI source directory" FORCE) -set(PROBLEMS_SRC_DIR "${PROJECT_SOURCE_DIR}/problems" CACHE INTERNAL "Problems dependant source directory" FORCE) +set(PROBLEMS_SRC_DIR "${CMAKE_SOURCE_DIR}/problems" CACHE INTERNAL "Problems dependant source directory" FORCE) -set(CMAKE_BASE_SOURCE_DIR ${PROJECT_SOURCE_DIR}) +set(CMAKE_BASE_SOURCE_DIR ${CMAKE_SOURCE_DIR}) # All libraries are built in /lib/ set( EO_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-EO binary directory" FORCE) @@ -92,34 +81,31 @@ set(SMP "false" CACHE BOOL "Build the SMP module") set(MPI "false" CACHE BOOL "Build the MPI module") ## EO Module -set(MODULE_NAME "Paradiseo") -set(DOXYGEN_CONFIG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/doxygen) -# set(EO_MODULE_NAME "Evolving Objects") +set(EO_MODULE_NAME "Evolving Object") set(CMAKE_SOURCE_DIR ${EO_SRC_DIR}) add_subdirectory(${EO_SRC_DIR}) if(NOT EO_ONLY) ## MO Module - # set(MO_MODULE_NAME "Moving Objects") - # set(MODULE_NAME "Moving Objects") + set(MO_MODULE_NAME "Moving objects") set(CMAKE_SOURCE_DIR ${MO_SRC_DIR}) add_subdirectory(${MO_SRC_DIR}) ## EDO Module if(EDO) - # set(EDO_MODULE_NAME "Evolving Distribution Objects") + set(EDO_MODULE_NAME "Evolving Distribution Objects") set(CMAKE_SOURCE_DIR ${EDO_SRC_DIR}) add_subdirectory(${EDO_SRC_DIR}) endif() ## MOEO Module - # set(MOEO_MODULE_NAME "Multi-Objectives EO") + set(MOEO_MODULE_NAME "Multi-Objectives EO") set(CMAKE_SOURCE_DIR ${MOEO_SRC_DIR}) add_subdirectory(${MOEO_SRC_DIR}) ## SMP Module if(SMP) - # set(SMP_MODULE_NAME "Symmetric Multi-Processing") + set(SMP_MODULE_NAME "Symmetric Multi-Processing") set(CMAKE_SOURCE_DIR ${SMP_SRC_DIR}) add_subdirectory(${SMP_SRC_DIR}) endif() diff --git a/INSTALL.md b/INSTALL.md index a3fb4e1b7..b30e1c76f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -2,8 +2,7 @@ Summary ======= -As Paradiseo is a development framework, you do not really need to install it on all your systems. -Just put it somewhere on your development computer, compile it from here and indicate where to find it to your favorite build system. +As Paradiseo is a development framework, you do not really need to install it on all your systems. Just put it somewhere on your development computer, compile it from here and indicate where to find it to your favorite build system. Build @@ -19,11 +18,6 @@ Paradiseo use the CMake build system, so building it should be as simple as: mkdir build ; cd build ; cmake -DEDO=ON .. && make -j ``` -The file `howto_build_paradiseo.apptainer.def` shows you how to install and build from scratch. -It is a definition file for the [Apptainer](https://apptainer.org/) container system, -which is often used on HPC clusters. - - Develop ------- @@ -193,13 +187,13 @@ Examples and lessons are generated when `ENABLE_CMAKE_EXAMPLE` is set. If you want to build a specific lesson or example, you can check the list of available targets with `make help`. All lessons are build on the same pattern: `Lesson`. -For instance, make `moLesson4` will build the Lesson 4 from the MO module. +For instance, make `moLesson4` will build the Lesson 4 from the MO module. Easy, isn't it ? Tests ----- -By performing tests, you can check your installation. +By performing tests, you can check your installation. Testing is disable by default, except if you build with the full install type. To enable testing, define `ENABLE_CMAKE_TESTING` when you run cmake. diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7e4a015c0..000000000 --- a/LICENSE +++ /dev/null @@ -1,10 +0,0 @@ -ParadisEO modules have different licenses, see LICENSE files in each directories: - -- eo : LGPL v2.1 -- edo : LGPL v2.1 -- mo : CeCILL v2+ (GPL-like) -- moeo: CeCILL v2+ (GPL-like) -- smp : CeCILL v2+ (GPL-like) -- problem: depend on each file (usually CeCILL). - -You may also double check the headers of source code files. diff --git a/README.md b/README.md index 78f5c96fe..c9a6f9ef3 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,7 @@ It focus on the efficiency of the implementation of solvers, by providing: - tools for ***automated design and selection*** of algorithms, - a focus on ***speed*** and several ***parallelization*** options. -
- Paradiseo logo -
+![Paradiseo logo](https://github.com/nojhan/paradiseo/blob/master/website/paradiseo_logo_200px_dark.png) # Quick Start @@ -168,7 +166,7 @@ It is, for instance, easy to start with a simple local search, then add multi-ob Paradiseo is mainly developed under Linux operating systems, where its dependencies and the C++ toolchain are easy to install. Recent versions have been tested with gcc and clang compilers. -Stable versions should however work on Windows and any Unix-like operating system with a standard-conforming C++ development system. +Stable versions should however work on Windows and any Unix-like operating system with a standard-conforming C++ development system. # Code @@ -195,7 +193,7 @@ The build chain uses the classical workflow of CMake. The recommended method is Under Linux, the default is make, and a build command is straitghtforward: `mkdir build ; cd build ; cmake .. && make -j`. -There is, however, several build options which you may want to switch. To see them, we recommend the use of a CMake gui, like ccmake or cmake-gui. On the command line, you can see the available options with: `cmake -LH ..` . Those options can be set with the `-D