[ET Trac] [Einstein Toolkit] #1125: LORENE hard codes OpenMP options into compile options

Einstein Toolkit trac-noreply at einsteintoolkit.org
Sun Oct 21 20:30:35 CDT 2012


#1125: LORENE hard codes OpenMP options into compile options
-------------------+--------------------------------------------------------
 Reporter:  rhaas  |        Type:  defect               
   Status:  new    |    Priority:  major                
Milestone:         |   Component:  EinsteinToolkit thorn
  Version:         |    Keywords:  LORENE               
-------------------+--------------------------------------------------------
 Currently LOERENE's configuration.sh contains
 {{{
 CXXFLAGS = ${CXXFLAGS} ${CPPFLAGS} ${CPP_OPENMP_FLAGS}
 }}}
 which always uses OpenMP independent of the option list's OPENMP=yes/no
 setting.

 The attached patch duplicates (unfortunately there seems to be no way to
 access this variables from within a per-thorn configuration script) the
 logic used in Cactus' configure to set OPENMP_MODE based on OPENMP.
 Without it compilation of a Cactus fails at link if OpenMP is not
 selected:
 {{{
 g++ -o "/home/lovelace/trunk/Cactus/exe/cactus_sim"
 -DMPICH_IGNORE_CXX_SEEK -DKRANC_VECTORS  -g3 -march=native -std=gnu++0x
 -rdynamic -O2    "/home/lovelace/trunk/Cactus/configs/sim/datestamp.o"
 -L/home/lovelace/trunk/Cactus/configs/sim/lib -lthorn_Cactus
 -lthorn_CactusBindings -lthorn_CarpetEvolutionMask -lthorn_IOHDF5
 -lthorn_IOHDF5Util -lthorn_CarpetIOScalar -lthorn_ML_WaveToy
 -lthorn_Meudon_Mag_NS -lthorn_HTTPDExtra -lthorn_HTTPD
 -lthorn_RotatingSymmetry90 -lthorn_NoExcision -lthorn_Hydro_InitExcision
 -lthorn_ML_BSSN_Helper -lthorn_GaugeWave -lthorn_NullPsiInt -lthorn_hwloc
 -lthorn_PUGHInterp -lthorn_Cartoon2D -lthorn_SetMask_SphericalSurface
 -lthorn_EHFinder -lthorn_EOS_IdealFluid -lthorn_ModifiedSchwarzschildBL
 -lthorn_Multipole -lthorn_CarpetTracker -lthorn_SphericalHarmonicRecon
 -lthorn_QuasiLocalMeasures -lthorn_TGRtensor -lthorn_Exact
 -lthorn_Periodic -lthorn_IOJpeg -lthorn_CarpetRegrid
 -lthorn_TestGlobalReduce -lthorn_CarpetInterp2 -lthorn_Vaidya2
 -lthorn_GRHydro_InitData -lthorn_TestLoop -lthorn_LegoExcision
 -lthorn_ADMMass -lthorn_ADM -lthorn_CarpetSlab -lthorn_NoMPI
 -lthorn_PunctureTracker -lthorn_CarpetRegrid2 -lthorn_IDScalarWaveElliptic
 -lthorn_IDScalarWaveCXX -lthorn_IDScalarWaveC -lthorn_IDScalarWave
 -lthorn_ML_ADMQuantities -lthorn_ML_BSSN -lthorn_WaveToyExtra
 -lthorn_CarpetMask -lthorn_ML_CCZ4_Helper -lthorn_ML_CCZ4
 -lthorn_AHFinderDirect -lthorn_Meudon_Bin_BH -lthorn_ADMConstraints
 -lthorn_ML_ADMConstraints -lthorn_PUGHSlab
 -lthorn_TestFortranDependencies1 -lthorn_TwoPunctures -lthorn_CalcK
 -lthorn_IOBasic -lthorn_NullExact -lthorn_NullConstr -lthorn_NullNews
 -lthorn_CarpetInterp -lthorn_IDBrillData -lthorn_Extract
 -lthorn_WaveBinarySource -lthorn_WaveToyFreeF90 -lthorn_WaveToyF90
 -lthorn_WaveToyF77 -lthorn_WaveToyCXX -lthorn_WaveToyC
 -lthorn_IDAxiOddBrillBH -lthorn_CarpetIOBasic -lthorn_CarpetIOASCII
 -lthorn_Minkowski -lthorn_SlabTest -lthorn_Dissipation
 -lthorn_SphericalSurface -lthorn_EOS_Hybrid -lthorn_EOS_Polytrope
 -lthorn_DistortedBHIVP -lthorn_Meudon_Bin_NS -lthorn_LORENE -lthorn_LAPACK
 -lthorn_IDAxiBrillBH -lthorn_EllSOR -lthorn_NewRad -lthorn_IOASCII
 -lthorn_NullSHRExtract -lthorn_NullEvolve -lthorn_NullInterp
 -lthorn_NullDecomp -lthorn_NullGrid -lthorn_AHFinder
 -lthorn_RotatingDBHIVP -lthorn_SphericalHarmonicDecomp -lthorn_WeylScal4
 -lthorn_IDConstraintViolate -lthorn_TOVSolver -lthorn_GRHydro
 -lthorn_TmunuBase -lthorn_SpaceMask -lthorn_EOS_Omni -lthorn_IDAnalyticBH
 -lthorn_ShiftedGaugeWave -lthorn_CarpetIOHDF5 -lthorn_HDF5
 -lthorn_NaNChecker -lthorn_PUGHReduce -lthorn_PUGH -lthorn_CarpetReduce
 -lthorn_Carpet -lthorn_CarpetLib -lthorn_ADMAnalysis -lthorn_zlib
 -lthorn_libjpeg -lthorn_Time -lthorn_TestTypes -lthorn_TestTimers
 -lthorn_TestTable -lthorn_TestStrings -lthorn_TestSchedule
 -lthorn_TestReduce -lthorn_TestPar -lthorn_TestMath
 -lthorn_TestLocalReduce -lthorn_TestInclude2 -lthorn_TestInclude1
 -lthorn_TestFreeF90 -lthorn_TestFpointerNULL
 -lthorn_TestFortranDependencies2 -lthorn_TestCoordinates
 -lthorn_TestComplex -lthorn_TestArrays -lthorn_TerminationTrigger
 -lthorn_TATelliptic -lthorn_SystemStatistics -lthorn_SymBase
 -lthorn_SummationByParts -lthorn_Socket -lthorn_ReflectionSymmetry
 -lthorn_OpenSSL -lthorn_NullVars -lthorn_Norms -lthorn_Nice -lthorn_MoL
 -lthorn_ML_WaveToy_Test -lthorn_ML_CCZ4_Test -lthorn_ML_BSSN_Test
 -lthorn_LocalReduce -lthorn_LocalInterp -lthorn_InterpToArray
 -lthorn_Fortran -lthorn_FFTW3 -lthorn_EllBase -lthorn_EinsteinExact_Test
 -lthorn_EOS_Base -lthorn_CoordGauge -lthorn_Constants -lthorn_BLAS
 -lthorn_AEILocalInterp -lthorn_ADMMacros -lthorn_ADMCoupling
 -lthorn_Formaline -lthorn_RotatingSymmetry180 -lthorn_Slab
 -lthorn_Hydro_Analysis -lthorn_HydroBase -lthorn_InitBase
 -lthorn_KerrSchild -lthorn_LoopControl -lthorn_Vectors -lthorn_GSL
 -lthorn_GenericFD -lthorn_IDLinearWaves -lthorn_IDFileADM -lthorn_IOUtil
 -lthorn_StaticConformal -lthorn_ADMBase -lthorn_Boundary
 -lthorn_TimerReport -lthorn_MPI -lthorn_Noise -lthorn_CartGrid3D
 -lthorn_CoordBase -lthorn_Cactus -lthorn_CactusBindings -lthorn_Formaline-
 cactus-source
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/hwloc/lib
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/LORENE/Lib
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/LAPACK
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/HDF5/lib
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/zlib/lib
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/libjpeg/lib
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/FFTW3/lib
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/BLAS
 -L/home/lovelace/trunk/Cactus/configs/sim/scratch/external/GSL/lib
 -L/usr/lib
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/hwloc/lib
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/LORENE/Lib
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/LAPACK
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/HDF5/lib
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/zlib/lib
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/libjpeg/lib
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/FFTW3/lib
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/BLAS
 -Wl,-rpath,/home/lovelace/trunk/Cactus/configs/sim/scratch/external/GSL/lib
 -Wl,-rpath,/usr/lib -lpthread -lhwloc -llorene_export -llorene -llorenef77
 -llapack -lhdf5_hl_cpp -lhdf5_cpp -lhdf5hl_fortran -lhdf5_fortran
 -lhdf5_hl -lhdf5 -lz -lm -lz -ljpeg -lfftw3 -lblas -lgsl -lgslcblas -lm
 -lmpich -lfmpich -lcrypt -ldl -lgfortran
 /home/lovelace/trunk/Cactus/configs/sim/scratch/external/LORENE/Lib/liblorene_export.a(bin_ns_aux.o):
 In function `Bin_NS':
 /home/lovelace/trunk/Cactus/configs/sim/scratch/build/LORENE/Lorene/Export/C++/Source/bin_ns_aux.C:333:
 undefined reference to `GOMP_parallel_start'
 /home/lovelace/trunk/Cactus/configs/sim/scratch/build/LORENE/Lorene/Export/C++/Source/bin_ns_aux.C:333:
 undefined reference to `GOMP_parallel_end'
 /home/lovelace/trunk/Cactus/configs/sim/scratch/external/LORENE/Lib/liblorene_export.a(bin_ns_aux.o):
 In function `Bin_NS::Bin_NS(int, double const*, double const*, double
 const*, char const*) [clone ._omp_fn.0]':
 /home/lovelace/trunk/Cactus/configs/sim/scratch/build/LORENE/Lorene/Export/C++/Source/bin_ns_aux.C:334:
 undefined reference to `omp_get_num_threads'
 /home/lovelace/trunk/Cactus/configs/sim/scratch/build/LORENE/Lorene/Export/C++/Source/bin_ns_aux.C:334:
 undefined reference to `omp_get_thread_num'
 /usr/lib/libmpich.so: undefined reference to `MPL_trid'
 /usr/lib/libmpich.so: undefined reference to `MPL_trvalid'
 /usr/lib/libmpich.so: undefined reference to `MPL_env2int'
 /usr/lib/libmpich.so: undefined reference to `MPL_trrealloc'
 /usr/lib/libmpich.so: undefined reference to `MPL_trspace'
 /usr/lib/libmpich.so: undefined reference to `MPL_trDebugLevel'
 /usr/lib/libmpich.so: undefined reference to `MPL_TrSetMaxMem'
 /usr/lib/libmpich.so: undefined reference to `MPL_trlevel'
 /usr/lib/libmpich.so: undefined reference to `MPL_trmalloc'
 /usr/lib/libmpich.so: undefined reference to `MPL_putenv'
 /usr/lib/libmpich.so: undefined reference to `MPL_env2bool'
 /usr/lib/libmpich.so: undefined reference to `MPL_env2range'
 /usr/lib/libmpich.so: undefined reference to `MPL_trcalloc'
 /usr/lib/libmpich.so: undefined reference to `MPL_trfree'
 /usr/lib/libmpich.so: undefined reference to `MPL_env2str'
 /usr/lib/libmpich.so: undefined reference to `MPL_trstrdup'
 /usr/lib/libmpich.so: undefined reference to `MPL_trdump'
 /usr/lib/libmpich.so: undefined reference to `MPL_trinit'
 collect2: ld returned 1 exit status
 make[1]: *** [/home/lovelace/trunk/Cactus/exe/cactus_sim] Error 1
 make[1]: Leaving directory `/home/lovelace/trunk/Cactus'
 make: *** [sim] Error 2
 }}}
 The MPL errors are due to a missing link library for libmpl in the
 Ubuntu.cfg file (separate ticket).

 Also note that both the old and the patched version actually use
 "CPP_OPENMP_FLAGS" not "CXX_OPENMP_FLAGS" in the CXX options. This looks
 like an error to me.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1125>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list