Sage is a national AI-at-the-edge research platform for running artificial intelligence applications where data is collected in real time. Unlike a traditional CPU, GPU, or storage resource, Sage is a distributed testbed made up of sensor-equipped edge nodes deployed in natural, urban, agricultural, and environmental monitoring settings.
Sage nodes combine edge compute hardware, GPUs, locally connected instruments, and a software stack for deploying AI applications directly in the field. Researchers can use Sage to process live sensor data, run AI/ML inference near the source of data collection, publish derived measurements, and support workflows that connect edge analysis with cloud or HPC resources. Sage supports use cases such as real-time image, video, audio, weather, air quality, soil, water, and other sensor-data analysis.
Jobs
Sage jobs are submitted to the Sage/Waggle edge scheduler rather than to a traditional HPC batch scheduler. A Sage job represents an instance of a science goal and describes what should run on authorized Waggle nodes at the edge.
A Sage job definition can be written in YAML or JSON and typically specifies the edge application or plugin to run, the Sage/Waggle nodes where it should run, scheduling rules that determine when the application should run, and conditions associated with job completion. Jobs can be created, submitted, checked, suspended, and removed using the sesctl command-line tool.
Common sesctl commands
| Command | Description |
sesctl ping | Tests connectivity to the configured Sage edge scheduler. |
sesctl create --file-path JobFile | Creates a job from a YAML or JSON job-definition file. Replace JobFile with the path to the job file. |
sesctl stat | Lists your jobs and displays their IDs, names, owners, and current status. |
sesctl stat --job-id JobID | Displays detailed status and scheduling information for a specific job. Replace JobID with the job's ID. |
sesctl submit --job-id JobID | Submits a previously created job to the Sage edge scheduler. |
sesctl rm JobID | Removes a job from the active job listing. Use sesctl rm --force JobID when removing a running job. Replace JobID with the job's ID. |
Users must have an approved Sage account and appropriate job-submission permissions before submitting jobs to the scheduler. Job access may also depend on permissions for the specific Sage/Waggle nodes listed in the job definition. Users should remove jobs when they are no longer needed.
For more information about submitting jobs on Sage, see the Sage Submit your jobs and sesctl documentation.
Queue specifications
| Name | Purpose | Nodes | CPU cores / node | GPUs / node | Node RAM | Jobs
30 days
|
Wait Time
30-day trend
|
Wall Time
30-day trend
|
|---|---|---|---|---|---|---|---|---|
| Wild Sage Node | Best suited for outdoor, field-deployed edge AI workflows that need to process sensor data close to where it is collected, including environmental monitoring, camera/audio analysis, weather or air-quality sensing, and remote instrument deployments. | — | NVIDIA Xavier NX ARM64 node controller | 1 NVIDIA Xavier NX shared CPU/GPU platform | 8 GB | — | — | — |
| Blade Node | Best suited for edge AI workflows that need stronger GPU acceleration or more memory than Wild Sage nodes, especially deployments in machine rooms or controlled infrastructure sites that can support server/blade-style hardware. | — | Multi-core ARM64 | 1 NVIDIA T4 | 32 GB | — | — | — |
Storage
External Storage
Sage nodes include persistent local storage for housing downloaded plugins and caching data produced at the edge before it is transferred to the node’s Beehive. This local storage helps nodes continue collecting and caching high-frequency data, including images, audio, and video, even when a node is temporarily offline from its Beehive. Wild Sage Nodes include 1 TB of NVMe storage, while Blade Nodes include 1 TB of SSD storage.
Sage also provides cloud-hosted data storage through Beehive services. Edge-produced plugin data is stored in the Sage Data Repository (DR), which supports time-series key-value data as well as larger data products such as audio, images, and video.
For more information about Sage node storage and data storage systems, see the Sage Architecture Documentation.
File Transfer
Sage does not use a traditional HPC file-transfer workflow for moving files to and from a login node. Instead, Sage data is accessed through Sage data services. Sensor data can be queried through the Sage Data API, either with the Python Sage Data Client or the HTTP API.
For large file uploads produced by Sage applications, such as images, audio, or video files, users can query the Sage Data API to find uploaded file URLs and then download those files using tools such as wget or curl. Some protected data may require an approved Sage account, a signed Data Use Agreement, and authentication using the user’s Sage Portal username and access token.
For more information about accessing and downloading Sage data, see the Sage Access and use data documentation.
| Supported Methods | Data Transfer Node | URL |
|---|---|---|
| PYTHON SAGE DATA CLIENT | https://sagecontinuum.org/docs/tutorials/accessing-data#data-api | |
| HTTP API | https://sagecontinuum.org/docs/tutorials/accessing-data#using-http-api |
Login to ACCESS Netsage
Sage users access the platform through the Sage Portal. To create a Sage account, go to the Sage Portal and sign in with Globus. On the Globus login page, select ACCESS CI as the organization and use your ACCESS credentials to log in. If this is your first time signing in, choose a Sage username to complete account creation.
Some Sage features are open for public use, but an approved Sage account and appropriate access permissions are required for protected data access, publishing apps to the Edge Code Repository, and scheduling apps on Sage nodes. Use the Request Sage Access page to request these permissions. The Sage team must review and approve the request before the permissions are enabled. If your account is not approved within 72 hours or you have special access requirements, contact Sage Support.
For command-line tools and SSH access to assigned nodes, go to the Sage Access Credentials and follow the instructions to update SSH public keys and finish node-access setup. After completing this setup, replace <your_username> in the SSH command below with your Sage Portal username, and replace V030 with the node VSN that you have been granted access to.
For more information about creating and configuring a Sage account, see the Sage Create An Account documentation.
SSH Login
$ ssh <your_username>@waggle-dev-node-V030