Changes between Version 21 and Version 22 of DSC/zdc_framework


Ignore:
Timestamp:
Aug 13, 2013, 1:46:46 AM (11 years ago)
Author:
seskar
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • DSC/zdc_framework

    v21 v22  
    66Use an OEDL script to execute either a competitive-style or cooperative-style game for both Wildcard and Preliminary matches. Even though the use of the framework is illustrated by using 2 house bots (or 3 in the case of a cooperative game), in the actual competition, the teams will use their own radio implementations. An additional purpose of the framework is to provide certification to the images that teams submit for the Wildcard and Preliminary matches: teams must use the script in this framework to certify their image before submission.  Certification is required for both competitive and cooperative style matches.
    77
    8 The OEDL script uses three pair of nodes: dsc-teamA, dsc-teamB, dsc-teamC (the actual topology descriptions are '''system:topo:dsc-team{A,B,C}'''). The competitive matches will use teamA and teamC nodes, while cooperative matches will use teamA, teamB and teamC nodes (contestant radios will be only on teamA nodes for the Wildcard tournament, while house bots will be using teamB and teamC nodes); configurations should be considered to be fixed and will be changed only in the case of hardware failures.
     8The OEDL script uses three pair of nodes: dsc-teamA, dsc-teamB, dsc-teamC (the actual topology descriptions are '''system:topo:dsc-team{A,B,C}'''). The competitive matches will use teamA and teamC nodes, while cooperative matches will use teamA, teamB and teamC nodes (contestant radios will be only on teamA nodes for the Wildcard tournament and for image certification, while house bots will be using teamB and teamC nodes); configurations should be considered to be fixed and will be changed only in the case of hardware failures.
    99
    1010== Hardware / Software Resources Used ==
     
    1313 3. ''team-image.ndz'': disk image that contains the team's radio.
    1414 4. Scoring packet server: This is the server that resides on the infrastructure machine and is used as the source of data packets as well as the sink for teams to submit received packets for scoring.
    15  5. [attachment:dsc-wildcard.rb]: this is the OEDL experiment script to execute the matches.
     15 5. The OEDL experiment script to execute the matches.
    1616
    1717Teams must ensure that their images contain '''/root/dsc-code_tx''' and '''/root/dsc-code_rx'''. Only these names will be used for testing and scoring. Further, these executables/scripts must be able to receive as input three parameters:
     
    7777* a control interface used by the experiment script to prepare the packet server for a match by setting its mode, duration etc., and to send a start signal so the packet source can send packets to the teams.
    7878
    79 == Setting up the arena ==
     79== Image Verification and Submission ==
     80
     81
     82
     83== Setting Up the Arena ==
    8084 * To get started, first make a reservation on the [https://www.orbit-lab.org/loginService/ControlPanel Orbit Scheduler] for using the Grid.
    8185 * After logging into grid console, make sure all nodes are turned off (in the example below, turn off all the nodes in the grid):
     
    116120}}}
    117121
    118  * Download the [attachment:dsc-challenge.rb OEDL experiment script] to your local directory.
    119 {{{
    120 username@console.grid:~$ wget http://www.orbit-lab.org/raw-attachment/wiki/DSC/zdc_framework/dsc-challenge.rb
    121 }}}
    122 
    123 == Running the experiment script ==
     122== Running the Experiment Script ==
    124123
    125124The experiment script will execute '''/root/dsc-code_tx''' and '''/root/dsc-code_rx''' on the source and sink respectively (please note that there are no suffixes), for both (all three) pairs of nodes. Teams must ensure that their images contain '''/root/dsc-code_tx''' and '''/root/dsc-code_rx'''. No modifications to this execution format is allowed. The sender module draws packets from a packet server, while the sink module delivers packets to the same packet server. 
    126125
    127 Use the [attachment:dsc-challenge.rb attached OEDL script] to run the match. The script will start the packet server, start the transmitter and receiver for all teams and release the packet source, wait for 180 seconds and then terminate the match.
     126Use the '''system:exp:dsc-match''' OEDL script to run the match. The script will start the packet server, start the transmitter and receiver for all teams and release the packet source, wait for 180 seconds and then terminate the match.
    128127[[BR]] [[BR]]
    129128For competitive matches, the command line is:
    130129{{{
    131 username@console.grid:~$ omf exec dsc-challenge.rb -- --mode COMP
     130username@console.grid:~$ omf exec system:exp:dsc-match -- --mode COMP
    132131}}}
    133132
     
    135134 * The output of the competitive match should look similar to the following:
    136135{{{
    137 username@console.grid:~# omf exec dsc-challenge.rb -- --mode COMP
     136username@console.grid:~# omf exec system:exp:dsc-match -- --mode COMP
    138137
    139138 INFO NodeHandler: OMF Experiment Controller 5.4 (git 5385228)
     
    183182For cooperative matches, the command line is:
    184183{{{
    185 username@console.grid:~$ omf exec dsc-challenge.rb -- --mode COOP
     184username@console.grid:~$ omf exec system:exp:dsc-match -- --mode COOP
    186185}}}
    187186
     
    189188 * The output of the cooperative match should look similar to the following:
    190189{{{
    191 username@console.grid:~# omf exec dsc-challenge.rb -- --mode COOP
     190username@console.grid:~# omf exec system:exp:dsc-match -- --mode COOP
    192191
    193192 INFO NodeHandler: OMF Experiment Controller 5.4 (git 5385228)
     
    280279}}}
    281280
     281== Running Matches on Sandboxes ==
     282
     283In order to facilitate code development, all three sanboxes (sb2,sb3 and sb7) are haveg simplified version of the OEDL script and packet server. Please do note that, since they have only one pair of nodes, these environments are really not capable of generating interference, but are rather meant for code testing. Appropriately, the actual match script is named dsc-test and the sequence of commands to execute it is somewhat simplified and consist of:
     284 
     285  * Loading the image:
     286{{{
     287  omf load -i team-image-name.ndz
     288}}}
     289  * Turning the nodes on:
     290{{{
     291  omf tell -a on
     292}}}
     293  * Executing the "match"":
     294{{{
     295  omf exec system:exp:dsc-test -- --mode COMP
     296}}}
     297  or
     298{{{
     299  omf exec system:exp:dsc-test -- --mode COOP
     300}}}
     301  * The output of the 30 second matches should look similar to the following: 
     302[[CollapsibleStart(Competitive match output on the sanbox)]]
     303{{{
     304console.sb2:~# omf exec system:exp:dsc-test -- --mode COMP --runtime 30
     305
     306 INFO NodeHandler: OMF Experiment Controller 5.4 (git 5385228)
     307 INFO NodeHandler: Slice ID: default_slice (default)
     308 INFO NodeHandler: Experiment ID: default_slice-2013-08-12t20.55.32.533-04.00
     309 INFO NodeHandler: Message authentication is disabled
     310 INFO Experiment: load system:exp:stdlib
     311 INFO property.resetDelay: resetDelay = 230 (Fixnum)
     312 INFO property.resetTries: resetTries = 1 (Fixnum)
     313 INFO Experiment: load system:exp:eventlib
     314 INFO Experiment: load system:exp:winlib
     315 INFO Experiment: load system:exp:dsc-test
     316 INFO property.freq: freq = 650000000 (Fixnum)
     317 INFO property.server: server = "10.12.0.10" (String)
     318 INFO property.port: port = 5123 (Fixnum)
     319 INFO property.runtime: runtime = 30 (Fixnum)
     320 INFO property.mode: mode = "COMP" (String)
     321 INFO exp: Connecting to packet server
     322 INFO stdlib: Waiting for nodes (Up/Down/Total): 1/1/2 - (still down: node1-1.sb2.orbit-lab.org) [0 sec.]
     323 INFO ALL_UP_AND_INSTALLED: Event triggered. Starting the associated tasks.
     324 INFO exp: Preparing packet server
     325 INFO exp: Request from Experiment Script: Wait for 2s....
     326 INFO exp: Start rx and tx applications
     327 INFO exp: Request from Experiment Script: Wait for 5s....
     328 INFO exp: Running the experiment
     329 INFO exp: Request from Experiment Script: Wait for 30s....
     330 INFO exp: Getting the score
     331 INFO exp: Sent 2161440 Received 2131200 in 30 ms
     332 INFO exp: Stopping the applications
     333 INFO exp: Request from Experiment Script: Wait for 2s....
     334 INFO NodeHandler:
     335 INFO NodeHandler: Shutting down experiment, please wait...
     336 INFO NodeHandler:
     337 INFO run: Experiment default_slice-2013-08-12t20.55.32.533-04.00 finished after 0:52
     338}}}
     339[[CollapsibleEnd]]
     340
     341[[CollapsibleStart(Cooperative match output on the sandbox)]]
     342{{{
     343console.sb2:~# omf exec system:exp:dsc-test -- --mode COOP --runtime 30
     344
     345 INFO NodeHandler: OMF Experiment Controller 5.4 (git 5385228)
     346 INFO NodeHandler: Slice ID: default_slice (default)
     347 INFO NodeHandler: Experiment ID: default_slice-2013-08-12t21.00.56.411-04.00
     348 INFO NodeHandler: Message authentication is disabled
     349 INFO Experiment: load system:exp:stdlib
     350 INFO property.resetDelay: resetDelay = 230 (Fixnum)
     351 INFO property.resetTries: resetTries = 1 (Fixnum)
     352 INFO Experiment: load system:exp:eventlib
     353 INFO Experiment: load system:exp:winlib
     354 INFO Experiment: load system:exp:dsc-test
     355 INFO property.freq: freq = 650000000 (Fixnum)
     356 INFO property.server: server = "10.12.0.10" (String)
     357 INFO property.port: port = 5123 (Fixnum)
     358 INFO property.runtime: runtime = 30 (Fixnum)
     359 INFO property.mode: mode = "COOP" (String)
     360 INFO exp: Connecting to packet server
     361 INFO ALL_UP_AND_INSTALLED: Event triggered. Starting the associated tasks.
     362 INFO exp: Preparing packet server
     363 INFO exp: Request from Experiment Script: Wait for 2s....
     364 INFO exp: Start rx and tx applications
     365 INFO exp: Request from Experiment Script: Wait for 5s....
     366 INFO exp: Running the experiment
     367 INFO exp: Request from Experiment Script: Wait for 30s....
     368 INFO exp: Getting the score
     369 INFO exp: Sent 2161440 Received 1990080 in 30 ms
     370 INFO exp: Stopping the applications
     371 INFO exp: Request from Experiment Script: Wait for 2s....
     372 INFO NodeHandler:
     373 INFO NodeHandler: Shutting down experiment, please wait...
     374 INFO NodeHandler:
     375 INFO run: Experiment default_slice-2013-08-12t21.00.56.411-04.00 finished after 0:52
     376}}}
     377[[CollapsibleEnd]]
     378
     379Please note that the sandboxes use different frequencies in order to minimize the interference, are not going to produce the scoring email (the score is printed on the screen only) and that your code must support the scoring server hostname option (since the scoring server is running on respective consoles of each of the sandboxes). 
     380
    282381NOTES: