Figure 3
Data workflow in OnDA. Each worker node collects event data from a source, which can be a shared memory server, a file or a network data stream. It then calls the extract_data function, which is imported from the Data Extraction Layer, to recover useful information from the event data (a detector readout, an instrument reading) and makes it available as a class property. The worker then calls the process function, imported from the Processing Layer, to process the information, and stores the results in a Python dictionary called results_dict. This dictionary is then sent to the master node using the MPI framework. Upon receiving the data, the master note calls the collect function, which carries out further processing, and stores what needs to be sent to the GUI in another Python dictionary called collected_data. |