Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
47 changes: 47 additions & 0 deletions build.jam
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# 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/static_assert//boost_static_assert
/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