4.5.1 Parallelization Strategy

To shorten the time for a complete optimization run, certain evaluations can be parallelized. For instance, the computation of each single evaluation of a parameter set can be performed within a parallel solver, the evaluations can be executed in parallel, and the optimization algorithm can be parallelized. For simulation tasks which can be executed simultaneously the simulation flow can be split as shown in Figure 4.8. Here, the pre-processing step has to be performed for all following simulation tools. However, the ensuing simulation tools can be started at the same or on different hosts if they have no interdependences as depicted in Figure 4.8.

Figure 4.8: Principle block diagram of an arbitrarily structured simulation tool flow.

For the case that the simulation flow cannot be split into different, independent parts, the simulation flow represents an individual unit with its own input data. The management of the providing the appropriate input data at the right time and collecting the simulation results from the different hosts are is performed from the SEILIB and other modules from SIESTA.
Figure 4.9: Block diagram of parallelization of parameter evaluations.

The SEILIB dispatches every job which is ready with its own input data and submits it with the appropriate data to a free (or not fully loaded) remote host.

Figure 4.9 shows two examples of concurrently executed jobs in a particular simulation cluster. Figure 4.9a shows a typical gradient-based optimization strategy where a single parameter evaluation is followed by a certain number concurrent evaluations which can be the results of the numerical calculation of a gradient with respect to the parameter space. Figure 4.9b shows a fully loaded computational cluster. This scenario is typical for genetic and evolutionary optimization algorithms where each population requires the same large amount of parameter evaluations.

Stefan Holzer 2007-11-19