AWS Parallel Computing Service

2025/10/01 - AWS Parallel Computing Service - 1 new3 updated api methods

Changes  Added the UpdateCluster API action to modify cluster configurations, and Slurm custom settings for queues.

UpdateCluster (new) Link ¶

Updates a cluster configuration. You can modify Slurm scheduler settings, accounting configuration, and security groups for an existing cluster.

See also: AWS API Documentation

Request Syntax

client.update_cluster(
    clusterIdentifier='string',
    clientToken='string',
    slurmConfiguration={
        'scaleDownIdleTimeInSeconds': 123,
        'slurmCustomSettings': [
            {
                'parameterName': 'string',
                'parameterValue': 'string'
            },
        ],
        'accounting': {
            'defaultPurgeTimeInDays': 123,
            'mode': 'STANDARD'|'NONE'
        }
    }
)
type clusterIdentifier:

string

param clusterIdentifier:

[REQUIRED]

The name or ID of the cluster to update.

type clientToken:

string

param clientToken:

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

This field is autopopulated if not provided.

type slurmConfiguration:

dict

param slurmConfiguration:

Additional options related to the Slurm scheduler.

  • scaleDownIdleTimeInSeconds (integer) --

    The time (in seconds) before an idle node is scaled down.

    Default: 600

  • slurmCustomSettings (list) --

    Additional Slurm-specific configuration that directly maps to Slurm settings.

    • (dict) --

      Additional settings that directly map to Slurm settings.

      • parameterName (string) -- [REQUIRED]

        PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide.

      • parameterValue (string) -- [REQUIRED]

        The values for the configured Slurm settings.

  • accounting (dict) --

    The accounting configuration includes configurable settings for Slurm accounting.

    • defaultPurgeTimeInDays (integer) --

      The default value for all purge settings for slurmdbd.conf. For more information, see the slurmdbd.conf documentation at SchedMD.

      The default value for defaultPurgeTimeInDays is -1.

      A value of -1 means there is no purge time and records persist as long as the cluster exists.

    • mode (string) --

      The default value for mode is STANDARD. A value of STANDARD means Slurm accounting is enabled.

rtype:

dict

returns:

Response Syntax

