Hi Lawrence,

thanks, I adapted my code to make sure it only disables the COFFEE optimisation in the LMA assembly (I also had to change it in one or two other places). At the moment the banded matrix construction is part of the setup phase, so I don’t really care if it is a bit slower.

I just subscribed to the github issue, so will look out for updates.

Cheers,

Eike

--

Dr Eike Hermann Mueller
Research Associate (PostDoc)

Department of Mathematical Sciences
University of Bath
Bath BA2 7AY, United Kingdom

+44 1225 38 5803
e.mueller@bath.ac.uk
http://people.bath.ac.uk/em459/

On 6 Jan 2015, at 10:47, Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk> wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 06/01/15 08:52, Eike Mueller wrote:
Hi Lawrence,

thanks for the explanation, so my understanding is that in general
PyOP2 is not aware of the COFFEE optimisation, and the wrapper code
that is generated in my PyOP2 parloop can’t handle the padding.

Yes, that's right.  You can follow this issue
https://github.com/coneoproject/COFFEE/issues/14 to see if anything
will change.  I hope so, since it's not a very nice model.

Since I call a PyOP2 parloop directly, I don’t have any control
over the wrapper code and at the moment it sounds like the only
thing I can do is switch off the COFFEE optimisation (which, I
suppose, has implications everwhere in the code, so I really
shouldn’t do this).

You can do the following in build_lma:

def build_lma(...):
   parameters["coffee"]["O2"] = False
   existing_code
   parameters["coffee"]["O2"] = True


That way the optimisations are only switched off for that one section.

Isn’t then there a problem with all PyOP2 parloops, and are you
going to do something about this?

So the problem is that you're doing something that isn't explicitly
supported by the PyOP2 data model: using a Kernel designed for
assembling into a Mat to assemble into a Dat.  It happens to work in
some cases.

I think it is probably useful to properly support a "build_lma_matrix"
style abstraction, but I haven't thought properly about how to do it
right.

Lawrence
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with undefined - http://www.enigmail.net/

iQEcBAEBAgAGBQJUq68hAAoJECOc1kQ8PEYvxYsH/RyIE4fr3WKapkstsmWckEZX
MzGN+C2Zl+oYp4VYDDqb8WtjNoVDl0CzqyAeywLDIUOCktFYD/HFLIcE8q3eSVIA
sAAo/Lt6g0rqBaR6cFyqLWSC4DIcAJAYdEKFfHsOxRxJY1sSzOWMhdl6i35FjMpg
nTZtUMWZd0gXeLXr44FW2aaHbGlJzgjFrlrLx21kXpt1B+ZM5jl2kDJ9N7gU+l8b
GUQsDh/jEuOYKP9lKmLgGktIHTEBh7BTPK2jv36iSqZ2jJ7OExAszAympGPkyTd1
bYcaFXwKQ8IWjbvYfNdQLvOYgbxtGoQuFg5V34q4WOkJ7yb+QRdlyl0Jj/Som4U=
=CFSf
-----END PGP SIGNATURE-----

_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake