[petsc-dev] Registration implicitly collective on COMM_WORLD

Jed Brown jedbrown at mcs.anl.gov
Tue Feb 5 07:42:27 CST 2013


On Tue, Feb 5, 2013 at 7:32 AM, Matthew Knepley <knepley at gmail.com> wrote:

>    4. XXIntializePackage() is called automatically for all default PETSc
> classes when using --with-single-library=1
>
> I am guessing that default call will use PETSC_COMM_WORLD.
>

One way to do this is to make a "constructor" function for each shared
library that registers its *InitializePackage function to be called from
PetscInitialize. (Constructors are called before main so they can't be
collective.) Then we wouldn't have a source-level reverse dependency and it
would get loaded even for single-library=0. I'm not aware of any platforms
that don't support some constructor mechanism, either via an attribute or
C++ (which should not require linking libstdc++).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130205/4fe85a0e/attachment.html>


More information about the petsc-dev mailing list