Welcome to the GateLab system !

This work is co-funded by the French national research agency (ANR), hGATE project under contract number ANR-09-COSI-004-01.

What is the GateLab ?

GateLab This system allows you to submit your Gate simulations on a large computing infrastructure from a simple web page. The main features are :

  • Upload your main macro file from the web browser, the system will detect and upload all additional files required.
  • Launch your Gate simulation in a few clicks, it will be executed with tens of computers in parallel (hundreds in certain cases) on the European Grid Infrastructure (EGI).
  • monitor your simulation while sipping a coffee.
  • Once terminated, results are automatically merged and ready for download on your workstation.

Even if these promises are exciting, there are of course some limitations. First and more importantly, remember that this system is a research project and not a commercial service. It must be considered as in "beta mode" and subject to changes or disfunctions at any time. You will find more detailed information on the documentation page.

Please also read the Terms of use

If you use it, refer to the following publication:

S. Camarasu-Pop, T. Glatard, J. T. Mościcki, H. Benoit-Cattin, and D. Sarrut, “Dynamic Partitioning of GATE Monte-Carlo Simulations on EGEE,” Journal of Grid Computing, vol. 8, no. 2, pp. 241-259, Mar. 2010. doi (available in pdf).

How to start ?

Go to the following page and ask for a login :

Read this before

Currently, only some types of simulations can be submitted with the GateLab. Remember that a simulation is composed of a (generally large) number of Events (primary particles) that are sequentially tracked. Some simulations also required several Runs, that are "group" of Events : the geometry is rebuild between each Run. Generally, several Runs are used when time is taken into account in the simulation. When a simulation requires more than one Run, it is a little bit less easy to be paralelized.

To determine if your simulation can be submitted, three cases can be determined :

  • Case 1. Your simulation contains only one Run and all Events are strictly equivalent, no matter of the order in which there are simulated. Typical examples are in the field of Radiation Therapy.
  • Case 2a. Your simulation contains only one Run and the order of Events is important, requiring timing information. Typical examples are PET/SPECT simulations with TimeSlice = TimeStop-TimeStart (only one Run).
  • Case 2b. Your simulation contains several Run and the order of Events is important, requiring timing information. Typical examples are SPECT simulations, but not PET simulation because, in that cases, coincidences will be biased. For typical PET simulation with several Runs, the proper way to split simulation should be to divide the TotalTime into different parts (for a dynamic scan : i frames with Ni processors per frame), each of them being an independent job. This is currently not implemented in the GateLab (mostly because it requires special care when a job fails), but we are working on it. Other examples of simulations falling in that case are Radiation Therapy simulations with motion (IMRT).
  • Case 3. all other cases.

- in case 1 : use "dynamic mode", this is the most efficient situation.
- in case 2a or 2b : use "static mode"
- in case 3 : you cannot (yet) use GateLab otherwise your results will be biased.

Remember to always use the "setTotalNumberOfPrimaries" macro command, which is the number of the events for PET/SPECT simulations. Just add this command before the commands of setting the TimeSlice, TimeStart and TimeStop.

/gate/application/setTotalNumberOfPrimaries 10000000
/gate/application/setTimeSlice 1 s
/gate/application/setTimeStart 0 s
/gate/application/setTimeStop 10 s


Login screen

Start "new simulation" or "monitor simulation"

Give a name to your new simulation

Load the main mac file

Monitor simulations (1)

Monitor simulations (2)

Analyse computation

Retrieve the output of the simulation from the Grid to the GateLab, then save to your disk.