Skip to content

Commit

Permalink
Increase min boost version to 1.80
Browse files Browse the repository at this point in the history
  • Loading branch information
Keita Iwabuchi committed Oct 3, 2024
1 parent 0facbf2 commit 2a00200
Show file tree
Hide file tree
Showing 13 changed files with 44 additions and 59 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/ci-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: CI Test
on: [push, pull_request]

jobs:
bst1-82-0:
bst1-86-0:
runs-on: ubuntu-latest
env:
METALL_LIMIT_MAKE_PARALLELS: 8
Expand All @@ -12,9 +12,9 @@ jobs:
- name: Test
run: |
pushd /dev/shm
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.gz
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.86.0/source/boost_1_86_0.tar.gz
mkdir boost
tar xf boost_1_82_0.tar.gz -C boost --strip-components 1
tar xf boost_1_86_0.tar.gz -C boost --strip-components 1
export BOOST_ROOT=${PWD}/boost
popd
export METALL_TEST_DIR=${GITHUB_JOB}
Expand All @@ -23,7 +23,7 @@ jobs:
cd $GITHUB_WORKSPACE
bash ./scripts/CI/build_and_test.sh
bst1-64-0:
bst1-80-0:
runs-on: ubuntu-latest
env:
METALL_LIMIT_MAKE_PARALLELS: 8
Expand All @@ -32,9 +32,9 @@ jobs:
- name: Test
run: |
pushd /dev/shm
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.64.0/source/boost_1_64_0.tar.gz
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz
mkdir boost
tar xf boost_1_64_0.tar.gz -C boost --strip-components 1
tar xf boost_1_80_0.tar.gz -C boost --strip-components 1
export BOOST_ROOT=${PWD}/boost
popd
export METALL_TEST_DIR=${GITHUB_JOB}
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ endif ()
# there is a tricky behavior/issue especially in Boost 1.70.0.
set(Boost_NO_BOOST_CMAKE ON)

find_package(Boost 1.64 QUIET)
find_package(Boost 1.80 QUIET)
if (NOT Boost_FOUND)
FetchContent_Declare(Boost
URL https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2)
Expand All @@ -201,7 +201,7 @@ if (NOT Boost_FOUND)
FetchContent_Populate(Boost)
endif ()
set(BOOST_ROOT ${boost_SOURCE_DIR})
find_package(Boost 1.64)
find_package(Boost 1.80)
endif ()

# -------------------------------------------------------------------------------- #
Expand Down
13 changes: 5 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,8 @@ All core files exist under

## Required

- Boost C++ Libraries 1.64 or more.
- Boost C++ Libraries 1.80 or more.
- Build is not required; needs only their header files.
- To use JSON containers in Metall, Boost C++ Libraries 1.75 or more is required.
- C++17 compiler
- Tested with GCC 8.1 or more; however, 8.3 or more is recommended due to early implementation of the C++ Filesystem library.

Expand All @@ -45,11 +44,11 @@ To build your program with Metall, all you have to do is just setting include pa
For example,

