#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_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 | 713 | 399ea10dab40d3201aa0e9f6eb62c51b099d970f | Make.ejr-citris |
100644 | blob | 486 | dcf1d527e538d4ca5ebe2951800b3a3b70474872 | Make.ejr-home-gcc |
100644 | blob | 175 | 3592281b201df903859285e50c914c2f8b618b4b | Make.seaborg |
100644 | blob | 3307 | f715c36bf2ae4a4f455cc7177350dba21c21c1ca | Makefile |
100644 | blob | 42677 | f3dd0961175560130247e5c2288f6f5164790456 | 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 | 5244 | cb06aa63b1f49d49da789a8feeaf3a19a3155b36 | 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 | 19048 | d3d22a8af49f546fd09aaded2d7256d312d3b838 | parauction.c |
100644 | blob | 18896 | 7134aa840f527455d5bf617ee9e54c91ae2161d7 | parauction_allgather.c |
100644 | blob | 14315 | 4f475a8317c54d70c33d7d3744b7c47943d26883 | parauction_allreduce.c |
100644 | blob | 18564 | 37c1e950e97bd0fb9aafec2db7fdeeaf9339a09b | 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 | 6598 | f5eed2c9d95ff09dde048b97e8d11e14253c8bf1 | seqauction.c |
100644 | blob | 15392 | 9fac5aac4170c6cd7d9c2327911a531ea7950dad | smut.c |
100644 | blob | 2338 | 06f2519a40af810ecfaa5e250459109aed6ee642 | smut.h |
100644 | blob | 13779 | 5ac297a1fcfeeadc5d107470f1fcf6215c9521bc | 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 | 940 | 9643894cce30bc371dc4549a1fc1af4fa3dde2ac | writebin.m |