If you are a Drexel user, use your Drexel username and password to log on to the grid. An account will automatically be created for you the first time you log in, but an administrator must enable your account before you can use it.
To fully utilize the grid, you will need an SSH client and an X Windows client. If you are using Linux, you already have everything you need. For other platforms, we recommend the following software:
ssh command-line client.Access to the Grid itself is done using SSH keys—you will only use a password to log in to the web interface. You may add and remove SSH keys in the SSH key profile pane. The steps below walk through creating a new SSH key and uploading it to the Grid. For more details on using SSH keys, see GitHub’s documentation.
USERNAME with your Drexel username. This creates a new ssh key with an associated comment (via -C) consisting of your Drexel email.Enter a file in which to save the key, press ~/.ssh directory. Recall that ~ is shorthand for your home directory, so ~/.ssh is the directory named .ssh that is in your home directory.ssh-agent.~/.ssh (use cd) and execute the command cat id_ed25519.pub to output the contents of the file id_ed25519.pub to the terminal. This is your public key.On a UNIX-based machine, connect to the grid at the terminal by executing the following command. Be sure to replace USERNAME with your Grid username. If you are a Drexel student, your Grid username is the same as your Drexel username.
If you need X11 forwarding, add the -X option to the command line above (the X is capitalized).
gridcli to control reservationsOnce you have connected to the Grid, the gridcli command-line client will allow you to launch and stop reservation and snapshot nodes. You can type gridcli -h to see a description of available options. The first time you use gridcli, it will ask you for your username and password. You should provide the same username and password that you use to access the Grid web interface. Subsequent invocations will not require authentication. Some gridcli operations, like stopping a reservation, can also be performed using the web interface.
When you launch a Grid reservation, you will need to specify which nodes to use. You may only specify nodes that are not already in use. Node status is shown on the Grid home page. You can also see a list of nodes and their statuses with the gridcli nodes command.
A list of your reservations is available at the Reservations link. The command gridcli reservations will also list reservations, displaying each reservation’s name and unique identifier (in parentheses). You can use the unique identifier to manage the reservation using gridcli.
To launch a reservation, you must specify an image to run and a set of one or more nodes on which to run it. You can do this using the command gridcli reservation schedule IMAGE NODE [NODE …], where IMAGE, e.g., dragonradio-class is an image name and each NODE is a node name, e.g., grid01. You can see a list of available images by clicking the Images link on the Grid web page after logging in. If you do not know which image you want to use, try the dragonradio-class image, which has GNU Radio 3.8 and Dragon Radio both pre-installed in an Ubuntu 22.04 image. The gridcli command to launch a reservation will return immediately, but the reservation may take several minutes to start, especially if it must flash firmware. Once you have launched a reservation, you can see its status in the web interface at the Reservations link. When the status of the reservation changes to “Running,” you may connect to any of the nodes that are part of the reservation using SSH.
By default, a reservation will start immediately and last for 4 hours. You may schedule an explicit start time using the --start flag when scheduling a reservation via gridcli. The argument to --start is a human-readable time specification, e.g., “10:30” or “1:30 pm”. The duration of the reservation can be specified using the --duration flag, whose argument is also human-readable, e.g., “1 hour” or “30 minutes”. A reservation’s initial duration may not be greater than 4 hours, although it may be extended.
When launching an image on a node with an X310, the UHD firmware version can be specified with the –uhd option to gridcli node launch. Currently 3.9.5, 3.9.7, 3.15.LTS, 4.0.0.0, and 4.2.0.0 are supported. By default, X310’s are re-flashed with UHD 3.9.5 firmware on launch. N210’s cannot be automatically flashed; all N210 nodes run UHD 3.9.5 firmware.
If a reservation has less than an hour left, it may be extended an additional hour by clicking the icon in the web interface. You may also use the command gridcli reservation ID extend DURATION, where ID is the reservation’s unique identified, to extend the reservation by DURATION. You can see the unique identifier for your reservations at the Reservations link on the web interface (the identifier is in parentheses) or by running the command gridcli reservations
A reservation can be stopped before its scheduled end time by clicking the icon in the web interface’s list of reservations or by executing the command gridcli reservation stop ID, where ID is the reservation’s unique identifier.
Once you have launched a reservation and its status is “Running,” you may connect to any of the nodes that are part of the reservation using SSH. You must connect using your Grid username and one of the SSH keys that you previously uploaded to the Grid. All nodes are on a private network that is only accessible via dwslgrid.ece.drexel.edu, so to connect to a node, you must first SSH to dwslgrid.ece.drexel.edu and then SSH from there to the node. The most straightforward way to accomplish this is to copy your private SSH key to dwslgrid.ece.drexel.edu and then use this key when connecting to a node. With a bit of extra effort, you can instead proxy your SSH connection through dwslgrid automatically, which eliminates the intermediate manual invocation of SSH.
dwslgridSee the OpenSSH Cookbook entry on proxies and jump hosts for details on how to automatically proxy SSH connections to instances through dwslgrid.ece.drexel.edu. If you are connecting to the Grid from a Linux or Mac, adding a section to your ~/.ssh/config along the lines given below on your personal machine will allow you to connect easily to both dwslgrid and individual grid nodes. Be sure to replace USERNAME with your username and PRIVKEYFILE with the name of your private key. If you generated a key pair using the instructions above, PRIVKEYFILE should be id_ed25519.
Host dwslgrid dwslgrid.ece.drexel.edu
HostName dwslgrid.ece.drexel.edu
User USERNAME
IdentityFile ~/.ssh/PRIVKEYFILE
ForwardX11 yes
ServerAliveInterval 60
ServerAliveCountMax 2
Host grid??
HostName %h
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User USERNAME
IdentityFile ~/.ssh/PRIVKEYFILE
ForwardX11 yes
ProxyJump dwslgrid
You can see a list of available images by clicking the Images link on the Grid web page after logging in or by executing the command gridcli images.
You may also use any image from the following remote sources if you use the –remote-image command-line flag when launching an instance.
images: default remote. See here for a list.ubuntu: default remote. See here for a list.ubuntu-daily: default remote. See here for a list.For example, you may specify ubuntu:22.04 to launch a bare Ubuntu 22.04 container. Image from these remote sources will not be listed by gridcli images.
To use your own image, copy it to the images directory in your home directory. The image must be readable by all users. You can accomplish this by running chmod 0444 IMAGE at the terminal, where IMAGE is your image file. Although counter-intuitive, this will not allow other users to see or use your image. You can manage your images via the Images link in the web interface. Marking an image “public” will make it available to every Grid user.
You can snapshot a running instance by typing gridcli node snapshot NODE SNAPSHOTNAME, where NODE is the node you wish to snapshot and SNAPSHOTNAME is the name of the snapshot you want to create. The snapshot will be written to the images directory in your home directory and will be named SNAPSHOTNAME.tar.gz. The node will be paused while a snapshot is taken, which can take several minutes depending on the size of the image.
If you receive the error The grid user does not have permission to write to /home/USER/images., where USER is your username, check that the permissions on your home directory allow the grid user to write to your images directory. Your home directory must have a+x permissions, which you can provide with the command chmod a+x ~. There must also be a directory images in your home directory that is owned by you, owned by the grid group, and has permissions 0770. If the images directory does not exist or has the wrong group, you will need to contact support to have it created.
The Grid provides a REST API (gridcli works exclusively via the REST API). Both Swagger documentation and ReDoc documentation are available. An OpenAPI schema is also available. You must be logged in to access the API.
You can obtain an API token that will allow you to authenticate to the API without using a username and password via the API profile pane.
If you need additional help, please contact support@dwslgrid.net.