Changes between Version 21 and Version 22 of DSC/zdc_framework
- Timestamp:
- Aug 13, 2013, 1:46:46 AM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DSC/zdc_framework
v21 v22 6 6 Use 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. 7 7 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.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 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. 9 9 10 10 == Hardware / Software Resources Used == … … 13 13 3. ''team-image.ndz'': disk image that contains the team's radio. 14 14 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. 16 16 17 17 Teams 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: … … 77 77 * 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. 78 78 79 == Setting up the arena == 79 == Image Verification and Submission == 80 81 82 83 == Setting Up the Arena == 80 84 * To get started, first make a reservation on the [https://www.orbit-lab.org/loginService/ControlPanel Orbit Scheduler] for using the Grid. 81 85 * After logging into grid console, make sure all nodes are turned off (in the example below, turn off all the nodes in the grid): … … 116 120 }}} 117 121 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 == 124 123 125 124 The 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. 126 125 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.126 Use 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. 128 127 [[BR]] [[BR]] 129 128 For competitive matches, the command line is: 130 129 {{{ 131 username@console.grid:~$ omf exec dsc-challenge.rb-- --mode COMP130 username@console.grid:~$ omf exec system:exp:dsc-match -- --mode COMP 132 131 }}} 133 132 … … 135 134 * The output of the competitive match should look similar to the following: 136 135 {{{ 137 username@console.grid:~# omf exec dsc-challenge.rb-- --mode COMP136 username@console.grid:~# omf exec system:exp:dsc-match -- --mode COMP 138 137 139 138 INFO NodeHandler: OMF Experiment Controller 5.4 (git 5385228) … … 183 182 For cooperative matches, the command line is: 184 183 {{{ 185 username@console.grid:~$ omf exec dsc-challenge.rb-- --mode COOP184 username@console.grid:~$ omf exec system:exp:dsc-match -- --mode COOP 186 185 }}} 187 186 … … 189 188 * The output of the cooperative match should look similar to the following: 190 189 {{{ 191 username@console.grid:~# omf exec dsc-challenge.rb-- --mode COOP190 username@console.grid:~# omf exec system:exp:dsc-match -- --mode COOP 192 191 193 192 INFO NodeHandler: OMF Experiment Controller 5.4 (git 5385228) … … 280 279 }}} 281 280 281 == Running Matches on Sandboxes == 282 283 In 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 {{{ 304 console.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 {{{ 343 console.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 379 Please 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 282 381 NOTES: