[firedrake] PP14 slides

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Fri Feb 14 10:28:37 GMT 2014


Hi Paul,

comments in line below.  Updated slides attached.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SIAM-PP-2014-02-22.pdf
Type: application/pdf
Size: 463201 bytes
Desc: not available
URL: <http://mailman.ic.ac.uk/pipermail/firedrake/attachments/20140214/e0b441b9/attachment.pdf>
-------------- next part --------------


On 13 Feb 2014, at 20:36, Kelly, Paul H J <p.kelly at imperial.ac.uk> wrote:

> Hi Lawrence
> 
> slide 7 - if you want to show that image it needs to fill the slide.
> 
> (people don't notice if you occasionally turn off the background, the top and bottom bars etc).

Thanks, yes, it looks better bigger.

> slide 8 - consider using blank lines and perhaps even comments, to clarify structure (I hope you will point to lines of code to explain what is going on - so you need the bits separated.
> I like to say that FFC "weaves" the weak form of the PDE with the function space specifications (in the "aspect oriented programming" sense of the word weave).
> This helps clarify that the tool is precise, "do what I say", it doesn't make up any details of what is to be calculated.

I'm not sold on this slide at all.  I don't really have the time to walk through what's going on in detail, so I'm sort of inclined to remove it.

> slide 11 "for each ele" but there is no ele - ah OK....

> slide 11 it's unclear whether "count" is a user-chosen identifier or a PyOP thing to say it's a counter (maybe this even applies to the other variable names).

I've added some sketch variable declarations as well.  But in some sense there's a reason this looks almost like pseudo-code!


> slide 11-12 people often ask why we can't *analyse* the kernels to determine the access descriptors - why do we impose the ugly burden of spelling them out?
> In contrast, the Liszt people require the mesh to be accessed via getters and setters, and they statically analyse the kernel to track them all down - to compute what they call the "stencil of the kernel".  
> This is a different point in the design space with different tradeoffs.  They *still* require access to the mesh to be abstract - ie via getters and setters.  We hide all details of the mesh representation from the kernel - there is no explicit dereferencing of a map/pointer in the kernel.  We say the access descriptors belong to the loop, they say the stencil belongs to the kernel.

I'm uninterested in addressing this up front.  It's a decision we've made.

> Slide 16 - consider merging this with slide 15 so you can point to the picture.

I've reproduced the picture on slide 16 as well as 15.

> Slide 21 "stream bandwidth" - you need words on the slide to clarify that you mean the well-know STREAM benchmark?

I've capitalised and will say things.  I'm unwilling to spell everything out on slides, I'm not writing a paper.

> Slide 22 - how many layers in this experiment?
> (you have 8 threads but show perf only up to 4?)

1 layer (clarified).  I don't think 8 threads really adds anything at this point.

> Slide 23 - the L3 cache bandwidth at 4 threads appears to match the STREAM bandwidth (is this for a well-ordered mesh?)

1. It doesn't.  2. Meaningless I think.

> Slide 25 - *valuable bandwidth* reaches 82% of STREAM.

The figure legend indicates this is valuable bandwidth, I will be saying things

> Is the title right, given the actual content of the talk?


That is the talk title we're advertised with.  I'm happy to consider alternative options.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mailman.ic.ac.uk/pipermail/firedrake/attachments/20140214/e0b441b9/attachment.sig>


More information about the firedrake mailing list