From 4b0f2f1f54b6fe3df01231ef786a8adb009a08b0 Mon Sep 17 00:00:00 2001 From: Martin Reinecke Date: Fri, 13 Jul 2012 14:46:46 +0200 Subject: [PATCH] fix MPI mode rename symbolic transform constants --- libsharp/sharp.c | 22 +++++++++++----------- libsharp/sharp.h | 8 ++++---- libsharp/sharp_acctest.c | 13 +++++++------ libsharp/sharp_bench.c | 6 +++--- libsharp/sharp_core_inc2.c | 8 ++++---- libsharp/sharp_core_inc3.c | 8 ++++---- libsharp/sharp_mpi.c | 14 +++++++------- libsharp/sharp_test.c | 10 ++++++---- libsharp/sharp_test_mpi.c | 13 ++++++++----- 9 files changed, 54 insertions(+), 48 deletions(-) diff --git a/libsharp/sharp.c b/libsharp/sharp.c index 1c6ccd3..917a09e 100644 --- a/libsharp/sharp.c +++ b/libsharp/sharp.c @@ -360,7 +360,7 @@ static void fill_alm (const sharp_alm_info *ainfo, void *alm, dcmplx value, static void init_output (sharp_job *job) { if (job->add_output) return; - if (job->type == MAP2ALM) + if (job->type == SHARP_MAP2ALM) for (int i=0; intrans*job->nalm; ++i) fill_alm (job->ainfo,job->alm[i],0.,job->fde); else @@ -374,10 +374,10 @@ static void alloc_phase (sharp_job *job, int nm, int ntheta) static void dealloc_phase (sharp_job *job) { DEALLOC(job->phase); } -//FIXME: set phase to zero if not MAP2ALM? +//FIXME: set phase to zero if not SHARP_MAP2ALM? static void map2phase (sharp_job *job, int mmax, int llim, int ulim) { - if (job->type != MAP2ALM) return; + if (job->type != SHARP_MAP2ALM) return; int pstride = 2*job->ntrans*job->nmaps; #pragma omp parallel { @@ -403,7 +403,7 @@ static void dealloc_almtmp (sharp_job *job) static void alm2almtmp (sharp_job *job, int lmax, int mi) { - if (job->type!=MAP2ALM) + if (job->type!=SHARP_MAP2ALM) for (int l=job->ainfo->mval[mi]; l<=lmax; ++l) { ptrdiff_t aidx = sharp_alm_index(job->ainfo,l,mi); @@ -423,7 +423,7 @@ static void alm2almtmp (sharp_job *job, int lmax, int mi) static void almtmp2alm (sharp_job *job, int lmax, int mi) { - if (job->type != MAP2ALM) return; + if (job->type != SHARP_MAP2ALM) return; for (int l=job->ainfo->mval[mi]; l<=lmax; ++l) { ptrdiff_t aidx = sharp_alm_index(job->ainfo,l,mi); @@ -439,7 +439,7 @@ static void almtmp2alm (sharp_job *job, int lmax, int mi) static void phase2map (sharp_job *job, int mmax, int llim, int ulim) { - if (job->type == MAP2ALM) return; + if (job->type == SHARP_MAP2ALM) return; int pstride = 2*job->ntrans*job->nmaps; #pragma omp parallel { @@ -465,7 +465,7 @@ void sharp_execute_job (sharp_job *job) int lmax = job->ainfo->lmax, mmax=sharp_get_mmax(job->ainfo->mval, job->ainfo->nm); - job->norm_l = (job->type==ALM2MAP_DERIV1) ? + job->norm_l = (job->type==SHARP_ALM2MAP_DERIV1) ? sharp_Ylmgen_get_d1norm (lmax) : sharp_Ylmgen_get_norm (lmax, job->spin); @@ -546,14 +546,14 @@ static void sharp_build_job_common (sharp_job *job, sharp_jobtype type, int spin const sharp_alm_info *alm_info, int ntrans) { UTIL_ASSERT((ntrans>0),"bad number of simultaneous transforms"); - if (type==ALM2MAP_DERIV1) spin=1; + if (type==SHARP_ALM2MAP_DERIV1) spin=1; UTIL_ASSERT((spin>=0)&&(spin<=30), "bad spin"); job->type = type; job->spin = spin; job->norm_l = NULL; job->add_output = add_output; - job->nmaps = (type==ALM2MAP_DERIV1) ? 2 : ((spin>0) ? 2 : 1); - job->nalm = (type==ALM2MAP_DERIV1) ? 1 : ((spin>0) ? 2 : 1); + job->nmaps = (type==SHARP_ALM2MAP_DERIV1) ? 2 : ((spin>0) ? 2 : 1); + job->nalm = (type==SHARP_ALM2MAP_DERIV1) ? 1 : ((spin>0) ? 2 : 1); job->ginfo = geom_info; job->ainfo = alm_info; job->nv = sharp_nv_oracle (type, spin, ntrans); @@ -653,7 +653,7 @@ int sharp_nv_oracle (sharp_jobtype type, int spin, int ntrans) static int in_oracle=0; if (in_oracle) return -20; - if (type==ALM2MAP_DERIV1) spin=1; + if (type==SHARP_ALM2MAP_DERIV1) spin=1; UTIL_ASSERT((ntrans>0),"bad number of simultaneous transforms"); UTIL_ASSERT((spin>=0)&&(spin<=30), "bad spin"); ntrans=IMIN(ntrans,maxtr); diff --git a/libsharp/sharp.h b/libsharp/sharp.h index 590da0b..a984336 100644 --- a/libsharp/sharp.h +++ b/libsharp/sharp.h @@ -140,9 +140,9 @@ void sharp_destroy_geom_info (sharp_geom_info *info); /*! \{ */ /*! Enumeration of SHARP job types. */ -typedef enum { MAP2ALM, /*!< analysis */ - ALM2MAP, /*!< synthesis */ - ALM2MAP_DERIV1 /*!< currently unused */ +typedef enum { SHARP_MAP2ALM, /*!< analysis */ + SHARP_ALM2MAP, /*!< synthesis */ + SHARP_ALM2MAP_DERIV1 /*!< synthesis of first derivatives */ } sharp_jobtype; typedef enum { FLOAT, DOUBLE } sharp_fde; @@ -171,7 +171,7 @@ typedef struct /*! Initializes \a job with the appropriate parameters to perform the required SHT. - \param type the type of SHT (currently ALM2MAP and MAP2ALM) + \param type the type of SHT \param spin the spin of the quantities to be transformed \param add_output if 0, the output arrays will be overwritten, else the result will be added to the output arrays. diff --git a/libsharp/sharp_acctest.c b/libsharp/sharp_acctest.c index b6f6952..efc536a 100644 --- a/libsharp/sharp_acctest.c +++ b/libsharp/sharp_acctest.c @@ -112,7 +112,7 @@ static void check_sign_scale(void) alm[i][j]=1.+_Complex_I; sharp_job job; - sharpd_build_job(&job,ALM2MAP,0,0,&alm[0],&map[0],tinfo,alms,ntrans); + sharpd_build_job(&job,SHARP_ALM2MAP,0,0,&alm[0],&map[0],tinfo,alms,ntrans); sharp_execute_job(&job); for (int it=0; ittype) { - case ALM2MAP: - case ALM2MAP_DERIV1: + case SHARP_ALM2MAP: + case SHARP_ALM2MAP_DERIV1: { if (job->spin==0) { @@ -700,7 +700,7 @@ static void Z(inner_loop) (sharp_job *job, const int *ispair, itot=idx[itot]; cth.s[i]=cth_[itot]; } - (job->type==ALM2MAP) ? + (job->type==SHARP_ALM2MAP) ? Z(calc_alm2map_spin ) (cth.b,gen,job,&p1.b,&p2.b,&done) : Z(calc_alm2map_deriv1) (cth.b,gen,job,&p1.b,&p2.b,&done); } @@ -736,7 +736,7 @@ static void Z(inner_loop) (sharp_job *job, const int *ispair, } break; } - case MAP2ALM: + case SHARP_MAP2ALM: { if (job->spin==0) { diff --git a/libsharp/sharp_core_inc3.c b/libsharp/sharp_core_inc3.c index 816f062..ccf5e5d 100644 --- a/libsharp/sharp_core_inc3.c +++ b/libsharp/sharp_core_inc3.c @@ -629,8 +629,8 @@ static void Y(inner_loop) (sharp_job *job, const int *ispair, switch (job->type) { - case ALM2MAP: - case ALM2MAP_DERIV1: + case SHARP_ALM2MAP: + case SHARP_ALM2MAP_DERIV1: { if (job->spin==0) { @@ -688,7 +688,7 @@ static void Y(inner_loop) (sharp_job *job, const int *ispair, itot=idx[itot]; cth.s[i]=cth_[itot]; } - (job->type==ALM2MAP) ? + (job->type==SHARP_ALM2MAP) ? Y(calc_alm2map_spin ) (cth.b,gen,job,&p1[0].b,&p2[0].b,njobs,&done) : Y(calc_alm2map_deriv1) @@ -726,7 +726,7 @@ static void Y(inner_loop) (sharp_job *job, const int *ispair, } break; } - case MAP2ALM: + case SHARP_MAP2ALM: { if (job->spin==0) { diff --git a/libsharp/sharp_mpi.c b/libsharp/sharp_mpi.c index 1827a06..05efd5c 100644 --- a/libsharp/sharp_mpi.c +++ b/libsharp/sharp_mpi.c @@ -182,20 +182,20 @@ static void sharp_communicate_map2alm (const sharp_mpi_info *minfo, dcmplx **ph) static void alloc_phase_mpi (sharp_job *job, int nm, int ntheta, int nmfull, int nthetafull) { - ptrdiff_t phase_size = (job->type==MAP2ALM) ? + ptrdiff_t phase_size = (job->type==SHARP_MAP2ALM) ? (ptrdiff_t)(nmfull)*ntheta : (ptrdiff_t)(nm)*nthetafull; job->phase=RALLOC(dcmplx,2*job->ntrans*job->nmaps*phase_size); } static void alm2map_comm (sharp_job *job, const sharp_mpi_info *minfo) { - if (job->type != MAP2ALM) + if (job->type != SHARP_MAP2ALM) sharp_communicate_alm2map (minfo,&job->phase); } static void map2alm_comm (sharp_job *job, const sharp_mpi_info *minfo) { - if (job->type == MAP2ALM) + if (job->type == SHARP_MAP2ALM) sharp_communicate_map2alm (minfo,&job->phase); } @@ -209,7 +209,7 @@ void sharp_execute_job_mpi (sharp_job *job, MPI_Comm comm) int lmax = job->ainfo->lmax; - job->norm_l = Ylmgen_get_norm (lmax, job->spin); + job->norm_l = sharp_Ylmgen_get_norm (lmax, job->spin); sharp_mpi_info minfo; sharp_make_mpi_info(comm, job, &minfo); @@ -244,8 +244,8 @@ void sharp_execute_job_mpi (sharp_job *job, MPI_Comm comm) #pragma omp parallel { sharp_job ljob = *job; - Ylmgen_C generator; - Ylmgen_init (&generator,lmax,minfo.mmax,ljob.spin); + sharp_Ylmgen_C generator; + sharp_Ylmgen_init (&generator,lmax,minfo.mmax,ljob.spin); alloc_almtmp(&ljob,lmax); #pragma omp for schedule(dynamic,1) @@ -262,7 +262,7 @@ void sharp_execute_job_mpi (sharp_job *job, MPI_Comm comm) almtmp2alm (&ljob, lmax, mi); } - Ylmgen_destroy(&generator); + sharp_Ylmgen_destroy(&generator); dealloc_almtmp(&ljob); #pragma omp critical diff --git a/libsharp/sharp_test.c b/libsharp/sharp_test.c index bd0fe28..005eb7c 100644 --- a/libsharp/sharp_test.c +++ b/libsharp/sharp_test.c @@ -117,7 +117,7 @@ static void map2alm_iter (sharp_geom_info *tinfo, double **map, sharp_make_triangular_alm_info(lmax,mmax,1,&alms); sharp_job job; - sharpd_build_job(&job,MAP2ALM,spin,0,&alm[0],&map[0],tinfo,alms,ntrans); + sharpd_build_job(&job,SHARP_MAP2ALM,spin,0,&alm[0],&map[0],tinfo,alms,ntrans); sharp_execute_job(&job); printf("wall time for map2alm: %fs\n",job.time); printf("Performance: %fGFLOPs/s\n",1e-9*job.opcnt/job.time); @@ -128,7 +128,8 @@ static void map2alm_iter (sharp_geom_info *tinfo, double **map, double **map2; ALLOC2D(map2,double,ncomp,npix); printf ("\niteration %i:\n", iter+1); - sharpd_build_job(&job,ALM2MAP,spin,0,&alm[0],&map2[0],tinfo,alms,ntrans); + sharpd_build_job(&job,SHARP_ALM2MAP,spin,0,&alm[0],&map2[0],tinfo,alms, + ntrans); sharp_execute_job(&job); printf("wall time for alm2map: %fs\n",job.time); printf("Performance: %fGFLOPs/s\n",1e-9*job.opcnt/job.time); @@ -136,7 +137,8 @@ static void map2alm_iter (sharp_geom_info *tinfo, double **map, for (ptrdiff_t m=0; m ", mytask==0); int lmax=atoi(argv[2]);