Functional Programming with Serialized DataInvited Talk
In many high-level programming language implementations, the runtime system dictates an object layout that the compiler must stick to. When a human programmer wants to optimize a program, however, one of their primary levers of performance is changing data representation. For example, an HPC programmer knows how to pack a regular tree into a byte array for more efficient access. Unfortunately, this is error-prone, making it an undesirable way to achieve performance optimization at the expense of safety and readability. Furthermore, whenever a program receives data from the network or disk, rigid insistence on a particular heap layout causes an impedance mismatch we know as deserialization. Data represented in memory has pointers and arbitrary, sparse layout, while data on disk is packed contiguously, so data must be transformed from one form to another and back. Programming with serialized data is a technique for unifying the in-memory and on-disk representations of data, where the serialized form is used for both. This technique allows data processing programs to skip the deserialization/reserialization steps by operating directly on the data in its serialized form, and it also represents a principled approach to optimizing programs by compacting data representations and therefore increasing locality and minimizing indirection.
Fri 28 AugDisplayed time zone: Eastern Time (US & Canada) change
14:00 - 15:30 | |||
14:00 30mTalk | Functional Programming with Serialized DataInvited Talk ML Family Michael Vollmer University of Kent | ||
14:30 30mTalk | Language Support for Property-Based TestingInvited Talk ML Family Harrison Goldstein University at Buffalo, SUNY | ||