On November 26th, together with Per Stenström (Chalmers) and Sverker Jansson (Rise), I'm organising the 12th Multicore Day as part of the SICS software week. The year's line-up promises great insights into the future of computer hardware, and computing:
Half Off GPU Computing: Efficient Virtualization and Coherence Techniques for GPUs, Murali Annavaram, University of Southern California
Quantum Computers and Quantum Software, Harry Buhrman, Univesity of Amsterdam
Emerging Trends in Neuromorphic Hardware Systems, Nasim Farahini, Qamcom Research & Technology
Is it Time for RISC and CISC to Die?, Aaron Smith, Microsoft and University of Edinburgh
Mr.Wolf: A RISC-V Parallel Ultra Low Power SoC for IoT Edge Processing, David Rossi, University of Bologna
Trends in High-Performance Memory Systems, Per Stenström, Chalmers University of Technology
Green Cache: Efficient Pointer-Based Multicore Caches, Erik Hagersten, Uppsala University
Hope to see you there!
October
I am giving a keynote presentation: Concurrency vs. Parallelism in Encore (...and Types)</a>, at AGERE!, Monday November 5 8:45-10:00, co-located with SPLASH 2018.
Abstract:
Parallelism warrants concurrency, but more often that not, the concepts are at odds with each other. Typical concurrent programming deals with coordinating related events that execute asynchronously. Typical concurrent programs push control closer to the producers and consumers of related events. Parallel programming on the other hand often thrives on centralised control – on the ability to determine that a certain task can be partitioned and work distributed across multiple cores. How to best support parallelism in actor programs is not clear. Do we use internal parallelism encapsulated inside an actor to increase the throughput of a single message, or do we employ parallelism to process multiple messages to the same actor in parallel, in the hope of reducing latency?
For the last few years, the Encore actor language has served as a playground for exploring how to support – efficiently and safely – both concurrency and parallelism in actor languages. In this talk I will report on our experiences, and how we leverage types across all solutions.
AGERE paper accepted: Attached and Detached Closures in Actors</a>, by the (past and present) core Encore team: Elias Castegren, Dave Clarke, Kiko Fernandez-Reyes, Albert Mingkun Yang and myself.</br>
This work investigates closures and capturing of state in actor programs, and in particular how this is handled in the Encore programming language.
August
Onward! paper accepted: Cflat: A New Modular Approach to Implementing Efficient and Tunable Collections.</a>, by Stephan Brandauer, Elias Castegren and myself</br>
The paper explores a new way to implement data structures which untangles representation from "business logic", which allows intresting ways of tuning data structures using different storage back-ends that match different usage scenarios. A key result is a small regex-like language for expressing an abstract iterator that is used for front-end implementation of a data structure while keeping it combinable with any storage back-end.
July
July
JLAMP journal paper accepted: Bestow and Atomic: Concurrent Programming using Isolation, Delegation and Grouping, by Elias Castegren, Joel Wallin and myself has been accepted to the Journal of Logical and Algebraic Methods in Programming.
The paper explores different means to achieve effective actor isolation -- by controlling sharing of mutable state, or by controlling who carries out operations on mutable state, regardless of where they are triggered. It also explores the meaning of atomicity in the context of actors and how to develop concurrency abstractions for actors we well as threads and locks. An open preprint version will be uploaded to arXiv shortly.
Our paper Safely Abstracting Memory Layouts was accepted to FTfJP. The paper, by Juliana Franco, Alexandros Tasos, Sophia Drossopoulou, myself and Susan Eisenbach, formalises parts of our previous (and on-going) work on SHAPES a programming language extension for enabling memory optimisation for managed languages.
June
Work-in-progress paper Extending SHAPES for SIMD Architectures was accepted to ICOOOLPS. The paper, by Alexandros Tasos, Juliana Franco, myself, Sophia Drossopoulou and Susan Eisenbach, builds on our previous (and on-going) work on SHAPES a programming language extension for enabling memory optimisation for managed languages.
May
I have been appointed “distinguished university teacher” by the university commission for (wait for it) distinguished university teachers. This is “a career step and a distinguished title for extra-skilled teachers at Uppsala University”.
May
Beatrice's paper Support for Parallel Programming With Arrays in Kappa with Elias and myself has been accepted for ARRAY 2018.
For a few months, I have been collaborating with Oracle (together with Albert Yang, my PhD student) on memory management on the JVM. As a side-effect of this collaboration, Oracle is offering master thesis subjects supervised by JVM engineers at their Stockholm Offices. Uppsala students interested in these topics should contact me directly.