libmesh icon indicating copy to clipboard operation
libmesh copied to clipboard

Indication of OpenMP being used

Open permcody opened this issue 5 years ago • 1 comments

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.

permcody avatar Mar 14 '19 18:03 permcody

Up vote

lindsayad avatar Nov 09 '20 19:11 lindsayad