Mankind is developing a world where technology is both becoming an essential part of everyday life, and increasingly complex to comprehend. We are in effect delegating a large part of the responsibility for our continued existence to systems that we understand less and less as a society. This responsibility dilution comes with incredible risks at many levels: health, social cohesion, politics, economy; and we must thus fight thoroughly against it.
Part of the solution is political: regulation and oversight over technology development; for this, politicians need a supporting and neutral academic elite that is well-trained to understand the consequences of complexity increases. My desired contribution to this vision is to actively train technology students in thinking about the “big picture” around technological complexity and develop reusable teaching materials to this effect.
The other part is scientific and educational: we must make the complexity amenable to human understanding and control somehow, either by reducing the complexity or developing powerful cognitive models to capture and oversee complex systems and the responsibility frameworks around them. My desired contribution to this vision is to actively study how technical and non-technical audiences develop cognitive models for complex systems and human interactions around them, and exploit this knowledge to build responsibility-preserving abstractions in technical systems.
Research on extra-functional application behavior:
- iDAPT (2015-2019): Extra-functional application management. In partnership with ASML. (Note: I am no longer following this project.)
- ReNeXT (2015-2016): Dynamic modeling of extra-functional behavior on reconfigurable platforms. In partnership with Thales Netherlands.
- ADVANCE (2009-2011): Asynchronous and Dynamic Virtualisation through performance ANalysis to support Concurrency Engineering.
Architecture and embedded system research:
- MGSim (2007-, ongoing): Multi-core simulation for architecture research and education.
- SACCADE (2013-, ongoing): make the Single-Assignment C language usable for research, development, testing and evaluation of embedded systems.
- Microgrids (2006-, ongoing): combining dataflow scheduling, hardware multithreading and hardware concurrency management to drive many-core chips efficiently.
- Apple-CORE (2008-2011): Architecture Paradigms and Programming Languages for Efficient programming of multiple Cores.
- System Virtualization Platform (2009-, ongoing, dormant): operating system components and low-level languages to program many-core systems.
- Structured Commons / “Academia 2.0”: New methods and protocols to organize the dissemination of scientific knowledge in the Internet era.
- On the realizability of hardware microthreading: dissertation on the implementation of hardware microthreading and associated programming tools.