23 int main(
int narg,
char *arg[])
32 world = MPI_COMM_WORLD;
33 MPI_Comm_size(world,&np);
44 row[
i].l = row[
i].l2 = rand();
46 row[
i].d = rand()/(double)rand();
52 printf(
"%02d send -> %02d: %08x %08x %d %g\n",
53 (
int)comm.
id,(
int)row[i].p,(
int)row[i].i,
54 (
int)row[i].l,(
int)row[i].p,row[i].d);
62 printf(
"%02d recv <- %02d: %08x %08x %d %g\n",
63 (
int)comm.
id,(
int)row[i].p,(
int)row[i].i,
64 (
int)row[i].l,(
int)row[i].p,row[i].d);
69 fail(1,__FILE__,__LINE__,
"final array has different length than original");
72 if( row[i].d != row_0[i].d
73 || row[i].l != row_0[i].l
74 || row[i].l2!= row_0[i].l2
75 || row[i].i != row_0[i].i
76 || row[i].
p != row_0[i].
p)
77 fail(1,__FILE__,__LINE__,
"final array differs from original");
84 if(comm.
id==0) printf(
"tests passed\n"), fflush(stdout);
static void comm_barrier(const struct comm *c)
#define sarray_sort_3(T, A, n, field1, is_long1, field2, is_long2, field3, is_long3, buf)
static void comm_free(struct comm *c)
int main(int narg, char *arg[])
#define array_init(T, a, max)
#define array_cat(T, d, s, n)
#define sarray_transfer(T, A, proc_field, set_src, cr)
establishes some macros to establish naming conventions
static void comm_init(struct comm *c, comm_ext ce)
void fail(int status, const char *file, unsigned line, const char *fmt,...)