# MultiNodeJobDefinitionProps

Props to configure a MultiNodeJobDefinition.

Extends: MultiNodeJobDefinitionProps
Extends: JobDefinitionProps
Used as props by: MultiNodeJobDefinition

- Source: [`aws-batch/lib/multinode-job-definition.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-batch/lib/multinode-job-definition.ts#L90)
- Type last changed: v2.99.0 · 28 Sep 2023

## Example

```ts
const multiNodeJob = new batch.MultiNodeJobDefinition(this, 'JobDefinition', {
  instanceType: ec2.InstanceType.of(ec2.InstanceClass.R4, ec2.InstanceSize.LARGE), // optional, omit to let Batch choose the type for you
  containers: [{
    container: new batch.EcsEc2ContainerDefinition(this, 'mainMPIContainer', {
      image: ecs.ContainerImage.fromRegistry('yourregsitry.com/yourMPIImage:latest'),
      cpu: 256,
      memory: cdk.Size.mebibytes(2048),
    }),
    startNode: 0,
    endNode: 5,
  }],
});
// convenience method
multiNodeJob.addContainer({
  startNode: 6,
  endNode: 10,
  container: new batch.EcsEc2ContainerDefinition(this, 'multiContainer', {
    image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
    cpu: 256,
    memory: cdk.Size.mebibytes(2048),
  }),
});
```

## Properties

- `containers`: [MultiNodeContainer](/cdk/api/v2/docs/aws-cdk-lib.aws_batch.MultiNodeContainer.html)[] = none — The containers that this multinode job will run.

- `instanceType`: [InstanceType](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.InstanceType.html) — The instance type that this job definition will run.

  **Default:** optimal instance, selected by Batch

- `jobDefinitionName`: string — The name of this job definition.

  **Default:** generated by CloudFormation

- `mainNode`: number = 0 — The index of the main node in this job.

  The main node is responsible for orchestration.

- `parameters`: { [key: string]: any } = none — The default parameters passed to the container These parameters can be referenced in the `command` that you give to the container.

- `propagateTags`: boolean = false — Whether to propagate tags from the JobDefinition to the ECS task that Batch spawns.

- `retryAttempts`: number = 1 — The number of times to retry a job.

  The job is retried on failure the same number of attempts as the value.

- `retryStrategies`: [RetryStrategy](/cdk/api/v2/docs/aws-cdk-lib.aws_batch.RetryStrategy.html)[] — Defines the retry behavior for this job.

  **Default:** no `RetryStrategy`

- `schedulingPriority`: number = none — The priority of this Job.

  Only used in Fairshare Scheduling
  to decide which job to run first when there are multiple jobs
  with the same share identifier.

- `skipDeregisterOnUpdate`: boolean — Specifies whether the previous revision of the job definition is retained in an active status after UPDATE events for the resource.

  **Default:** undefined - AWS Batch default is false

  When the property is set to false, the previous revision of the job definition is de-registered after a new revision is created.
  When the property is set to true, the previous revision of the job definition is not de-registered.

- `timeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) — The timeout time for jobs that are submitted with this job definition.

  **Default:** no timeout

  After the amount of time you specify passes,
  Batch terminates your jobs if they aren't finished.
