Lightflow a lightweight, distributed workflow system

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

COM vs. CORBA.
ASCR Data Science Centers Infrastructure Demonstration S. Canon, N. Desai, M. Ernst, K. Kleese-Van Dam, G. Shipman, B. Tierney.
Introduction to Spark Shannon Quinn (with thanks to Paco Nathan and Databricks)
Distributed, parallel web service orchestration using XSLT Peter Kelly Paul Coddington Andrew Wendelborn.
Introduction to Kernel
High Performance Computing 1 Parallelization Strategies and Load Balancing Some material borrowed from lectures of J. Demmel, UC Berkeley.
The new The new MONARC Simulation Framework Iosif Legrand  California Institute of Technology.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex With code bases exceeding a million lines of code, a.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Workflow API and workflow services A case study of biodiversity analysis using Windows Workflow Foundation Boris Milašinović Faculty of Electrical Engineering.
Chapter 5 Using SAS ® ETL Studio. Section 5.1 SAS ETL Studio Overview.
Agenda Adaptation of existing open-source control systems from compact accelerators to large scale facilities.
Prepared By: Prof. Dhara Virani CSE/IT Dept. Dr. Subhash Technical Campus. Junagadh. Chapter 7.
Introduction To System Analysis and design
CONDOR DAGMan and Pegasus Selim Kalayci Florida International University 07/28/2009 Note: Slides are compiled from various TeraGrid Documentations.
Apache Airavata GSOC Knowledge and Expertise Computational Resources Scientific Instruments Algorithms and Models Archived Data and Metadata Advanced.
Windows ® Deployment Services Infrastructure Planning and Design Published: February 2008 Updated: January 2012.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Parallel Processing LAB NO 1.
An Introduction to Designing and Executing Workflows with Taverna Aleksandra Pawlik University of Manchester materials by Dr Katy Wolstencroft and Dr Aleksandra.
Facebook (stylized facebook) is a Social Networking System and website launched in February 2004, operated and privately owned by Facebook, Inc. As.
High Throughput Computing with Condor at Purdue XSEDE ECSS Monthly Symposium Condor.
Bright Cluster Manager Advanced cluster management made easy Dr Matthijs van Leeuwen CEO Bright Computing Mark Corcoran Director of Sales Bright Computing.
TRACEREP: GATEWAY FOR SHARING AND COLLECTING TRACES IN HPC SYSTEMS Iván Pérez Enrique Vallejo José Luis Bosque University of Cantabria TraceRep IWSG'15.
material assembled from the web pages at
Integrating HPC into the ATLAS Distributed Computing environment Doug Benjamin Duke University.
Introduction To System Analysis and Design
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter Two Installing and Configuring Exchange Server 2003.
Software Sustainability Institute Online reconstruction (Manchego) Status report 09/02/12 Mike Jackson
Resource Brokering in the PROGRESS Project Juliusz Pukacki Grid Resource Management Workshop, October 2003.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
 Apache Airavata Architecture Overview Shameera Rathnayaka Graduate Assistant Science Gateways Group Indiana University 07/27/2015.
