[Petsc-trilinos-discussion] Scope and requirements

Barry Smith bsmith at mcs.anl.gov
Fri Nov 22 14:25:21 CST 2013


On Nov 22, 2013, at 2:09 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> Barry Smith <bsmith at mcs.anl.gov> writes:
>>    Building PETSc to use ML, obviously, requires ML to be built
>>    before PETSc since PETSc configure needs to link against the ML to
>>    verify it is correct and PETSc make needs to locate the ML
>>    includes to compile the ML wrapper.
> 
> Although I do not think it is necessary in this case, PETSc _could_ be
> compiled without ML, but have the ML plugin (currently residing in
> src/ksp/pc/impls/ml) compiled later, dropping the libpetsc-ml.so into
> $prefix/lib/petsc/plugins/.

   Yes, but this still has the issue of “stages” of compiling packages where “parts” (loosely speaking) of a package need to get built, then parts of another, then (possibly) back to parts of the first package. And this needs to be coordinated were different groups do each package and use different tools to build their stuff and manage their dependencies.

   Barry

> 
> Unfortunately, some systems don't support shared libraries, so this is
> not a viable distribution plan in general.  It is also possible to have
> libpetsc-ml.a, which the user must link with -lpetsc-ml -lpetsc.  If we
> allow plugin registration before PetscInitialize(), the registration
> function could be given __attribute((constructor)) or use a C++
> constructor.
> 
> So such variants are possible with at most a couple lines of code, but I
> don't think it's necessary for the current purpose.



More information about the Petsc-trilinos-discussion mailing list