1 // Copyright (C) 2006 The Trustees of Indiana University.
3 // Use, modification and distribution is subject to the Boost Software
4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
7 // Authors: Brian Barrett
11 #include <boost/graph/use_mpi.hpp>
12 #include <boost/config.hpp>
13 #include <boost/throw_exception.hpp>
14 #include <boost/graph/distributed/adjacency_list.hpp>
15 #include <boost/property_map/parallel/distributed_property_map.hpp>
16 #include <boost/graph/distributed/mpi_process_group.hpp>
17 #include <boost/graph/dimacs.hpp>
18 #include <boost/graph/graphviz.hpp>
19 #include <boost/test/minimal.hpp>
26 #ifdef BOOST_NO_EXCEPTIONS
28 boost::throw_exception(std::exception
const& ex
)
30 std::cout
<< ex
.what() << std::endl
;
35 using namespace boost
;
36 using namespace boost::graph
;
37 using boost::graph::distributed::mpi_process_group
;
39 typedef double time_type
;
41 inline time_type
get_time()
46 std::string
print_time(time_type t
)
48 std::ostringstream out
;
49 out
<< std::setiosflags(std::ios::fixed
) << std::setprecision(2) << t
;
54 test_dimacs_reader(const char *filename
)
58 typedef adjacency_list
<vecS
,
59 distributedS
<mpi_process_group
, vecS
>,
62 std::ifstream
file(filename
);
63 dimacs_basic_reader reader
= dimacs_basic_reader(file
, false);
64 dimacs_basic_reader end
;
65 boost::parallel::variant_distribution
<mpi_process_group
> distrib
=
66 boost::parallel::block(pg
, reader
.n_vertices());
68 Graph
g(dimacs_edge_iterator
<dimacs_basic_reader
>(reader
),
69 dimacs_edge_iterator
<dimacs_basic_reader
>(end
),
70 reader
.n_vertices(), pg
, distrib
);;
72 // write_graphviz("reader.dot", g);
76 test_main(int argc
, char* argv
[])
78 mpi::environment
env(argc
, argv
);
81 test_dimacs_reader(argv
[1]);