Version 9 (modified by 10 years ago) (diff) | ,
---|
<-- Back to LabWiki and OEDL | Jump to Main Tutorial Page | Next to Experiment 2 -->
Experiment 1
Overview
The objective of this first step is to show how to design, execute, and view the result of a very simple experiment using LabWiki and OEDL.
The scenario of this simple experiment involves 2 computing resources (i.e. ExoGENI virtual machines), which will send ping probes to each other, and report the observed delays.
As mentioned earlier, the resources for this experiment have already been allocated and provisioned. Thus at this stage, you should have received the names of your allocated resource, if not please let the session presenters know.
Part 1 - Design/Setup
For help on all actions regarding LabWiki, please refer to the previous page
- First, if you have not done it yet, login into LabWiki
- Create a new experiment file with the name of your choice
- Cut-and-paste the following OEDL experiment description into that file, then save it
defProperty('resource1', "your_resource_ID", "ID of a resource") defProperty('resource2', "your_resource_ID", "ID of a resource") defApplication('ping') do |app| app.description = 'Simple Definition for the ping-oml2 application' app.binary_path = '/usr/bin/ping-oml2' app.defProperty('target', 'Address to ping', '', {:type => :string}) app.defProperty('count', 'Number of times to ping', '-c', {:type => :integer}) app.defMeasurement('ping') do |m| m.defMetric('dest_addr',:string) m.defMetric('ttl',:uint32) m.defMetric('rtt',:double) m.defMetric('rtt_unit',:string) end app.defMeasurement('rtt_stats') do |m| m.defMetric('min',:double) m.defMetric('avg',:double) m.defMetric('max',:double) m.defMetric('mdev',:double) m.defMetric('rtt_unit',:string) end end defGroup('First_Peer', property.resource1) do |g| g.net.e1.ip = "192.168.100.100/24" g.addApplication("ping") do |app| app.setProperty('target', '192.168.100.200') app.setProperty('count', 10) app.measure('ping', :samples => 1) app.measure('rtt_stats', :samples => 1) end end defGroup('Second_Peer', property.resource2) do |g| g.net.e1.ip = "192.168.100.200/24" g.addApplication("ping") do |app| app.setProperty('target', '192.168.100.100') app.setProperty('count', 15) app.measure('ping', :samples => 1) app.measure('rtt_stats', :samples => 1) end end onEvent(:ALL_UP_AND_INSTALLED) do |event| info "This is my first OMF experiment" group('First_Peer').startApplications after 5.seconds do group('Second_Peer').startApplications end after 30.seconds do Experiment.done end end defGraph 'RTT1' do |g| g.ms('ping').select {[ :oml_sender_id, :oml_ts_client, :oml_ts_server, :rtt ]} g.caption "Round Trip Time (RTT) reported by each resource" g.type 'line_chart3' g.mapping :x_axis => :oml_ts_client, :y_axis => :rtt, :group_by => :oml_sender_id g.xaxis :legend => 'time [s]' g.yaxis :legend => 'RTT [ms]', :ticks => {:format => 's'} end defGraph 'RTT2' do |g| g.ms('rtt_stats').select {[ :oml_sender_id, :avg ]} g.caption "RTT Comparison Between Resources [ms]" g.type 'pie_chart2' g.mapping :value => :avg, :label => :oml_sender_id end
- Here is a walk-through the above OEDL experiment description
- defProperty. is a command used to define experiment properties (aka variables), you can set the values of these properties as parameters for each experiment instances, and access them throughout the entire experiment. Its full syntax is available on the OEDL reference page
- gg
Part 2 - Execute
Part 3 - Finish
Help & Additional Resources
<-- Back to Experiment | Jump to Main Tutorial Page | Next to Experiment 2 -->
Attachments (6)
- exp1_overview.png (27.1 KB) - added by 10 years ago.
- labwiki_exp1_1.png (131.7 KB) - added by 10 years ago.
- labwiki_exp1_2.png (112.3 KB) - added by 10 years ago.
- labwiki_exp1_3.png (228.9 KB) - added by 10 years ago.
- labwiki_exp1_4.png (235.9 KB) - added by 10 years ago.
- labwiki_exp1_5.png (240.0 KB) - added by 10 years ago.
Download all attachments as: .zip