xpflow experimental workflow
play

XPFlow (Experimental workflow) XPFlow 1 / 20 - PowerPoint PPT Presentation

XPFlow (Experimental workflow) XPFlow 1 / 20 http://xpflow.gforge.inria.fr/ Research in distributed systems We all know how frustrating experimenting can be. Thats because experiments in distributed systems are: time-consuming difficult


  1. XPFlow (Experimental workflow) XPFlow 1 / 20 http://xpflow.gforge.inria.fr/

  2. Research in distributed systems We all know how frustrating experimenting can be. That’s because experiments in distributed systems are: time-consuming difficult to do correctly complex and incomprehensible failure-prone XPFlow 2 / 20 http://xpflow.gforge.inria.fr/

  3. Automation of system administration With tools like Chef and Puppet: a human factor is nearly removed systems are built from modules the configuration is reproducible But reproducibility does not necessarily imply descriptiveness . It does not imply ease of understanding either. XPFlow 3 / 20 http://xpflow.gforge.inria.fr/

  4. Experimentation tools Many tools to manage experiments exist: Expo g5k-campaign OMF Plush ... among many others They are based on different paradigms. XPFlow 4 / 20 http://xpflow.gforge.inria.fr/

  5. Bottom-up vs top-down approach Most of these tools use bottom-up design . What about a top-down approach? 1 Start with high-level description of the experiment. 2 Implement low-level details. 3 Run the experiment. 4 Improve if necessary and reiterate. There already exists an approach like this. XPFlow 5 / 20 http://xpflow.gforge.inria.fr/

  6. Business Process Management Business Process Management is about: understanding an organization modeling its processes as workflows executing processes and monitoring them improving organizational activities redesigning processes to make them: cheaper faster less defective XPFlow 6 / 20 http://xpflow.gforge.inria.fr/

  7. XPFlow Our solution, XPFlow is a merger of 3 domains: Business Process Modeling and Management Scientific Workflows it is a new experimentation engine XPFlow 7 / 20 http://xpflow.gforge.inria.fr/

  8. XPFlow workflows Workflows ( processes ) in XPFlow are: based on BPM patterns (see Van Der Alst) written in a DSL orchestrate other processes and activities Activities in XPFlow are: low-level, indivisible blocks of experiments written in Ruby Set up a coffeemaker + + Wake up Drink coffee Take a shower XPFlow 8 / 20 http://xpflow.gforge.inria.fr/

  9. XPFlow workflows Workflows ( processes ) in XPFlow are: based on BPM patterns (see Van Der Alst) written in a DSL orchestrate other processes and activities Activities in XPFlow are: low-level, indivisible blocks of experiments written in Ruby Process Set up a coffeemaker + + Wake up Drink coffee Take a shower XPFlow 8 / 20 http://xpflow.gforge.inria.fr/

  10. XPFlow workflows Workflows ( processes ) in XPFlow are: based on BPM patterns (see Van Der Alst) written in a DSL orchestrate other processes and activities Activities in XPFlow are: low-level, indivisible blocks of experiments written in Ruby Process Set up a coffeemaker + + Wake up Drink coffee Take a shower Activities XPFlow 8 / 20 http://xpflow.gforge.inria.fr/

  11. Domain-specific language for processes The DSL for processes features different workflow patterns : running activities and other processes ( run ), running activities in order or in parallel ( sequence , parallel ), conditional expressions ( if , switch ) running sequential and parallel loops ( loop , foreach , forall ), error handling ( try , checkpoint ). Some of them are taken directly from BPM. XPFlow 9 / 20 http://xpflow.gforge.inria.fr/

  12. Workflow patterns (example) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F XPFlow 10 / 20 http://xpflow.gforge.inria.fr/

  13. Workflow patterns (example) Start event Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F XPFlow 10 / 20 http://xpflow.gforge.inria.fr/

  14. Workflow patterns (example) Start event Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F Sequence XPFlow 10 / 20 http://xpflow.gforge.inria.fr/

  15. Workflow patterns (example) Start event Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F Sequence Parallel XPFlow 10 / 20 http://xpflow.gforge.inria.fr/

  16. Workflow patterns (example) Start event Parallel loop Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F Sequence Parallel XPFlow 10 / 20 http://xpflow.gforge.inria.fr/

  17. Workflow patterns (example) Start event Parallel loop End event Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F Sequence Parallel XPFlow 10 / 20 http://xpflow.gforge.inria.fr/

  18. Workflow patterns (example, cont.) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F process :workflow do |array| run :a run :b parallel do forall array do |x| run :c, x end sequence do run :d run :e run :f end end end XPFlow 11 / 20 http://xpflow.gforge.inria.fr/

  19. Workflow patterns (example, cont.) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F process :workflow do |array| run :a run :b parallel do forall array do |x| run :c, x end sequence do run :d run :e run :f end end end XPFlow 11 / 20 http://xpflow.gforge.inria.fr/

  20. Workflow patterns (example, cont.) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F process :workflow do |array| run :a run :b parallel do forall array do |x| run :c, x end sequence do run :d run :e run :f end end end XPFlow 11 / 20 http://xpflow.gforge.inria.fr/

  21. Workflow patterns (example, cont.) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F process :workflow do |array| run :a run :b parallel do forall array do |x| run :c, x end sequence do run :d run :e run :f end end end XPFlow 11 / 20 http://xpflow.gforge.inria.fr/

  22. Workflow patterns (example, cont.) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F process :workflow do |array| run :a run :b parallel do forall array do |x| run :c, x end sequence do run :d run :e run :f end end end XPFlow 11 / 20 http://xpflow.gforge.inria.fr/

  23. Workflow patterns (example, cont.) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F process :workflow do |array| run :a run :b parallel do forall array do |x| run :c, x end sequence do run :d run :e run :f end end end XPFlow 11 / 20 http://xpflow.gforge.inria.fr/

  24. Workflow patterns (example, cont.) Activity C ( forall ) ||| + + Activity A Activity B Activity D Activity E Activity F process :workflow do |array| run :a run :b parallel do forall array do |x| run :c, x end sequence do run :d run :e run :f end end end XPFlow 11 / 20 http://xpflow.gforge.inria.fr/

  25. Minimal Grid’5000 example #!/usr/bin/env xpflow use :g5k process :entry do job = g5k_get_avail :site => ’nancy’, :jobid => var(:jid, :int) nodes = g5k_kadeploy(job, "wheezy-x64-nfs") checkpoint :cp r = execute_many nodes, "hostname" foreach r do |x| log stdout_of x end end main :entry Assumes that xpflow is in your $PATH . XPFlow 12 / 20 http://xpflow.gforge.inria.fr/

  26. Error handling XPFlow gives some means to cope with failures: snapshotting: saves a state of an experiment for future use shortens the development’s cycle retry policy: retries a failed subprocess execution improves reliability allows to specify timeout process :snapshotting do process :retrying do run :long_deployment try :retry => 5 do checkpoint :d run :tricky_activity run :experiment end end end XPFlow 13 / 20 http://xpflow.gforge.inria.fr/

  27. Example of an experiment Measure the effective bisection bandwidth of a switch. Get names of all nodes connected to the switch. 1 Reserve the nodes. 2 Deploy Debian OS. 3 Install necessary software. 4 Compile and install netgauge . 5 Run the experiment. 6 Analyze results. 7 XPFlow 14 / 20 http://xpflow.gforge.inria.fr/

  28. An experiment workflow Query switch Reserve Deploy Install information nodes Debian software Install Run Analyze netgauge experiment results Few notes: each node must have some software installed each node must have netgauge installed ... ... but one node is enough to compile it one node must launch MPI application We will introduce a master node and slave nodes. XPFlow 15 / 20 http://xpflow.gforge.inria.fr/

  29. An experiment workflow Install Query switch Reserve Deploy software information nodes Debian (in parallel) Compile Distribute Run Analyze netgauge netgauge experiment results (on master ) (on master ) (on master ) Another observation: compilation can run in parallel with installation of software on the slave nodes. XPFlow 15 / 20 http://xpflow.gforge.inria.fr/

  30. An experiment workflow Query switch Reserve Deploy information nodes Debian Install Compile Distribute Run Analyze + software netgauge netgauge + experiment results (on master ) (on master ) (on master ) (on master ) Install software (on slaves , in parallel) This workflow describes our experiment. The last thing to do is to express that in XPFlow. XPFlow 15 / 20 http://xpflow.gforge.inria.fr/

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend