wiki:GENIExperimenter/Tutorials/GENIDesktop/GEC23/GENI_Desktop_runcmd

Version 7 (modified by griff@netlab.uky.edu, 9 years ago) (diff)

--

Navigation: Back

Running Your Software: Load your software onto nodes and run commands on nodes

Overview

The goal of this exercise is to show you how to copy files from your local computer (e.g., laptop) to select nodes in the topology. We will also show you how to run commands on specified nodes in your topology. This is particularly useful if you want to quickly load your source code onto all (or some of) the nodes, compile it, and then run it.

Loading Files onto Nodes

The File Upload module will allow you to upload a file or a groups of files (which we call a "fileset") to a user-selected destination directory on one or multiple nodes in your slice.

Uploading files is a two step process. Files are first uploaded from the user's local machine to our GENIDesktop Cloud Server. From there, the files can be distributed to any of the nodes in your slice. The two step process allows users to easily redistribute "filesets" from the Cloud server to nodes in any slice. For example, if a user creates multiple slices to experiment with multiple topologies, they can easily distribute the same fileset files to each of the slices without needing to re-upload them each time from their local machine.


To use the file upload service, the user first uploads the files to the GENIDesktop Cloud Server. When satisfied with the set of files, user can then select the node/nodes you want these files distributed to. In the screenshot below , we will upload the GEC23 Agenda file that we previously saved onto our local machine. You can save it to your PC from here.

  1. Click on the File upload button from the list of buttons in the top left of the page.
  2. In the small window that shows ups, click on the GENIDesktop Cloud Server file listing in the panel on the left to select the Cloud Server folder that you want to store the files in.
  3. Once you have selected a Cloud Server folder location, click on the Browse button in the right column and select the files you want to upload from your local machine to the GENIDesktop Cloud Server.
  4. Once your files have been selected, Click on the Upload Files to GENI Cloud button. These files should then show up in the left column under the folder you specified earlier.
  5. Now select the node(s) (in the topology view) to which you want to upload your files . Then click on the Set Selected Nodes button in the bottom right panel. Make sure you see your selected nodes listed below that button. In the To text box, type in the directory you want to upload the Cloud Server files to on the selected node(s). This location should be a directory that exists on all the nodes in your slice.
  6. Click on the Distribute button. You should see a progress bar indicating that the files are being copied from the Cloud Server to the specified node(s).

Running Commands on Nodes

In the topology view, select the node(s) on which you want to run a command. Then click on the Command button in the blue menu in upper left hand corner of the GENIDesktop. In the small window that shows up (see the figure below), click on the Set Selection button. Make sure you see your selected nodes listed below that button. Then type in the command you would like to run. You can issue multiple commands separated by a ;. (Commands are executed in a bash shell on the specified nodes)

Once the commands are run, you will see the results of the commands pop up in a new browser tab/window. (See the figure below)



Exercise Tasks (Can be done at a later time)

For the following exercise, if you do not have your own source code that you want to try, you can use the following HelloWorld.c program.

   main() { 
      printf("Hello World\n"); 
   }
  1. Task 1: Create a fileset with your source code on the GENI Desktop Cloud Server.
  2. Task 2: Upload your source code to Node-0 and Node-1.
  3. Task 3: Use the run command to compile your code on Node-0 and Node-1.
  4. Task 4: use the run command to run your compiled program on Node-0 and Node-1.


Back to GEC23 Tutorial