+/* Copyright (c) 2013-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 "colls_private.h"
static int bcast_NTSL_segment_size_in_byte = 8192;
int smpi_coll_tuned_bcast_NTSL_Isend(void *buf, int count, MPI_Datatype datatype,
int root, MPI_Comm comm)
{
- int tag = 50;
+ int tag = COLL_TAG_BCAST;
MPI_Status status;
MPI_Request request;
MPI_Request *send_request_array;
MPI_Aint extent;
extent = smpi_datatype_get_extent(datatype);
- rank = smpi_comm_rank(MPI_COMM_WORLD);
- size = smpi_comm_size(MPI_COMM_WORLD);
+ rank = smpi_comm_rank(comm);
+ size = smpi_comm_size(comm);
/* source node and destination nodes (same through out the functions) */
int to = (rank + 1) % size;
/* segment is segment size in number of elements (not bytes) */
int segment = bcast_NTSL_segment_size_in_byte / extent;
-
+ segment = segment == 0 ? 1 :segment;
/* pipeline length */
int pipe_length = count / segment;