**6. Grid Computing approach**

Simulated annealing (SA) is inherently sequential and hence very slow for problems with large search spaces. Several attempts have been made to speed up this process, such as development of special purpose computer architectures (Ram et al., 1996). As an alternative, we propose a Grid deployment of the parallel SA algorithm for constructing CAs, introduced in the previous section. In order to fully understand the Grid implementation developed in this work, this subsection will introduce all the details regarding the Grid Computing Platform used and then, the different execution strategies will be exposed.

#### **6.1 Grid Computing Platform**

The evolution of Grid Middlewares has enabled the deployment of Grid e-Science infrastructures delivering large computational and data storage capabilities. Current infrastructures, such as the one used in this work, EGI, rely on gLite mainly as core middleware supporting several services in some cases. World-wide initiatives such as EGI, aim at linking and sharing components and resources from several European NGIs (National Grid Initiatives).

In the EGI infrastructure, jobs are specified through a job description language (Pacini, 2001) or JDL that defines the main components of a job: executable, input data, output data, arguments and restrictions. The restrictions define the features a resource should provide, and could be used for meta-scheduling or for local scheduling (such as in the case of MPI jobs). Input data could be small or large and job-specific or common to all jobs, which affects the protocols and mechanisms needed. Executables are either compiled or multiplatform codes (scripts, Java, Perl) and output data suffer from similar considerations as input data.

The key resources in the EGI infrastructure are extensively listed in the literature, and can be summarized as:


14 Grid Computing

**<sup>3</sup>** *Mi* ← *GENERATE*(*M*) /\* Perturb current state. \*/ **<sup>4</sup>** Δ*E* ← *E*(*Mi*) − *E*(*M*) /\* Evaluate cost function. \*/ **<sup>5</sup>** *x* ← *random* /\* Range [0,1). \*/

**<sup>7</sup>** *M* ← *Mi* /\* Accept new state. \*/

Simulated annealing (SA) is inherently sequential and hence very slow for problems with large search spaces. Several attempts have been made to speed up this process, such as development of special purpose computer architectures (Ram et al., 1996). As an alternative, we propose a Grid deployment of the parallel SA algorithm for constructing CAs, introduced in the previous section. In order to fully understand the Grid implementation developed in this work, this subsection will introduce all the details regarding the Grid Computing Platform

The evolution of Grid Middlewares has enabled the deployment of Grid e-Science infrastructures delivering large computational and data storage capabilities. Current infrastructures, such as the one used in this work, EGI, rely on gLite mainly as core middleware supporting several services in some cases. World-wide initiatives such as EGI, aim at linking and sharing components and resources from several European NGIs (National

In the EGI infrastructure, jobs are specified through a job description language (Pacini, 2001) or JDL that defines the main components of a job: executable, input data, output data, arguments and restrictions. The restrictions define the features a resource should provide, and could be used for meta-scheduling or for local scheduling (such as in the case of MPI jobs). Input data could be small or large and job-specific or common to all jobs, which affects the protocols and mechanisms needed. Executables are either compiled or multiplatform codes (scripts, Java,

The key resources in the EGI infrastructure are extensively listed in the literature, and can be

1. WMS / RB (Workload Management System / Resource Broker): Meta-scheduler that

2. CE (Computing Elements): The access point to a farm of identical computing nodes, which contains the LRMS (Local Resource Management System). The LRMS is responsible for scheduling the jobs submitted to the CE, allocating the execution of a job in one

**Input**: *best*\_*solution*, Temperature (T) and the number of perturbations (L).

*<sup>T</sup>* ) *> x* **then**

used and then, the different execution strategies will be exposed.

Perl) and output data suffer from similar considerations as input data.

coordinates the submission and monitoring of jobs.

**Algorithm 6:** Worker algorithm

**Output**: *best*\_*local*\_*solution*. **<sup>1</sup> annealing\_worker(** *M*, *T*, *L* **)**

**6. Grid Computing approach**

**6.1 Grid Computing Platform**

Grid Initiatives).

summarized as:

**<sup>2</sup> for** *i* ← 1 **to** *L* **do**

**<sup>8</sup> end if <sup>9</sup> end for <sup>10</sup> return** *M*

**<sup>6</sup> if** <sup>Δ</sup>*<sup>E</sup> <* <sup>0</sup> **or** *<sup>e</sup>*(<sup>−</sup> <sup>Δ</sup>*<sup>E</sup>*

(sequential) or more (parallel) computing nodes. In the case that no free computing nodes are available, jobs are queued. Thus, the load of a CE must be considered when estimating the turnaround of a job.


Some of this terms will be referenced along the following sections.
