Revision: 140101 https://trac.macports.org/changeset/140101 Author: sean@macports.org Date: 2015-09-09 14:27:18 -0700 (Wed, 09 Sep 2015) Log Message: ----------- superlu_dist: update to 4.1 Modified Paths: -------------- trunk/dports/math/superlu_dist/Portfile Added Paths: ----------- trunk/dports/math/superlu_dist/files/patch-remove-duplicate-symbols.diff Removed Paths: ------------- trunk/dports/math/superlu_dist/files/duplicate.patch Modified: trunk/dports/math/superlu_dist/Portfile =================================================================== --- trunk/dports/math/superlu_dist/Portfile 2015-09-09 21:27:16 UTC (rev 140100) +++ trunk/dports/math/superlu_dist/Portfile 2015-09-09 21:27:18 UTC (rev 140101) @@ -5,7 +5,7 @@ PortGroup mpi 1.0 name superlu_dist -version 3.3 +version 4.1 categories math license BSD platforms darwin @@ -21,15 +21,15 @@ distname ${name}_${version} worksrcdir SuperLU_DIST_${version} -checksums rmd160 36441437d9a8e22c9f635336d7a71b8d9aea97b5 \ - sha256 d2fd8dc847ae63ed7980cff2ad4db8d117640ecdf0234c9711e0f6ee1398cac2 +checksums rmd160 0212b417c4187ece0a249f5e1545adea75074840 \ + sha256 8afb48036e9b3020d268d49d5a3711aaed2f65105747aa6a111ff8f64dcde93e compilers.choose cc cxx mpi.setup require depends_lib port:parmetis -patchfiles-append duplicate.patch +patchfiles-append patch-remove-duplicate-symbols.diff use_configure no Deleted: trunk/dports/math/superlu_dist/files/duplicate.patch =================================================================== --- trunk/dports/math/superlu_dist/files/duplicate.patch 2015-09-09 21:27:16 UTC (rev 140100) +++ trunk/dports/math/superlu_dist/files/duplicate.patch 2015-09-09 21:27:18 UTC (rev 140101) @@ -1,48 +0,0 @@ ---- SRC/dreadtriple.c 2012-11-08 17:36:07.000000000 -0600 -+++ SRC/dreadtriple.c 2012-11-08 17:36:36.000000000 -0600 -@@ -149,22 +149,3 @@ - - } - -- --void dreadrhs(int m, double *b) --{ -- FILE *fp, *fopen(); -- int i, j; -- -- if ( !(fp = fopen("b.dat", "r")) ) { -- fprintf(stderr, "dreadrhs: file does not exist\n"); -- exit(-1); -- } -- for (i = 0; i < m; ++i) -- fscanf(fp, "%lf\n", &b[i]); -- /*fscanf(fp, "%d%lf\n", &j, &b[i]);*/ -- /* readpair_(j, &b[i]);*/ -- -- fclose(fp); --} -- -- ---- SRC/zreadtriple.c 2012-11-08 17:36:07.000000000 -0600 -+++ SRC/zreadtriple.c 2012-11-08 17:36:46.000000000 -0600 -@@ -148,20 +148,3 @@ - - } - -- --void zreadrhs(int m, doublecomplex *b) --{ -- FILE *fp, *fopen(); -- int i, j; -- -- if ( !(fp = fopen("b.dat", "r")) ) { -- fprintf(stderr, "zreadrhs: file does not exist\n"); -- exit(-1); -- } -- for (i = 0; i < m; ++i) -- fscanf(fp, "%lf%lf\n", &(b[i].r), &(b[i].i)); -- -- fclose(fp); --} -- -- Added: trunk/dports/math/superlu_dist/files/patch-remove-duplicate-symbols.diff =================================================================== --- trunk/dports/math/superlu_dist/files/patch-remove-duplicate-symbols.diff (rev 0) +++ trunk/dports/math/superlu_dist/files/patch-remove-duplicate-symbols.diff 2015-09-09 21:27:18 UTC (rev 140101) @@ -0,0 +1,284 @@ +diff -ur SRC-bak/dreadMM.c SRC/dreadMM.c +--- SRC-bak/dreadMM.c 2015-09-04 11:32:08.000000000 -0700 ++++ SRC/dreadMM.c 2015-09-04 11:32:21.000000000 -0700 +@@ -212,22 +212,3 @@ + #endif + + } +- +- +-void dreadrhs(int m, double *b) +-{ +- FILE *fp, *fopen(); +- int i; +- +- if ( !(fp = fopen("b.dat", "r")) ) { +- fprintf(stderr, "dreadrhs: file does not exist\n"); +- exit(-1); +- } +- for (i = 0; i < m; ++i) +- fscanf(fp, "%lf\n", &b[i]); +- /*fscanf(fp, "%d%lf\n", &j, &b[i]);*/ +- /* readpair_(j, &b[i]);*/ +- fclose(fp); +-} +- +- +diff -ur SRC-bak/dscatter.c SRC/dscatter.c +--- SRC-bak/dscatter.c 2015-09-04 11:35:38.000000000 -0700 ++++ SRC/dscatter.c 2015-09-04 12:06:22.000000000 -0700 +@@ -302,57 +302,6 @@ + *iukp += UB_DESCRIPTOR; /* Start fstnz of block U(k,j). */ + } + +-typedef struct pair pair; +- +-int_t +-get_min (int_t * sums, int_t nprocs) +-{ +- int_t min_ind, min_val; +- min_ind = 0; +- min_val = 2147483647; +- for (int i = 0; i < nprocs; i++) +- { +- if (sums[i] < min_val) +- { +- min_val = sums[i]; +- min_ind = i; +- } +- } +- +- return min_ind; +-} +- +-int +-compare_pair (const void *a, const void *b) +-{ +- return (((pair *) a)->val - ((pair *) b)->val); +-} +- +-int_t +-static_partition (pair * work_load, int_t nwl, int_t * partition, int_t ldp, +- int_t * sums, int_t * counts, int nprocs) +-{ +- //initialization loop +- for (int i = 0; i < nprocs; ++i) +- { +- counts[i] = 0; +- sums[i] = 0; +- } +- qsort (work_load, nwl, sizeof (pair), compare_pair); +- // for(int i=0;i<nwl;i++) +- for (int i = nwl - 1; i >= 0; i--) +- { +- int_t ind = get_min (sums, nprocs); +- // printf("ind %d\n",ind ); +- partition[ldp * ind + counts[ind]] = work_load[i].ind; +- counts[ind]++; +- sums[ind] += work_load[i].val; +- +- } +- +- return 0; +-} +- + /*Divide CPU-GPU dgemm work here*/ + #ifdef PI_DEBUG + int Ngem = 2; +diff -ur SRC-bak/pdgstrf.c SRC/pdgstrf.c +--- SRC-bak/pdgstrf.c 2015-09-04 11:33:00.000000000 -0700 ++++ SRC/pdgstrf.c 2015-09-04 12:06:20.000000000 -0700 +@@ -158,71 +158,59 @@ + } + #endif + ++/************************************************************************/ + +-int get_thread_per_process() +-{ +- char* ttemp; +- ttemp = getenv("THREAD_PER_PROCESS"); +- +- if(ttemp) return atoi(ttemp); +- else return 1; +-} +- +-int +-get_mic_offload () ++int_t ++get_min (int_t * sums, int_t nprocs) + { +- char *ttemp; +- ttemp = getenv ("SUPERLU_MIC_OFFLOAD"); ++ int_t min_ind, min_val; ++ min_ind = 0; ++ min_val = 2147483647; ++ for (int i = 0; i < nprocs; i++) ++ { ++ if (sums[i] < min_val) ++ { ++ min_val = sums[i]; ++ min_ind = i; ++ } ++ } + +- if (ttemp) +- return atoi (ttemp); +- else +- return 0; ++ return min_ind; + } + +-int_t +-get_max_buffer_size () +-{ +- char *ttemp; +- ttemp = getenv ("MAX_BUFFER_SIZE"); +- if (ttemp) +- return atoi (ttemp); +- else +- return 5000000; +-} ++typedef struct pair pair; + +-int_t +-get_cublas_nb () ++int ++compare_pair (const void *a, const void *b) + { +- char *ttemp; +- ttemp = getenv ("CUBLAS_NB"); +- if (ttemp) +- return atoi (ttemp); +- else +- return 64; ++ return (((pair *) a)->val - ((pair *) b)->val); + } + + int_t +-get_num_cuda_streams () ++static_partition (pair * work_load, int_t nwl, int_t * partition, int_t ldp, ++ int_t * sums, int_t * counts, int nprocs) + { +- char *ttemp; +- ttemp = getenv ("NUM_CUDA_STREAMS"); +- if (ttemp) +- return atoi (ttemp); +- else +- return 8; +-} ++ //initialization loop ++ for (int i = 0; i < nprocs; ++i) ++ { ++ counts[i] = 0; ++ sums[i] = 0; ++ } ++ qsort (work_load, nwl, sizeof (pair), compare_pair); ++ // for(int i=0;i<nwl;i++) ++ for (int i = nwl - 1; i >= 0; i--) ++ { ++ int_t ind = get_min (sums, nprocs); ++ // printf("ind %d\n",ind ); ++ partition[ldp * ind + counts[ind]] = work_load[i].ind; ++ counts[ind]++; ++ sums[ind] += work_load[i].val; + +-/*int omp_get_num_threads (void); +- int omp_get_thread_num (void);*/ ++ } + +-int AssignMic(int my_rank) +-{ +- return (my_rank+1)%2; ++ return 0; + } + +-/************************************************************************/ +- + #include "dscatter.c" + + /************************************************************************/ +diff -ur SRC-bak/zreadMM.c SRC/zreadMM.c +--- SRC-bak/zreadMM.c 2015-09-04 11:29:44.000000000 -0700 ++++ SRC/zreadMM.c 2015-09-04 11:29:48.000000000 -0700 +@@ -212,19 +212,3 @@ + + } + +- +-void zreadrhs(int m, doublecomplex *b) +-{ +- FILE *fp, *fopen(); +- int i; +- +- if ( !(fp = fopen("b.dat", "r")) ) { +- fprintf(stderr, "zreadrhs: file does not exist\n"); +- exit(-1); +- } +- for (i = 0; i < m; ++i) +- fscanf(fp, "%lf%lf\n", &b[i].r, &b[i].i); +- fclose(fp); +-} +- +- +diff -ur SRC-bak/zscatter.c SRC/zscatter.c +--- SRC-bak/zscatter.c 2015-09-04 11:52:48.000000000 -0700 ++++ SRC/zscatter.c 2015-09-04 12:06:29.000000000 -0700 +@@ -302,57 +302,6 @@ + *iukp += UB_DESCRIPTOR; /* Start fstnz of block U(k,j). */ + } + +-typedef struct pair pair; +- +-int_t +-get_min (int_t * sums, int_t nprocs) +-{ +- int_t min_ind, min_val; +- min_ind = 0; +- min_val = 2147483647; +- for (int i = 0; i < nprocs; i++) +- { +- if (sums[i] < min_val) +- { +- min_val = sums[i]; +- min_ind = i; +- } +- } +- +- return min_ind; +-} +- +-int +-compare_pair (const void *a, const void *b) +-{ +- return (((pair *) a)->val - ((pair *) b)->val); +-} +- +-int_t +-static_partition (pair * work_load, int_t nwl, int_t * partition, int_t ldp, +- int_t * sums, int_t * counts, int nprocs) +-{ +- //initialization loop +- for (int i = 0; i < nprocs; ++i) +- { +- counts[i] = 0; +- sums[i] = 0; +- } +- qsort (work_load, nwl, sizeof (pair), compare_pair); +- // for(int i=0;i<nwl;i++) +- for (int i = nwl - 1; i >= 0; i--) +- { +- int_t ind = get_min (sums, nprocs); +- // printf("ind %d\n",ind ); +- partition[ldp * ind + counts[ind]] = work_load[i].ind; +- counts[ind]++; +- sums[ind] += work_load[i].val; +- +- } +- +- return 0; +-} +- + /*Divide CPU-GPU dgemm work here*/ + #ifdef PI_DEBUG + int Ngem = 2;
participants (1)
-
sean@macports.org