One of our principal research question is how to reconcile compile-time and run-time resource management.
Dealing with resource constraints (limited registers, time bounds, lack of memory bandwidth or network bandwidth, congestion, restrictions on parallel execution, etc.) is a central problem of any effort that develops a realistic software system. The solutions established by computer science research fall into two categories: methods that rely on static information (which is obtained through analysis) and methods that exploit dynamic information (which is obtained during system execution).
Use of static information enables the system to make decision off-line or ahead of time (and costs associated with analysis and decision making are paid for only once). Dynamic methods may be able to exploit information that can never be obtained statically but raise new issues: What information should be gathered at run-time, and how can we ensure that the cost of information collection is less than the benefits that can be realized?
Compiling modern object-oriented languages like Java that support threads creates many interesting questions. We investigate compilation for real-time environments and the interface between the compiler and the runtime system.
Self-organized mobile information and communication systems (MICS) is the topic of a new inter-institutional research center funded by the Swiss National Science Foundation. In collaboration with the Information and Communication Systems Research Group at ETH Zürich, we investigate a suitable software architecture that supports self-organization.
The HESSI Experimental Data Center (HEDC) is a scientific data warehouse. HEDC is a joint project with the Institute of Astronomy and the Information and Communication Systems Research Group at ETH Zürich. A scientific data warehouse requires a software organization that meets the conflicting demands of scalability, performance, and support for software evolution.
The adaptive TreadMarks project investigates how to provide a software shared memory system using a time-varying number of workstations.