karabo - cern · karabo: the european xfel software framework karabo will be used at the european...

78
Burkhard Heisen October 11, ICALEPCS 2013 Karabo An integrated software framework combining control, data management, and scientific computing tasks

Upload: others

Post on 24-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Burkhard Heisen

October 11, ICALEPCS 2013

Karabo

An integrated software framework combining control, data management, and scientific

computing tasks

Presenter
Presentation Notes
How to edit the title slide Upper area: Title of your talk, max. 2 rows of the defined size (55 pt) Lower area (subtitle): Conference/meeting/workshop, location, date, � your name and affiliation, � max. 4 rows of the defined size (32 pt) Change the partner logos or add others in the last row.
Page 2: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Karabo will be used at the European XFEL 2

Burkhard Heisen (WP76)

Hamburg Germany

Data rate (10 GB/s/2d-detector)

Bunch pattern (4.5 MHz pulses @ 10Hz)

100 ms

Page 3: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Functional requirements 3

Burkhard Heisen (WP76)

DAQ data readout online processing quality monitoring (vetoing)

SC processing pipelines distributed and GPU

computing specific algorithms

(e.g. reconstruction)

Control drive hardware and complex experiments monitor variables & trigger alarms

DM storage of experiment & control data data access, authentication authorization etc.

setup computation & show scientific results

allow some control & show hardware status

show online data whilst running

A typical use case:

Accelerator Undulator Beam Transport

DM SC

Control DAQ

Tight integration of applications

Presenter
Presentation Notes
In order to understand what software we need image a prospective user wanting to conduct an experiment at XFEL in 2015! 300 images per train = 1.000.000 images after 5 min 30 s 512 image per train = 1.000.000 images after 3 min 15 s ~ 4 TB dataset Tuning means: Visualize whether any sample get hit. Re-configure injector. Start, stop acquisition etc… Starting experiment means: Get detector, injector etc. ready to go (control) Prepare storage system for sinking data with 10 GB/s
Page 4: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

What is Karabo? - Lets draw an analogy 4

Burkhard Heisen (WP76)

Karabo devices

Karabo framework Karabo device-server running devices

Page 5: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

What is Karabo? - Lets draw an analogy 5

Burkhard Heisen (WP76)

Karabo devices

Karabo framework Karabo device-server running devices

Page 6: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

What is Karabo? - Lets draw an analogy 6

Burkhard Heisen (WP76)

Karabo devices

Karabo framework Karabo device-server running devices

Karabo central services (archive, database)

Page 7: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Essential components 7

Burkhard Heisen (WP76)

HV Pump

Simulate

Store

Cali- brate1

Cali- brate2

Load

Diode

Logger

RDB

Disk Storage

GUI Server

GUI(s)

CLI(s)

Camera

Device-Server Application

Message Broker

Device Instance

Device Sub

Control

Page 8: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Essential components 8

Burkhard Heisen (WP76)

HV Pump

Simulate

Store

Cali- brate1

Cali- brate2

Load

Diode

Logger

RDB

Disk Storage

GUI Server

GUI(s)

CLI(s)

Camera

Device-Server Application

Message Broker

Device Instance

Device Sub

Control

Page 9: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Essential components 9

Burkhard Heisen (WP76)

HV Pump

Simulate

Store

Cali- brate1

Cali- brate2

Load

Diode

Logger

RDB

Disk Storage

GUI Server

GUI(s)

CLI(s)

Camera

Device-Server Application

Message Broker

Device Instance

Device Sub

Control

Clustering

Page 10: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Device – Properties and commands 10

