An optimization task with two optimizers is realized by starting local sub-optimization runs from a master optimizer, very fast simulated re-annealing in our case. With the following implications, both optimizers directly interact with SIESTA via the above presented LISP protocol.
Fig. 5.23 depicts the implemented mechanism that is used to couple the two optimizers. The coupling was realized without changing the local optimizer or the optimizer protocol itself. Instead, a mechanism similar to a UNIX pipe was used. The framework starts the master optimizer. After the initial number of evaluations are performed the local optimizer is started as a sub-optimization task directly by the master as a separate process without intervention of the framework. Standard input and output between the two processes are redirected to a bidirectional pipe. The result from the local optimizer are analyzed and the best target is kept as a reference. Additionally, all received data with the notable exception of the optimization result indication, are forwarded to the master. All requests from the optimizer are passed on to the framework without any exception Fig. 5.23 depicts this mechanism.