This chapter will walk you through a simple experiment on Powder and introduce you to some of its basic concepts.
The walk-through assumes a new user who does not have an existing account on Powder, or any of the other University of Utah testbeds (i.e., Emulab, or CloudLab). If you do have an account on one of these testbeds, you can log in with your credentials for those platforms, and use an existing project to instantiate this profile.
- Access the @(tb) portalStart by pointing your browser at https://www.powderwireless.net/. Click on the "Log In" button at the top right.
- Go to the sign-up pageClick on the "Sign Up" button at the top right to access the sign-up page.
- Sign up for an accountClick on "Join Existing Project" and enter "TryPowder" for the project name. Enter your personal information on the left and submit your request for an account. (We will not use SSH access for this activity, so you don’t need to upload an ssh key. You can add an ssh key to your account later.)At this point you will have to wait for the Powder administrators to approve your account request before proceeding to the next step.Note that, as the name suggests, the TryPowder project is meant as a sandbox to try out Powder without going through the effort of setting up your own project. Further, the TryPowder account is limited in terms of the resources available to it. Specifically, no radio resources on Powder are accessible via the TryPowder project. This means that when you move beyond the "trying-out" phase, you should apply for your own project on Powder.
- Log inOnce your account is approved, log in at the Powder portal login page.
- Start ExperimentFrom the top menu, click “Experiments” and then “Start Experiment” to begin.
- Experiment WizardExperiments must be configured before they can be instantiated. A short wizard guides you through the process. The first step is to pick a profile for your experiment. A profile describes a set of resources (both hardware and software) that will be used to start your experiment. On the hardware side, the profile will control what type of equipment you get (e.g., physical machines, virtual machines, rooftop-SDRs, fixed-endpoint SDRs etc.) how many there are, and what the network between them looks like. On the software side, the profile specifies the operating system and software to be used in your experiment.Profiles come from two sources. Some of them are provided by Powder itself, and provide standard installation of popular operating systems, software stacks, etc. Others are created by other researchers and may contain research software, artifacts and data used to gather published results, etc. Profiles represent a powerful way to enable repeatable research.Clicking the “Change Profile” button will let you select the profile that your experiment will be built from.
- Select a profileOn the left side is the profile selector which lists the profiles you can choose. The list contains both globally accessible profiles and profiles accessible to the projects you are part of.Enter "GNURADIO-SIM" in the search box to select a profile provided by the Powder team.The dialog box on the right shows a description of the resources the profile will use. In this case the profile consists of a single compute node on which the GNU Radio software suite is installed.Once you selected the profile you will be back on the Experiment Wizard and can select "Next" to proceed.
- FinalizeSome profile require the selection of parameters in the second step of the Experiment Wizard. The GNURADIO-SIM does not require any parameters, so you will end up directly on the "Finalize" step.At this step you can (optionally) provide a name for your experiment and select "TryPowder" as the project if you have the option to do so. (Users who are only part of one project will not have the option to select a project.)Select "Next" to proceed.
- ScheduleOn the "Schedule" page you have the option of scheduling the start of your experiment. You can select "start immediately" (the default), or enter a future time. You can also enter an experiment duration, or stay with the default of 16 hours. (Note, if needed, you can extend the duration of you experiment later in the process.)For this activity, simply stay with the defaults and select "Finish" to instantiate your experiment.
- InstantiatingAssuming the resources requested by your profile are available, the Powder control framework will start instantiating your experiment.Note that is not uncommon though, for the requested resources not to be available, in which case you wil receive an error from the platform at this point. Resource contention issues can be dealt with by reserving resources ahead of time.
- Experiment readyOnce your experiment has successfully been instantiated, the progress bar will be complete, the status tab will turn green, showing "Your experiment is ready!" and you’ll be given a number of new options at the bottom of the screen with which to interact with your experiment.
- Open browser shellClick on the "List View" tab on your portal experiment view. Click on the gear icon associated with the "node" line and select "Shell" to open a browser shell on this node.
- Run noVNC in your browser shellEnter "/share/powder/runvnc.sh" in the opened browser shell.The "runvnc" script will start up a noVNC Server on the node in your experiment and expose it to your browser using Websockify. For this exercise this will allow us to run X windows via your browser.The "runvnc" script will ask you to provide a temporary password which you will use in the next step to access the noVNC server. The script will generate a "clickable link" in the browser shell which you should click on to access the noVNC server.Note: Using a browser shell and noVNC is a simplifying convenience for this exercise. I.e., it allows us to run X windows without the need to install X on your laptop/desktop. Most Powder users find it useful to enable direct ssh access to their Powder resources and to enable X windows on the laptop/desktop they use to access the platform.
- Accept the self-certified certificateWe use a self-certified certificate for the noVNC server. Your browser will likely complain about this and you should click trough the necessary steps to accept this and proceed to the noVNC page. (On Chrome that involves clicking on "Advanced" and then clicking on the "Proceed to ..." link.)
- Provide the temporary password to access noVNCEnter the temporary password your created earlier in the "Password Required" box to access the noVNC server.
- Run gnuradio-companionThe noVNC server will show up with four X windows.Enter "gnuradio-companion /share/powder/tutorial/psk.grc" in one of the X windows to start up gnuradio-companion with a simple example GNU Radio flow graph.
- Execute the GNU Radio flow graphClick "Run" ad then "Execute" to execute the example GNU Radio flow graph.
- Working with gnuradio-companionFeel free to further explore gnu-radiocompanion and/or make changes to the GNU Radio flow graph.As is the case with all Powder experiments, this is your personal instance and you can modify it as you see fit. And indeed, if you mess things up you can simply re-instantiate a new pristine copy!Note, however, that Powder does not persist any changes that you make, or data that you generate, in an experiment. So, if you create anything during an experiment that you want to keep, you need to copy it off your experimental node(s) before you terminate the experiment.
- Terminate you experimentOnce you are done exploring your experiment, it is good practice to explicitly terminate it. Click on the "Your experiment is ready!" link and select the "Terminate" button.Note that if you do not terminate your experiment explicitly, your experiment will terminate automatically after a few hours. Again, when the experiment terminates, you will lose anything on disk on the nodes, so be sure to copy off anything important early and often. You can use the “Extend” button to submit a request to hold it longer.
The Powder roadmap section contains useful next steps.