The data pipeline from underlying data repository to data visualization is parallelized where practical. GUI rendering is bound to a single GUI thread, so as much processing as possible occurs on background threads.
In the Panopticon Designer (Desktop), separate threads are utilized for every streaming data connection and its associated data processing. Batch polled data sources utilize a collection of data loading threads which is specified in Tools > Options > Data Load Threads.
Calculations, transformations and aggregation for a particular data request are typically performed on a single thread. Task switching, and data transfer across memory is minimized wherever possible to maximize performance.
The server operates in a similar manner with incoming data requests paralleled where possible while minimizing data transfer.