Class: MotorDevice static expectedParameters( Schema& s ) { FLOAT_ELEMENT(s).key(“velocity”) .description(“Velocity of the motor”) .unitSymbol(“m/s”) .assignmentOptional().defaultValue(0.3) .maxInc(10) .minInc(0.01) .reconfigurable() .allowedStates(“Idle”) .commit(); INT32_ELEMENT(s).key(“currentPosition”) .description = “Current position of the motor” .readOnly() .warnLow(10) […] SLOT_ELEMENT(s).key(“move”) .description = “Will move motor to target position” .allowedStates(“Idle”) […] } // Constructor with initial configuration MotorDevice( const Hash& config ) { […] }

Burkhard Heisen (WP76)

Attribute

Property

Command

Devices are controllable objects managed by a device server

Device classes can be loaded at runtime (plugin technology)

Can be written in C++ or Python Devices completely describe

themselves. Allows automatic GUI creation and auto-completion in IPython

Runtime-extension of properties, commands and attributes is possible

No need for device developers to validate any parameters. This is internally done taking the expectedParameters as a white-list

Properties and commands can be nested, such that hierarchical groupings are possible

Page 11: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Device – Finite state machine (FSM) 11

Burkhard Heisen (WP76)

OK

Initialization

Stopped

Started

none

start

errorFound reset

stop

// Ok Machine FSM_TABLE_BEGIN(OkTransitionTable) // SrcState Event TgtState Action Guard Row< Started, StopEvent, Stopped, StopAction, none >, Row< Stopped, StartEvent, Started, StartAction, none > FSM_TABLE_END FSM_STATE_MACHINE(Ok, OkTransitionTable, Stopped, Self)

// Top Machine FSM_TABLE_BEGIN(TransitionTable) Row< Initialization, none, Ok, none, none >, Row< Ok, ErrorFoundEvent, Error, ErrorFoundAction, none >, Row< Error, ResetEvent, Ok, ResetAction, none > FSM_TABLE_END KARABO_FSM_STATE_MACHINE(StateMachine, TransitionTable, Initialization, Self)

Start Stop State Machine

Error

Any device uses a standardized way to express its possible program flow The state machine calls back device functions (guard,

onStateExit, action, onStateEntry)

The GUI is state-machine aware and enables/disables buttons proactively

Page 12: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Device – As workflow module 12

Burkhard Heisen (WP76)

Devices can act as modules of a scientific workflow system Configurable generic input/output channels on

devices

One channel is specific for one data structure (e.g. Hash, Image, File)

New data structures can be “registered” and are immediately usable

Developers just need to code the compute and (optionally) the endOfStream method

IO system is decoupled from processing system (process whilst transferring data)

Broker-based communication transparently establishes point-to-point connection

Any workflow device has full access to the live control-system

TCP

Memory

CPU-threads

Distributed processing

Page 13: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 13

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 14: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 14

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 15: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 15

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 16: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 16

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 17: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 17

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 18: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 18

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 19: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 19

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 20: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 20

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 21: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 21

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 22: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 22

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 23: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 23

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 24: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 24

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 25: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 25

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 26: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 26

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 27: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 27

Burkhard Heisen (WP76)

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 28: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 28

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 29: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 29

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 30: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 30

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 31: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 31

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 32: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 32

Burkhard Heisen (WP76)

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 33: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 33

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 34: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 34

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 35: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 35

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 36: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 36

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 37: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 37

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 38: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 38

Burkhard Heisen (WP76)

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 39: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 39

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 40: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 40

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 41: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 41

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 42: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 42

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 43: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 43

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 44: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 44

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 45: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 45

Burkhard Heisen (WP76)

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 46: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 46

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 47: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 47

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 48: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 48

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

Notification about new data possible to obtain

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 49: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 49

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 50: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 50

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 51: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 51

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 52: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 52

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 53: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 53

Burkhard Heisen (WP76)

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 54: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 54

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 55: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 55

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 56: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 56

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

Notification about new data possible to obtain

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 57: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 57

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

Notification about new data possible to obtain

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 58: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 58

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 59: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 59

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 60: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 60

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 61: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 61

Burkhard Heisen (WP76)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 62: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 62

