St Andrews – University of Primorska co-tutelle in Computer Science

The University of St Andrews and Primorska are soon to agree to award a joint degree with the title of Doctor of Philosophy (on condition that the joint PhD study programme in Computer Science will gain accreditation of the Slovenian Quality Assurance Agency for Higher Education). This represents the culmination of many months of effort from Drs Matjaž Kljun, Klen Čopič Pucihar and Professor Aaron Quigley. Aaron and Matjaž first met at the UMAP conference in 2011 in Spain as mentor and mentee in the PhD doctoral program. Since then, Matjaž and Klen who undertook their PhDs in the University of Lancaster have returned to Slovenia to establish and exciting program of HCI research and development in the HICUP lab. In 2017 a program of international support (Slovenian/English) allowed them to invite Aaron to Slovenia for three weeks and this has resulted in a number of join grant submissions and the establishment of this co-tutelle program. We look forward to many years collaborating and we look forward to this new PhD student starting later this year.

VISSOFT 2018 Keynote by Professor Aaron Quigley

Aaron will be a keynote speaker at the IEEE VISSOFT 2018 conference later this year. “The sixth IEEE Working Conference on Software Visualization (VISSOFT 2018) builds upon the success of the previous four editions of VISSOFT, which in turn followed after six editions of the IEEE International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT) and five editions of the ACM Symposium on Software Visualization (SOFTVIS). Software visualization is a broad research area encompassing concepts, methods, tools, and techniques that assist in a range of software engineering and software development activities. Covered aspects include the development and evaluation of approaches for visually analyzing software and software systems, including their structure, execution behaviour, and evolution.”

Mensch-und-Computer 2019 Keynote by Professor Aaron Quigley

Professor Aaron Quigley will be a keynote speaker at the Mensch-und-Computer conference 2019 in Hamburg Germany in September of 2019. This series of symposia takes place each year in different German-speaking countries. This is one of the largest HCI conferences in Europe each year with over 700 delegates from industry and academia. Usability Professionals and Scientists come together in a multi-track program with long papers, short contributions, demos, tutorials and workshops. Submissions are possible in German and English.

Compositional Coinduction with Sized Types – Dr. Andreas Abel

Event details

  • When: 16th February 2018 12:00 - 13:00
  • Where: Cole 1.33b
  • Format: Seminar

Abstract:

Formal languages and automata are taught to every computer science
student.  However, the student will most likely not see the beautiful
coalgebraic foundations, which use coindutive reasoning.

In this talk, I recapitulate how infinite tries can represent formal
languages (sets of strings).  I explain Agda’s coinduction mechanism
based on copatterns and sized types demonstrate that it allows an
elegant representation of the usual language constructions like union,
concatenation, and Kleene star, with the help of Brzozowski
derivatives.

Simplifying ARM concurrency – Prof. Susmit Sarkar

Event details

  • When: 22nd February 2018 12:00 - 13:00
  • Where: Cole 1.33a
  • Format: Talk

ARM has a relaxed memory model, previously specified in informal prose
for ARMv7 and ARMv8. Over time, and partly due to work building formal
semantics for ARM concurrency, it has become clear that some of the
complexity of the model is not justified by the potential benefits. In
particular, the model was originally non-multicopy-atomic: writes could
become visible to some other threads before becoming visible to all —
but this has not been exploited in production implementations, the
corresponding potential hardware optimisations are thought to have
insufficient benefits in the ARM context, and it gives rise to subtle
complications when combined with other ARMv8 features. The ARMv8
architecture has therefore been revised: it now has a multicopy-atomic
model. It has also been simplified in other respects, including more
straightforward notions of dependency, and the architecture now includes
a formal concurrency model.

This is work presented in POPL this year. I will also present some of
the background and context on relaxed memory which is absent from the
necessarily compressed talk format of POPL.

DLS: Functional Foundations for Operating Systems

Event details

  • When: 13th February 2018 09:30 - 15:15
  • Where: Byre Theatre
  • Series: Systems Seminars Series
  • Format: Distinguished lecture

