Contrary to compile-time solutions, system level optimization can
maximize application performance in the face of growing
hardware diversity. Because system-level automated (or, self-)
optimization is rare in practice, we approach it conservatively by
attaching to the Streamline data- and transport planes a control
system that is both
demonstrably
utilitarian
and
fully
comprehensible.
In application tailoring,
we distinguish between optimization itself, automation of this process
and execution of the chosen solution in a real system.
- Optimization (6.2Optimization)
- is the basis for
high throughput on ranges of hard- and software.
Streamline applications are pipelines with
competing candidate streams and filters.
Streamline enables selection through filter name reification,
buffer specialization and - stacking and
graph substitution.
- Automation (6.3Automation)
- supplants tedious manual system administration.
Streamline computes a network flow program that incorporates
all application choice and relevant system features
(e.g., cache layout)
and that
evaluates all possible
configurations
in tens of milliseconds to demonstrate practicality of online
quantitative optimization.
- Execution (6.4Control System)
- builds an application that implements the selected configuration.
Streamline extends basic resource discovery and pipeline construction
with transactions for fault tolerance, graph sharing for
increased performance and just-in-time compilation and loading of filters for embedded
operation and further increased performance.
- Fine-grained Access Control (6.5Fine-grained Access Control)
- safely grants access to kernel and devices to untrusted users.
Streamline reuses Unix file permission where possible and supplements
these with safe languages and mandatory stream sanitization.
Besides Unix-type isolation, fine grained permissions enable trading
security for throughput on a case-by-case basis.
false
and analyzes which will, given a set of design decisions, consistently
select the best fit at the smallest possible cost. These two sections
form the core exposition on optimization automation. They are - by
design - ignorant,
however, of the practical issues concerning application to a specific
problem. Section 6.3Automation constructs a model
of I/O application tailoring in Streamline, transforms the intuitive
model in one suitable for automated logic and explains how this
logic interacts with its ecosystem through sensors and actuators.
willem
2010-02-03