Wolfgang,

Thank you for the reply, I'm glad to see that the developers are keeping an 
eye on dependencies and startup time.

In my case, I was actually careful to compile deal.ii ONLY against MPI, so 
there are only seven direct deps, mostly from my homebrew installation of 
openmpi. But after figuring out the correct tooling to do this on macos and 
digging a little more, it seems that openmpi's libhwloc is the culprit. 
Once it pulls in Foundation.framework and IOKit.framework, we are really 
off to the races.

It appears that my ubuntu build in a docker container starts up in about 
half the time (also just built against MPI).

-Jack

On Friday, April 19, 2024 at 2:00:29 PM UTC-7 Wolfgang Bangerth wrote:

On 4/18/24 23:29, Jack Coughlin wrote: 
> 
> As I say, I don't understand the issue well enough to know if there is 
> anything I or the deal.ii developers can do about it! In any case, 0.25s 
is a 
> very small price to pay for so much functionality and expressiveness. 

Jack, 
I appreciate the qualification in the last sentence :-) 

I don't have a Mac, so can't repeat the experiment and tell you what these 
~100 libraries are, but I've looked into this on my Linux laptop. There, 
libdeal_II.g.so directly references the following 54 libraries: 

Part of Trilinos: 
libnox.so.13 
libamesos2.so.13 
libtacho.so.13 
libml.so.13 
libifpack.so.13 
libamesos.so.13 
libaztecoo.so.13 
libtrilinosss.so.13 
libtpetra.so.13 
libtpetraclassicnodeapi.so.13 
libepetraext.so.13 
libzoltan.so.13 
libepetra.so.13 
libkokkoskernels.so.13 
libteuchoscomm.so.13 
libteuchosparameterlist.so.13 
libteuchoscore.so.13 
libkokkoscore.so.13 
libsuperlu_dist.so.5 

HDF5: 
libhdf5.so.103 

Part of OpenCASCADE: 
libTKBool.so.11 
libTKBRep.so.11 
libTKernel.so.11 
libTKG3d.so.11 
libTKGeomAlgo.so.11 
libTKGeomBase.so.11 
libTKMath.so.11 
libTKMesh.so.11 
libTKShHealing.so.11 
libTKTopAlgo.so.11 
libTKXSBase.so.11 
libTKIGES.so.11 
libTKSTEP.so.11 
libTKSTL.so.11 

PETSc and SLEPc: 
libslepc.so.3.16 
libpetsc.so.3.16 
libmetis.so 

MPI: 
libmpi_cxx.so.40 
libmpi.so.40 

SUNDIALS: 
libsundials_idas.so.4 
libsundials_arkode.so.4 
libsundials_kinsol.so.5 
libsymengine.so.0.8 

BLAS and LAPACK: 
liblapack.so.3 
libblas.so.3 

p4est: 
libp4est.so.0 
libsc.so.0 

System and compiler libraries: 
libgmp.so.10 
libz.so.1 
libm.so.6 
libstdc++.so.6 
libgcc_s.so.1 
libc.so.6 
ld-linux-x86-64.so.2 

These are all libraries from which deal.II directly utilizes functionality. 
It 
is so many because some of the packages we rely on (notably Trilinos and 
OpenCASCADE) split their functionality into many separate libraries for 
reasons unknown to me. 

Beyond these 54, every executable then pulls in another 27 libraries. These 
are libraries that, directly or indirectly, one of the 57 above references. 
For me, these are: 

More from Trilinos: 
libgaleri-epetra.so.13 
libHYPRE-2.23.0.so 
libkokkoscontainers.so.13 
libteuchosnumerics.so.13 
libteuchosparser.so.13 
libteuchosremainder.so.13 
libthyracore.so.13 
libtriutils.so.13 

More from OpenCASCADE: 
libTKBO.so.11 
libTKG2d.so.11 
libTKPrim.so.11 
libTKSTEP209.so.11 
libTKSTEPAttr.so.11 
libTKSTEPBase.so.11 

More from PETSc: 
libparmetis.so 

More from MPI: 
libmpi_mpifh.so.40 
libopen-pal.so.40 
libopen-rte.so.40 

More compiler libraries: 
libgfortran.so.5 
libgomp.so.1 
libhwloc.so.15 
libquadmath.so.0 

Unclear to me: 
libevent_core-2.1.so.7 
libevent_pthreads-2.1.so.7 
libmvec.so.1 
libudev.so.1 
linux-vdso.so.1 (0x00007ffc27ddc000) 


The example you show, libAudioStatistics.dylib, would fall into this last 
category. It would be interesting to see which of the dependencies pulls it 
in. In general, though, from the example above, nearly everything I see is 
there for a fairly good reason. 

I will note that you can very substantially slim down if you trim all of 
the 
dependencies. You can build deal.II without reference to Trilinos, PETSc, 
and 
a lot of other stuff, and it compiles substantially faster and is 
substantially smaller. It will of course also have substantially less 
functionality :-) 

Best 
W. 

-- 
------------------------------------------------------------------------ 
Wolfgang Bangerth email: [email protected] 
www: http://www.math.colostate.edu/~bangerth/ 


-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/da5fd530-4055-4593-9c70-6dba1cf72c30n%40googlegroups.com.

Reply via email to