5.2 Optimization Framework
The optimization framework serves as a connection between optimization task,
optimizer, and the available hardware resources and provides the functionality
to drive an optimization task. It supplies the user with a graphical or textual
interface to control several optimization related aspects like:
- Starting/stopping an optimization
- Watching the progress of the error vector
- Watching the progress of the optimized parameters
- Monitoring the load of the computers participating in the optimization
- Changing host parameters like the maximum load (or the CPU speed)
- Adding/removing hosts
- Enabling/disabling hosts
The framework SIESTA [87,88,89,90,91] developed at the Institute for Microelectronics is an integrated
solution that aims at all these tasks. The optimization task is controlled via a
textual description of the problem. SIESTA uses the notion of a model to
partition an optimization problem into smaller parts. Fig. 5.3
Calibration of a mobility model with the SIESTA framework.
depicts an example for a calibration of a mobility model of a device
simulator. The mobility parameters of the model are tuned by the optimizer. The
simulator then computes characteristics of the device like or
curves. A scaled point-wise comparison of the result with measured
curves is then fed back to the optimizer.
A model itself can be comprised of several sub-models. Models have
well defined input- and output ports that serve as connection to other
models. Fig. 5.4 depicts an optimization with sub-models.
Model architecture of SIESTA.
The request that comes from the optimizer is directly fed as input to the models
named: DEV-, DEV-, and DEV-. The output ports
of these models are merged into one large vector (in the MERGE.MOD model)
and fed back to the optimizer.
The main parts of SIESTA
are implemented in LISP, the graphical user interface (GUI) is written in
the language C and based on the
MOTIF widget set. Fig. 5.5 depicts a screen shot of a running
optimization in the
Screen shot of the QUEUE-MANAGER module of the framework
In the top frame of the window the list of hosts is displayed. The color
indicates availability of a certain host. A green host is available for the
execution of a job, a red host is temporarily disabled due to its load being
too high. The lower frame of Fig. 5.5 shows all jobs that are currently in
the queue. Red colored jobs are waiting for a host to become available,
green colored jobs are running on a certain host.