Skip to content

Add example to the user guide: how to query cluster info #345

@FedericoNegri

Description

@FedericoNegri

Example script

import datetime
from ansys.hps.client import Client, RmsApi
import logging

logging.basicConfig(format="%(message)s", level=logging.INFO)

client = Client(url="...", username="...", password="...")
rms_api = RmsApi(client)

since_datetime = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=7)
query_params = {
    "last_modified.gt": since_datetime,
    "limit": 10,
    "sort": "-last_modified",
}

print(80 * "=")

evaluators = rms_api.get_evaluators(**query_params)
print(f"Found {len(evaluators)} evaluators")

for evaluator in evaluators:
    print(50 * "=")
    print(f"Name: {evaluator.name}")
    print(f"CRS id: {evaluator.compute_resource_set_id}")
    print(f"Last modified: {evaluator.last_modified}")
    config = rms_api.get_evaluator_configuration(evaluator.id)

    print(f"Num cores: {config.resources.num_cores}")

    print(f"List of available apps:")
    for app in config.applications:
        print(f" * {app.name} - {app.version}")
print(80 * "=")


# query compute resource sets
compute_resource_sets = rms_api.get_compute_resource_sets()
print(f"Found {len(compute_resource_sets)} compute resource sets")

for crs in compute_resource_sets:
    print(60 * "=")
    print(f"Name: {crs.name}")
    print(f"Last modified: {crs.last_modified}")

    print("\nList of available apps:")
    for app in crs.available_applications:
        print(f" * {app.name} - {app.version}")

    cluster_info = rms_api.get_cluster_info(crs.id)

    print("Queues info:")
    for queue in cluster_info.queues:
        print(f" * Queue name: {queue.name}")
        print("   Nodes specs:")
        for node_group in queue.node_groups:
            print(
                f"   - {len(node_group.node_names)} nodes "
                f"with {node_group.cores_per_node} core "
                f"and {node_group.memory_per_node_mb/1024:.0f} GB of memory each"
            )
print(80 * "=")

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions