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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions