Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
2c45271
Remove mentions of bsp_process_group from docs
May 16, 2021
366b4d7
Document that metis_reader expects a seekable stream
J5lx Feb 19, 2022
3dd7ba1
Updated Boost.Filesystem usage.
Lastique Jan 26, 2024
39ef1fd
Merge pull request #35 from Lastique/feature/update_filesystem_usage
jeremy-murphy Jan 31, 2024
1e61bc8
Make the library modular usable.
grafikrobot Mar 11, 2024
f85d048
Switch to library requirements instead of source. As source puts extr…
grafikrobot Mar 30, 2024
ce155b1
Add missing NO_LIB usage requirements.
grafikrobot Apr 29, 2024
a36ae0f
Add requires-b2 check to top-level build file.
grafikrobot May 5, 2024
926be2b
Bump B2 require to 5.2
grafikrobot Jun 14, 2024
72a6007
Move inter-lib dependencies to a project variable and into the build …
grafikrobot Jul 24, 2024
3e59d3a
Add python build setup.
grafikrobot Aug 3, 2024
c1e750e
Use latest ubuntu/compilers on GHA.
grafikrobot Apr 13, 2025
48cb060
Move include to target.
grafikrobot Apr 17, 2025
787bdff
Merge pull request #38 from grafikrobot/modular
pdimov May 2, 2025
c4ed70c
Merge pull request #34 from J5lx/metis-reader-seeking
jeremy-murphy Sep 24, 2025
e30c78d
Merge pull request #24 from cojuer/develop
jeremy-murphy Sep 24, 2025
811f00d
Update maintainer
jeremy-murphy Sep 24, 2025
4f004d2
Remove C++03,11,2a from GHA
jeremy-murphy Oct 13, 2025
57fbbbd
Try libopenmpi-dev on 24.04 as well
pdimov Oct 15, 2025
8fe1ca1
Remove dependencies on Boost.StaticAssert.
Lastique Jan 22, 2026
f91d58b
Merge pull request #45 from Lastique/feature/remove_static_assert
pdimov Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 11 additions & 59 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
name: CI
on: [ push, pull_request ]
jobs:
ubuntu-focal:
runs-on: ubuntu-20.04
ubuntu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [ g++-9, g++-10, clang++-10 ]
compiler: [ g++-13, g++-14, clang++-19 ]
mpi: [ mpich, libopenmpi-dev ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
Expand All @@ -24,10 +25,8 @@ jobs:
fail-fast: true
- name: Set TOOLSET
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- name: Add repository
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- name: Install packages
run: sudo apt install g++-9 g++-10 clang-10 mpich
run: sudo apt-get update; sudo apt-get install -y g++-13 g++-14 clang-19 ${{matrix.mpi}}
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
Expand All @@ -49,57 +48,10 @@ jobs:
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam && echo "using mpi ;" >> ~/user-config.jam'
working-directory: ../boost-root
- name: Config info
run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,2a
run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=14,17,20
working-directory: ../boost-root/libs/config/test
- name: Test
run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a
working-directory: ../boost-root/libs/graph_parallel/test
ubuntu-bionic:
runs-on: ubuntu-18.04
strategy:
fail-fast: false
matrix:
compiler: [ g++-7, g++-8, clang++-7, clang++-8 ]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
commit-filter-separator: ';'
fail-fast: true
- name: Set TOOLSET
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- name: Add repository
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- name: Install packages
run: sudo apt install g++-7 g++-8 clang-7 clang-8 mpich
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
run: git submodule update --init tools/boostdep
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/graph_parallel
working-directory: ../boost-root
- name: Install deps
run: python tools/boostdep/depinst/depinst.py graph_parallel
working-directory: ../boost-root
- name: Bootstrap
run: ./bootstrap.sh
working-directory: ../boost-root
- name: Generate headers
run: ./b2 headers
working-directory: ../boost-root
- name: Generate user config
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam && echo "using mpi ;" >> ~/user-config.jam'
working-directory: ../boost-root
- name: Config info install
run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17
working-directory: ../boost-root/libs/config/test
- name: Test
run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17
run: ../../../b2 toolset=$TOOLSET cxxstd=14,17,20
working-directory: ../boost-root/libs/graph_parallel/test
macos:
runs-on: macos-latest
Expand All @@ -108,7 +60,7 @@ jobs:
matrix:
toolset: [ clang ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
Expand Down Expand Up @@ -138,8 +90,8 @@ jobs:
- name: Generate user-config
run: echo "using mpi ;" > ~/user-config.jam
- name: Config info
run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=14,17,20
working-directory: ../boost-root/libs/config/test
- name: Test
run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a define=CI_SUPPRESS_KNOWN_ISSUES
run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=14,17,20 define=CI_SUPPRESS_KNOWN_ISSUES
working-directory: ../boost-root/libs/graph_parallel/test
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ target_link_libraries(boost_graph_parallel
Boost::random
Boost::serialization
Boost::smart_ptr
Boost::static_assert
Boost::tuple
Boost::type_traits
Boost::variant
Expand Down
46 changes: 46 additions & 0 deletions build.jam
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Copyright René Ferdinand Rivera Morell 2024
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)

require-b2 5.2 ;

constant boost_dependencies :
/boost/algorithm//boost_algorithm
/boost/assert//boost_assert
/boost/concept_check//boost_concept_check
/boost/config//boost_config
/boost/container_hash//boost_container_hash
/boost/core//boost_core
/boost/detail//boost_detail
/boost/dynamic_bitset//boost_dynamic_bitset
/boost/filesystem//boost_filesystem
/boost/foreach//boost_foreach
/boost/function//boost_function
/boost/graph//boost_graph
/boost/iterator//boost_iterator
/boost/lexical_cast//boost_lexical_cast
/boost/mpi//boost_mpi
/boost/mpl//boost_mpl
/boost/optional//boost_optional
/boost/property_map//boost_property_map
/boost/property_map_parallel//boost_property_map_parallel
/boost/random//boost_random
/boost/serialization//boost_serialization
/boost/smart_ptr//boost_smart_ptr
/boost/tuple//boost_tuple
/boost/type_traits//boost_type_traits
/boost/variant//boost_variant ;

project /boost/graph_parallel
;

explicit
[ alias boost_graph_parallel : build//boost_graph_parallel ]
[ alias all : boost_graph_parallel example test ]
;

call-if : boost-library graph_parallel
: install boost_graph_parallel
;

16 changes: 10 additions & 6 deletions build/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,21 @@

import mpi ;

project boost/graph_parallel
project
: common-requirements <include>../include <library>$(boost_dependencies)
: requirements <include>../src
: source-location ../src
: usage-requirements <define>BOOST_GRAPH_PARALLEL_NO_LIB=1
;

local optional_sources ;
local optional_reqs ;

if [ mpi.configured ]
{
{
lib boost_graph_parallel
: mpi_process_group.cpp tag_allocator.cpp
: <library>../../mpi/build//boost_mpi
: <library>/boost/mpi//boost_mpi
<library>/mpi//mpi [ mpi.extra-requirements ]
<define>BOOST_GRAPH_NO_LIB=1
<link>shared:<define>BOOST_GRAPH_DYN_LINK=1
Expand All @@ -33,11 +35,13 @@ if [ mpi.configured ]
}
else
{
message boost_graph_parallel
alias boost_graph_parallel ;
if ! ( --without-graph_parallel in [ modules.peek : ARGV ] )
{
message boost_graph_parallel
: "warning: Graph library does not contain MPI-based parallel components."
: "note: to enable them, add \"using mpi ;\" to your user-config.jam."
: "note: to suppress this message, pass \"--without-graph_parallel\" to bjam."
;
}
}

boost-install boost_graph_parallel ;
4 changes: 2 additions & 2 deletions doc/distributed_adjacency_list.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ vertices or edges of the graph.

using namespace boost;
typedef adjacency_list<vecS,
distributedS<parallel::mpi::bsp_process_group, vecS>,
distributedS<graph::distributed::mpi_process_group, vecS>,
directedS>
Graph;

Expand Down Expand Up @@ -120,7 +120,7 @@ respectively:
::

typedef adjacency_list<vecS,
distributedS<parallel::mpi::bsp_process_group, vecS>,
distributedS<graph::distributed::mpi_process_group, vecS>,
directedS,
City, Highway>
RoadMap;
Expand Down
4 changes: 2 additions & 2 deletions doc/html/distributed_adjacency_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ <h2><a class="toc-backref" href="#id2">Defining a Distributed Adjacency List</a>
<pre class="literal-block">
using namespace boost;
typedef adjacency_list&lt;vecS,
distributedS&lt;parallel::mpi::bsp_process_group, vecS&gt;,
distributedS&lt;graph::distributed::mpi_process_group, vecS&gt;,
directedS&gt;
Graph;
</pre>
Expand Down Expand Up @@ -135,7 +135,7 @@ <h2><a class="toc-backref" href="#id3">Distributed Vertex and Edge Properties</a
respectively:</p>
<pre class="literal-block">
typedef adjacency_list&lt;vecS,
distributedS&lt;parallel::mpi::bsp_process_group, vecS&gt;,
distributedS&lt;graph::distributed::mpi_process_group, vecS&gt;,
directedS,
City, Highway&gt;
RoadMap;
Expand Down
7 changes: 4 additions & 3 deletions doc/html/metis.html
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,9 @@ <h1><a class="toc-backref" href="#id7">Member Functions</a></h1>
metis_reader(std::istream&amp; in);
</pre>
<p>Constructs a new METIS reader that will retrieve edges from the input
stream <tt class="docutils literal"><span class="pre">in</span></tt>. If any errors are encountered while initially parsing
<tt class="docutils literal"><span class="pre">in</span></tt>, <tt class="docutils literal"><span class="pre">metis_input_exception</span></tt> will be thrown.</p>
stream <tt class="docutils literal"><span class="pre">in</span></tt>. The reader will read from the very beginning of the stream,
and to this end, <tt class="docutils literal"><span class="pre">in</span></tt> must support seeking. If any errors are encountered
while initially parsing <tt class="docutils literal"><span class="pre">in</span></tt>, <tt class="docutils literal"><span class="pre">metis_input_exception</span></tt> will be thrown.</p>
<hr class="docutils" />
<pre class="literal-block">
edge_iterator begin();
Expand Down Expand Up @@ -266,7 +267,7 @@ <h1><a class="toc-backref" href="#id10">Member Functions</a></h1>
</div>
<div class="footer">
<hr class="footer" />
Generated on: 2009-05-31 00:21 UTC.
Generated on: 2022-02-19 18:10 UTC.
Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.

</div>
Expand Down
5 changes: 3 additions & 2 deletions doc/metis.rst
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,9 @@ Member Functions
metis_reader(std::istream& in);

Constructs a new METIS reader that will retrieve edges from the input
stream ``in``. If any errors are encountered while initially parsing
``in``, ``metis_input_exception`` will be thrown.
stream ``in``. The reader will read from the very beginning of the stream,
and to this end, ``in`` must support seeking. If any errors are encountered
while initially parsing ``in``, ``metis_input_exception`` will be thrown.

-----------------------------------------------------------------------------

Expand Down
9 changes: 6 additions & 3 deletions example/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@
# http://www.boost.org/LICENSE_1_0.txt)


project : requirements <library>../build//boost_graph_parallel
<library>../../system/build//boost_system
<library>../../mpi/build//boost_mpi
using python ;

project : requirements <library>/boost/graph_parallel//boost_graph_parallel
<library>/boost/system//boost_system
<library>/boost/mpi//boost_mpi
<library>/python//python
;

exe breadth_first_search : breadth_first_search.cpp ;
Expand Down
3 changes: 2 additions & 1 deletion include/boost/graph/distributed/adjlist/serialization.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
# include <boost/lexical_cast.hpp>
# include <boost/foreach.hpp>
# include <boost/filesystem/path.hpp>
# include <boost/filesystem/directory.hpp>
# include <boost/filesystem/operations.hpp>
# include <cctype>
# include <fstream>
Expand Down Expand Up @@ -91,7 +92,7 @@ namespace detail { namespace parallel

for (filesystem::directory_iterator i(filename), end; i != end; ++i)
{
if (!filesystem::is_regular(*i))
if (!filesystem::is_regular_file(*i))
boost::throw_exception(std::runtime_error("directory contains non-regular entries"));

std::string process_name = i->path().filename().string();
Expand Down
2 changes: 1 addition & 1 deletion meta/libraries.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"Iterators"
],
"maintainers": [
"K. Noel Belcourt <kbelco -at- sandia.gov>"
"Jeremy W. Murphy <jeremy.william.murphy -at- gmail.com>"
],
"cxxstd": "03"
}
14 changes: 8 additions & 6 deletions test/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@
# (C) Copyright 2005, 2006 Trustees of Indiana University
# (C) Copyright 2005 Douglas Gregor
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)

using python ;

# use-project /boost/mpi : ../build ;
project /boost/graph_parallel/test
: requirements
<library>/boost/graph_parallel//boost_graph_parallel
<library>/boost/system//boost_system
<library>/python//python
;

project /boost/graph_parallel/test
: requirements <library>../build//boost_graph_parallel <library>../../system/build//boost_system ;

import mpi : mpi-test ;

if [ mpi.configured ]
Expand Down Expand Up @@ -46,4 +49,3 @@ test-suite graph_parallel
}

build-project ../example ;

Loading