[firedrake] Calling PETSc within PyOP2 kernels
Lawrence Mitchell
lawrence.mitchell at imperial.ac.uk
Thu Nov 12 09:37:17 GMT 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Justin,
On 12/11/15 09:22, Justin Chang wrote:
> Hi Lawrence,
>
> So I had a nice working code where it runs point-wise SNES in
> pyop2, and it ran decently fast. However, with the latest firedrake
> update, it forced me to make a few additional changes to the pyop2
> kernel, namely adding PetcInitialize(....) and PetscFinalize(), and
> my code now runs really slow after I run it after several time
> steps on a Unit Interval of 100 elements.
So you shouldn't have to do this, something is definitely not right here
.
> Attached is the code as well as the supplemental 1D analytical
> expressions and pyop2 reactions kernel. Run the code as "python
> 1D_OS_analytical_ex1.py 100 0 0".
I tried this with firedrake commit 6134b86, PyOP2 commit 64db689 (i.e.
current master for both). And didn't run into this problem. Could it
be that the compiled code from before the update was explicitly linked
(with a baked-in rpath) against a different petsc to the one you have
now? To assuage my fears, can you run
firedrake/scripts/firedrake-clean to clear out the compiled kernel
cache? And then run again without calling PetscInitialize/Finalize
inside your kernel.
Cheers,
Lawrence
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQEcBAEBAgAGBQJWRF3NAAoJECOc1kQ8PEYvOuoIAMSymNuMusrzJOmYAFTnK+gR
EPpuBzj3tCt5QIBSwGFuKgW8+IuWTmT4kY8t0gBfAx6Diw8RrQ6WSot9nKB/xdI2
EUTz9RuoJQBWbzgmvP1mxvnDfT+oulzj5arNEeFdHfxDrtaoKgwWU8PrLznegEGY
e7Z9MJNH3S+DaamYeOF/gXVbNilrCHaKiKaKVsIMc2HYitBdOIwaJliOBTkFGwKC
dnqLn2YCsX8CpPu9939UwxcLnG9BPfyFuEguSodMXVjZKAxLQh6DgIZ25U9F4q80
etmLHaubbgVTZfahMHH/5UxdLYr+ILzXmzikzQzkP20rrvZHPdauYhz5F4pGp4M=
=0WNr
-----END PGP SIGNATURE-----
More information about the firedrake
mailing list