User Tools

Site Tools


cortexlab103

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cortexlab103 [2018/03/26 15:24] – [Upload the files on airlock] lcardosocortexlab103 [2018/03/30 09:58] (current) – [Example scenario] mimbert
Line 17: Line 17:
 | 8          | tuto8           | node 24      | 6670     | | 8          | tuto8           | node 24      | 6670     |
 | 9          | tuto9           | node 28      | 6671     | | 9          | tuto9           | node 28      | 6671     |
 +
 +__Henceforth you'll replace <number of group> by the number of your group read in the table above.__
  
 ##Setup ##Setup
  
-The purpose of this tutorial is to receive an ongoing OFDM transmission on a given USRP node. One transmitter node is set up to the whole groupe and each group will control a receiver node. Instead of starting from an empty project, we are going to use the GNU Radio examples for an OFDM transmitter and receiver. We are also going to change the ''channel estimation'' block such that it produces frequency channel estimations able to be seen in the fft-web interface.+The purpose of this tutorial is to receive an ongoing OFDM transmission on a given USRP node. One transmitter node is set up for the whole group and each group will control a receiver node. Instead of starting from an empty project, we are going to use the GNU Radio examples for an OFDM transmitter and receiver. We are also going to change the ''channel estimation'' block such that it produces frequency channel estimations that can be seen in the fft-web interface.
  
 ### Start you virtual FIT/CorteXlab work environment ### Start you virtual FIT/CorteXlab work environment
Line 127: Line 129:
 #   Time after which the experiment is forced to stop #   Time after which the experiment is forced to stop
 #   integer (seconds) #   integer (seconds)
-duration: 300+duration: 120
  
 # Node list # Node list
Line 142: Line 144:
 </code> </code>
  
-This file uses the yaml syntax and is self-documented. +This file uses the yaml syntax and is self-documented.
  
 ### Adapting the example scenario ### Adapting the example scenario
Line 166: Line 168:
 ### Upload the files on airlock ### Upload the files on airlock
  
-Upload the tuto\_ofdm directory on Airlock. For example, on Linux, it will look like this (replace <number of group> below by the number of your group)+Upload the tuto\_ofdm directory on Airlock. For example, on Linux, it will look like this: 
 <code> <code>
 cxlbusr@debian-jessie-cortexlab:~/tasks/tuto_ofdm$ cd .. cxlbusr@debian-jessie-cortexlab:~/tasks/tuto_ofdm$ cd ..
 cxlbusr@debian-jessie-cortexlab:~/tasks$ scp -r tuto_ofdm/ tuto<number of group>@airlock:~ cxlbusr@debian-jessie-cortexlab:~/tasks$ scp -r tuto_ofdm/ tuto<number of group>@airlock:~
 </code> </code>
 +
 +Dont forget to replace <number of group> below by the number of your group!
  
 ### Create the task ### Create the task
Line 192: Line 196:
 ### Book the testbed with OAR ### Book the testbed with OAR
  
-As explained [[reserve|here]], we need to book the testbed with OAR in order to run our experiment. Once you have booked the platform, you will be the exclusive user of the testbed; this will prevent any experimentation interference.+As explained [[reserve|here]], we need to book the testbed with OAR in order to run our experiment. Once you have booked some nodes in the FIT/CorteXlab, you will be the exclusive user of those nodes; this will prevent any experimentation problems.
  
-A basic example to submit an OAR interactive job requesting all available nodesfor 30 minutes:+For the purposes of this tutoriala shared reservation has been done in advance. This parent reservation's 'id' will be given to you by the tutorial instructors. We will need to create a child reservation inside of the parent one.
  
