Skip to content

Commit

Permalink
Update examples to build with latest changes to cugraph (#4632)
Browse files Browse the repository at this point in the history
We don't build the examples as part of CI.  Some changes were made to the cugraph functions that cause the examples to be out of date.

Also, we should release the RAFT handle before calling MPI_Finalize.

Authors:
  - Chuck Hastings (https://github.com/ChuckHastings)

Approvers:
  - Seunghwa Kang (https://github.com/seunghwak)

URL: #4632
  • Loading branch information
ChuckHastings authored Aug 30, 2024
1 parent ec43b21 commit 65e2348
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 10 deletions.
10 changes: 5 additions & 5 deletions cpp/examples/developers/graph_operations/graph_operations.cu
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ create_graph(raft::handle_t const& handle,
//

if (multi_gpu) {
std::tie(d_edge_srcs, d_edge_dsts, d_edge_wgts, std::ignore, std::ignore) =
std::tie(d_edge_srcs, d_edge_dsts, d_edge_wgts, std::ignore, std::ignore, std::ignore) =
cugraph::shuffle_external_edges<vertex_t, vertex_t, weight_t, int32_t>(handle,
std::move(d_edge_srcs),
std::move(d_edge_dsts),
Expand Down Expand Up @@ -215,10 +215,10 @@ void perform_example_graph_operations(
graph_view);

cugraph::update_edge_src_property(
handle, graph_view, vertex_weights.begin(), src_vertex_weights_cache);
handle, graph_view, vertex_weights.begin(), src_vertex_weights_cache.mutable_view());

cugraph::update_edge_dst_property(
handle, graph_view, vertex_weights.begin(), dst_vertex_weights_cache);
handle, graph_view, vertex_weights.begin(), dst_vertex_weights_cache.mutable_view());

rmm::device_uvector<result_t> weighted_averages(
size_of_the_vertex_partition_assigned_to_this_process, handle.get_stream());
Expand Down Expand Up @@ -259,10 +259,10 @@ void perform_example_graph_operations(
graph_view);

cugraph::update_edge_src_property(
handle, graph_view, vertex_weights.begin(), src_vertex_weights_cache);
handle, graph_view, vertex_weights.begin(), src_vertex_weights_cache.mutable_view());

cugraph::update_edge_dst_property(
handle, graph_view, vertex_weights.begin(), dst_vertex_weights_cache);
handle, graph_view, vertex_weights.begin(), dst_vertex_weights_cache.mutable_view());

rmm::device_uvector<result_t> weighted_averages(
size_of_the_vertex_partition_assigned_to_this_process, handle.get_stream());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ create_graph(raft::handle_t const& handle,
//

if (multi_gpu) {
std::tie(d_edge_srcs, d_edge_dsts, d_edge_wgts, std::ignore, std::ignore) =
std::tie(d_edge_srcs, d_edge_dsts, d_edge_wgts, std::ignore, std::ignore, std::ignore) =
cugraph::shuffle_external_edges<vertex_t, vertex_t, weight_t, int32_t>(handle,
std::move(d_edge_srcs),
std::move(d_edge_dsts),
Expand Down
15 changes: 12 additions & 3 deletions cpp/examples/users/multi_gpu_application/mg_graph_algorithms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ create_graph(raft::handle_t const& handle,
//

if (multi_gpu) {
std::tie(d_edge_srcs, d_edge_dsts, d_edge_wgts, std::ignore, std::ignore) =
std::tie(d_edge_srcs, d_edge_dsts, d_edge_wgts, std::ignore, std::ignore, std::ignore) =
cugraph::shuffle_external_edges<vertex_t, vertex_t, weight_t, int32_t>(handle,
std::move(d_edge_srcs),
std::move(d_edge_dsts),
Expand Down Expand Up @@ -248,9 +248,8 @@ void run_graph_algorithms(
std::cout);
}

int main(int argc, char** argv)
void run_tests()
{
initialize_mpi_and_set_device(argc, argv);
std::unique_ptr<raft::handle_t> handle = initialize_mg_handle();

//
Expand Down Expand Up @@ -279,6 +278,7 @@ int main(int argc, char** argv)
std::move(std::make_optional(edge_wgts)),
renumber,
is_symmetric);

// Non-owning view of the graph object
auto graph_view = graph.view();

Expand All @@ -292,5 +292,14 @@ int main(int argc, char** argv)
run_graph_algorithms<vertex_t, edge_t, weight_t, store_transposed, multi_gpu>(
*handle, graph_view, edge_weight_view);

handle.release();
}

int main(int argc, char** argv)
{
initialize_mpi_and_set_device(argc, argv);

run_tests();

RAFT_MPI_TRY(MPI_Finalize());
}
3 changes: 2 additions & 1 deletion cpp/include/cugraph/graph_functions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1178,7 +1178,8 @@ std::tuple<rmm::device_uvector<vertex_t>,
rmm::device_uvector<vertex_t>,
std::optional<rmm::device_uvector<weight_t>>,
std::optional<rmm::device_uvector<edge_t>>,
std::optional<rmm::device_uvector<edge_type_t>>>
std::optional<rmm::device_uvector<edge_type_t>>,
std::vector<size_t>>
shuffle_external_edges(raft::handle_t const& handle,
rmm::device_uvector<vertex_t>&& edge_srcs,
rmm::device_uvector<vertex_t>&& edge_dsts,
Expand Down

0 comments on commit 65e2348

Please sign in to comment.