```bash
# Download Boost (Boost C++ Libraries 1.64 or more is required)
# Download Boost (Boost C++ Libraries 1.80 or more is required)
# One can skip this step if Boost is already available.
wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz
tar xvf boost_1_78_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_78_0
wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz
tar xvf boost_1_80_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_80_0

git clone https://github.com/LLNL/metall
export METALL_INCLUDE=$PWD/metall/include
Expand All @@ -60,8 +59,6 @@ g++ -std=c++17 your_program.cpp -lstdc++fs -I${BOOST_ROOT} -I${METALL_INCLUDE}
### Unofficial Support For Clang
Clang can be used instead of GCC to build Metall.
However, we haven't tested it intensively.
Also, Boost C++ Libraries 1.69 or more may be required
if one wants to build Metall with Clang + CUDA.

## Package Manager Support

Expand Down
8 changes: 0 additions & 8 deletions cmake/check_cxx_filesystem_library.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,6 @@ function(check_cxx_filesystem_library)
set(FOUND_CXX17_FILESYSTEM_LIB FALSE PARENT_SCOPE)
set(REQUIRE_LIB_STDCXX_FS FALSE PARENT_SCOPE)

# Check if C++17 <filesystem> header files are available
# If not, uses our own implementation.
include(CheckIncludeFileCXX)
CHECK_INCLUDE_FILE_CXX(filesystem FOUND_FILESYSTEM_HEADER)
if (NOT FOUND_FILESYSTEM_HEADER)
message(FATAL_ERROR "Cannot find the C++17 <filesystem> library.")
endif ()

if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") # Clang or AppleClang
if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin") # macOS
include(get_macos_version)
Expand Down
2 changes: 1 addition & 1 deletion docs/readthedocs/advanced_build/cmake.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ cmake build_doc # option; BUILD_DOC must be ON when running cmake

- CMake 3.12 or more.
- GCC 8.1 or more.
- Boost C++ Libraries 1.64 or more (build is not required; needs only their header files).
- Boost C++ Libraries 1.80 or more (build is not required; needs only their header files).


## Additional CMake Options
Expand Down
16 changes: 6 additions & 10 deletions docs/readthedocs/basics/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,12 @@ All core files exist under
- GCC 8.1 or more
- 8.3 or more is recommended due to early implementation of the Filesystem library

- Boost C++ Libraries 1.64 or more
- Boost C++ Libraries 1.80 or more
- Build is not required; needs only the header files.
- To use JSON containers in Metall, Boost C++ Libraries 1.75 or more is required.

## Build Example

Metall depends on Boost C++ Libraries 1.64 or more (build is not required; needs only
Metall depends on Boost C++ Libraries 1.80 or more (build is not required; needs only
their header files).

To build your program with Metall, all you have to do is just setting
Expand All @@ -33,11 +32,11 @@ include paths such as '-I' or CPLUS_INCLUDE_PATH.
For example,

```bash
# Download Boost (Boost C++ Libraries 1.64 or more is required)
# Download Boost (Boost C++ Libraries 1.80 or more is required)
# One can skip this step if Boost is already available.
wget https://dl.bintray.com/boostorg/release/1.77.0/source/boost_1_77_0.tar.gz
tar xvf boost_1_77_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_77_0
wget https://dl.bintray.com/boostorg/release/1.80.0/source/boost_1_80_0.tar.gz
tar xvf boost_1_80_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_80_0

git clone https://github.com/LLNL/metall
export METALL_INCLUDE=$PWD/metall/include
Expand Down Expand Up @@ -71,9 +70,6 @@ Clang (or Apple clang) could be used instead of GCC to build Metall.
However, we haven't tested it intensively.
To run on macOS, Metall requires macOS >= 10.15.

Also, Boost C++ Libraries 1.69 or more may be required
if one wants to build Metall with Clang + CUDA.

```bash
clang++ -std=c++17 [tutorial_program.cpp] -I../../include -I${BOOST_ROOT}
```
6 changes: 3 additions & 3 deletions example/cmake/FetchContent/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ project(myproject LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)

# Boost header files are required for using Metall.
find_package(Boost 1.64)
find_package(Boost 1.80)
# Download Boost if it does not exit.
# NOTE: this process may take a long time as Boost is a big repository.
if (NOT Boost_FOUND)
message(STATUS "Download or search previously downloaded Boost using FetchContent")
FetchContent_Declare(Boost
URL https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2)
URL https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2)
FetchContent_GetProperties(Boost)
if (NOT Boost_POPULATED)
FetchContent_Populate(Boost)
endif ()
set(BOOST_ROOT ${boost_SOURCE_DIR})
find_package(Boost 1.64)
find_package(Boost 1.80)
endif ()

# Download and setup Metall.
Expand Down
2 changes: 1 addition & 1 deletion example/cmake/find_package/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ message(STATUS "Metall_FOUND = ${Metall_FOUND}")
# ---------------------------------------- #

# Boost header files are required to use Metall C++ API
find_package(Boost 1.64)
find_package(Boost 1.80)
find_package(Threads)

