The GRIMD architecture is summarized in figure. The Slave is a windows service running in background with the SYSTEM rights. The service is set up to work in Idle Time with low priority. Once the Slave is on, it attempts to connect to the "Grimd Network", that is a VPN. Once the slave is connected, it sends to the Master information about its state, the IP address, the slave version, and the modules that are already presents. Once the Master received these data, it can choose among three possibilities: it can switch off the slave, when there is a version mismatch. In this case the Slave must be reinstalled. In case the Slave lacks a module that is required for a specific calculation, the Master orders the Slave to download the missed module. Finally, if the Slave is ready for the calculation, the Master sends one of the job presents in the queue. The data are transferred as zip file through HTTP from Master to Slave. The Slave unzips the file to get everything is needed to perform the calculation (macro, structural files and the file execjob.grimd). During the job execution, the Slave notifies the Master about the state of the calculation. After job completion, the Slave uploads the results and updates the Master. This is important to certify that the Slave is up. Otherwise, the job is assigned to another Slave. All the traffic is on VPN using standar protocols (http and tcp) to guarantee high security.

architecture GRIMD

The Slave is a Windows service running in background. The Slave connects to the Master VPN and send its status information to the Master. The GRIMD user interacts with the grid through a web interface.

The Master deploys the calculation to all available Slaves. If necessary, the Slave downloads missing packets and updates. Once the job is completed, the Slave uploads the results on the Master. The Master reduces the results from all Slave and send the Result.out file to the user.