Server to Server Communication Redis as an enabler Orion Free
Development of a Distributed MATLAB Environment with Real-Time Data Visualization Authors: Joseph Diamond, Richard McEver Affiliation: Dr. Jian Huang,
SCAPE Rainer Schmidt SCAPE Training Event September 16 th – 17 th, 2013 The British Library Building Scalable Environments Technologies and SCAPE Platform.
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
Grid Compute Resources and Job Management. 2 Grid middleware - “glues” all pieces together Offers services that couple users with remote resources through.
OGCE Workflow and LEAD Overview Suresh Marru, Marlon Pierce September 2009.
EGEE-II INFSO-RI Enabling Grids for E-sciencE Practical using WMProxy advanced job submission.
1 Data Warehousing Data Warehousing. 2 Objectives Definition of terms Definition of terms Reasons for information gap between information needs and availability.
Abdulrahman Azab 5, Apr Workflow Management on Abel.
Apache Ignite Compute Grid Research Corey Pentasuglia.
Lightweight inventory management with Pallet Jack
Computer System Structures
Deployment of Flows Loretta Auvil
Introduction to Kernel
The Mach System Sri Ramkrishna.
LOCO Extract – Transform - Load
GWE Core Grid Wizard Enterprise (
The Transition to Modern Office Add-in Development
INTER-PROCESS COMMUNICATION
#01 Client/Server Computing
Enterprise Application Architecture
New Mexico State University
Productivity Tools for Scientific Computing
Business Process Management Software
Apollo Weize Sun Feb.17th, 2017.
Weaving Abstractions into Workflows
Module 01 ETICS Overview ETICS Online Tutorials
Overview of big data tools
Setup Sqoop.
Smart Integration Express
Overview of Workflows: Why Use Them?
CS639: Data Management for Data Science
Processes Creation and Threads
CS639: Data Management for Data Science
#01 Client/Server Computing
Presentation transcript:

Lightflow a lightweight, distributed workflow system Andreas Moll

Near realtime feedback service-like part watch for file changes pipeline-like part task dependencies exchange data keep data from prev runs

Wishlist Basics Python 3.5+ Few dependencies Infrastructure independent Essentials Dependencies between tasks Exchange data between task Runs locally with minimal effort Can scale to run on a computing cluster Workflows are easy to describe Central store for workflow run data Bonus points Use facility library/database stack

So many excellent options There are many excellent workflow systems and tools available Scientific workflow systems Examples: Apache Taverna, Discovery Net, Kepler, EDNA, Workspace, Cylc, … Domain specific systems Examples: Galaxy, Ruffus, Dpdak, UFO, Savu, Fireworks, … ETL (Extract Transform Load) Examples: Airflow, Luigi, Pinball some came really close to be a match one (or more) showstoppers for each of them

We had a crack at it Use existing Python libraries Be inspired by all the other excellent workflow systems Write minimal code to glue existing libraries together Lightflow Workflow description Directed Acyclic Graph Python workflow description Use your favourite libraries NetworkX Python standard collections Distributed worker based serialise data for network transport Celery cloudpickle Infrastructure Linux redis MongoDB

Workflow schematic Workflow

System Architecture [Worker] [Worker] [Worker] [Worker] No central daemon Easy to scale distributed computing is hard. Use existing tools/infrastructure

key: value parent: child Sequence: Increase a number Workflows are defined in Python Can be a single or multiple files Graph edges described using a dictionary key: value parent: child Simple example: increase a number d = Dag('main_dag') d.define({ task_1: task_2, task_2: task_3 })

PythonTask – all you need d.define({ task_1: task_2, task_2: task_3 }) name of task instance task_1 = PythonTask(name='task_1', callback=inc_number) function (or any other callable) defines task logic

task_1 = PythonTask(name='task_1', callback=inc_number) PythonTask – all you need task_1 = PythonTask(name='task_1', callback=inc_number) exchange data inter-task messages def inc_number(data, store, signal, context) central data store task context

Increase a number task logic task_1 = PythonTask(name='task_1', callback=inc_number) task_2 = PythonTask(name='task_2', callback=inc_number) task_3 = PythonTask(name='task_3', callback=inc_number) def inc_number(data, store, signal, context): if 'value' not in data: data['value'] = 0 data['value'] = data['value'] + 1 print('This is task #{}'.format(data['value']))

Parallel tasks with lists d.define({ branch_task: [ lane1_print_task, lane2_print_task, lane3_print_task ], lane1_print_task: join_task, lane2_print_task: join_task, lane3_print_task: join_task })

Near realtime feedback DAG 1: task with inotify loop DAG 2: processing workflow

Compress files into squashfs Start by REST call trigger-like part use RESTful pipeline-like part sequences decisions parallel execution abort

Wait, there is more What you get with Lightflow core system PythonTask BashTask Want more? Use Extensions: Filesystem RESTful interface EPICS Features I did not have time to talk about: Arguments Data aliases Custom queues Stop and Abort Central Store for workflow data

Available from PyPI $ pip install lightflow Installs libraries and command client

Source Code Lightflow Source Code on GitHub (BSD-3) github.com/AustralianSynchrotron/Lightflow australiansynchrotron.github.io/Lightflow/