Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdf60411

Browse files
authored
Merge pull request#339 from LLNL/release/v0.29
Release/v0.29
2 parents1f6c027 +d52cd7f commitdf60411

30 files changed

+506
-448
lines changed

‎.github/workflows/ci-test.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: CI Test
33
on:[push, pull_request]
44

55
jobs:
6-
bst1-82-0:
6+
bst1-86-0:
77
runs-on:ubuntu-latest
88
env:
99
METALL_LIMIT_MAKE_PARALLELS:8
@@ -12,9 +12,9 @@ jobs:
1212
-name:Test
1313
run:|
1414
pushd /dev/shm
15-
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.gz
15+
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.86.0/source/boost_1_86_0.tar.gz
1616
mkdir boost
17-
tar xfboost_1_82_0.tar.gz -C boost --strip-components 1
17+
tar xfboost_1_86_0.tar.gz -C boost --strip-components 1
1818
export BOOST_ROOT=${PWD}/boost
1919
popd
2020
export METALL_TEST_DIR=${GITHUB_JOB}
@@ -23,7 +23,7 @@ jobs:
2323
cd $GITHUB_WORKSPACE
2424
bash ./scripts/CI/build_and_test.sh
2525
26-
bst1-64-0:
26+
bst1-80-0:
2727
runs-on:ubuntu-latest
2828
env:
2929
METALL_LIMIT_MAKE_PARALLELS:8
@@ -32,9 +32,9 @@ jobs:
3232
-name:Test
3333
run:|
3434
pushd /dev/shm
35-
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.64.0/source/boost_1_64_0.tar.gz
35+
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz
3636
mkdir boost
37-
tar xfboost_1_64_0.tar.gz -C boost --strip-components 1
37+
tar xfboost_1_80_0.tar.gz -C boost --strip-components 1
3838
export BOOST_ROOT=${PWD}/boost
3939
popd
4040
export METALL_TEST_DIR=${GITHUB_JOB}

‎.gitlab-ci.yml

Lines changed: 21 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,29 @@
33
# Spack must be available
44
# It would be better to install all Boost versions manually,
55
# as it causes errors often and could exceed the timelimit of the system.
6-
#
7-
# One might want to change the location of builds directory on LC clusters to avoid consuming the home directory space.
8-
# Type the following command on an LC cluster:
9-
# $ ln -s /usr/workspace/lc-username ~/.gitlab-runner
6+
7+
include:[component: $CI_SERVER_FQDN/lc-components/id_tokens/id_tokens-component@main]
108

119
stages:
1210
-install
1311
-build
1412

1513

1614
variables:
15+
CUSTOM_CI_BUILDS_DIR:"/usr/workspace/$$USER/metall-ci-runner-builds-dir"
1716
GTEST_COLOR:"1"
1817
GIT_DEPTH:0
18+
# CI_DEBUG_TRACE: "true" # Enable this when debugging this CI
1919

2020

2121
install_boost:
2222
stage:install
2323
tags:
24-
-quartz
24+
-ruby
2525
-shell
2626
script:
2727
-hostname
28-
-srun -N1 -ppdebug spack install boost@1.82.0 boost@1.81.0 boost@1.80.0 boost@1.79.0 boost@1.78.0 boost@1.77.0 boost@1.76.0 boost@1.75.0 boost@1.74.0 boost@1.73.0 boost@1.72.0 boost@1.71.0 boost@1.70.0 boost@1.69.0 boost@1.68.0 boost@1.67.0 boost@1.66.0 boost@1.65.1 boost@1.65.0 boost@1.64.0
28+
-srun -N1 -ppci spack install boost@1.86.0 boost@1.85.0 boost@1.84.0 boost@1.83.0 boost@1.82.0 boost@1.81.0 boost@1.80.0
2929
-spack clean
3030

3131

@@ -39,124 +39,46 @@ install_boost:
3939
-module load gcc/${GCC_VERSION}
4040
-spack load --first boost@${BOOST_VERSION} arch=$(spack arch)
4141
-export METALL_TEST_DIR="/dev/shm/metall_test-${CI_CONCURRENT_ID}-${CI_PIPELINE_IID}"
42-
-srun -N1 -ppdebug bash ./scripts/CI/build_and_test.sh
43-
44-
build_gcc12.1.1_bst1.82.0:
45-
extends:.build
46-
variables:
47-
GCC_VERSION:"12.1.1"
48-
BOOST_VERSION:"1.82.0"
49-
50-
build_gcc12.1.1_bst1.81.0:
51-
extends:.build
52-
variables:
53-
GCC_VERSION:"12.1.1"
54-
BOOST_VERSION:"1.81.0"
55-
56-
build_gcc12.1.1_bst1.80.0:
57-
extends:.build
58-
variables:
59-
GCC_VERSION:"12.1.1"
60-
BOOST_VERSION:"1.80.0"
42+
-srun -N1 -ppci bash ./scripts/CI/build_and_test.sh
6143

