On this page:
2.1 Next Steps
2024-01-04 (93db12d)

2 Getting Started

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.

  1. Access the Powder portal
    Start by pointing your browser at https://www.powderwireless.net/. Click on the "Log In" button at the top right.
    screenshots/powder/powder-website.png

  2. Go to the sign-up page
    Click on the "Sign Up" button at the top right to access the sign-up page.
    screenshots/powder/powder-signup1.png

  3. Sign up for an account
    Click 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.
    screenshots/powder/powder-signup2.png

  4. Log in
    Once your account is approved, log in at the Powder portal login page.
    screenshots/powder/powder-loginpage.png

  5. Start Experiment
    From the top menu, click “Experiments” and then “Start Experiment” to begin.
    screenshots/powder/powder-startexperiment.png

  6. Experiment Wizard
    Experiments 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.
    screenshots/powder/powder-srs-2.png

  7. Select a profile
    On 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.
    screenshots/powder/powder-select-profile.png

  8. Finalize
    Some 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.
    screenshots/powder/powder-finalize.png

  9. Schedule
    On 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.
    screenshots/powder/powder-schedule.png

  10. Instantiating
    Assuming 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.
    screenshots/powder/powder-swappingin.png

  11. Experiment ready
    Once 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.
    screenshots/powder/powder-ready2.png

  12. Open browser shell
    Click 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.
    screenshots/powder/powder-shell2.png

  13. Run noVNC in your browser shell
    Enter "/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.
    screenshots/powder/powder-runvnc1.png

  14. Accept the self-certified certificate
    We 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.)
    screenshots/powder/powder-runvnc3.png

  15. Provide the temporary password to access noVNC
    Enter the temporary password your created earlier in the "Password Required" box to access the noVNC server.
    screenshots/powder/powder-runvnc4.png

  16. Run gnuradio-companion
    The 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.
    screenshots/powder/powder-runvnc6.png

  17. Execute the GNU Radio flow graph
    Click "Run" ad then "Execute" to execute the example GNU Radio flow graph.
    screenshots/powder/powder-runvnc8.png

  18. Working with gnuradio-companion
    Feel 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.
    screenshots/powder/powder-runvnc9.png

  19. Terminate you experiment
    Once 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.
    screenshots/powder/powder-terminate2.png

2.1 Next Steps

The Powder roadmap section contains useful next steps.