Biography: Dr. Anil Madhavapeddy is a University Lecturer at the Cambridge Computer Laboratory, and a Fellow of Pembroke College where he is Director of Studies for Computer Science. He has worked in industry (NetApp, Citrix, Intel), academia (Cambridge, Imperial, UCLA) and startups (XenSource, Unikernel Systems, Docker) over the past two decades. At Cambridge, he directs the OCaml Labs research group which delves into the intersection of functional programming and systems, and is a maintainer on many open source projects such as OpenBSD, OCaml, Xen and Docker.

Timetable

9:30: Introduction by Professor Saleem Bhatti
9:35: Lecture 1
10:35: Break with tea and coffee
11:15: Lecture 2
12:15: Lunch (not provided)
14:00: Lecture 3
15:00: Close by Professor Simon Dobson

Live Feed

Available here

Lecture 1: Rebuilding Operating Systems with Functional Principles

The software stacks that we deploy across computing devices in the world are based on shaky foundations. Millions of lines of C code crammed into monolithic operating system kernels, mixed with layers of scheduling logic, wrapped in a hypervisor, and served with a dose of nominal security checking on the side. In this talk, I will describe an alternative approach to constructing reliable, specialised systems with a familiar developer experience. We will use modular functional programming to build several services such as a secure web server that have no reliance on conventional operating systems, and explain how to express their logic in a high level, functional fashion. By the end of it, everyone in the audience should be able to build their own so-called unikernels!

Lecture 2: The First Billion Real Deployments of Unikernels

Unikernels offer a path to a more sane basis for driving applications on hardware, but will they ever be adopted for real? For the past fifteen years, an intrepid group of adventurers have been developing the MirageOS application stack in the OCaml programming language. Along the way, it has been deployed in many unusual industrial situations that I will describe in this talk, starting with the Docker container stack, then moving onto the Xen hypervisor that drives billions of servers worldwide. I will explain the challenges of using functional programming in industry, but also the rewards of seeing successful deployments quietly working in mission-critical areas of systems software.

Lecture 3: Programming the Next Trillion Embedded Devices

The unikernel approach of compiling highly specialised applications from high-level source code is perfectly suited to programming the trillions of embedded devices that are making their way around the world. However, this raises new challenges from a programming language perspective: how can we run on a spectrum of devices from the very tiny (with just kilobytes of RAM) to specialised hardware? I will describe the new frontier of functional metaprogramming (programs which generate more programs) that we are using to compile a single application to many heterogenous devices, and a Git-like model to coordinate across thousands of nodes. I will conclude with by motivating the need for a next-generation operating system to power new exciting applications such as augmented and virtual reality in our situated environments, and remove the need for constant centralised coordination via the Internet.

Dr. Vladimir Janjic – Efficient Dynamic Mapping of Parallel Applications to NUMA Architectures by Reinforcement Learning

Event details

  • When: 7th December 2017 12:00 - 12:00
  • Where: Honey 103 - GFB
  • Format: Talk

Title: Efficient Dynamic Mapping of Parallel Applications to NUMA Architectures by Reinforcement Learning

 

Abstract: We present a dynamic framework for mapping threads and data of parallel applications to computational cores/memory nodes of parallel non-uniform memory architecture (NUMA) systems. We use a feedback-based mechanism where the performance of each thread is collected and used to drive the reinforcement-learning policy of assigning affinities of threads/data to CPU cores/memory nodes. The proposed framework can address different optimisation criteria, such as maximum processing speed and minimum speed variance. We demonstrate that we can achieve an improvement of 12% in execution time compared to the default Linux operating system scheduling/mapping of threads under varying availability of resources (e.g. when multiple applications are running on the same system).

“Sensing and topology: some ideas by other people, and an early experiment” by Simon Dobson

Event details

  • When: 30th November 2017 13:00 - 14:00
  • Where: Cole 1.33a
  • Series: Systems Seminars Series
  • Format: Seminar

Abstract
The core problem in many sensing applications is that we’re trying to
infer high-resolution information from low-resolution observations —
and keep our trust in this information as the sensors degrade. How can
we do this in a principled way? There’s an emerging body of work on
using topology to manage both sensing and analytics, and in this talk I
try to get a handle on how this might work for some of the problems
we’re interested in. I will present an experiment we did to explore
these ideas, which highlights some fascinating problems.