62-
build_gcc12.1.1_bst1.79.0:
44+
build_gcc12.1.1_bst1.86.0:
6345
extends:.build
6446
variables:
6547
GCC_VERSION:"12.1.1"
66-
BOOST_VERSION:"1.79.0"
48+
BOOST_VERSION:"1.86.0"
6749

68-
build_gcc12.1.1_bst1.78.0:
50+
build_gcc12.1.1_bst1.85.0:
6951
extends:.build
7052
variables:
7153
GCC_VERSION:"12.1.1"
72-
BOOST_VERSION:"1.78.0"
54+
BOOST_VERSION:"1.85.0"
7355

74-
build_gcc12.1.1_bst1.77.0:
56+
build_gcc12.1.1_bst1.84.0:
7557
extends:.build
7658
variables:
7759
GCC_VERSION:"12.1.1"
78-
BOOST_VERSION:"1.77.0"
60+
BOOST_VERSION:"1.84.0"
7961

80-
build_gcc12.1.1_bst1.76.0:
62+
build_gcc12.1.1_bst1.83.0:
8163
extends:.build
8264
variables:
8365
GCC_VERSION:"12.1.1"
84-
BOOST_VERSION:"1.76.0"
66+
BOOST_VERSION:"1.83.0"
8567

86-
build_gcc12.1.1_bst1.75.0:
87-
extends:.build
88-
variables:
89-
GCC_VERSION:"12.1.1"
90-
BOOST_VERSION:"1.75.0"
91-
92-
build_gcc12.1.1_bst1.74.0:
93-
extends:.build
94-
variables:
95-
GCC_VERSION:"12.1.1"
96-
BOOST_VERSION:"1.74.0"
97-
98-
build_gcc12.1.1_bst1.73.0:
99-
extends:.build
100-
variables:
101-
GCC_VERSION:"12.1.1"
102-
BOOST_VERSION:"1.73.0"
103-
104-
build_gcc12.1.1_bst1.72.0:
105-
extends:.build
106-
variables:
107-
GCC_VERSION:"12.1.1"
108-
BOOST_VERSION:"1.72.0"
109-
110-
build_gcc12.1.1_bst1.71.0:
111-
extends:.build
112-
variables:
113-
GCC_VERSION:"12.1.1"
114-
BOOST_VERSION:"1.71.0"
115-
116-
build_gcc12.1.1_bst1.70.0:
117-
extends:.build
118-
variables:
119-
GCC_VERSION:"12.1.1"
120-
BOOST_VERSION:"1.70.0"
121-
122-
build_gcc12.1.1_bst1.69.0:
123-
extends:.build
124-
variables:
125-
GCC_VERSION:"12.1.1"
126-
BOOST_VERSION:"1.69.0"
127-
128-
build_gcc12.1.1_bst1.68.0:
129-
extends:.build
130-
variables:
131-
GCC_VERSION:"12.1.1"
132-
BOOST_VERSION:"1.68.0"
133-
134-
build_gcc12.1.1_bst1.67.0:
135-
extends:.build
136-
variables:
137-
GCC_VERSION:"12.1.1"
138-
BOOST_VERSION:"1.67.0"
139-
140-
build_gcc12.1.1_bst1.66.0:
141-
extends:.build
142-
variables:
143-
GCC_VERSION:"12.1.1"
144-
BOOST_VERSION:"1.66.0"
145-
146-
build_gcc12.1.1_bst1.65.1:
68+
build_gcc12.1.1_bst1.82.0:
14769
extends:.build
14870
variables:
14971
GCC_VERSION:"12.1.1"
150-
BOOST_VERSION:"1.65.1"
72+
BOOST_VERSION:"1.82.0"
15173

152-
build_gcc12.1.1_bst1.65.0:
74+
build_gcc12.1.1_bst1.81.0:
15375
extends:.build
15476
variables:
15577
GCC_VERSION:"12.1.1"
156-
BOOST_VERSION:"1.65.0"
78+
BOOST_VERSION:"1.81.0"
15779