Burkhard Heisen (WP76)

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 63: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 63

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 64: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 64

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 65: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 65

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

Notification about new data possible to obtain

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 66: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 66

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

Notification about new data possible to obtain

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 67: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Workflows support load balancing 67

Burkhard Heisen (WP76)

IO whilst computing

Pixel parallel processing (one GPU thread per pixel)

Notification about new data possible to obtain

GPU

CPU

Once resources are available, input channels request new data from connected output channels

Configurable output channel behavior in case no input currently available: throw, queue, wait, drop

Page 68: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Multi-purpose graphical user interface 68

Navigation

Custom composition area

Configuration

Notifications

Logging / Scripting console

Documentation

Burkhard Heisen (WP76)

Page 69: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Before you even start: Login 69

Burkhard Heisen (WP76)

Header […] __uid=42 __accessLevel=“admin”

Body […]

Broker-Message

Device

Locking: if is locked: if is __uid == owner then ok Access control: if __accessLevel >= visibility: if __accessLevel >= param.accessLevel then ok

GUI-Srv

Central DB

1. Authorizes 2. Computes context based access levels

username password provider ownIP*

brokerHost* brokerPort* brokerTopic*

userId sessionToken

defaultAccessLevel accessList

GUI or CLI

Page 70: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Property/Command composition 70

drag & drop Display widget

Editable widget

Burkhard Hieisen (WP76)

Button widget Text field

Page 71: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Device (workflow) composition 71

Workflow node (device)

drag & drop

Draw connection

Burkhard Heisen (WP76)

Page 72: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

The command line interface (CLI) 72

Burkhard Heisen (WP76)

Main functionality:

Exploring the distributed system topology (hosts, device-servers, devices, their properties/commands, etc.) getServers, getDevices, getClasses

instantiate, kill, set, execute (in “wait” or “noWait” fashion), get, monitorProperty, monitorDevice

Even polled interface will never really poll, but is event-driven under the hood

Remote auto-completion which is access-role and state aware

Page 73: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

The command line interface (CLI) 73

Burkhard Heisen (WP76)

Page 74: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

The command line interface (CLI) 74

Burkhard Heisen (WP76)

Page 75: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

The command line interface (CLI) 75

Burkhard Heisen (WP76)

Page 76: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Selected Features Cross-network signals and slot implementation (Qt style) Native function calls providing native argument passing Runtime setup of signals, slots and connect statements

High performance dictionary object Fully recursive key to any value mapper (also in C++) Keeps insertion order and supports attributes Serializes to XML, Binary, HDF5, DB, JMS-Message, etc.

Event driven system throughout, incl. event driven archiving Archiving happens completely transparent (no extra tooling needed) Archiving policies are configured per property within device code

User centric, access controlled system Context based authentication (who, where, when) Kerberos is integrated

Full system available in C++ and “pythonic” Python Devices and workflows can intermix both languages (access to numpy, scipy, etc.)

Fully functional also without master or database (good for testing/developing) Easy install (both framework and devices) using software bundle architecture

76

Burkhard Heisen (WP76)

Page 77: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

Acknowledgments 77

Burkhard Heisen (WP76)

Karabo contributors (internal) K. Wrona S. Esenov K. Weger J. Szuba D. Boukhelef I. Kozlova A. Parenti L. Maia S. Hauf P. Gessler N. Coppola J. Tolkiehn J. Elizondo H. Höhne C. Youngman Karabo contributors (external) C. Yoon (CFEL) N. D. Loh (SLAC) T. Nicholls (STFC) K. Rehlich (DESY / DOOCS) …

Page 78: Karabo - CERN · Karabo: The European XFEL software framework Karabo will be used at the European XFEL . 2 . Burkhard Heisen (WP76) Hamburg . Germany Data rate (10 GB/s/2d-detector)

Karabo: The European XFEL software framework

78

Thank you for your kind attention.

Burkhard Heisen (WP76)