An Evaluator is essentially an agent software that runs on a compute resource (like a workstation, HPC node, or cloud instance). Its primary purpose is to make that the resource's hardware and software is available to Ansys HPC Platform Services for running simulation tasks (converting inputs to outputs).
Key functions of an Evaluator include:
Connecting to core services: It reads its configuration file to connect to the platform's central services (JMS, RMS, Keycloak).
Authentication and registration: It signs into Keycloak for authorization and registers itself with the Resource Management Service (RMS) to become available for work.
Task execution: It pulls suitable tasks (jobs) from the Job Management Service (JMS).
Job processing: It performs the actual work required by the task, such as transferring necessary input/output files and launching the simulation solver or application executable.
Heterogeneity: By deploying Evaluators on multiple machines with varying operating systems, hardware, and installed software, you create a diverse pool of resources accessible through the platform.
How It Works
The evaluator is an executable that must be started on a resource. Evaluators must be configured to connect to the controller machine where Ansys HPC Platform Core Services are deployed. This enables evaluators to talk to the Job Management Service and other services to perform its tasks. The single source of truth in terms of its configuration is the evaluator's configuration file.
On startup, an evaluator:
Reads its configuration file
Signs in to Keycloak (the authorization service)
Registers itself with the Resource Management Service
Listens to the Resource Management Service for configuration changes and updates the configuration file as needed
Once evaluators are registered with the Resource Management Service, they start to look for work from the datastore (Job Management Service).
When they pull work from the Job Management Service, they perform side-car functions such as transferring files and starting solvers via command line or execution scripts.