158-
build_gcc12.1.1_bst1.64.0:
80+
build_gcc12.1.1_bst1.80.0:
15981
extends:.build
16082
variables:
16183
GCC_VERSION:"12.1.1"
162-
BOOST_VERSION:"1.64.0"
84+
BOOST_VERSION:"1.80.0"

‎CMakeLists.txt

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,29 @@ if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13")
99
cmake_policy(SETCMP0077NEW)
1010
endif ()
1111

12+
# When using the URL download method with the ExternalProject_Add() or
13+
# FetchContent_Declare() commands, sets the timestamps of extracted contents
14+
# to the time of extraction.
1215
if (${CMAKE_VERSION}VERSION_GREATER_EQUAL"3.24")
1316
cmake_policy(SETCMP0135NEW)
1417
endif ()
1518

19+
# Accept <PACKAGENAME>_ROOT variables for find_package() command.
20+
if (${CMAKE_VERSION}VERSION_GREATER_EQUAL"3.27")
21+
cmake_policy(SETCMP0144NEW)
22+
endif ()
23+
24+
# find_package(Boost) to search for the upstream BoostConfig.cmake.
25+
# Disable CMake's FindBoost module.
26+
if (${CMAKE_VERSION}VERSION_GREATER_EQUAL"3.30")
27+
cmake_policy(SETCMP0167NEW)
28+
endif ()
29+
1630
# -------------------------------------------------------------------------------- #
1731
# Metall general configuration
1832
# -------------------------------------------------------------------------------- #
1933
project(Metall
20-
VERSION0.28
34+
VERSION0.29
2135
DESCRIPTION"A persistent memory allocator for data-centric analytics"
2236
HOMEPAGE_URL"https://github.com/LLNL/metall")
2337

