using bpm to improve experimentation · xp ow concepts there are 2 main concepts in xp ow:...
TRANSCRIPT
![Page 1: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/1.jpg)
Using business workflows to improvedescriptiveness and control of experiments
Tomasz Buchert
AdvisorsLucas Nussbaum Jens Gustedt
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 1 / 24
![Page 2: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/2.jpg)
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
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 2 / 24
![Page 3: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/3.jpg)
Automation of experiments
We should automate experiments:
humans make mistakes
humans tend to forget things
knowledge dissipates with time
“The primary decelerator for Phoenix was
a rigid capsule with a 70-degree half-angle
sphere-cone forebody (...)”
Why this angle was chosen for Mars?
A simulation showed it is optimal.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 3 / 24
![Page 4: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/4.jpg)
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.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 4 / 24
![Page 5: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/5.jpg)
Experimentation tools
Many tools to manage experiments exist:
Expo
g5k-campaign
OMF
Plush
... among many others
They are based on different paradigms.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 5 / 24
![Page 6: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/6.jpg)
Grid’5000: Bash, oarsub, kadeploy3, ...
[ rennes ˜ ] $ oarsub -I -l nodes=2 -t deploy[ADMISSION RULE] Set default walltime to 3600.[ADMISSION RULE] Modify resource description with type constraintsGenerate a job key...OAR_JOB_ID=454195Interactive mode : waiting...Starting...Connect to OAR job 454195 via the node frontend.rennes.grid5000.fr[ 454195@rennes ˜ ] $ kadeploy3 -e squeeze-x64-nfs -f $OAR_FILE_NODES -kLaunching a deployment ...Grab the key file /home/tbuchert/.ssh/authorized_keysPerforming a deploy step on the nodes: paradent-[17-18].rennes.grid5000.fr--- switch_pxe (paradent cluster)>>> paradent-[17-18].rennes.grid5000.fr
--- set_vlan (paradent cluster)>>> paradent-[17-18].rennes.grid5000.fr*** Bypass the VLAN setting
--- reboot (paradent cluster)>>> paradent-[17-18].rennes.grid5000.fr
... and so on.
Repetitive and error-prone if done without attention.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 6 / 24
![Page 7: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/7.jpg)
g5k-campaign
class MyEngine < Grid5000::Campaign::Engine
set :environment, "lenny-x64-base"set :resources, "nodes=4"set :walltime, 7200
on :install! do |env, *args|nodes = env[:nodes]ssh(nodes.first, "root") do |ssh|
ssh.exec!("apt-get install whatever")ssh.sftp.upload!("my_engine/some/file", "/destination/path")
endenv
end
on :execute! do |env, *args|env[:nodes].each { |node|
ssh(node, "root") do |ssh|ssh.exec!("./my-program")
end}env
endend
Manages reservation, but what remains is still low-level.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 7 / 24
![Page 8: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/8.jpg)
Expo
reserv = ExpoEngine::new(@connection)reserv.site = [ "bordeaux", "lille", "luxembourg", "nancy", "sophia" ]reserv.resources = [ "nodes=50", "nodes=10", "nodes=4", "nodes=4", "nodes=30" ]reserv.name = "Expo Scalability"reserv.walltime = 600
reserv.run!
sizes = [ 10, 20, 40, 50, 80, $all.length ]
$all.each_slice_array(sizes) do |nodes|
task_mon = Task::new("hostname", nodes, " Monitoring #{nodes.length} nodes")10.times {id, res = task_mon.executeputs " #{res.length} : #{res.duration}"
}
end
reserv.stop!
Features useful abstractions and efficiency, but not high-level.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 8 / 24
![Page 9: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/9.jpg)
Gush (Plush)
<plush><project name="simple"><software name="SimpleSoftwareName" type="none"><package name="Package" type="web">
<path>http://sysnet.cs.williams.edu/˜jeannie/software.tar</path><dest_path>software.tar</dest_path>
</package></software><component name="Cluster1"><rspec><num_hosts>2</num_hosts></rspec><software name="SimpleSoftwareName" /><resources><resource type="ssh" group="local"/></resources>
</component><experiment name="simple"><execution>
<component_block name="cb1"><component name="Cluster1" /><process_block name="p2">
<process name="cat"><path>cat</path><cmdline><arg>software.txt</arg></cmdline><cwd/>
</process></process_block>
</component_block></execution>
</experiment></project>
</plush>
Declarative, but rather difficult to write and understand.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 9 / 24
![Page 10: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/10.jpg)
OMF
defGroup(’Sender’, "omf.nicta.node28") do |node|node.addApplication("test:app:otg2") do |app|app.setProperty(’udp:local_host’, ’192.168.0.2’)app.setProperty(’udp:dst_host’, ’192.168.0.3’)app.setProperty(’udp:dst_port’, 3000)app.measure(’udp_out’, :samples => 1)
endw0 = node.net.w0; w0.mode = "adhoc"; w0.type = ’g’w0.channel = "6"; w0.essid = "helloworld"; w0.ip = "192.168.0.2"
end
defGroup(’Receiver’, "omf.nicta.node29") do |node|node.addApplication("test:app:otr2") do |app|app.setProperty(’udp:local_host’, ’192.168.0.3’)app.setProperty(’udp:local_port’, 3000)app.measure(’udp_in’, :samples => 1)
endw0 = node.net.w0; w0.mode = "adhoc"; w0.type = ’g’w0.channel = "6"; w0.essid = "helloworld"; w0.ip = "192.168.0.3"
end
onEvent(:ALL_UP_AND_INSTALLED) do |node|info "This is my first OMF experiment"; wait 10; allGroups.startApplicationsinfo "All my Applications are started now..."; wait 30; allGroups.stopApplicationsinfo "All my Applications are stopped now."; Experiment.done
end
Declarative and event-driven but cannot express complex workflows.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 10 / 24
![Page 11: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/11.jpg)
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.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 11 / 24
![Page 12: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/12.jpg)
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:
cheaperfasterless defective
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 12 / 24
![Page 13: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/13.jpg)
XPflow
In this talk I will present XPflow:
a new experimentation engine
based on Business Process Modeling and Management
It will be illustrated with a Grid’5000-based experiment.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 13 / 24
![Page 14: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/14.jpg)
XPflow concepts
There are 2 main concepts in XPflow:
Processes – high-level description of an experiment:
workflows written in a DSLorchestrate other processes and activities
Activities – low-level building blocks of experiments:
do real hard workwritten in Ruby
Wake up +
Set upa coffeemaker
Take a shower
+ Drink coffee
Process
Activities
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 14 / 24
![Page 15: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/15.jpg)
XPflow concepts
There are 2 main concepts in XPflow:
Processes – high-level description of an experiment:
workflows written in a DSLorchestrate other processes and activities
Activities – low-level building blocks of experiments:
do real hard workwritten in Ruby
Wake up +
Set upa coffeemaker
Take a shower
+ Drink coffee
Process
Activities
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 14 / 24
![Page 16: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/16.jpg)
XPflow concepts
There are 2 main concepts in XPflow:
Processes – high-level description of an experiment:
workflows written in a DSLorchestrate other processes and activities
Activities – low-level building blocks of experiments:
do real hard workwritten in Ruby
Wake up +
Set upa coffeemaker
Take a shower
+ Drink coffee
Process
Activities
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 14 / 24
![Page 17: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/17.jpg)
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.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 15 / 24
![Page 18: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/18.jpg)
Workflow patterns (example)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
Start event
Sequence
Parallel
Parallel loop
End event
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 16 / 24
![Page 19: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/19.jpg)
Workflow patterns (example)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
Start event
Sequence
Parallel
Parallel loop
End event
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 16 / 24
![Page 20: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/20.jpg)
Workflow patterns (example)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
Start event
Sequence
Parallel
Parallel loop
End event
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 16 / 24
![Page 21: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/21.jpg)
Workflow patterns (example)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
Start event
Sequence Parallel
Parallel loop
End event
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 16 / 24
![Page 22: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/22.jpg)
Workflow patterns (example)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
Start event
Sequence Parallel
Parallel loop
End event
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 16 / 24
![Page 23: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/23.jpg)
Workflow patterns (example)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
Start event
Sequence Parallel
Parallel loop End event
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 16 / 24
![Page 24: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/24.jpg)
Workflow patterns (example, cont.)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
engine.process :workflow do |array|run :arun :bparallel do
forall array do |x|run :c, x
endsequence do
run :drun :erun :f
endend
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 17 / 24
![Page 25: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/25.jpg)
Workflow patterns (example, cont.)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
engine.process :workflow do |array|run :arun :bparallel do
forall array do |x|run :c, x
endsequence do
run :drun :erun :f
endend
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 17 / 24
![Page 26: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/26.jpg)
Workflow patterns (example, cont.)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
engine.process :workflow do |array|run :arun :bparallel do
forall array do |x|run :c, x
endsequence do
run :drun :erun :f
endend
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 17 / 24
![Page 27: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/27.jpg)
Workflow patterns (example, cont.)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
engine.process :workflow do |array|run :arun :bparallel do
forall array do |x|run :c, x
endsequence do
run :drun :erun :f
endend
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 17 / 24
![Page 28: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/28.jpg)
Workflow patterns (example, cont.)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
engine.process :workflow do |array|run :arun :bparallel do
forall array do |x|run :c, x
endsequence do
run :drun :erun :f
endend
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 17 / 24
![Page 29: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/29.jpg)
Workflow patterns (example, cont.)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
engine.process :workflow do |array|run :arun :bparallel do
forall array do |x|run :c, x
endsequence do
run :drun :erun :f
endend
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 17 / 24
![Page 30: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/30.jpg)
Workflow patterns (example, cont.)
Activity A Activity B +
Activity C (forall)|||
Activity D Activity E Activity F
+
engine.process :workflow do |array|run :arun :bparallel do
forall array do |x|run :c, x
endsequence do
run :drun :erun :f
endend
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 17 / 24
![Page 31: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/31.jpg)
Error handling
XPflow gives some means to cope with failures:
snapshotting:
saves a state of an experiment for future useshortens a development’s cycle
retry policy:
retries a failed subprocess executionimproves reliability
engine.process :snapshotting dorun :long_deploymentcheckpoint :drun :experiment
end
engine.process :retrying dotry :retry => 5 do
run :tricky_activityend
end
Both features require idempotency.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 18 / 24
![Page 32: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/32.jpg)
Example of an experiment
Measure the effective bisection bandwidth of a switch.
1 Get names of all nodes connected to the switch.
2 Reserve the nodes.
3 Deploy Debian OS.
4 Install necessary software.
5 Compile and install netgauge.
6 Run the experiment.
7 Analyze results.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 19 / 24
![Page 33: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/33.jpg)
Query switchinformation
Reservenodes
DeployDebian
Installsoftware
Installnetgauge
Runexperiment
Analyzeresults
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.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 20 / 24
![Page 34: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/34.jpg)
Query switchinformation
Reservenodes
DeployDebian
Installsoftware
(in parallel)
Compilenetgauge
(on master)
Distributenetgauge
(on master)
Runexperiment(on master)
Analyzeresults
Another observation: compilation can run in parallel with installationof software on the slave nodes.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 20 / 24
![Page 35: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/35.jpg)
Query switchinformation
Reservenodes
DeployDebian
Compilenetgauge
(on master)
Installsoftware
(on master)+
Distributenetgauge
(on master)+
Install software(on slaves, in parallel)
Runexperiment(on master)
Analyzeresults
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 20 / 24
![Page 36: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/36.jpg)
An experiment workflow - DSL representation
engine.process :exp do |site, switch|s = run g5k.switch, site, switchns = run g5k.nodes, sr = run g5k.reserve_nodes,
:nodes => ns, :time => ’2h’,:site => site, :type => :deploy
master = (first_of ns)rest = (tail_of ns)run g5k.deploy,
r, :env => ’squeeze-x64-nfs’checkpoint :deployedparallel :retry => true do
forall rest do |slave|run :install_pkgs, slave
endsequence do
run :install_pkgs, masterrun :build_netgauge, masterrun :dist_netgauge,
master, restend
endcheckpoint :preparedoutput = run :netgauge, master, nscheckpoint :finishedrun :analysis, output, switch
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 21 / 24
![Page 37: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/37.jpg)
An experiment workflow - DSL representation
engine.process :exp do |site, switch|s = run g5k.switch, site, switchns = run g5k.nodes, sr = run g5k.reserve_nodes,
:nodes => ns, :time => ’2h’,:site => site, :type => :deploy
master = (first_of ns)rest = (tail_of ns)run g5k.deploy,
r, :env => ’squeeze-x64-nfs’checkpoint :deployedparallel :retry => true do
forall rest do |slave|run :install_pkgs, slave
endsequence do
run :install_pkgs, masterrun :build_netgauge, masterrun :dist_netgauge,
master, restend
endcheckpoint :preparedoutput = run :netgauge, master, nscheckpoint :finishedrun :analysis, output, switch
end
Activity :install pkgs
engine.activity :install_pkgs do|node|log ’Installing packages on ’, noderun ’g5k.bash’, node do
aptget :updateaptget :upgradeaptget :purge, ’mx’
endend
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 21 / 24
![Page 38: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/38.jpg)
An experiment workflow - DSL representation
engine.process :exp do |site, switch|s = run g5k.switch, site, switchns = run g5k.nodes, sr = run g5k.reserve_nodes,
:nodes => ns, :time => ’2h’,:site => site, :type => :deploy
master = (first_of ns)rest = (tail_of ns)run g5k.deploy,
r, :env => ’squeeze-x64-nfs’checkpoint :deployedparallel :retry => true do
forall rest do |slave|run :install_pkgs, slave
endsequence do
run :install_pkgs, masterrun :build_netgauge, masterrun :dist_netgauge,
master, restend
endcheckpoint :preparedoutput = run :netgauge, master, nscheckpoint :finishedrun :analysis, output, switch
end
Activity :build netgauge
engine.activity :build_netgauge do |master|log "Building netgauge on #{master}"run ’g5k.copy’, NETGAUGE, master, ’˜’run ’g5k.bash’, master do
build_tarball NETGAUGE, PATHendlog "Build finished."
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 21 / 24
![Page 39: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/39.jpg)
An experiment workflow - DSL representation
engine.process :exp do |site, switch|s = run g5k.switch, site, switchns = run g5k.nodes, sr = run g5k.reserve_nodes,
:nodes => ns, :time => ’2h’,:site => site, :type => :deploy
master = (first_of ns)rest = (tail_of ns)run g5k.deploy,
r, :env => ’squeeze-x64-nfs’checkpoint :deployedparallel :retry => true do
forall rest do |slave|run :install_pkgs, slave
endsequence do
run :install_pkgs, masterrun :build_netgauge, masterrun :dist_netgauge,
master, restend
endcheckpoint :preparedoutput = run :netgauge, master, nscheckpoint :finishedrun :analysis, output, switch
end
Activity :dist netgauge
engine.activity :dist_netgauge do |m, s|master, slaves = m, srun ’g5k.dist_keys’, master, slavesrun ’g5k.bash’, master do
distribute BINARY,DEST, ’localhost’, slaves
endend
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 21 / 24
![Page 40: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/40.jpg)
An experiment workflow - DSL representation
engine.process :exp do |site, switch|s = run g5k.switch, site, switchns = run g5k.nodes, sr = run g5k.reserve_nodes,
:nodes => ns, :time => ’2h’,:site => site, :type => :deploy
master = (first_of ns)rest = (tail_of ns)run g5k.deploy,
r, :env => ’squeeze-x64-nfs’checkpoint :deployedparallel :retry => true do
forall rest do |slave|run :install_pkgs, slave
endsequence do
run :install_pkgs, masterrun :build_netgauge, masterrun :dist_netgauge,
master, restend
endcheckpoint :preparedoutput = run :netgauge, master, nscheckpoint :finishedrun :analysis, output, switch
end
Activity :netgauge
engine.activity :netgauge do |master, nodes|log "Running experiment..."out = run ’g5k.bash’, master do
cd PATHmpirun nodes, "./netgauge"
endlog "Experiment done."
end
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 21 / 24
![Page 41: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/41.jpg)
Running the experiment
The experiment runs on Grid’5000 frontend or on your local machine.
[ 11:15:52.940 ] Started activity g5k.switch:1.[ 11:15:53.418 ] Finished activity g5k.switch:1 (0.478 s).[ 11:15:53.419 ] Process exp: Experimenting with switch: sgraphene2[ 11:15:53.419 ] Started activity g5k.nodes:1.[ 11:15:53.419 ] Finished activity g5k.nodes:1 (0.000 s).[ 11:15:53.419 ] Started activity g5k.reserve_nodes:1.[ 11:15:55.837 ] Waiting for reservation 408387[ 11:16:02.452 ] Reservation 408387 should be available in 12 mins[ 11:16:02.452 ] Reservation 408387 ready[ 11:16:02.453 ] Finished activity g5k.reserve_nodes:1 (9.022 s).[ 11:16:02.453 ] Started activity g5k.nodes:2.[ 11:16:02.453 ] Finished activity g5k.nodes:2 (0.000 s).[ 11:16:02.453 ] Started activity g5k.deploy:1.[ 11:22:09.427 ] Finished activity g5k.deploy:1 (366.968 s).[ 11:22:09.429 ] Started activity install_pkgs.[ 11:22:09.429 ] Started activity install_pkgs:1.[ 11:22:09.430 ] Activity install_pkgs: Installing packages on graphene-96[ 11:22:09.430 ] Started activity install_pkgs:2.[ 11:22:09.430 ] Activity install_pkgs: Installing packages on graphene-60
The execution is monitored and errors reported if necessary.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 22 / 24
![Page 42: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/42.jpg)
Monitoring features - Gantt chart of the execution
Each activity is monitored during its execution.
Notice that build netgauge:1 runs in parallel with install pkgs:˚.
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 23 / 24
![Page 43: Using BPM to improve experimentation · XP ow concepts There are 2 main concepts in XP ow: Processes { high-level description of an experiment: work ows written in a DSL orchestrate](https://reader036.vdocument.in/reader036/viewer/2022071420/61197df1e1bdbc61286a2873/html5/thumbnails/43.jpg)
Conclusions
In this talk I presented XPflow.
Current features include:
improved descriptiveness
modularity and flexibility
monitoring and support for common patterns
integration with Grid’5000
In the future we will work on:
integration with experimentation tools
human interaction during the experiment
efficient data broadcast and collection
Thank you for your attention. Questions?
http://www.loria.fr/˜buchert/ Tomasz Buchert Using business workflows to improve experiments 24 / 24