if (Boost_FOUND AND Threads_FOUND)
Expand Down
4 changes: 2 additions & 2 deletions include/metall/basic_manager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,8 @@ class basic_manager {
/// \param base_path Path to create a data store.
/// \param capacity Total allocation size. Metall uses this value as a hint.
// The actual limit could be smaller or larger than this value, depending on
// the internal implementation. However, a close minimum capacity should be
// available.
// the internal implementation. The gap between the hint and the actual limit
// will be reasonable (e.g., less than a few chunk sizes).
basic_manager(create_only_t, const path_type &base_path,
const size_type capacity) noexcept {
try {
Expand Down
4 changes: 2 additions & 2 deletions scripts/release_test/run_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

source ./scripts/test_utility.sh

GCC_VERSIONS=('10.2.0' '10.1.0' '9.3.0' '9.2.0' '9.1.0' '8.3.0' '8.2.0' '8.1.0')
BOOST_VERSiONS=('1.74.0' '1.73.0' '1.72.0' '1.71.0' '1.70.0' '1.69.0' '1.68.0' '1.67.0' '1.66.0' '1.65.1' '1.65.0' '1.64.0')
GCC_VERSIONS=('14.2.0' '14.1.0' '13.3.0' '13.2.0' '13.1.0' '12.4.0' '12.3.0' '12.2.0' '12.1.0' '11.5.0' '11.4.0' '11.3.0' '11.2.0' '11.1.0' '10.5.0' '10.4.0' '10.3.0' '10.2.0' '10.1.0' '9.5.0' '9.4.0' '9.3.0' '9.2.0' '9.1.0' '8.5.0' '8.4.0' '8.3.0' '8.2.0' '8.1.0')
BOOST_VERSiONS=('1.86.0' '1.85.0' '1.84.0' '1.83.0' '1.82.0' '1.81.0' '1.80.0')

for GCC_VER in "${GCC_VERSIONS[@]}"; do
for BOOST_VER in "${BOOST_VERSiONS[@]}"; do
Expand Down
16 changes: 8 additions & 8 deletions tutorial/hands_on/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,29 +79,29 @@ Install GCC 8.1 or more. One could also use Clang or Apple clang; however, GCC i

### 1-3. Boost C++ Libraries

Metall depends on [Boost C++ Libraries](https://www.boost.org/) (1.64 or more is required).
Metall depends on [Boost C++ Libraries](https://www.boost.org/) (1.80 or more is required).
Only the header files are used by Metall.
One **does not have to build** it.

Download Boost from [here](https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.tar.gz) (a download process will start automatically)
Download Boost from [here](https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz) (a download process will start automatically)
and uncompress it (e.g., double-click the downloaded file).

Or, on a terminal:
```bash
# Download Boost C++ Libraries
wget https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.tar.gz
tar xvf boost_1_75_0.tar.gz
wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz
tar xvf boost_1_80_0.tar.gz
```


## 2. Build and Run

```bash
# Download Boost C++ Libraries (1.64 or more is required)
# Download Boost C++ Libraries (1.80 or more is required)
# One can skip this step if Boost is already available
wget https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz
tar xvf boost_1_75_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_75_0
wget https://dl.bintray.com/boostorg/release/1.80.0/source/boost_1_80_0.tar.gz
tar xvf boost_1_80_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_80_0

git clone https://github.com/LLNL/metall
cd metall/tutorial/hands_on
Expand Down
2 changes: 1 addition & 1 deletion tutorial/nvmw21/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ endif ()


# ---------- Boost ---------- #
find_package(Boost 1.64 REQUIRED)
find_package(Boost 1.80 REQUIRED)

# ---------- MPI ---------- #
find_package(MPI)
Expand Down
14 changes: 7 additions & 7 deletions tutorial/nvmw21/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ Please install GCC 8.1 or more. One could also use Clang or Apple clang; however
Only the header files are used by Metall. One does not have to build it.

```bash
# Download Boost C++ Libraries (1.64 or more is required)
wget https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz
tar xvf boost_1_75_0.tar.gz
# Download Boost C++ Libraries (1.80 or more is required)
wget https://dl.bintray.com/boostorg/release/1.80.0/source/boost_1_80_0.tar.gz
tar xvf boost_1_80_0.tar.gz
```

# 1. Lecture Materials
Expand All @@ -48,11 +48,11 @@ tar xvf boost_1_75_0.tar.gz

**Build example**
```bash
# Download Boost C++ Libraries (1.64 or more is required)
# Download Boost C++ Libraries (1.80 or more is required)
# One can skip this step if Boost is already available.
wget https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.gz
tar xvf boost_1_75_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_75_0
wget https://dl.bintray.com/boostorg/release/1.80.0/source/boost_1_80_0.tar.gz
tar xvf boost_1_80_0.tar.gz
export BOOST_ROOT=$PWD/boost_1_80_0

git clone https://github.com/LLNL/metall
cd metall/tutorial/nvmw21
Expand Down

0 comments on commit 2a00200

Please sign in to comment.