Farm Agent

Overview

Omniverse Farm Agent is responsible for executing a set of tasks based on the capabilities of the environment on which it runs. Once launched, Agent queries Omniverse Queue for the tasks that have been submitted, and selects one for processing.

During the execution of the task, it regularly reports its progress back to Queue, so that the entire fleet of Agents and tasks can be managed from a single location.

Installation

Agent can be installed from the Omniverse Launcher, by navigating to the Exchange header menu, then selecting Agent from the Apps section of the left-hand sidebar. Click Install and wait for the installation process to complete.

Omniverse Launcher: Agent

Once installation is complete, open a browser window to http://localhost:8222 then launch the Omniverse Farm Queue and click “Connect”. Back in the Agent window, click the Launch button to launch Farm Agent and start processing content.

Interface Overview

Omniverse Agent interface

#

UI Element

Action

1

Queue address

Enter Queue URL (host) the Agent (client) should connect to in order to retrieve the list of pending tasks.

2

Connect/Disconnect

After validating that the connection is successful, clicking the Connect button will have the Agent query, pick up and start processing tasks. Alternatively, clicking the Disconnect button will release the Agent from the pool.

3

Test connection

Click this button to validate that the provided Queue URL can be reached by the Agent. This can be helpful in order to investigate and diagnose potential network or connectivity issues when running Agents and Queues on different environments.

4

Edit job definition

Click this button to open a Wizard to edit existing job definitions, or create new ones on the fly. Once saved, the Agent will be ready to accept incoming requests from Queue about executing this type of task.

5

Agent ID

Label displaying the unique identifier of the Agent. When running multiple Agents on the same environment, this makes it possible to connect/disconnect, or otherwise perform tasks on individual Agents via their own UI.

6

Agent task status

Label displaying the status of the task currently performed by the Agent.

7

Agent connection status

Label displaying the status of the connection from the Agent to the pool.

Linux Headless Installation

Installing Farm Agent w/ Linux:

  • Prerequisites: Ubuntu Server 20.04 or greater (Other Linux Distributions should work, however are untested in a production environment as of this writing.)

    The server running these scripts requires an internet connection to download the necessary additional software.

  1. Update your local software repositories and download the needed support packages:

    ~$ sudo apt-get install -y --no-install-recommends \
            libatomic1 \
            libxi6 \
            libxrandr2 \
            libxt6 \
            libegl1 \
            libglu1-mesa \
            libgomp1 \
            libsm6 \
            unzip
    
  2. Upload the farm_agent_install.sh script to the server running the Farm Agent and place in the /opt/ove folder (This folder will need to be created first.)

  3. Chown the farm_agent_install.sh script to make it executable.

    ~$ chown +x farm_agent_install.sh
    
  4. Run the script from within the /opt/ove folder as a non-root user.

    ~$ ./farm_agent_install.sh
    
  5. Once the files are downloaded and unpacked, you will have a folder named: /opt/ove/ov-farm-agent.

  6. Ensure that the /opt/ove/ov-farm-agent and all the files within are owned by a non-root user, then edit the agent.sh file.

  7. Configure the farm agent controller and operator addresses to the Farm Queue Server address:

–/exts/omni.services.farm.agent.controller/manager_host=http://<queue_ip>:<queue_port> –/exts/omni.services.farm.agent.operator/manager_host=http://<queue_ip>:<queue_port>

  1. Start the agent via the following command:

    `~$ ./agent sh &`
    

Output Log

The console will display a similar output for an agent that is running correctly (headless w/ acceleration):

[nvidia-user@ip-172-01-23-34 ov-farm-agent]$ ./agent.sh
[Info] [carb] Logging to file: /home/nvidia-user/.nvidia-omniverse/logs/Kit/omni.farm.agent.headless/102.1/kit_20220502_132007.log
[0.346s] [ext: omni.kit.pipapi-0.0.0] startup
[0.360s] [ext: omni.services.pip_archive-0.3.0] startup
. . .
[1.464s] [ext: omni.farm.agent.headless-102.1.0] startup
[1.574s] app ready

An agent error running without proper acceleration will display:

[1.964s] [ext: omni.farm.agent.headless-102.1.0] startup
2022-04-29 20:57:11 [2,049ms] [Error] [omni.services.farm.facilities.agent.capacity.managers.base] Failed to load capacities for omni.services.farm.facilities.agent.capacity.GPU: NVML Shared Library Not Found
[2.075s] app ready

See the Linux Troubleshooting for any installation issues.