teshsuite/smpi/coll-allgather/coll-allgather
teshsuite/smpi/coll-allgatherv/coll-allgatherv
teshsuite/smpi/coll-allreduce/coll-allreduce
-teshsuite/smpi/alltoall2
-teshsuite/smpi/alltoall/alltoall2
-teshsuite/smpi/alltoall/alltoall_basic
-teshsuite/smpi/alltoall/alltoall_coll
-teshsuite/smpi/alltoall_basic
-teshsuite/smpi/alltoall_coll
+teshsuite/smpi/coll-alltoall/coll-alltoall
teshsuite/smpi/coll-alltoallv/coll-alltoallv
teshsuite/smpi/coll-bcast/coll-bcast
teshsuite/smpi/coll-barrier/coll-barrier
endif()
include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
- foreach(x coll-allgather coll-allgatherv coll-allreduce coll-alltoallv coll-barrier coll-bcast coll-gather coll-scatter
- pt2pt-dsend pt2pt-pingpong type-hvector type-indexed type-struct type-vector)
+ foreach(x coll-allgather coll-allgatherv coll-allreduce coll-alltoall coll-alltoallv coll-barrier coll-bcast
+ coll-gather coll-scatter pt2pt-dsend pt2pt-pingpong type-hvector type-indexed type-struct type-vector)
add_executable (${x} ${x}/${x}.c)
target_link_libraries(${x} simgrid)
set_target_properties(${x} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${x})
ADD_TESH(tesh-smpi-coll-allreduce-${ALLREDUCE_COLL} --cfg smpi/allreduce:${ALLREDUCE_COLL} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/coll-allreduce --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/coll-allreduce coll-allreduce.tesh)
endforeach()
+ foreach (ALLTOALL_COLL 2dmesh 3dmesh pair pair_rma pair_one_barrier pair_light_barrier pair_mpi_barrier rdb ring
+ ring_light_barrier ring_mpi_barrier ring_one_barrier bruck basic_linear ompi mpich mvapich2
+ mvapich2_scatter_dest impi)
+ ADD_TESH(tesh-smpi-coll-alltoall-${ALLTOALL_COLL} --cfg smpi/alltoall:${ALLTOALL_COLL} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/coll-alltoall --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/coll-alltoall coll-alltoall.tesh)
+ endforeach()
+
foreach (ALLTOALLV_COLL pair pair_light_barrier pair_mpi_barrier pair_one_barrier ring ring_light_barrier
ring_mpi_barrier ring_one_barrier bruck ompi mpich mvapich2 ompi_basic_linear impi)
ADD_TESH(tesh-smpi-coll-alltoallv-${ALLTOALLV_COLL} --cfg smpi/alltoallv:${ALLTOALLV_COLL} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/coll-alltoallv --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/coll-alltoallv coll-alltoallv.tesh)
ADD_TESH(tesh-smpi-coll-allreduce-large --cfg smpi/allreduce:ompi_ring_segmented --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/coll-allreduce --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/coll-allreduce coll-allreduce-large.tesh)
ADD_TESH(tesh-smpi-coll-allreduce-automatic --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/coll-allreduce --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/coll-allreduce coll-allreduce-automatic.tesh)
+# Extra allreduce test: cluster-types
+ADD_TESH(tesh-smpi-cluster-types --cfg smpi/alltoall:mvapich2 --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/coll-alltoall --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/coll-alltoall clusters.tesh)
+
# Extra pt2pt pingpong test: broken usage ti-tracing
ADD_TESH_FACTORIES(tesh-smpi-broken "thread" --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/pt2pt-pingpong --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/pt2pt-pingpong broken_hostfiles.tesh)
ADD_TESH(tesh-smpi-replay-ti-tracing --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/pt2pt-pingpong --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/pt2pt-pingpong TI_output.tesh)
set(teshsuite_src ${teshsuite_src} PARENT_SCOPE)
set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/coll-allreduce/coll-allreduce-large.tesh
${CMAKE_CURRENT_SOURCE_DIR}/coll-allreduce/coll-allreduce-automatic.tesh
+ ${CMAKE_CURRENT_SOURCE_DIR}/coll-alltoall/clusters.tesh
${CMAKE_CURRENT_SOURCE_DIR}/pt2pt-pingpong/broken_hostfiles.tesh
${CMAKE_CURRENT_SOURCE_DIR}/pt2pt-pingpong/TI_output.tesh PARENT_SCOPE)
set(bin_files ${bin_files} ${CMAKE_CURRENT_SOURCE_DIR}/hostfile
+ ${CMAKE_CURRENT_SOURCE_DIR}/hostfile_cluster
${CMAKE_CURRENT_SOURCE_DIR}/hostfile_coll
${CMAKE_CURRENT_SOURCE_DIR}/hostfile_empty PARENT_SCOPE)
+++ /dev/null
-if(enable_smpi)
- if(WIN32)
- set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
- else()
- set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
- endif()
- include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
-
- add_executable (alltoall2 alltoall2.c)
- target_link_libraries(alltoall2 simgrid)
- add_executable (alltoall_basic alltoall_basic.c)
- target_link_libraries(alltoall_basic simgrid)
- add_executable (alltoall_coll alltoall_coll.c)
- target_link_libraries(alltoall_coll simgrid)
-endif()
-
-
-set(tesh_files
- ${tesh_files}
- ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_coll.tesh
- ${CMAKE_CURRENT_SOURCE_DIR}/clusters.tesh
- PARENT_SCOPE)
-set(examples_src
- ${examples_src}
- ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_coll.c
- ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_basic.c
- ${CMAKE_CURRENT_SOURCE_DIR}/alltoall2.c
- PARENT_SCOPE)
-set(bin_files
- ${bin_files}
- ${CMAKE_CURRENT_SOURCE_DIR}/hostfile_cluster
- PARENT_SCOPE)
+++ /dev/null
-/* Copyright (c) 2012, 2014. 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. */
-
-/****************************************************************************
-
- MESSAGE PASSING INTERFACE TEST CASE SUITE
-
- Copyright IBM Corp. 1995
-
- IBM Corp. hereby grants a non-exclusive license to use, copy, modify, and
- distribute this software for any purpose and without fee provided that the
- above copyright notice and the following paragraphs appear in all copies.
-
- IBM Corp. makes no representation that the test cases comprising this
- suite are correct or are an accurate representation of any standard.
-
- In no event shall IBM be liable to any party for direct, indirect, special
- incidental, or consequential damage arising out of the use of this software
- even if IBM Corp. has been advised of the possibility of such damage.
-
- IBM CORP. SPECIFICALLY DISCLAIMS ANY WARRANTIES INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS AND IBM
- CORP. HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
- ENHANCEMENTS, OR MODIFICATIONS.
-
-****************************************************************************
-
- These test cases reflect an interpretation of the MPI Standard. They are
- are, in most cases, unit tests of specific MPI behaviors. If a user of any
- test case from this set believes that the MPI Standard requires behavior
- different than that implied by the test case we would appreciate feedback.
-
- Comments may be sent to:
- Richard Treumann
- treumann@kgn.ibm.com
-
-****************************************************************************
-*/
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include "mpi.h"
-
-#define MAXLEN 10000
-
-int main(int argc, char *argv[])
-{
-#define N 1000000
- int *out, *in, i, j, k;
- int myself, tasks;
-
- out = malloc(N * sizeof(int));
- in = malloc(N * sizeof(int));
- if ((out == NULL) || (in == NULL)) {
- printf("Error: cannot allocate N bytes for in or out arrays\n");
- exit(1);
- }
- MPI_Init(&argc, &argv);
- MPI_Comm_rank(MPI_COMM_WORLD, &myself);
- MPI_Comm_size(MPI_COMM_WORLD, &tasks);
- for (j = 1; j <= MAXLEN; j *= 10) {
- if (0 == myself) {
- printf("* calling MPI_Alltoall with buffers of %d ints\n", j);
- }
- for (i = 0; i < j * tasks; i++)
- out[i] = myself;
-
- MPI_Alltoall(out, j, MPI_INT, in, j, MPI_INT, MPI_COMM_WORLD);
-
- for (i = 0; i < tasks; i++) {
- for (k = 0; k < j; k++) {
- if (in[k + i * j] != i) {
- printf("<%d> bad answer (%d) at index %d of %d (should be %d)\n",
- myself, in[k + i * j], k + i * j, j * tasks, i);
- break;
- }
- }
- }
- }
- MPI_Barrier(MPI_COMM_WORLD);
- if (myself == 0)
- printf("TEST COMPLETE\n");
- MPI_Finalize();
- return EXIT_SUCCESS;
-}
+++ /dev/null
-/* Copyright (c) 2009-2010, 2012-2014. 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 <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include "mpi.h"
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-#endif
-
-int main(int argc, char *argv[])
-{
- int rank, size;
- int i;
- int *sb;
- int *rb;
- int status;
-
- MPI_Init(&argc, &argv);
- MPI_Comm_rank(MPI_COMM_WORLD, &rank);
- MPI_Comm_size(MPI_COMM_WORLD, &size);
-
- sb = (int *) malloc(size * sizeof(int));
- if (!sb) {
- perror("can't allocate send buffer");
- fflush(stderr);
- MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE);
- exit(EXIT_FAILURE);
- }
- rb = (int *) malloc(size * sizeof(int));
- if (!rb) {
- perror("can't allocate recv buffer");
- fflush(stderr);
- free(sb);
- MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE);
- exit(EXIT_FAILURE);
- }
- for (i = 0; i < size; ++i) {
- sb[i] = rank + 1;
- rb[i] = 0;
- }
-
- status = MPI_Alltoall(sb, 1, MPI_INT, rb, 1, MPI_INT, MPI_COMM_WORLD);
-
- printf("[%d] rcvbuf=[", rank);
- for (i = 0; i < size; i++)
- printf("%d ", rb[i]);
- printf("]\n");
-
-
- if (rank == 0) {
- if (status != MPI_SUCCESS) {
- printf("all_to_all returned %d\n", status);
- fflush(stdout);
- }
- }
- free(sb);
- free(rb);
- MPI_Finalize();
- return (EXIT_SUCCESS);
-}
! output sort
p Test classic - backbone
-$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ./hostfile_cluster -platform ../../../examples/platforms/cluster.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/../alltoall/alltoall_coll -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
+$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
> [rank 0] -> node-0.acme.org
> [rank 1] -> node-1.acme.org
> [rank 2] -> node-2.acme.org
! output sort
p Test separate clusters
-$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ./hostfile_cluster -platform ../../../examples/platforms/clusters_routing_full.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/../alltoall/alltoall_coll -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
+$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/clusters_routing_full.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
> [rank 0] -> node-0.acme.org
> [rank 1] -> node-1.acme.org
> [rank 2] -> node-2.acme.org
! output sort
p Test torus
-$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ./hostfile_cluster -platform ../../../examples/platforms/torus_cluster.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/../alltoall/alltoall_coll -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
+$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/torus_cluster.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
> [rank 0] -> node-0.acme.org
> [rank 1] -> node-1.acme.org
> [rank 2] -> node-2.acme.org
! output sort
p Test fat tree
-$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ./hostfile_cluster -platform ../../../examples/platforms/fat_tree_cluster.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/../alltoall/alltoall_coll -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
+$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/fat_tree_cluster.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
> [rank 0] -> node-0.acme.org
> [rank 1] -> node-1.acme.org
> [rank 2] -> node-2.acme.org
! output sort
p Test fat tree IB
-$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ./hostfile_cluster -platform ../../../examples/platforms/fat_tree_cluster.xml -np 12 --cfg=network/model:IB --log=xbt_cfg.thres:critical ${bindir:=.}/../alltoall/alltoall_coll -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
+$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/fat_tree_cluster.xml -np 12 --cfg=network/model:IB --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
> [rank 0] -> node-0.acme.org
> [rank 1] -> node-1.acme.org
> [rank 2] -> node-2.acme.org
! output sort
p Test all to all
-$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/alltoall_coll -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
+$ ${bindir:=.}/../../../bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error
> [rank 0] -> Tremblay
> [rank 1] -> Tremblay
> [rank 2] -> Tremblay
teshsuite/simix/stack_overflow/CMakeLists.txt
teshsuite/smpi/CMakeLists.txt
- teshsuite/smpi/alltoall/CMakeLists.txt
teshsuite/smpi/compute/CMakeLists.txt
teshsuite/smpi/reduce/CMakeLists.txt
teshsuite/smpi/shared/CMakeLists.txt
# smpi examples
ADD_TESH_FACTORIES(tesh-smpi-reduce "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/reduce --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/reduce reduce.tesh)
ADD_TESH_FACTORIES(tesh-smpi-compute "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/compute --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/compute compute.tesh)
- FOREACH (ALLTOALL_COLL 2dmesh 3dmesh pair pair_rma pair_one_barrier pair_light_barrier
- pair_mpi_barrier rdb ring ring_light_barrier
- ring_mpi_barrier ring_one_barrier
- bruck basic_linear ompi mpich mvapich2 mvapich2_scatter_dest, impi)
- ADD_TESH(tesh-smpi-alltoall-coll-${ALLTOALL_COLL} --cfg smpi/alltoall:${ALLTOALL_COLL} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/alltoall --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/alltoall alltoall_coll.tesh)
- ENDFOREACH()
FOREACH (REDUCE_COLL default arrival_pattern_aware binomial flat_tree NTSL scatter_gather ompi mpich ompi_chain ompi_binary ompi_basic_linear ompi_binomial ompi_in_order_binary mvapich2 mvapich2_knomial mvapich2_two_level impi rab)
ADD_TESH(tesh-smpi-reduce-coll-${REDUCE_COLL} --cfg smpi/reduce:${REDUCE_COLL} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/reduce --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/reduce reduce_coll.tesh)
ENDFOREACH()
FOREACH (REDUCE_SCATTER_COLL default ompi mpich ompi_basic_recursivehalving ompi_ring mpich_noncomm mpich_pair mvapich2 mpich_rdb impi)
ADD_TESH(tesh-smpi-reduce-scatter-coll-${REDUCE_SCATTER_COLL} --cfg smpi/reduce_scatter:${REDUCE_SCATTER_COLL} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/reduce --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/reduce reduce_scatter_coll.tesh)
ENDFOREACH()
- ADD_TESH(tesh-smpi-clusters-types --cfg smpi/alltoall:mvapich2 --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/alltoall --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/alltoall clusters.tesh)
# END TESH TESTS
IF(enable_smpi_MPICH3_testsuite)
IF(HAVE_THREAD_CONTEXTS)