Massive MIMO on POWDER
Basic Process
For users to be able to run experiments on the massive MIMO platform at POWDER, they need to follow the next steps:
- Create POWDER account
- Create an experiment profile
- Log into the POWDER machine provided by the experiment instantiation
- Familiarize with the RENEW software and run a basic demo script
This tutorial will show you how to perform each of these steps.
1) Create user account
To get started, users need to request an account here.
2) Create Experiment Profile
After getting an account, users need to set up their experiment topology (i.e., hardware resources needed). To do so, we provide two options:
Option A: Use existing profile (basic option - recommended)
We created a set of profiles that provide basic functionalities. In many cases this might be enough for users to begin working with the platform.
- Click on
Experiments
(top left) - Select
Start Experiment
- Select
Change Profile
- Enter “renewlab” in the search box and select the “renewlab” or “renewlab-d740” profiles (or simply choose from list). Click on
Select Profile
- Click
Next
- Select frequency range to operate at (default for mMIMO framework is 2496 MHz to 2506 MHz) and click
Next
- Provide a name for this experiment and select a project and the machine cluster to be used.
The idea behind selecting a project is to allow PIs (Principal Investigators) to create a project as administrators, and then allow their collaborators/students to work under that project.
In terms of the cluster to use, we suggest to use the default
Emulab
. Here you will see the graphical topology showing the PC, massive MIMO base station, and clients. - On the next screen you will reserve the frequency resources you previously selected.
As per FCC regulation, we need to ensure that we have permission to use the resources you requested at the time you want to use them.
The POWDER team will have to authorize this request which takes a few hours during weekdays. There might be a longer delay during weekends though.
By clicking on the
Create New Resource Reservation
button a new set of options appear at the bottom of the screen as shown in the next two images.
You need to specify the number of days you are planning to reserve your resources for.
We provide a tool that allows you to search an adequate time window given your specification.
For instance, if you select 2 days and hit the Search
button, the system will find a time slot and
set your start/end time accordingly. Finally, you need to provide a simple reason for the request.
After the request has been approved, you can go back to this website to finalize your experiment reservation.
You can click in the box next to the Creator
column to automatically fill out the Start/End time of your
experiment according to the approved frequency resource reservation schedule.
While you might be able to reserve the frequency resources for a long period of time, the experiment can only be set to a maximum of 16 hours, initially. Once the experiment is isntantiated though, you can request an extension as shown below.
- After clicking on the
Finish
button it will take a few minutes for the experiment instantiation to complete. - Once the process is completed, users will be able to create a disk image, extend your experiment duration, or terminate the experiment.
Option B: Copy and modify existing profile
Users can also copy an existing profile and modify it accoding to their own needs. The process is very similar to the one described above. For a much more detailed explanation on creating and modifying profiles, please follow the directions on the POWDER website.
3) Accessing the host machine
Under the List View
tab, users will find the different nodes in the experiment topology.
We can ssh into the PC using the command provided.
Remember to add use X11 forwarding (i.e., -X
option) to forward the application display to your local machine.
4) RENEW Software
By default, the renewlab
profile clones the RENEW repository into the /local/repository
folder.
It also installs all the dependencies required to run the RENEW scripts.
If users prefer to run the scripts from their home folder, they can use the following command to clone the RENEW code repo:
git clone https://gitlab.renew-wireless.org/renew/renew-software.git
WARNING: After the experiment expires, EVERYTHING in your HOME directory is deleted. Make sure to create a disk image or download your collected data before this happens.
For people running RENEW software locally on their own machines, they will need to install all the dependencies themselves.
This can be done simply by running three scripts located inside the renew-software
directory:
- Install SoapySDR software and Iris drivers:
./install_soapy.sh
- Install RENEWLab Python dependencies and packages:
./install_pylibs.sh
- Install RENEWLab Real-time C++ software dependencies:
./install_cclibs.sh
5) Checking Massive MIMO Board Topology
Users can easily check the serial numbers of the boards in the network.
To do so, we need to run the script FindArrays.py
in the python IrisUtils folder
e.g., python3 /PYTHON/IrisUtils/FindArrays.py
The output should look something like this:
where the first serial number corresponds to the Hub (FH4A00000), then the next six rows correspond to the Iris boards that form the massive MIMO base station. Notice each row corresponds to a different chain, therefore, this base station has four chains with four Iris boards each and two chains with eight Iris boards each. Finally, at the bottom we see two individual Iris boards, which are the clients. If you run the script and nothing comes up, run it again a couple of more times. There is a known bug related to board discovery that makes it fail occasionally. If after a couple of tries it does not work, then something has gone wrong and someone in the team will have to look into it. Please reach out to us at support@renew-wireless.org if this happens.
6) Run Demo
The RENEW Design Flow page contains more information on the available software, including step-by-step tutorials on using the Massive MIMO equipment. For example, see this tutorial to learn how to run the PYTHON demo files.
7) Running Matlab
In the RENEW profile, Matlab is inside the /usr/local/
folder.