#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <mpi.h>
#include <yaxt.h>
int main(void) {
int rank, size;
{
enum { len = 5 };
int src_array[len];
int dst_array[len];
for (int i = 0; i < len; i++) {
src_array[i] = 100 + rank*10 + i;
dst_array[i] = -1;
printf("SOURCEvalue: %d, element_index: %d, rank: %d \n", src_array[i],
i, rank);
}
struct Xt_stripe src_stripes = {.start = (
Xt_int)(rank*len), .stride = 1, .nstrides = len};
struct Xt_stripe dst_stripes = {.start = (
Xt_int)(((rank+1)*len)%(size*len)),
.stride = 1, .nstrides = len};
int* src_array_p = &src_array[0];
int* dst_array_p = &dst_array[0];
for (int p = 0; p < len; p++)
printf("DESTvalue: %d, element_index: %d, rank: %d \n",
dst_array[p], p, rank);
}
MPI_Finalize();
return 0;
}
void xt_initialize(MPI_Comm default_comm)
struct Xt_xmap_ * Xt_xmap
struct Xt_idxlist_ * Xt_idxlist
struct Xt_redist_ * Xt_redist
void xt_idxlist_delete(Xt_idxlist idxlist)
Xt_idxlist xt_idxstripes_new(struct Xt_stripe const *stripes, int num_stripes)
#define xt_mpi_call(call, comm)
void xt_redist_delete(Xt_redist redist)
void xt_redist_s_exchange1(Xt_redist redist, const void *src_data, void *dst_data)
Xt_redist xt_redist_p2p_new(Xt_xmap xmap, MPI_Datatype datatype)
void xt_xmap_delete(Xt_xmap xmap)
Xt_xmap xt_xmap_all2all_new(Xt_idxlist src_idxlist, Xt_idxlist dst_idxlist, MPI_Comm comm)