#include <stdlib.h> #include <stdio.h> #include <assert.h> #include <mpi.h> #include "smut.h" #include "stripesmut.h" int main (int argc, char **argv) { FILE *f; int err; struct spcsr_t A, Acopy; struct gcsr_t gA; int rank, csize; int p; assert(sizeof(int) == 4); spcsr_init_clear(&A); gcsr_init_clear(&gA); MPI_Init (&argc, &argv); MPI_Comm_size (MPI_COMM_WORLD, &csize); MPI_Comm_rank (MPI_COMM_WORLD, &rank); if (0 == rank) { printf ("MPI world size: %d\n", csize); if (argc <= 2) { printf("No files\n"); return -1; } f = fopen(argv[1], "rb"); if (!f) { perror("Error opening file: "); return -1; } err = spcsr_load_binfile (f, &A); if (err) { printf ("Error reading: %d\n", err); return -1; } fclose(f); spcsr_copy (&A, &Acopy); } gcsr_take_csr_root (&A, &gA, MPI_COMM_WORLD); { for (p = 0; p < csize; ++p) { MPI_Barrier(MPI_COMM_WORLD); if (p == rank) { printf("**** %d: gA(%d, %d), lA(%d, %d; %d) rows [%d, %d)\n", rank, gA.nr, gA.nc, gA.local.nr, gA.local.nc, gA.local.nent, gA.rowmap.lindstart, gA.rowmap.lindstart + gA.rowmap.lnind); printf("**** %d: local rowoff[1] = %d\n", rank, (gA.local.rowoff? gA.local.rowoff[1] : -1)); } MPI_Barrier(MPI_COMM_WORLD); } } /* fprintf(stderr, "%d: ugh1\n", rank); */ gcsr_redist_ents (&gA, 0, MPI_COMM_WORLD); /* fprintf(stderr, "%d: ugh2\n", rank); */ { for (p = 0; p < csize; ++p) { MPI_Barrier(MPI_COMM_WORLD); if (p == rank) { printf("---- %d: gA(%d, %d), lA(%d, %d; %d) rows [%d, %d)\n", rank, gA.nr, gA.nc, gA.local.nr, gA.local.nc, gA.local.nent, gA.rowmap.lindstart, gA.rowmap.lindstart + gA.rowmap.lnind); printf("---- %d: local rowoff[1] = %d\n", rank, (gA.local.rowoff? gA.local.rowoff[1] : -1)); } MPI_Barrier(MPI_COMM_WORLD); } } gcsr_pack_colinds (&gA); { for (p = 0; p < csize; ++p) { MPI_Barrier(MPI_COMM_WORLD); if (p == rank) { printf("++++ %d: gA(%d, %d), lA(%d, %d; %d) rows [%d, %d)\n", rank, gA.nr, gA.nc, gA.local.nr, gA.local.nc, gA.local.nent, gA.rowmap.lindstart, gA.rowmap.lindstart + gA.rowmap.lnind); printf("++++ %d: local rowoff[1] = %d\n", rank, (gA.local.rowoff? gA.local.rowoff[1] : -1)); } MPI_Barrier(MPI_COMM_WORLD); } } gcsr_give_csr_root (&gA, &A, MPI_COMM_WORLD); if (0 == rank) { int i, k; f = fopen(argv[2], "wb"); if (!f) { perror("Error opening file: "); return -1; } err = spcsr_write_binfile (&A, f); fclose(f); assert(A.nr == Acopy.nr); assert(A.nc == Acopy.nc); assert(A.nent == Acopy.nent); for (i = 0; i < A.nr; ++i) { if (A.rowoff[i] != Acopy.rowoff[i]) { fprintf(stderr, "A and copy differ, rowoff[%d] = %d or %d\n", i, A.rowoff[i], Acopy.rowoff[i]); } for (k = A.rowoff[i]; k != A.rowoff[i+1]; ++k) { if (A.colind[k] != Acopy.colind[k]) fprintf(stderr, "A and copy differ, colind[%d] = %d or %d\n", k, A.colind[k], Acopy.colind[k]); if (A.entry[k] != Acopy.entry[k]) fprintf(stderr, "A and copy differ, entry[%d] = %g or %g\n", k, A.entry[k], Acopy.entry[k]); } } } spcsr_free (&A); gcsr_free (&gA, MPI_COMM_WORLD); MPI_Finalize(); return 0; }
Mode | Type | Size | Ref | File |
---|---|---|---|---|
100644 | blob | 442 | 86dd3c214f1a734e4a55303fc785d6eb63ed23d9 | .gitignore |
100644 | blob | 733 | f571749ef02b737310e27e981218650fbcce8be6 | Make.ejr-citris |
100644 | blob | 478 | 5fb839dab7306b59d49e9a8626e1ca89dcea26db | Make.ejr-home-gcc |
100644 | blob | 205 | a9b00f1db5934084c2751081636cf80d078b858b | Make.seaborg |
100644 | blob | 3307 | f715c36bf2ae4a4f455cc7177350dba21c21c1ca | Makefile |
100644 | blob | 43442 | c184552cceaac75622af1b01c27fd73172448ff6 | auction.c |
100644 | blob | 3016 | a574b362b4d966599d6720ca0439d385a92084e1 | auction.h |
100644 | blob | 302 | 6995992eb49553aadebe4dddd1a3a74eacf4f332 | cacheblast.c |
100644 | blob | 3386 | 2b76fb3e0a5bb941d13e1ff6f4b2cf152af929e3 | colcomp.c |
100644 | blob | 582 | 3afbfafab8b4b83786e48a66cf20df7eb1feaf8c | convmats.m |
100644 | blob | 2189 | fba47c6f3908699da08dfac9469d296af62dc234 | lsame.c |
100644 | blob | 6357 | de79a078bc59834980be9a99d01eb72f3f39cab0 | matchmtx.c |
040000 | tree | - | 3fcccf0fc51adf74ea4fc6c501e65306ada6fdd1 | mc64 |
040000 | tree | - | c1a5dab1b4b8999153b6d04dae4624af7038dcec | mlb |
100644 | blob | 6344 | 74992c1d4736ff84fdcdcf2b1be7f4eaf7de3b63 | mpitransposebin.c |
100644 | blob | 6351 | f4beee0452662b6f5bc6d79b839faec02ce6802e | mpitransposebin_root.c |
100644 | blob | 1092028 | 89dad69d7b2de3e183bfc343e98e1943a9d34e16 | orani678.bin |
100644 | blob | 19852 | 8ab7953ae5f8d31b10c483ceae57098f7531abb5 | parauction.c |
100644 | blob | 19456 | 3da978418d76db4c6cc57635646b473e8c5b9445 | parauction_allgather.c |
100644 | blob | 14875 | 102e4d81d979f10c3b3ac8cdac1b257527b324ff | parauction_allreduce.c |
100644 | blob | 19123 | 581100799f474a87d2a1745e09fe07ea7475a84b | parauction_root.c |
100644 | blob | 1154 | 2fc93276b1723c805e82d0e9eb4781184bfcca2e | readbin.c |
100644 | blob | 864 | 5f791479f6982f22101a5094efb0fa0947b54310 | readbin.m |
100644 | blob | 696 | 6151ee6074636c5bdd0d5f34ee4d9b0c76e0501d | readmatch.m |
100644 | blob | 1182 | 8b0bfcc7b6bac0c7f701ae317cbeeff5feec512a | redist1.c |
100644 | blob | 1412 | 4dae58f785498844725f72c26f70621b9287ad1e | redist2.c |
100644 | blob | 3002 | f41bc38e57d9c613a6426045d0ea7ac22bd339de | redist3.c |
100644 | blob | 2903 | 857ee46542a70759476e2a7437e900c32f12001c | redist4.c |
100644 | blob | 6659 | ea56d6005d1762a46ff330eebe26e575d9f7a2d9 | seqauction.c |
100644 | blob | 15392 | 9fac5aac4170c6cd7d9c2327911a531ea7950dad | smut.c |
100644 | blob | 2338 | 06f2519a40af810ecfaa5e250459109aed6ee642 | smut.h |
100644 | blob | 13867 | 4344501525923bf457618dcdba1993607caba923 | stripe_auction.c |
100644 | blob | 1771 | f709206b1e373cf8c7a3c3d3fb702b4bae72d435 | stripe_auction.h |
100644 | blob | 39548 | 5389671d60b8e2ddd1f9360551377d35c8ccdbd2 | stripesmut.c |
100644 | blob | 1402 | 075d97c492be1e6546e24d4a330566981616ac0e | stripesmut.h |
100644 | blob | 627 | 9909b624922275b657ab5d66774f4c40c8beb760 | timer.c |
100644 | blob | 405 | 46eb6c267780afd6b1ee7816a42332cdf79d2683 | timer.h |
100644 | blob | 942 | d254d606053141bc0a6ffdf714a436980900c028 | transposebin.c |
100644 | blob | 697 | 3728ae018c10cf4308bce2388b75bafe4be41942 | writebin.c |
100644 | blob | 1159 | 87b57c3343da1b9296045ce1d2b2441b490f81d7 | writebin.m |