Class: Aws::Batch::Types::ResourceRequirement

Inherits:
Struct
  • Object
show all
Includes:
Structure
Defined in:
lib/aws-sdk-batch/types.rb

Overview

The type and amount of a resource to assign to a container. The supported resources include ‘GPU`, `MEMORY`, and `VCPU`.

Constant Summary collapse

SENSITIVE =
[]

Instance Attribute Summary collapse

Instance Attribute Details

#typeString

The type of resource to assign to a container. The supported resources include ‘GPU`, `MEMORY`, and `VCPU`.

Returns:

  • (String)


6534
6535
6536
6537
6538
6539
# File 'lib/aws-sdk-batch/types.rb', line 6534

class ResourceRequirement < Struct.new(
  :value,
  :type)
  SENSITIVE = []
  include Aws::Structure
end

#valueString

The quantity of the specified resource to reserve for the container. The values vary based on the ‘type` specified.

type=“GPU”

: The number of physical GPUs to reserve for the container. Make

sure that the number of GPUs reserved for all containers in a job
doesn't exceed the number of available GPUs on the compute
resource that the job is launched on.

<note markdown="1"> GPUs aren't available for jobs that are running on Fargate
resources.

 </note>

type=“MEMORY”

: The memory hard limit (in MiB) present to the container. This

parameter is supported for jobs that are running on Amazon EC2
resources. If your container attempts to exceed the memory
specified, the container is terminated. This parameter maps to
`Memory` in the [Create a container][1] section of the [Docker
Remote API][2] and the `--memory` option to [docker run][3]. You
must specify at least 4 MiB of memory for a job. This is required
but can be specified in several places for multi-node parallel
(MNP) jobs. It must be specified for each node at least once. This
parameter maps to `Memory` in the [Create a container][1] section
of the [Docker Remote API][2] and the `--memory` option to [docker
run][3].

<note markdown="1"> If you're trying to maximize your resource utilization by
providing your jobs as much memory as possible for a particular
instance type, see [Memory management][4] in the *Batch User
Guide*.

 </note>

For jobs that are running on Fargate resources, then `value` is
the hard limit (in MiB), and must match one of the supported
values and the `VCPU` values must be one of the values supported
for that memory value.

value = 512

: `VCPU` = 0.25

value = 1024

: `VCPU` = 0.25 or 0.5

value = 2048

: `VCPU` = 0.25, 0.5, or 1

value = 3072

: `VCPU` = 0.5, or 1

value = 4096

: `VCPU` = 0.5, 1, or 2

value = 5120, 6144, or 7168

: `VCPU` = 1 or 2

value = 8192

: `VCPU` = 1, 2, or 4

value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360

: `VCPU` = 2 or 4

value = 16384

: `VCPU` = 2, 4, or 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720

: `VCPU` = 4

value = 20480, 24576, or 28672

: `VCPU` = 4 or 8

value = 36864, 45056, 53248, or 61440

: `VCPU` = 8

value = 32768, 40960, 49152, or 57344

: `VCPU` = 8 or 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

: `VCPU` = 16

type=“VCPU”

: The number of vCPUs reserved for the container. This parameter

maps to `CpuShares` in the [Create a container][1] section of the
[Docker Remote API][2] and the `--cpu-shares` option to [docker
run][3]. Each vCPU is equivalent to 1,024 CPU shares. For Amazon
EC2 resources, you must specify at least one vCPU. This is
required but can be specified in several places; it must be
specified for each node at least once.

The default for the Fargate On-Demand vCPU resource count quota is
6 vCPUs. For more information about Fargate quotas, see [Fargate
quotas][5] in the *Amazon Web Services General Reference*.

For jobs that are running on Fargate resources, then `value` must
match one of the supported values and the `MEMORY` values must be
one of the values supported for that `VCPU` value. The supported
values are 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

: `MEMORY` = 512, 1024, or 2048

value = 0.5

: `MEMORY` = 1024, 2048, 3072, or 4096

value = 1

: `MEMORY` = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

: `MEMORY` = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264,
  12288, 13312, 14336, 15360, or 16384

value = 4

: `MEMORY` = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360,
  16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576,
  25600, 26624, 27648, 28672, 29696, or 30720

value = 8

: `MEMORY` = 16384, 20480, 24576, 28672, 32768, 36864, 40960,
  45056, 49152, 53248, 57344, or 61440

value = 16

: `MEMORY` = 32768, 40960, 49152, 57344, 65536, 73728, 81920,
  90112, 98304, 106496, 114688, or 122880

[1]: docs.docker.com/engine/api/v1.23/#create-a-container [2]: docs.docker.com/engine/api/v1.23/ [3]: docs.docker.com/engine/reference/run/ [4]: docs.aws.amazon.com/batch/latest/userguide/memory-management.html [5]: docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate

Returns:

  • (String)


6534
6535
6536
6537
6538
6539
# File 'lib/aws-sdk-batch/types.rb', line 6534

class ResourceRequirement < Struct.new(
  :value,
  :type)
  SENSITIVE = []
  include Aws::Structure
end