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.
ESOP paper accepted! Correctness of a fully concurrent Garbage Collector for Actor Languages, by Juliana Franco, Sylvan Clebsch, Sophia Drossopoulou, Jan Vitek and myself has been accepted for ESOP 2018.
November
SAC OOPS paper accepted! OOLONG — An Extensible Concurrent Object Calculus, by my soon-to-finish PhD student Elias Castegren and myself. The OOLONG calculus is a small, extensible calculus fully formalised in Coq. If you want to model stateful object-oriented languages, then OOLONG might be your cup of tea! A link to the finished paper, Coq sources, LaTeX sources, and OTT definitions will appear here soon.
September
OCAP workshop paper accepted: Reference Capabilities for Concurrency & Scalability: an Experience Report, which surveys the work on reference capabilites by my soon-to-finish PhD student Elias Castegren and myself will be presented at the inaugural OCAP: Object-Capability Languages, Systems, and Applications, co-located with SPLASH 2017 in Vancouver.
September
My PhD student Elias Castegren kicked off his “marketing tour” — looking for a PostDoc position as he is due to finish in the next few months. Here he is giving a talk at the Royal Institute of Technology.
</a>
Elias' research interests are programming languages, compilers, type systems, concurrent and parallel programming, object-oriented programming, functional programming and CS education. He is the number one committer (out of 6 core committers) to the Encore programming language, which is implemented in Haskell and C.
August
SPLASH-E paper accepted! Right on time for (as in same day of) the start of my big course on Imperative and Object-Oriented Programming Methodology, the paper on the design of this course (co-authored with Elias Castegren, who is the head TA for this course for several years) was accepted for SPLASH-E. If you are a student on this course, you should read the paper to understand the course's design! As soon as the paper is ready, it will be linked here.
August
OOPSLA paper on garbage collection accepted: Orca: Leveraging Types and Messaging for Fully Concurrent GC, joint with Sylvan Clebsch (Microsoft Research Cambridge), Juliana Franco and Sophia Drossopoulou (Imperial College), Albert Mingkun Yang (Uppsala University — my PhD student) and Jan Vitek (Northeastern). This paper describes the ORCA GC protocol that is used in Pony and Encore, and explains ORCA's implementation in the Pony run-time.
August
NOOL 2017 has a CFP out! NOOL is a workshop for researchers and developers of new object-oriented languages that is co-located with OOPSLA.
July
I will be serving on the Programme Committee for PLDI -- Programming Languages Design and Implementation in 2018. PLDI is the premier forum in the field of programming languages and programming systems research, covering the areas of design, implementation, theory, applications, and performance. The acceptance rate of PLDI 2017 was 14,9% (47/314).
July
I will be serving on the Programme Committee for OOPSLA -- Object-Oriented Programming, Systems, Languages and Applications at SPLASH in 2018. OOPSLA seeks outstanding contributions on all aspects of programming languages and software engineering. Accepted papers will appear in Proceedings of the ACM on Programming Languages (PACMPL), a Gold Open Access journal. The acceptance rate of OOPSLA 2016 was 25,6% (52/203).
July
Onward! paper accepted: Juliana's paper (joint with myself, Sophia Drossopoulou, Susan Eisenbach and Martin Hagelin) You Can Have it All: Abstraction and Good Cache Performance has been accepted to Onward!.
June
During the AITO General Assembly Meeting held during ECOOP 2017, I was elected onto the AITO Executive Board as vice president. This means that I will be more involved in the organisation of future ECOOPs (I organised ECOOP 2014 in Uppsala). ECOOP 2017 was a great conference with many great talks, good networking, and a lot of excellent student activities, including mentoring breakfasts and a summer school. Please encourage your students to go to ECOOP 2018 in Amsterdam!
Next issue of ACM XDRS will feature a gender equality event co-organised by Albert (my PhD student) and Kiko (whom I co-advice with Dave Clarke). The event was organised by the local ACM-W chapter in Uppsala where Kiko is co-chair and Albert is secretary and treasurer. Hats off to all organisers for making this happen!
The event brought experts from the IT industry, who were paired with a group of 3 to 4 students, and worked together for a day in a project. By signing up female experts, students experience (first hand) that females working in IT can also be leaders, challenging the idea that only men can be leaders and making a statement female role models exists.
I am happy for whatever little inching in the right direction. When I was running advanced education for a big, international telecommunications company, we talked a lot about diversity in the work-place. In these classes I ran into “lots” of (%-age-wise) women who had trouble not being “promoted out of” the programming jobs they loved because it was just assumed that they, as women, would prefer to work in communication-oriented roles, like non-technical project management etc., rather than hack.
I am happy to announce that I have been voted the teacher of the year 2017 by the currently enrolled CS bachelor and IT Civil Engineering students. The motivation is (translated from Swedish):
For teaching the subject in a pedagogic way, and with great dedication, the prize goes to Tobias Wrigstad. As a teacher, he listens to student criticism and feedback. The teacher has a good standing with the students, uses an activating means of teaching, and most importantly is passionate about his subject.
Here are pictures of me accepting the prize together with Elias, my head TA on the IOOPM course, and some of the TAs of the course installation of 2016.