This recipe shows how to run NAMD on Linux using the Intel MPI libraries over Infiniband/RDMA Azure VM instances in an Azure Batch compute pool. Execution of this distributed workload requires the use of multi-instance tasks.
Please see refer to this set of sample configuration files for this recipe.
The pool configuration should enable the following properties:
vm_size
should be a CPU-only RDMA-enabled instance.vm_configuration
is the VM configuration. Please select an appropriateplatform_image
with IB/RDMA as supported by Batch Shipyard.inter_node_communication_enabled
must be set totrue
max_tasks_per_node
must be set to 1 or omitted
The global configuration should set the following properties:
docker_images
array must have a reference to a valid NAMD-Infiniband-IntelMPI image compiled against Intel MPI. This can bealfpark/namd:2.11-icc-mkl-intelmpi
which is published on Docker Hub.
The jobs configuration should set the following properties within the tasks
array which should have a task definition containing:
docker_image
should be the name of the Docker image for this container invocation, e.g.,alfpark/namd:2.11-icc-mkl-intelmpi
resource_files
should contain theset_up_namd.sh
script which populate the benchmark template file and configure Intel MPI.multi_instance
property must be definednum_instances
should be set topool_specification_vm_count_dedicated
,pool_vm_count_low_priority
,pool_current_dedicated
, orpool_current_low_priority
coordination_command
should be unset ornull
. For pools withnative
container support, this command should be supplied if a non-standardsshd
is required.resource_files
array can be emptypre_execution_command
should source theset_up_namd.sh
script. This script will generate a config file<benchmark>.namd
. Usage:set_up_namd.sh <benchmark> <steps>
<benchmark>
is the benchmark to run:apoa1
orstmv
<steps>
is the number of steps to execute
mpi
property must be definedruntime
should be set tointelmpi
processes_per_node
should be set tonproc
command
should contain the command to pass to thempirun
invocation. For this example, the applicationcommand
to run would be:$NAMD_DIR/namd2 apoa1.namd
infiniband
can be set totrue
, however, it is implicitly enabled by Batch Shipyard when executing on a RDMA-enabled compute pool.
The Dockerfile
for the Docker image can be found here. Please
note that you must agree with the
NAMD license before
using this Docker image.