-<code>$ oarsub --l nodes=BEST,walltime=0:30:00</code>+To reserve your nodes in the FIT/CorteXlab room, use this following command. Please replace ''mnode4'' with the node number assigned to your group. Bear in mind that the preceding letter 'm' should be kept! Also, replace the ''<id of container>'' by the number of the parent reservation. 
 + 
 +<code> 
 +tuto#@srvairlock:~/examples$ oarsub -t inner=<id of container> -l {"network_address in ('mnode4.cortexlab.fr')"}/nodes=1,walltime=1:00:00 -I 
 +</code> 
 + 
 +More documentation on oar can be found [[reserve|here]]. Among the reservation messages OAR outputs, the system will give you a reservation 'id'. __Be sure to write your's down__. It can be used for removing the job if necessary. 
 + 
 +You can check if the job was properly created as well as monitor the current jobs in the [gantt web interface](http://xp.cortexlab.fr/drawgantt/).
  
 ### Submit the task  ### Submit the task 
  
 Now, we have booked the testbed and we have a `.task` file containing our experiment. In order to run it, we need to submit it to the testbed scheduler. Now, we have booked the testbed and we have a `.task` file containing our experiment. In order to run it, we need to submit it to the testbed scheduler.
- 
-For now, the scheduler is a simple FIFO queue, but a more advanced scheduling mechanism will be implemented in upcoming versions of CorteXlab. 
  
 To submit a task to the scheduler, use the Minus CLI: To submit a task to the scheduler, use the Minus CLI:
 <code> <code>
-you@srvairlock:~$ minus task submit tuto_ofdm.task+tuto#@srvairlock:~$ minus task submit tuto_ofdm.task
 </code> </code>
  
Line 216: Line 226:
 You can check the status of your experiment through the testbed scheduler. To do so, use the Minus CLI: You can check the status of your experiment through the testbed scheduler. To do so, use the Minus CLI:
 <code> <code>
-you@srvairlock:~$ minus testbed status+tuto#@srvairlock:~$ minus testbed status
 num total tasks:   2540 num total tasks:   2540
 num tasks waiting: 0 num tasks waiting: 0
Line 226: Line 236:
 The information given by this command enables you to deduce your experiment status. It's quite self-explanatory. The information given by this command enables you to deduce your experiment status. It's quite self-explanatory.
  
 +__Are you having problems with your task? ''minus log'' might help you debug your scenario and GNU Radio problems.__
  
-Once it's finished (we have set the duration to 2 minutes), Minus will take care of copying the results and output messages back to your home folder in srvairlock, so that you can analyze it.+## Checking the results 
 + 
 +Once it's finished (we have set the duration to 2 minutes), Minus will take care of copying the results and output messages back to your home folder in srvairlock, so that you can analyze it.  
 + 
 +__For readability, all examples below consider task 15 with nodes node4 and node6. Please consider the values assigned to your group in the following.__
  
 All results are stored by task number in the results folder, inside your home folder. All results are stored by task number in the results folder, inside your home folder.
Line 233: Line 248:
 Go in this folder : Go in this folder :
 <code> <code>
-you@srvairlock:~/tuto_ofdm$ cd ~/results +tuto#@srvairlock:~/tuto_ofdm$ cd ~/results 
-you@srvairlock:~/results$ ls+tuto#@srvairlock:~/results$ ls
 task_15 task_15
-you@srvairlock:~/results$ cd task_15 +tuto#@srvairlock:~/results$ cd task_15 
-you@srvairlock:~/results/task_15$ ls+tuto#@srvairlock:~/results/task_15$ ls
 node4.tgz  node6.tgz node4.tgz  node6.tgz
 </code> </code>
Line 244: Line 259:
  
 <code> <code>
-you@srvairlock:~/results/task_15$ tar -zxf node4.tgz +tuto#@srvairlock:~/results/task_15$ tar -zxf node4.tgz 
-you@srvairlock:~/results/task_15$ ls +tuto#@srvairlock:~/results/task_15$ ls 
 node4  node4.tgz  node6.tgz node4  node4.tgz  node6.tgz
-you@srvairlock:~/results/task_15$ cd node4 +tuto#@srvairlock:~/results/task_15$ cd node4 
-you@srvairlock:~/results/task_15/node4$ ls+tuto#@srvairlock:~/results/task_15/node4$ ls
 rx_ofdm.grc  scenario.yaml  stdout.txt   tx_ofdm.py rx_ofdm.grc  scenario.yaml  stdout.txt   tx_ofdm.py
 rx_ofdm.py   stderr.txt     tx_ofdm.grc rx_ofdm.py   stderr.txt     tx_ofdm.grc
Line 261: Line 276:
  
 <code> <code>
-you@srvairlock:~/results/task_15/node4$ less stdout.txt+tuto#@srvairlock:~/results/task_15/node4$ less stdout.txt
 </code> </code>
  
Line 327: Line 342:
 </code> </code>
  
- 
-## What's next ? 
- 
-We have seen through this tutorial how to run an experiment in CorteXlab starting from a local example on your computer for USRPs. Now you know all the basics in order to run your own experiment in CorteXlab between two USRP nodes. 
- 
-Follow on to the [[from_gnuradio_to_cortxlab_pico|next tutorial]], where we will repeat this procedure for the PicoSDR nodes. 
cortexlab103.1522070676.txt.gz · Last modified: 2018/03/26 15:24 by lcardoso

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki