Skip to main content

IndySCC24 Competition Cluster Connection Guide

The IndySCC24 competition uses Indiana University's Jetstream2 cluster

1. Install Python3 and Pip

First, you need to ensure that Python3 and Pip (Python package manager) are installed on your system.

  1. Open the terminal application.
  2. Check if Python3 and Pip are already installed by entering the following commands:
    python3 --version
    pip3 --version

2. Install the OpenStack CLI Tool

  1. Install python-openstackclient by running the following command in the terminal:
    pip3 install python-openstackclient

3. Set Up the Credentials File

  1. Create a file somewhere on your local machine, for example ~/app-cred-indyscc.sh, and use a text editor (such as nano or vim) to edit the file:
    nano ~/app-cred-indyscc.sh
  2. Paste the following content into the file, replacing the placeholders your-app-cred-id-here and your-app-cred-secret-here with your team's credential ID and secret:
    export OS_AUTH_TYPE=v3applicationcredential
    export OS_AUTH_URL=https://js2.jetstream-cloud.org:5000/v3/
    export OS_IDENTITY_API_VERSION=3
    export OS_REGION_NAME="IU"
    export OS_INTERFACE=public
    export OS_APPLICATION_CREDENTIAL_ID=your-app-cred-id-here
    export OS_APPLICATION_CREDENTIAL_SECRET=your-app-cred-secret-here
  3. Save the file and exit the editor.

4. Import Credentials into Environment Variables

  1. Run the following command in the terminal to load your credentials file:
    source ~/app-cred-indyscc.sh

5. Test the OpenStack CLI

  1. Now you can test if the installation was successful. Test by listing your team's instances:
    openstack server list
    If everything is set up correctly, you should be able to see your instance list.

6. Shelve and Unshelve Instances

  1. When you don't need to use an instance, you can shelve (stop) it with the following command:
    openstack server shelve --wait <instance_name>
    For example:
    openstack server shelve --wait scc999-login
  2. If you need to use the instance again, you can unshelve it:
    openstack server unshelve --wait <instance_name>
    For example:
    openstack server unshelve scc999-login

7. Access Instances

Note: Connecting to compute nodes requires using the login node as a jump host, so you need to start the login node first before connecting to compute nodes.

  1. You can access your instances via SSH. Assuming your login node is named scc999-login, you can connect to it with the following command:
    ssh rocky@scc999-login.see240009.projects.jetstream-cloud.org
  2. If you need to connect to other compute nodes, you can use the login node as a jump host. For example:
    ssh -J rocky@scc999-login.see240009.projects.jetstream-cloud.org rocky@scc999-cpu0

7.1 Accessing Instances with VSCode

Note: Connecting to compute nodes requires using the login node as a jump host, so you need to start the login node first before connecting to compute nodes.

Host scc125-cpu3
HostName 10.3.72.124
ProxyJump rocky@149.165.174.65
User rocky

Host scc125-cpu2
HostName 10.3.72.37
ProxyJump rocky@149.165.174.65
User rocky

Host scc125-cpu1
HostName 10.3.72.174
ProxyJump rocky@149.165.174.65
User rocky

Host scc125-cpu0
HostName 10.3.72.107
ProxyJump rocky@149.165.174.65
User rocky

Host scc125-gpu0
HostName 10.3.72.171
ProxyJump rocky@149.165.174.65
User rocky

Host scc125-login
HostName 149.165.174.65
User rocky


8. Using the SPICE Console

If you cannot connect to instances via SSH, you can access instances through the SPICE console:

  1. Run the following command to get the SPICE console URL:
    openstack console url show --spice scc999-login
  2. Then open this URL in a browser to view the console.

9. Check SU Usage

You can use the provided Python script to check SU consumption:

  1. First, clone or download the Python script:
    git clone https://github.com/zacharygraber/indyscc24-js2-accounting
    cd indyscc24-js2-accounting
  2. Run the script with the following command, specifying a time range to view SU consumption:
    python3 accounting.py scc999 --start "2024-09-09T12:00:00.000Z" --end "2024-09-19T12:00:00.000Z"