[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