From a63d9772e87d37847b7d634abe798c93934f56bb Mon Sep 17 00:00:00 2001 From: schnorr Date: Wed, 15 Sep 2010 15:58:29 +0000 Subject: [PATCH] simple example of smpi tracing with platform utilization (with three categories) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8193 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- examples/smpi/CMakeLists.txt | 2 ++ examples/smpi/ttest01.c | 43 ++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 examples/smpi/ttest01.c diff --git a/examples/smpi/CMakeLists.txt b/examples/smpi/CMakeLists.txt index cd2fa0dd7b..1cac7736d0 100644 --- a/examples/smpi/CMakeLists.txt +++ b/examples/smpi/CMakeLists.txt @@ -26,6 +26,7 @@ add_executable(split split.c) add_executable(mvmul mvmul.c) add_executable(smpi_sendrecv sendrecv.c) add_executable(smpi_traced smpi_traced.c) +add_executable(ttest01 ttest01.c) target_link_libraries(alltoall2 m simgrid smpi ) target_link_libraries(alltoall_basic m simgrid smpi ) @@ -45,6 +46,7 @@ target_link_libraries(split m simgrid smpi ) target_link_libraries(mvmul m simgrid smpi ) target_link_libraries(smpi_sendrecv m simgrid smpi ) target_link_libraries(smpi_traced m simgrid smpi ) +target_link_libraries(ttest01 m simgrid smpi ) add_custom_command(TARGET smpi_sendrecv POST_BUILD diff --git a/examples/smpi/ttest01.c b/examples/smpi/ttest01.c new file mode 100644 index 0000000000..848cfe8a6d --- /dev/null +++ b/examples/smpi/ttest01.c @@ -0,0 +1,43 @@ +/* Copyright (c) 2009, 2010. 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. */ + +#include "mpi.h" +#include +#include "instr/instr.h" + +#define DATATOSENT 100000000 + +int main(int argc, char *argv[]) +{ + MPI_Status status; + int rank, numprocs, tag = 0; + int *r = malloc(sizeof(int) * DATATOSENT); + + MPI_Init(&argc,&argv); + MPI_Comm_size(MPI_COMM_WORLD, &numprocs); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + TRACE_smpi_set_category ("A"); + if (rank == 0){ + MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD); + }else if (rank == 1){ + MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &status); + }else{ + //do nothing + } + TRACE_smpi_set_category ("B"); + if (rank == 0){ + MPI_Recv(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &status); + }else if (rank == 1){ + MPI_Send(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD); + }else{ + //do nothing + } + TRACE_smpi_set_category ("C"); + MPI_Barrier (MPI_COMM_WORLD); + MPI_Finalize(); + return 0; +} -- 2.20.1