libmesh
libmesh copied to clipboard
Indication of OpenMP being used
So we've been through a lot of iterations with the thread-model logic, which is in good shape. What's missing is that when we have the OpenMP model active (really just pthreads + openMP), it's not indicated in the configure library summary. Here's a sample:
----------------------------------- SUMMARY -----------------------------------
Package version.................... : libmesh-1.5.0-pre
C++ compiler type.................. : gcc7
C++ compiler....................... : ccache g++
C compiler......................... : ccache gcc
Fortran compiler................... : mpif90
Build Methods...................... : opt
CPPFLAGS...(opt)................... : -DNDEBUG
CXXFLAGS...(opt)................... : -O2 -felide-constructors -funroll-loops -fstrict-aliasing -Wdisabled-optimization -fopenmp
CFLAGS.....(opt)................... : -O2 -funroll-loops -fstrict-aliasing -fopenmp
Any warnings-to-errors flags....... :
Any extra paranoid warning flags... :
Install dir........................ : /opt/civet/build_0/moose/scripts/../libmesh/installed
Build user......................... : moosetest
Build host......................... : buildq18
Build architecture................. : x86_64-pc-linux-gnu
Git revision....................... : 8e353b8fdbf0bbb11a5973bab5d49522219b30c3
Library Features:
library warnings................. : no
library deprecated code support.. : yes
adaptive mesh refinement......... : yes
blocked matrix/vector storage.... : no
complex variables................ : no
example suite.................... : yes
ghosted vectors.................. : yes
high-order shape functions....... : yes
unique-id support................ : yes
id size (boundaries)............. : 2 bytes
id size (dofs)................... : 4 bytes
id size (unique)................. : 8 bytes
id size (processors)............. : 4 bytes
id size (subdomains)............. : 2 bytes
infinite elements................ : no
Dirichlet constraints............ : yes
node constraints................. : no
parallel mesh.................... : no
performance logging.............. : no
periodic boundary conditions..... : yes
reference counting............... : yes
shape function 2nd derivatives... : yes
stack trace files................ : yes
track node valence............... : yes
variational smoother............. : yes
xdr binary I/O................... : yes
Optional Packages:
boost............................ : yes
capnproto........................ : no
cppunit.......................... : yes
curl............................. : no
eigen............................ : yes
exodus........................... : yes
version....................... : v5.22
fparser.......................... : yes
build from version............ : release
glpk............................. : yes
gmv.............................. : yes
gzstream......................... : yes
hdf5............................. : no
laspack.......................... : no
libhilbert....................... : yes
metaphysicl...................... : yes
metis............................ : yes
mpi.............................. : yes
nanoflann........................ : yes
nemesis.......................... : yes
version....................... : v5.22
netcdf........................... : yes
version....................... : 4
nlopt............................ : no
parmetis......................... : yes
petsc............................ : yes
version....................... : 3.9.4
qhull............................ : yes
sfcurves......................... : no
slepc............................ : no
thread model..................... : pthread
c++ rtti ........................ : yes
tecio............................ : yes
tecplot...(vendor binaries)...... : no
tetgen........................... : no
triangle......................... : no
trilinos......................... : no
vtk.............................. : yes
version....................... : 7.1.0
The thread model in this example says "pthreads" but that's a little bit of a misnomer because it's really ptheads+OpenMP (you can see the -fopenmp
flag in the CXXFLAGS variable). This matters to some MOOSE users. It would be handy to look at this summary and be able to differentiate between pthreads and pthreads+OpenMP at a glance without digging around for the OpenMP flag or looking for the <<<Configuring library for OpenMP >>>
line.
So to be clear, I'm only wanting to enhance the messaging, no logic changes.
Up vote