Please join us for FP Syd in March, featuring a talk by
Huw Campbell: Destructive Updates - a Stitch in Time
Icicle is a high-level streaming query language, which gives new capabilities to its users, allowing them to combine and fuse hundreds of rich, individual, queries into a combined plan for safe and efficient execution.To ensure speed, we compile all queries to C and convert almost all of our data types into simple, unboxed C types.Maps and arrays in the language, however, compile using the struct of arrays approach when transitioning to C; compiling down to potentially many C arrays of simple types. However, as Icicle Core is a pure language, during lowering the compiler inserts copy operations to arrays before performing any mutations upon them.
This is the story of how we eliminate the overwhelming majority of these copy operations from idiomatic Icicle code by performing destructive updates during operations such as inserting into a map or sorting an array, while maintaining query semantics and reducing run-times by up to 50%.
We also have space for lightning talks again. If you have worked on something cool or read something interesting, take the stage and show us!
As usual,doors open at 6pm for networking and mingling, and the talk will start at 6:45pm. Please RSVP via meetup (https://www.meetup.com/fp-syd/events/306414307/, or contact one of the organisers if you prefer) so we can plan.