diff --git a/Makefile b/Makefile index 485d22d6..d3c36e25 100644 --- a/Makefile +++ b/Makefile @@ -10,11 +10,7 @@ dirs: (if test ! -d modules ; then mkdir modules; fi;) mods: basemods utilmods precmods linslvmods cbindmods extmods $(CUDAMODS) $(OACCMODS) -precmods utilmods extmods: basemods -linslvmods: precmods -cbindmods: basemods precmods linslvmods utilmods extmods $(CUDAMODS) -oaccmods: extmods -cudamods: extmods + basemods: $(MAKE) -C base mods precmods: basemods @@ -23,7 +19,7 @@ linslvmods: precmods $(MAKE) -C linsolve mods utilmods: basemods $(MAKE) -C util mods -cbindmods: basemods precmods linslvmods utilmods $(CUDAMODS) +cbindmods: basemods precmods linslvmods utilmods extmods $(CUDAMODS) $(MAKE) -C cbind objs extmods: basemods $(MAKE) -C ext mods diff --git a/base/modules/desc/psb_desc_const_mod.f90 b/base/modules/desc/psb_desc_const_mod.f90 index 173031e9..280d1f2a 100644 --- a/base/modules/desc/psb_desc_const_mod.f90 +++ b/base/modules/desc/psb_desc_const_mod.f90 @@ -39,22 +39,30 @@ module psb_desc_const_mod ! ! Communication, prolongation & restriction ! - integer(psb_ipk_), parameter :: psb_nohalo_=0, psb_halo_=1 + integer(psb_ipk_), parameter :: psb_nohalo_ = 0 + integer(psb_ipk_), parameter :: psb_halo_ = 1 ! For overlap update. - integer(psb_ipk_), parameter :: psb_none_=0, psb_sum_=1 - integer(psb_ipk_), parameter :: psb_avg_=2, psb_square_root_=3 - integer(psb_ipk_), parameter :: psb_setzero_=4 + integer(psb_ipk_), parameter :: psb_none_ = 0 + integer(psb_ipk_), parameter :: psb_sum_ = 1 + integer(psb_ipk_), parameter :: psb_avg_ = 2 + integer(psb_ipk_), parameter :: psb_square_root_ = 3 + integer(psb_ipk_), parameter :: psb_setzero_ = 4 ! The following are bit fields. - integer(psb_ipk_), parameter :: psb_swap_send_=1, psb_swap_recv_=2 - integer(psb_ipk_), parameter :: psb_swap_sync_=4, psb_swap_mpi_=8 - integer(psb_ipk_), parameter :: psb_collective_start_=1, psb_collective_end_=2 - integer(psb_ipk_), parameter :: psb_collective_sync_=4 + integer(psb_ipk_), parameter :: psb_swap_send_ = 1 + integer(psb_ipk_), parameter :: psb_swap_recv_ = 2 + integer(psb_ipk_), parameter :: psb_swap_sync_ = 4 + integer(psb_ipk_), parameter :: psb_swap_mpi_ = 8 + integer(psb_ipk_), parameter :: psb_collective_start_ = 1 + integer(psb_ipk_), parameter :: psb_collective_end_ = 2 + integer(psb_ipk_), parameter :: psb_collective_sync_ = 4 ! Choice among lists on which to base data exchange - integer(psb_ipk_), parameter :: psb_no_comm_=-1 - integer(psb_ipk_), parameter :: psb_comm_halo_=1, psb_comm_ovr_=2 - integer(psb_ipk_), parameter :: psb_comm_ext_=3, psb_comm_mov_=4 + integer(psb_ipk_), parameter :: psb_no_comm_ = -1 + integer(psb_ipk_), parameter :: psb_comm_halo_ = 1 + integer(psb_ipk_), parameter :: psb_comm_ovr_ = 2 + integer(psb_ipk_), parameter :: psb_comm_ext_ = 3 + integer(psb_ipk_), parameter :: psb_comm_mov_ = 4 ! Types of mapping between descriptors. integer(psb_ipk_), parameter :: psb_map_xhal_ = 123 integer(psb_ipk_), parameter :: psb_map_asov_ = psb_map_xhal_+1 diff --git a/base/modules/psb_config.h.in b/base/modules/psb_config.h.in index 7bb4dd48..8195027f 100644 --- a/base/modules/psb_config.h.in +++ b/base/modules/psb_config.h.in @@ -14,6 +14,27 @@ #define PSB_DUPL_OVWRT @PSBLASDUPOVW@ #define PSB_DUPL_ERR @PSBLASDUPERR@ #define PSB_DUPL_DEF @PSBLASDUPDEF@ + +#define PSB_UPD_SRCH @PSBLASUPDSRC@ +#define PSB_UPD_PERM @PSBLASUPDPRM@ +#define PSB_UPD_DFLT @PSBLASUPDDEF@ + +#define PSB_SWAP_SEND @PSBSWPSND@ +#define PSB_SWAP_RECV @PSBSWPRCV@ +#define PSB_SWAP_SYNC @PSBSWPSYN@ +#define PSB_SWAP_MPI @PSBSWPMPI@ + +#define PSB_COLLECTIVE_START @PSBCLCSTR@ +#define PSB_COLLECTIVE_END @PSBCLCEND@ +#define PSB_COLLECTIVE_SYNC @PSBCLCSYN@ + + +#define PSB_NONE @PSBNONE@ +#define PSB_SUM @PSBSUM@ +#define PSB_AVG @PSBAVG@ +#define PSB_SQUARE_ROOT @PSBSQRT@ +#define PSB_SETZERO @PSBSETZ@ + #define PSB_MATBLD_NOREMOTE @PSBLASBLDNOR@ #define PSB_MATBLD_REMOTE @PSBLASBLDRMT@ diff --git a/cbind/base/psb_c_base.h b/cbind/base/psb_c_base.h index 3f04fca3..c36a4a0e 100644 --- a/cbind/base/psb_c_base.h +++ b/cbind/base/psb_c_base.h @@ -102,16 +102,7 @@ extern "C" { psb_i_t psb_c_g2l(psb_c_descriptor *cdh,psb_l_t gindex,bool cowned); - /* legal values for upd argument */ -#define psb_upd_srch_ 98764 -#define psb_upd_perm_ 98765 -#define psb_upd_def_ psb_upd_srch_ - /* legal values for dupl argument */ -#define psb_dupl_ovwrt_ 0 -#define psb_dupl_add_ 1 -#define psb_dupl_err_ 2 -#define psb_dupl_def_ psb_dupl_ovwrt_ - + /* legal values for afmt */ #define PSB_AFMT_CSR "CSR" #define PSB_AFMT_CSC "CSC" @@ -123,6 +114,17 @@ extern "C" { #define psb_Trans_ "T" #define psb_ConjTrans_ "C" +#if 0 + /* legal values for upd argument */ +#define psb_upd_srch_ 98764 +#define psb_upd_perm_ 98765 +#define psb_upd_def_ psb_upd_srch_ + /* legal values for dupl argument */ +#define psb_dupl_ovwrt_ 0 +#define psb_dupl_add_ 1 +#define psb_dupl_err_ 2 +#define psb_dupl_def_ psb_dupl_ovwrt_ + /* legal values for halo swap modes argument */ #define psb_swap_send_ 1 #define psb_swap_recv_ 2 @@ -135,7 +137,7 @@ extern "C" { #define psb_avg_ 2 #define psb_square_root_ 3 #define psb_setzero_ 4 - +#endif #ifdef __cplusplus } diff --git a/cbind/psb_c_base.h b/cbind/psb_c_base.h index 3f04fca3..c36a4a0e 100644 --- a/cbind/psb_c_base.h +++ b/cbind/psb_c_base.h @@ -102,16 +102,7 @@ extern "C" { psb_i_t psb_c_g2l(psb_c_descriptor *cdh,psb_l_t gindex,bool cowned); - /* legal values for upd argument */ -#define psb_upd_srch_ 98764 -#define psb_upd_perm_ 98765 -#define psb_upd_def_ psb_upd_srch_ - /* legal values for dupl argument */ -#define psb_dupl_ovwrt_ 0 -#define psb_dupl_add_ 1 -#define psb_dupl_err_ 2 -#define psb_dupl_def_ psb_dupl_ovwrt_ - + /* legal values for afmt */ #define PSB_AFMT_CSR "CSR" #define PSB_AFMT_CSC "CSC" @@ -123,6 +114,17 @@ extern "C" { #define psb_Trans_ "T" #define psb_ConjTrans_ "C" +#if 0 + /* legal values for upd argument */ +#define psb_upd_srch_ 98764 +#define psb_upd_perm_ 98765 +#define psb_upd_def_ psb_upd_srch_ + /* legal values for dupl argument */ +#define psb_dupl_ovwrt_ 0 +#define psb_dupl_add_ 1 +#define psb_dupl_err_ 2 +#define psb_dupl_def_ psb_dupl_ovwrt_ + /* legal values for halo swap modes argument */ #define psb_swap_send_ 1 #define psb_swap_recv_ 2 @@ -135,7 +137,7 @@ extern "C" { #define psb_avg_ 2 #define psb_square_root_ 3 #define psb_setzero_ 4 - +#endif #ifdef __cplusplus } diff --git a/configure b/configure index 0f1df90e..390b6555 100755 --- a/configure +++ b/configure @@ -691,8 +691,23 @@ CINTMETIS CHAVEMETIS CHAVE_OPENMP CSERIALMPI +PSBCLCSYN +PSBCLCEND +PSBCLCSTR +PSBSETZ +PSBSQRT +PSBAVG +PSBSUM +PSBNONE +PSBSWPMPI +PSBSWPSYN +PSBSWPRCV +PSBSWPSND PSBLASBLDRMT PSBLASBLDNOR +PSBLASUPDDEF +PSBLASUPDPRM +PSBLASUPDSRC PSBLASDUPDEF PSBLASDUPERR PSBLASDUPOVW @@ -8825,10 +8840,27 @@ PSBLASDUPNUL=`cat $CFILE| grep dupl_null | $AWK '{print $6;}'`; PSBLASDUPADD=`cat $CFILE| grep "psb_dupl_add_ =" | $AWK '{print $6;}'`; PSBLASDUPOVW=`cat $CFILE| grep dupl_ovwrt| $AWK '{print $6;}'`; PSBLASDUPERR=`cat $CFILE| grep dupl_err| $AWK '{print $6;}'`; -PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`; +PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$// `; +PSBLASUPDSRC=`cat $CFILE| grep "psb_upd_srch_ ="| $AWK '{print $6;}' `; +PSBLASUPDPRM=`cat $CFILE| grep "psb_upd_perm_ ="| $AWK '{print $6;}' `; +PSBLASUPDDEF=`cat $CFILE| grep "psb_upd_dflt_ ="| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`; PSBLASBLDNOR=`cat $CFILE| grep matbld_noremote| $AWK '{print $6;}'`; PSBLASBLDRMT=`cat $CFILE| grep matbld_remote| $AWK '{print $6;}'`; +CFILE="base/modules/desc/psb_desc_const_mod.f90"; +PSBSWPSND=`cat $CFILE| grep swap_send| $AWK '{print $6;}'`; +PSBSWPRCV=`cat $CFILE| grep swap_recv| $AWK '{print $6;}'`; +PSBSWPSYN=`cat $CFILE| grep swap_sync| $AWK '{print $6;}'`; +PSBSWPMPI=`cat $CFILE| grep swap_mpi| $AWK '{print $6;}'`; +PSBNONE=`cat $CFILE| grep psb_none| $AWK '{print $6;}'`; +PSBSUM=`cat $CFILE| grep psb_sum| $AWK '{print $6;}'`; +PSBAVG=`cat $CFILE| grep psb_avg| $AWK '{print $6;}'`; +PSBSQRT=`cat $CFILE| grep square_root| $AWK '{print $6;}'`; +PSBSETZ=`cat $CFILE| grep psb_setzero| $AWK '{print $6;}'`; +PSBCLCSTR=`cat $CFILE| grep collective_start| $AWK '{print $6;}'`; +PSBCLCEND=`cat $CFILE| grep collective_end| $AWK '{print $6;}'`; +PSBCLCSYN=`cat $CFILE| grep collective_sync| $AWK '{print $6;}'`; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: version $PSBLASSTRING" >&5 printf "%s\n" " version $PSBLASSTRING" >&6; } @@ -11778,6 +11810,24 @@ FDEFINES=$(PSBFDEFINES) + + + + + + + + + + + + + + + + + + diff --git a/configure.ac b/configure.ac index 481ddc2b..5155bcf0 100644 --- a/configure.ac +++ b/configure.ac @@ -699,10 +699,27 @@ PSBLASDUPNUL=`cat $CFILE| grep dupl_null | $AWK '{print $6;}'`; PSBLASDUPADD=`cat $CFILE| grep "psb_dupl_add_ =" | $AWK '{print $6;}'`; PSBLASDUPOVW=`cat $CFILE| grep dupl_ovwrt| $AWK '{print $6;}'`; PSBLASDUPERR=`cat $CFILE| grep dupl_err| $AWK '{print $6;}'`; -PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`; +PSBLASDUPDEF=`cat $CFILE| grep dupl_def| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$// `; +PSBLASUPDSRC=`cat $CFILE| grep "psb_upd_srch_ ="| $AWK '{print $6;}' `; +PSBLASUPDPRM=`cat $CFILE| grep "psb_upd_perm_ ="| $AWK '{print $6;}' `; +PSBLASUPDDEF=`cat $CFILE| grep "psb_upd_dflt_ ="| $AWK '{print $6;}' | tr a-z A-Z | sed s/\_$//`; PSBLASBLDNOR=`cat $CFILE| grep matbld_noremote| $AWK '{print $6;}'`; PSBLASBLDRMT=`cat $CFILE| grep matbld_remote| $AWK '{print $6;}'`; +CFILE="base/modules/desc/psb_desc_const_mod.f90"; +PSBSWPSND=`cat $CFILE| grep swap_send| $AWK '{print $6;}'`; +PSBSWPRCV=`cat $CFILE| grep swap_recv| $AWK '{print $6;}'`; +PSBSWPSYN=`cat $CFILE| grep swap_sync| $AWK '{print $6;}'`; +PSBSWPMPI=`cat $CFILE| grep swap_mpi| $AWK '{print $6;}'`; +PSBNONE=`cat $CFILE| grep psb_none| $AWK '{print $6;}'`; +PSBSUM=`cat $CFILE| grep psb_sum| $AWK '{print $6;}'`; +PSBAVG=`cat $CFILE| grep psb_avg| $AWK '{print $6;}'`; +PSBSQRT=`cat $CFILE| grep square_root| $AWK '{print $6;}'`; +PSBSETZ=`cat $CFILE| grep psb_setzero| $AWK '{print $6;}'`; +PSBCLCSTR=`cat $CFILE| grep collective_start| $AWK '{print $6;}'`; +PSBCLCEND=`cat $CFILE| grep collective_end| $AWK '{print $6;}'`; +PSBCLCSYN=`cat $CFILE| grep collective_sync| $AWK '{print $6;}'`; + AC_MSG_RESULT([ version $PSBLASSTRING]) ############################################################################### @@ -1084,9 +1101,27 @@ AC_SUBST(PSBLASDUPADD) AC_SUBST(PSBLASDUPOVW) AC_SUBST(PSBLASDUPERR) AC_SUBST(PSBLASDUPDEF) +AC_SUBST(PSBLASDUPDEF) +AC_SUBST(PSBLASUPDSRC) +AC_SUBST(PSBLASUPDPRM) +AC_SUBST(PSBLASUPDDEF) AC_SUBST(PSBLASBLDNOR) AC_SUBST(PSBLASBLDRMT) +AC_SUBST(PSBSWPSND) +AC_SUBST(PSBSWPRCV) +AC_SUBST(PSBSWPSYN) +AC_SUBST(PSBSWPMPI) +AC_SUBST(PSBNONE) +AC_SUBST(PSBSUM) +AC_SUBST(PSBAVG) +AC_SUBST(PSBSQRT) +AC_SUBST(PSBSETZ) +AC_SUBST(PSBCLCSTR) +AC_SUBST(PSBCLCEND) +AC_SUBST(PSBCLCSYN) + + AC_SUBST(CSERIALMPI) AC_SUBST(CHAVE_OPENMP) AC_SUBST(CHAVEMETIS)