@@ -82,6 +96,7 @@ option(JUST_INSTALL_METALL_HEADER "Just install Metall header files (do not buil
8296
option(BUILD_UTILITY"Build utility programs"OFF)
8397
option(BUILD_DOC"Build API documentation"OFF)
8498
option(BUILD_C"Build C examples and libraries"OFF)
99+
option(BUILD_SHARED_LIBS"Generate shared libraries"OFF)
85100
option(BUILD_EXAMPLE"Build the examples"OFF)
86101
option(BUILD_TEST"Build the test"OFF)
87102
option(RUN_LARGE_SCALE_TEST"Run large scale tests"OFF)
@@ -187,20 +202,15 @@ if (PRIVATEER_ROOT)
187202
endif ()
188203

189204
# ---------- Boost ---------- #
190-
# Disable the boost-cmake feature (BoostConfig.cmake or boost-config.cmake) since
191-
# there is a tricky behavior/issue especially in Boost 1.70.0.
192-
set(Boost_NO_BOOST_CMAKEON)
193-
194-
find_package(Boost1.64QUIET)
205+
include(find_boost_headers)
206+
find_boost_headers(1.80FALSE)
195207
if (NOTBoost_FOUND)
208+
message(STATUS"Fetching Boost")
196209
FetchContent_Declare(Boost
197210
URLhttps://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2)
198-
FetchContent_GetProperties(Boost)
199-
if (NOTBoost_POPULATED)
200-
FetchContent_Populate(Boost)
201-
endif ()
211+
FetchContent_MakeAvailable(Boost)
202212
set(BOOST_ROOT${boost_SOURCE_DIR})
203-
find_package(Boost1.64)
213+
find_package(Boost1.80REQUIRED)
204214
endif ()
205215

206216
# -------------------------------------------------------------------------------- #

‎README.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ All core files exist under
3232

3333
##Required
3434

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

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

4746
```bash
48-
# Download Boost (Boost C++ Libraries 1.64 or more is required)
47+
# Download Boost (Boost C++ Libraries 1.80 or more is required)
4948
# One can skip this step if Boost is already available.
50-
wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz
51-
tar xvfboost_1_78_0.tar.gz
52-
export BOOST_ROOT=$PWD/boost_1_78_0
49+
wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz
50+
tar xvfboost_1_80_0.tar.gz
51+
export BOOST_ROOT=$PWD/boost_1_80_0
5352

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

6663
##Package Manager Support
6764

‎cmake/check_cxx_filesystem_library.cmake

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ function(check_cxx_filesystem_library)
44
set(FOUND_CXX17_FILESYSTEM_LIBFALSEPARENT_SCOPE)
55
set(REQUIRE_LIB_STDCXX_FSFALSEPARENT_SCOPE)
66

7-
# Check if C++17 <filesystem> header files are available
8-
# If not, uses our own implementation.
9-
include(CheckIncludeFileCXX)
10-
CHECK_INCLUDE_FILE_CXX(filesystemFOUND_FILESYSTEM_HEADER)
11-
if (NOTFOUND_FILESYSTEM_HEADER)
12-
message(FATAL_ERROR"Cannot find the C++17 <filesystem> library.")
13-
endif ()
14-
157
if (CMAKE_CXX_COMPILER_IDMATCHES"Clang")# Clang or AppleClang
168
if (${CMAKE_HOST_SYSTEM_NAME}MATCHES"Darwin")# macOS
179
include(get_macos_version)

‎cmake/find_boost_headers.cmake

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Find Boost header files
2+
# Input:
3+
# min_version - minimum required Boost version
4+
# required - if TRUE, the function will stop the build if Boost headers are not found
5+
#
6+
# This function first tries to find Boost headers using the find_package() command.
7+
# If Boost headers are not found, the function tries to find Boost headers manually.
8+
# In the case, the following variables as hints to find Boost headers, in the following order:
9+
# BOOST_ROOT CMake variable, Boost_ROOT CMake variable, BOOST_ROOT environment variable, Boost_ROOT environment variable
10+
#
11+
# Output:
12+
# Boost_FOUND - TRUE if Boost headers are found
13+
# Boost_INCLUDE_DIRS - Boost header files directory
14+
# Boost_VERSION - Boost version
15+
function(find_boost_headersmin_versionrequired)
16+
find_package(Boost${min_version})
17+
if (Boost_FOUND)
18+
set(Boost_INCLUDE_DIRS${Boost_INCLUDE_DIRS}PARENT_SCOPE)
19+
set(Boost_FOUND${Boost_FOUND}PARENT_SCOPE)
20+
return()
21+
endif ()
22+
23+
message(STATUS"Could not find Boost headers using the find_package() command. Trying to find Boost headers manually.")
24+
25+
# Try to find Boost headers manually using the BOOST_ROOT as a hint
26+
find_path(Boost_INCLUDE_DIRSboost/version.hppPATHS${BOOST_ROOT}${Boost_ROOT}$ENV{BOOST_ROOT}$ENV{Boost_ROOT}NO_DEFAULT_PATH)
27+
if (Boost_INCLUDE_DIRS)
28+
29+
# Extract Boost version value from the boost/version.hpp file
30+
file(STRINGS${Boost_INCLUDE_DIRS}/boost/version.hpp_boost_versionREGEX"#define BOOST_VERSION[\t]+[0-9]+")
31+
string(REGEXREPLACE"#define BOOST_VERSION[\t]+([0-9]+)""\\1"Boost_VERSION${_boost_version})
32+
33+
# Convert Boost version to the format 'MAJOR.MINOR.PATCH'
34+
# Major version
35+
math(EXPRBoost_VERSION_MAJOR"${Boost_VERSION} / 100000")
36+
# Minor version
37+
math(EXPRBoost_VERSION_MINOR"(${Boost_VERSION} / 100) % 1000")
38+
# Patch version
39+
math(EXPRBoost_VERSION_PATCH"${Boost_VERSION} % 100")
40+
set(Boost_VERSION"${Boost_VERSION_MAJOR}.${Boost_VERSION_MINOR}.${Boost_VERSION_PATCH}")
41+
42+
if (${Boost_VERSION}VERSION_GREATER_EQUAL${min_version})
43+
message(STATUS"Found Boost headers at${Boost_INCLUDE_DIRS}")
44+
message(STATUS"Boost version:${Boost_VERSION}")
45+
set(Boost_FOUNDTRUEPARENT_SCOPE)
46+
set(Boost_INCLUDE_DIRS${Boost_INCLUDE_DIRS}PARENT_SCOPE)
47+
set(Boost_VERSION${Boost_VERSION}PARENT_SCOPE)
48+
return()
49+
else ()
50+
message(WARNING"Found an old Boost version '${Boost_VERSION}'. Required version is '${min_version}'.")
51+
endif ()
52+
endif ()
53+
54+
# Not found
55+
set(Boost_FOUNDFALSEPARENT_SCOPE)
56+
if (required)
57+
message(FATAL_ERROR"Could not find Boost headers")
58+
endif ()
59+
60+
endfunction()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp