Page History
...
Typically psmon is used for publishing results to realtime plots in the callback: Visualization Tools.
Running in LIVE mode
Here's a sample python script, how you can config datasource to run in live mode:
Code Block | ||||
---|---|---|---|---|
| ||||
# Use environment variable to specify how many attempts,
# the datasource should wait for file reading (1 second wait).
# In this example, we set it to 30 (wait up 30 seconds).
import os
os.environ['PS_SMD_MAX_RETRIES'] = '30'
# Create a datasource with live flag
from psana import DataSource
ds = DataSource(exp='tmoc00118', run=222, dir='/cds/data/psdm/prj/public01/xtc',
live = True,
max_events = 10)
# Looping over your run and events as usual
# You'll see "wait for an event..." message in case
# The file system writing is slower than your analysis
run = next(ds.runs())
for i, evt in enumerate(run.events()):
print(f'got evt={i} ts={evt.timestamp}') |
Note that this script is also available in tests folder in lcls2 repository. You can run the script by:
Code Block |
---|
(ps-4.3.2) psanagpu109 tests $ mpirun -n 3 python livemode.py |
MPI Task Structure
To allow for scaling, many hdf5 files are written, one per "SRV" node. The total number of SRV nodes is defined by the environment variable PS_SRV_NODES (defaults to 0). These many hdf5 files are joined by psana into what appears to be one file using the hdf5 "virtual dataset" feature.
...
Overview
Content Tools