Re: [petsc-dev] [petsc-users] SAMG support
On Wed, Apr 27, 2016 at 5:51 AM, Lisandro Dalcin <[email protected]> wrote:
On 27 April 2016 at 11:53, Patrick Sanan <[email protected]> wrote:
includes), and have them add a single registration line after PetscInitialize which makes the new solver usable just as the built-in ones are (via the options database and command line arguments).
Actually, if you build your plugin as a shared library, then you can just
-dll_append pcsupercool.so
and get it registered, no need to modify code.
Note that this is how I organized our class project: https://github.com/jag20/CAAM520SRM and as you can see from the build system, its really easy. Thanks, Matt
I don't know of any packages that actually do this - are there some?
Don't know. But I would argue that many packages currently in PETSc could be reworked as plugins very easily.
Oh! Hold on. We have some support for writing "plugins" in Python, and we dynamically load the Python shared library to bootstrap the Python runtime and then petsc4py. And IMHO, this is quite a bit more complicated that plain C plugins.
Is this a hassle for reasons I haven't thought through fully yet?
The only hassle would be to updating it after new PETSc releases. And BTW, you could keep your code compatible with older PETSc releases with proper processor guards.
A minor issue with dynamically loadable plugins is that using the command line is the only way to configure the package is through the command line. But that's a fair price to pay for not having to ever modify (nor recompile) your code.
The specific interest I have in this is that a student of Olaf's has been working with an interface to (non-MKL) PARDISO which I think could be useful, and I'm also interested in there being an interface to ILUPack.
Go for it. I can help with comments and review.
PS: I'm not 100% sure about the status of dynamic lib loading in PETSc, but I can help with any required refactoring of that machinery to better support plugins.
-- Lisandro Dalcin ============ Research Scientist Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) Extreme Computing Research Center (ECRC) King Abdullah University of Science and Technology (KAUST) http://ecrc.kaust.edu.sa/
4700 King Abdullah University of Science and Technology al-Khawarizmi Bldg (Bldg 1), Office # 0109 Thuwal 23955-6900, Kingdom of Saudi Arabia http://www.kaust.edu.sa
Office Phone: +966 12 808-0459
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
participants (1)
-
Matthew Knepley