Presentation is loading. Please wait.

Presentation is loading. Please wait.

OMF/OML Labwiki Pieter Becue 12/01/2019.

Similar presentations


Presentation on theme: "OMF/OML Labwiki Pieter Becue 12/01/2019."— Presentation transcript:

1 OMF/OML Labwiki Pieter Becue 12/01/2019

2 OMF - OML Intro 12/01/2019

3

4 12/01/2019 The problem is that there are different testbeds with each their management software, Experiment description : FULL description of entire configuration + FLOW of experiment + measurements definition -> Easier to re-run experiments under different environment + show scientific relevance by including entire description of the experiment + easier to compare results!

5

6 Experiment description
OEDL language (ruby) Uniform description of experiment Which resources? Which applications? Entire flow of the experiment (timeline) Easy to map to other testbeds 12/01/2019

7 12/01/2019 Users can install their own EC 12/01/2019

8 OEDL Syntax 12/01/2019

9 Experiment description
Uniform description of experiment Which resources? Which applications? Entire flow of the experiment (timeline) 12/01/2019

10 Uniform description of experiment
Which resources ? defGroup(‘group1’, “node1.tutorial.ilabt.iminds.be") defGroup(‘group2’, ”node2.tutorial.ilabt.iminds.be, node3.tutorial.ilabt.iminds.be ") Multiple resources/group Groups of groups 12/01/2019

11 Experiment description
Uniform description of experiment Which resources? Which applications? Entire flow of the experiment (timeline) 12/01/2019

12 Uniform description of experiment
Which applications ? defApplication('ping') do |app| app.description = ‘Definition for the ping-oml2 app' app.binary_path = '/usr/bin/ping-oml2' app.defProperty('target', 'Address to ping', '', {:type => :string}) app.defProperty('count', 'Nr of times to ping', '-c', {:type => :integer}) end 12/01/2019

13 Uniform description of experiment
Which applications run on which resources ? defGroup(‘n1’, “node1.tutorial.ilabt.iminds.be") do |g| g.addApplication(“ping”) do |app| app.setProperty(‘target’, ’google.com’) app.setProperty(‘count’, 3) end 12/01/2019

14 Experiment description
Uniform description of experiment Which resources? Which applications? Entire flow of the experiment (timeline) 12/01/2019

15 Experiment flow What should happen in my experiment?
onEvent(:ALL_UP_AND_INSTALLED) do |event| allGroups.startApplications after 5.seconds do Experiment.done end 12/01/2019

16 defApplication('ping') do |app| app
defApplication('ping') do |app| app.description = ‘Definition for the ping-oml2 app' app.binary_path = '/usr/bin/ping-oml2' app.defProperty('target', 'Address to ping', '', {:type => :string}) app.defProperty('count', 'Nr of times to ping', '-c', {:type => :integer}) end defGroup(‘n1’, “node1.tutorial.ilabt.iminds.be") do |g| g.addApplication(“ping”) do |app| app.setProperty(‘target’, ’google.com’) app.setProperty(‘count’, 3) onEvent(:ALL_UP_AND_INSTALLED) do |event| allGroups.startApplications after 5.seconds do Experiment.done 12/01/2019

17 OML Intro 12/01/2019

18 12/01/2019

19 Native OML Experiment Definition Application Definition Application
/usr/bin/ping-oml2

20 Application definition
defApplication('ping') do |app| app.description = ‘Definition for the ping-oml2 app' app.binary_path = '/usr/bin/ping-oml2' app.defProperty('target', 'Address to ping', '', {:type => :string}) app.defProperty('count', 'Nr of times to ping', '-c', {:type => :integer}) a.defMeasurement('myping') do |m| m.defMetric('dest_addr',:string) m.defMetric('ttl',:int) m.defMetric('rtt',:float) m.defMetric('rtt_unit',:string) end 12/01/2019

21 Group definition defGroup(‘n1’, “node1.tutorial.ilabt.iminds.be") do |g| g.addApplication(“ping”) do |app| app.setProperty(‘target’, ’google.com’) app.setProperty(‘count’, 3) app.measure(‘myping’, :samples => 1) end 12/01/2019

22 Using a wrapper Experiment Definition Application Definition
On the resource Wrapper script (parses output of ping for measurements) Application /usr/bin/ping

23 Application definition
defApplication('ping_app', 'pingmonitor') do |a| a.binary_path = "/root/pingWrap.rb" a.description = "ping application" app.defProperty('target', 'Address to ping', '', {:type => :string}) app.defProperty('count', 'Nr of times to ping', '-c', {:type => :integer}) a.defMeasurement('myping') do |m| m.defMetric('dest_addr',:string) m.defMetric('ttl',:int) m.defMetric('rtt',:float) m.defMetric('rtt_unit',:string) end 12/01/2019

24 require 'oml4r' class MPStat < OML4R::MPBase name :myping param :dest_addr, :type => :string param :ttl, :type => :int32 param :rtt, :type => :double param :rtt_unit, :type => :string end class Wrapper def initialize(args) def process_output(output) def ping() def start() 12/01/2019

25 Hands-on experiment 12/01/2019

26 iPerf https://mytestbed.net/projects/omlapp/wiki/Iperf Tweak
Wireless parameters (channel/tx-power/mode) Packet size (app.setProperty(‘len‘,’200B’)) TCP/UDP (app.setProperty(‘udp', true)) app.setProperty(‘bandwidth’, ’30M’) 12/01/2019

27 Swap in 3 nodes using jFed
EC Edit the Rspec to run the install script : sudo sh /share/upload/install/omf-ec54-install.sh Server Client SSH to your EC node Copy OEDL files in /share/upload/iperf To your home dir Change your resource names (see sheets) = lower case hostname (should include slice name ) NOT zotacXX.wilab2.ilabt.iminds.be 12/01/2019

28 Run the experiment ! Change wifiType/Channel/essid
omf exec -N iperfTutorial.rb -- --essid groupX Check the results wilabuser/wilabuser Database : Experiment ID (EC output) default_slice_iminds TIMESTAMP 12/01/2019

29 Labwiki 12/01/2019

30 Labwiki Web-based GUI for OMF Developed at NICTA Experiments :
Design Describe Run OMF job service (with experiment queue) 12/01/2019

31 12/01/2019 Plan : documentation on the experiment. Describe the goals, the design, some background info. After experiment run : report & discuss results. Prepare : create/edit wiki/oedl docs – drag/drop Execute : config properties & run! 12/01/2019

32 w-iLab.t Zwijnaarde Labwiki Use your own nodes (see part 1) OML server
OMF6 + AMQP SHARED git repo (do not change OEDL files) Use your own nodes (see part 1) SSH to them to find out their hostnames (or Manifest XML) Hostname = OMF resource name modprobe ath9k OML server wilabuser/wilabuser 12/01/2019

33 www.ibcn.intec.ugent.be – www.iminds.be
The w-iLab.t testbed The w-iLab.t testbed details: details: Questions? 12/01/2019


Download ppt "OMF/OML Labwiki Pieter Becue 12/01/2019."

Similar presentations


Ads by Google