Architecture of the system

The application is able to serve many concurrent user at a time. To ensure sufficient computational resources without extensive investments into hardware we developed a framework for construction of distributed computational environments using a large number of common personal computers connected to the internet (workers). Here we present the idea using 3 OpenShift geras: 1 gear serves the task server and 2 gers power worker nodes.


The framework is based on the client-server architecture, see the Figure. It core components are:

  • Webserver providing web pages with user interface for configuration of tasks - simulation runs of a model.
  • Document-oriented (NoSQL) database suitable for storage of various data in different formats (user data, model data, model inputs and outputs etc.).
  • Task manager for assigning tasks to workers (gears running computational code).
Tasks (simulation runs of the model) are configures by users via web pages. Tasks are stored in a queue implemented using database. Workers repeatedly query the queue for free tasks. If a new task is inserted into the queue, an idle worker is assigned to it. Configuration of the task is sent to the worker over the internet and a simulation run is performed. When the computation is done the worker sends outputs back to the webserver where the owner of the task (user) can view results. If all the workers are busy, an inserted task is queuing until the previously entered tasks are done. Number of available workers, some of their basic properties and particularly their states (IDLE, BUSY, DOWN) can be found in Workers' list.

Since workers communicate over http protocol, they can run without any special need of configuring firewalls etc. This design offers a good scalability and almost seamless extension of computational resources. In the case of a large number of concurrent users, e.g. a group of students in a class, the number of workers can be easily increased just by launching the worker code on computers with Linux, OS X or Windows operating systems connected to the internet. As a side effect we obtain a robust solution where the functionality of the system is not influenced by unavailability or a failure of a subset of workers.

1. Log in as a Guest user

2. Create a new task

3. Configure basic parameters

4. configure source term

5. Configure meteorological conditions

6. Submit task

7. Wait until it is done

8. View results

When the task is done, we can view results by clicking Task details from the drop-down menu activated by pressing . Table with comprehensive review of task. Thera are three tabs:

  • Task information - information on task status, creation and a worker assigned to the task (worker's IP, computation time, etc.)
  • Task initialization - review of the task inputs (basic parameters, source term and meteo)
  • Task results - list of task outputs (list of all evaluated radiological quantities)
On Task results tab are tables with comprehensive list of calculated radiological quantities, which can be visualized as a transparent overlay on Google Maps:

After selecting Show on map from drop-down menu a modal window with vizualization of selected radiological quantity appears:

The system is powered by...