Main research activities
-
Unmanned vehicles
- Programming model and runtime support for applications that engage several and possibly heterogeneous autonomous robotic vehicles at the same time.
- Mechanisms for tolerating the failures of the central mission controller.
- Simulation environment for testing system-software and mission logic with multiple virtual unmanned aerial vehicles which can also communicate with each other over a simulated WiFi network.
-
Wireless sensor networks
- Programming model, middleware and end-user model/support for opportunistic pervasive computing applications on top of wireless sensor and actuator networks in the home domain.
- Over-the-air programming and management of wireless sensor network infrastructures.
- Post-deployment in-situ testing of wireless sensor networks based on virtual sensors.
-
Computing/sensing with personal/wearable devices
- Mechanisms for a personal computing system that can be composed in an ad-hoc fashion, by bringing together embedded wearable devices that communicate over short-range radio.
- Distributed file system for a wireless personal area network of storage-enabled devices, with automatic annotation of files using opportunistically collected context information, and transparent file distribution and replication within the PAN, including data backup / pre-fetching on/from a reliable server over the Internet.
- Crowdsensing middleware for mobile personal devices, framework for flexible plug-in privacy mechanisms.
-
Reconfigurable/heterogeneous systems
- System-level support for the runtime reconfiguration of an FPGA-based SoC and embedded operating system that runs on top of it, in order to add/remove application-specific hardware accelerators, on demand.
- Runtime support for data-flow and pipeline computations, using softcore CPUs and/or reconfigurable connections between them, with dynamic load balancing.
- Binary translation methods for allowing threads to migrate between cores sharing the same basic ISA but support different special instructions.
-
Energy-efficient computing
- Programming model and runtime support for applications that can tolerate errors, allowing less significant tasks to be dropped, executed approximately or on potentially unreliable low-power hardware.
- Reducing the power consumption and/or increasing the performance of computations by operating the CPU at extended margins (undervolting or overclocking beyond nominal settings).
- Fault-tolerance mechanisms and policies at the hypervisor level to support the robust execution of application VMs at extended margins.
-
Replica/agent placement and migration
- Algorithms for the placement and migration of data replicas in a distributed system, with the objective of minimizing the network traffic caused by client requests and data movement.
- Algorithms for the placement and live migration of mobile agents in wireless sensor and actuator networks, with the objective of minimizing the wireless network traffic caused by application-level messaging and agent movement.
- Algorithms for the migration of VMs and services in cloud environments.
-
Scientific network computing
- Systems that enable the publishing, discovery, access and invocation of scientific data and programs (models) over the Internet, through the systematic use of suitable metadata.
- Runtime support for long-running meta-computations that involve several scientific computing programs hosted at different institutions, using RPCs and mobile agent technology.
-
Market-based resource/task allocation
- Use of market-based mechanisms (continuous double auctions) for the atomic allocation of resource bundles, like bandwidth and CPU time.
- Framework that supports the submission, distribution, execution and checkpointing of parallel computations on PCs offered by people voluntarily, using a market-based allocation of tasks to available computers.
-
PhD
- Developed the Concurrent Oberon System, a small operating system that is an extension of the original Oberon System of Profs. Wirth and Gutknecht, with support for lightweight threads and responsive networking. The hardware platform was a custom workstation (Ceres computer) built at ETHZ. On top of this system, developed a compact framework for distributed programming based on the type-safe message passing between active objects.