{
    'cluster': {
        'name': 'string',
        'id': 'string',
        'arn': 'string',
        'status': 'CREATING'|'ACTIVE'|'UPDATING'|'DELETING'|'CREATE_FAILED'|'DELETE_FAILED'|'UPDATE_FAILED'|'SUSPENDING'|'SUSPENDED',
        'createdAt': datetime(2015, 1, 1),
        'modifiedAt': datetime(2015, 1, 1),
        'scheduler': {
            'type': 'SLURM',
            'version': 'string'
        },
        'size': 'SMALL'|'MEDIUM'|'LARGE',
        'slurmConfiguration': {
            'scaleDownIdleTimeInSeconds': 123,
            'slurmCustomSettings': [
                {
                    'parameterName': 'string',
                    'parameterValue': 'string'
                },
            ],
            'authKey': {
                'secretArn': 'string',
                'secretVersion': 'string'
            },
            'accounting': {
                'defaultPurgeTimeInDays': 123,
                'mode': 'STANDARD'|'NONE'
            }
        },
        'networking': {
            'subnetIds': [
                'string',
            ],
            'securityGroupIds': [
                'string',
            ],
            'networkType': 'IPV4'|'IPV6'
        },
        'endpoints': [
            {
                'type': 'SLURMCTLD'|'SLURMDBD',
                'privateIpAddress': 'string',
                'publicIpAddress': 'string',
                'ipv6Address': 'string',
                'port': 'string'
            },
        ],
        'errorInfo': [
            {
                'code': 'string',
                'message': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    • cluster (dict) --

      The cluster resource and configuration.

      • name (string) --

        The name that identifies the cluster.

      • id (string) --

        The generated unique ID of the cluster.

      • arn (string) --

        The unique Amazon Resource Name (ARN) of the cluster.

      • status (string) --

        The provisioning status of the cluster.

      • createdAt (datetime) --

        The date and time the resource was created.

      • modifiedAt (datetime) --

        The date and time the resource was modified.

      • scheduler (dict) --

        The cluster management and job scheduling software associated with the cluster.

        • type (string) --

          The software PCS uses to manage cluster scaling and job scheduling.

        • version (string) --

          The version of the specified scheduling software that PCS uses to manage cluster scaling and job scheduling. For more information, see Slurm versions in PCS in the PCS User Guide.

          Valid Values: 23.11 | 24.05 | 24.11

      • size (string) --

        The size of the cluster.

        • SMALL: 32 compute nodes and 256 jobs

        • MEDIUM: 512 compute nodes and 8192 jobs

        • LARGE: 2048 compute nodes and 16,384 jobs

      • slurmConfiguration (dict) --

        Additional options related to the Slurm scheduler.

        • scaleDownIdleTimeInSeconds (integer) --

          The time (in seconds) before an idle node is scaled down.

          Default: 600

        • slurmCustomSettings (list) --

          Additional Slurm-specific configuration that directly maps to Slurm settings.

          • (dict) --

            Additional settings that directly map to Slurm settings.

            • parameterName (string) --

              PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide.

            • parameterValue (string) --

              The values for the configured Slurm settings.

        • authKey (dict) --

          The shared Slurm key for authentication, also known as the cluster secret.

          • secretArn (string) --

            The Amazon Resource Name (ARN) of the shared Slurm key.

          • secretVersion (string) --

            The version of the shared Slurm key.

        • accounting (dict) --

          The accounting configuration includes configurable settings for Slurm accounting.

          • defaultPurgeTimeInDays (integer) --

            The default value for all purge settings for slurmdbd.conf. For more information, see the slurmdbd.conf documentation at SchedMD.

            The default value for defaultPurgeTimeInDays is -1.

            A value of -1 means there is no purge time and records persist as long as the cluster exists.

          • mode (string) --

            The default value for mode is STANDARD. A value of STANDARD means Slurm accounting is enabled.

      • networking (dict) --

        The networking configuration for the cluster's control plane.

        • subnetIds (list) --

          The ID of the subnet where PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and PCS resources. The subnet must have an available IP address, cannot reside in Outposts, Wavelength, or an Amazon Web Services Local Zone.

          Example: subnet-abcd1234

          • (string) --

        • securityGroupIds (list) --

          The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.

          The following rules are required:

          • Inbound rule 1

            • Protocol: All

            • Ports: All

            • Source: Self

          • Outbound rule 1

            • Protocol: All

            • Ports: All

            • Destination: 0.0.0.0/0 (IPv4) or ::/0 (IPv6)

          • Outbound rule 2

            • Protocol: All

            • Ports: All

            • Destination: Self

          • (string) --

        • networkType (string) --

          The IP address version the cluster uses. The default is IPV4.

      • endpoints (list) --

        The list of endpoints available for interaction with the scheduler.

        • (dict) --

          An endpoint available for interaction with the scheduler.

          • type (string) --

            Indicates the type of endpoint running at the specific IP address.

          • privateIpAddress (string) --

            For clusters that use IPv4, this is the endpoint's private IP address.

            Example: 10.1.2.3

            For clusters configured to use IPv6, this is an empty string.

          • publicIpAddress (string) --

            The endpoint's public IP address.

            Example: 192.0.2.1

          • ipv6Address (string) --

            The endpoint's IPv6 address.

            Example: 2001:db8::1

          • port (string) --

            The endpoint's connection port number.

            Example: 1234

      • errorInfo (list) --

        The list of errors that occurred during cluster provisioning.

        • (dict) --

          An error that occurred during resource creation.

          • code (string) --

            The short-form error code.

          • message (string) --

            The detailed error information.

CreateQueue (updated) Link ¶
Changes (request, response)
Request
{'slurmConfiguration': {'slurmCustomSettings': [{'parameterName': 'string',
                                                 'parameterValue': 'string'}]}}
Response
{'queue': {'slurmConfiguration': {'slurmCustomSettings': [{'parameterName': 'string',
                                                           'parameterValue': 'string'}]}}}

Creates a job queue. You must associate 1 or more compute node groups with the queue. You can associate 1 compute node group with multiple queues.

See also: AWS API Documentation

Request Syntax

client.create_queue(
    clusterIdentifier='string',
    queueName='string',
    computeNodeGroupConfigurations=[
        {
            'computeNodeGroupId': 'string'
        },
    ],
    slurmConfiguration={
        'slurmCustomSettings': [
            {
                'parameterName': 'string',
                'parameterValue': 'string'
            },
        ]
    },
    clientToken='string',
    tags={
        'string': 'string'
    }
)
type clusterIdentifier:

string

param clusterIdentifier:

[REQUIRED]

The name or ID of the cluster for which to create a queue.

type queueName:

string

param queueName:

[REQUIRED]

A name to identify the queue.

type computeNodeGroupConfigurations:

list

param computeNodeGroupConfigurations:

The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.

  • (dict) --

    The compute node group configuration for a queue.

    • computeNodeGroupId (string) --

      The compute node group ID for the compute node group configuration.

type slurmConfiguration:

dict

param slurmConfiguration:

Additional options related to the Slurm scheduler.

  • slurmCustomSettings (list) --

    Additional Slurm-specific configuration that directly maps to Slurm settings.

    • (dict) --

      Additional settings that directly map to Slurm settings.

      • parameterName (string) -- [REQUIRED]

        PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide.

      • parameterValue (string) -- [REQUIRED]

        The values for the configured Slurm settings.

type clientToken:

string

param clientToken:

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

This field is autopopulated if not provided.

type tags:

dict

param tags:

1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'queue': {
        'name': 'string',
        'id': 'string',
        'arn': 'string',
        'clusterId': 'string',
        'createdAt': datetime(2015, 1, 1),
        'modifiedAt': datetime(2015, 1, 1),
        'status': 'CREATING'|'ACTIVE'|'UPDATING'|'DELETING'|'CREATE_FAILED'|'DELETE_FAILED'|'UPDATE_FAILED'|'SUSPENDING'|'SUSPENDED',
        'computeNodeGroupConfigurations': [
            {
                'computeNodeGroupId': 'string'
            },
        ],
        'slurmConfiguration': {
            'slurmCustomSettings': [
                {
                    'parameterName': 'string',
                    'parameterValue': 'string'
                },
            ]
        },
        'errorInfo': [
            {
                'code': 'string',
                'message': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    • queue (dict) --

      A queue resource.

      • name (string) --

        The name that identifies the queue.

      • id (string) --

        The generated unique ID of the queue.

      • arn (string) --

        The unique Amazon Resource Name (ARN) of the queue.

      • clusterId (string) --

        The ID of the cluster of the queue.

      • createdAt (datetime) --

        The date and time the resource was created.

      • modifiedAt (datetime) --

        The date and time the resource was modified.

      • status (string) --

        The provisioning status of the queue.

      • computeNodeGroupConfigurations (list) --

        The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.

        • (dict) --

          The compute node group configuration for a queue.

          • computeNodeGroupId (string) --

            The compute node group ID for the compute node group configuration.

      • slurmConfiguration (dict) --

        Additional options related to the Slurm scheduler.

        • slurmCustomSettings (list) --

          Additional Slurm-specific configuration that directly maps to Slurm settings.

          • (dict) --

            Additional settings that directly map to Slurm settings.

            • parameterName (string) --

              PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide.

            • parameterValue (string) --

              The values for the configured Slurm settings.

      • errorInfo (list) --

        The list of errors that occurred during queue provisioning.

        • (dict) --

          An error that occurred during resource creation.

          • code (string) --

            The short-form error code.

          • message (string) --

            The detailed error information.

GetQueue (updated) Link ¶
Changes (response)
{'queue': {'slurmConfiguration': {'slurmCustomSettings': [{'parameterName': 'string',
                                                           'parameterValue': 'string'}]}}}

Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs.

See also: AWS API Documentation

Request Syntax

client.get_queue(
    clusterIdentifier='string',
    queueIdentifier='string'
)
type clusterIdentifier:

string

param clusterIdentifier:

[REQUIRED]

The name or ID of the cluster of the queue.

type queueIdentifier:

string

param queueIdentifier:

[REQUIRED]

The name or ID of the queue.

rtype:

dict

returns:

Response Syntax

{
    'queue': {
        'name': 'string',
        'id': 'string',
        'arn': 'string',
        'clusterId': 'string',
        'createdAt': datetime(2015, 1, 1),
        'modifiedAt': datetime(2015, 1, 1),
        'status': 'CREATING'|'ACTIVE'|'UPDATING'|'DELETING'|'CREATE_FAILED'|'DELETE_FAILED'|'UPDATE_FAILED'|'SUSPENDING'|'SUSPENDED',
        'computeNodeGroupConfigurations': [
            {
                'computeNodeGroupId': 'string'
            },
        ],
        'slurmConfiguration': {
            'slurmCustomSettings': [
                {
                    'parameterName': 'string',
                    'parameterValue': 'string'
                },
            ]
        },
        'errorInfo': [
            {
                'code': 'string',
                'message': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    • queue (dict) --

      A queue resource.

      • name (string) --

        The name that identifies the queue.

      • id (string) --

        The generated unique ID of the queue.

      • arn (string) --

        The unique Amazon Resource Name (ARN) of the queue.

      • clusterId (string) --

        The ID of the cluster of the queue.

      • createdAt (datetime) --

        The date and time the resource was created.

      • modifiedAt (datetime) --

        The date and time the resource was modified.

      • status (string) --

        The provisioning status of the queue.

      • computeNodeGroupConfigurations (list) --

        The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.

        • (dict) --

          The compute node group configuration for a queue.

          • computeNodeGroupId (string) --

            The compute node group ID for the compute node group configuration.

      • slurmConfiguration (dict) --

        Additional options related to the Slurm scheduler.

        • slurmCustomSettings (list) --

          Additional Slurm-specific configuration that directly maps to Slurm settings.

          • (dict) --

            Additional settings that directly map to Slurm settings.

            • parameterName (string) --

              PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide.

            • parameterValue (string) --

              The values for the configured Slurm settings.

      • errorInfo (list) --

        The list of errors that occurred during queue provisioning.

        • (dict) --

          An error that occurred during resource creation.

          • code (string) --

            The short-form error code.

          • message (string) --

            The detailed error information.

UpdateQueue (updated) Link ¶
Changes (request, response)
Request
{'slurmConfiguration': {'slurmCustomSettings': [{'parameterName': 'string',
                                                 'parameterValue': 'string'}]}}
Response
{'queue': {'slurmConfiguration': {'slurmCustomSettings': [{'parameterName': 'string',
                                                           'parameterValue': 'string'}]}}}

Updates the compute node group configuration of a queue. Use this API to change the compute node groups that the queue can send jobs to.

See also: AWS API Documentation

Request Syntax

client.update_queue(
    clusterIdentifier='string',
    queueIdentifier='string',
    computeNodeGroupConfigurations=[
        {
            'computeNodeGroupId': 'string'
        },
    ],
    slurmConfiguration={
        'slurmCustomSettings': [
            {
                'parameterName': 'string',
                'parameterValue': 'string'
            },
        ]
    },
    clientToken='string'
)
type clusterIdentifier:

string

param clusterIdentifier:

[REQUIRED]

The name or ID of the cluster of the queue.

type queueIdentifier:

string

param queueIdentifier:

[REQUIRED]

The name or ID of the queue.

type computeNodeGroupConfigurations:

list

param computeNodeGroupConfigurations:

The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups.

  • (dict) --

    The compute node group configuration for a queue.

    • computeNodeGroupId (string) --

      The compute node group ID for the compute node group configuration.

type slurmConfiguration:

dict

param slurmConfiguration:

Additional options related to the Slurm scheduler.

  • slurmCustomSettings (list) --

    Additional Slurm-specific configuration that directly maps to Slurm settings.

    • (dict) --

      Additional settings that directly map to Slurm settings.

      • parameterName (string) -- [REQUIRED]

        PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide.

      • parameterValue (string) -- [REQUIRED]

        The values for the configured Slurm settings.

type clientToken:

string

param clientToken:

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you.

This field is autopopulated if not provided.

rtype:

dict

returns:

Response Syntax

{
    'queue': {
        'name': 'string',
        'id': 'string',
        'arn': 'string',
        'clusterId': 'string',
        'createdAt': datetime(2015, 1, 1),
        'modifiedAt': datetime(2015, 1, 1),
        'status': 'CREATING'|'ACTIVE'|'UPDATING'|'DELETING'|'CREATE_FAILED'|'DELETE_FAILED'|'UPDATE_FAILED'|'SUSPENDING'|'SUSPENDED',
        'computeNodeGroupConfigurations': [
            {
                'computeNodeGroupId': 'string'
            },
        ],
        'slurmConfiguration': {
            'slurmCustomSettings': [
                {
                    'parameterName': 'string',
                    'parameterValue': 'string'
                },
            ]
        },
        'errorInfo': [
            {
                'code': 'string',
                'message': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    • queue (dict) --

      A queue resource.

      • name (string) --

        The name that identifies the queue.

      • id (string) --

        The generated unique ID of the queue.

      • arn (string) --

        The unique Amazon Resource Name (ARN) of the queue.

      • clusterId (string) --

        The ID of the cluster of the queue.

      • createdAt (datetime) --

        The date and time the resource was created.

      • modifiedAt (datetime) --

        The date and time the resource was modified.

      • status (string) --

        The provisioning status of the queue.

      • computeNodeGroupConfigurations (list) --

        The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.

        • (dict) --

          The compute node group configuration for a queue.

          • computeNodeGroupId (string) --

            The compute node group ID for the compute node group configuration.

      • slurmConfiguration (dict) --

        Additional options related to the Slurm scheduler.

        • slurmCustomSettings (list) --

          Additional Slurm-specific configuration that directly maps to Slurm settings.

          • (dict) --

            Additional settings that directly map to Slurm settings.

            • parameterName (string) --

              PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide.

            • parameterValue (string) --

              The values for the configured Slurm settings.

      • errorInfo (list) --

        The list of errors that occurred during queue provisioning.

        • (dict) --

          An error that occurred during resource creation.

          • code (string) --

            The short-form error code.

          • message (string) --

            The detailed error information.