X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/040d8fa855d2b6ac9884f68108a09b935570be21..2ef958bf49890e4ac8fbe179f1d339b923fb67a8:/examples/smpi/smpi_s4u_masterworker/masterworker_mailbox_smpi.cpp diff --git a/examples/smpi/smpi_s4u_masterworker/masterworker_mailbox_smpi.cpp b/examples/smpi/smpi_s4u_masterworker/masterworker_mailbox_smpi.cpp index 2dab28fd09..d81d9fa2bd 100644 --- a/examples/smpi/smpi_s4u_masterworker/masterworker_mailbox_smpi.cpp +++ b/examples/smpi/smpi_s4u_masterworker/masterworker_mailbox_smpi.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2023. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -80,9 +80,9 @@ static void master_mpi(int argc, char* argv[]) XBT_INFO("After finalize %d %d", rank, test[0]); } -static void alltoall_mpi(int argc, char* argv[]) +static void alltoall_mpi() { - MPI_Init(&argc, &argv); + MPI_Init(); int rank; int size; @@ -114,9 +114,22 @@ int main(int argc, char* argv[]) e.register_function("worker", worker); // launch two MPI applications as well, one using master_mpi function as main on 2 nodes SMPI_app_instance_register("master_mpi", master_mpi, 2); - // the second performing an alltoall on 4 nodes - SMPI_app_instance_register("alltoall_mpi", alltoall_mpi, 4); e.load_deployment(argv[2]); + // the second performing an alltoall on 4 nodes, started directly, not from the deployment file + SMPI_app_instance_start("alltoall_mpi", alltoall_mpi, + {e.host_by_name_or_null("Ginette"), e.host_by_name_or_null("Bourassa"), + e.host_by_name_or_null("Jupiter"), e.host_by_name_or_null("Fafard")}); + + // Start a third MPI application, from a S4U actor after a delay of 10 sec + simgrid::s4u::Actor::create("launcher", e.host_by_name_or_null("Ginette"), [&e]() { + simgrid::s4u::this_actor::sleep_for(10); + XBT_INFO("Start another alltoall_mpi instance"); + SMPI_app_instance_start("alltoall_mpi", alltoall_mpi, + {e.host_by_name_or_null("Ginette"), e.host_by_name_or_null("Bourassa"), + e.host_by_name_or_null("Jupiter"), e.host_by_name_or_null("Fafard")}); + SMPI_app_instance_join("alltoall_mpi"); + XBT_INFO("This other alltoall_mpi instance terminated."); + }); e.run();