Awesome - I wasn't aware of the shared library option, but that indeed makes things even more attractive.
On Wed, Apr 27, 2016 at 1:47 PM, Matthew Knepley <[email protected]> wrote: > 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
