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:

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

Figure 5.3: Calibration of a mobility model with the SIESTA framework.
\begin{figure}\centering\psfig{file=pics/siesta-calibration, width=0.85\linewidth} %%

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 $ I_D-V_D$ or $ I_D-V_G$ 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 $ 4$ sub-models.

Figure 5.4: Model architecture of SIESTA.
\begin{figure}\centering\psfig{file=pics/siesta, width=0.85\linewidth} \end{figure}

The request that comes from the optimizer is directly fed as input to the models named: DEV-$ 600$, DEV-$ 250$, and DEV-$ 180$. 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 SIESTA framework.

Figure 5.5: Screen shot of the QUEUE-MANAGER module of the framework SIESTA.
\begin{figure}\centering\psfig{file=pics/qman, width=0.85\linewidth} \end{figure}

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.