batch-shipyard/recipes/NAMD-Infiniband-IntelMPI
Vincent Labonté cc42916cba Fixes and update of recipes (#290)
* Fix multi-instance tasks that are not a MPI task

* Add setup task script for CNTK-CPU-Infiniband-IntelMPI

* Update CNTK-CPU-Infiniband-IntelMPI recipe

* Add MPI executable path option

* Update CNTK-CPU-OpenMPI recipe

* Change the default MPI executable_path to mpirun

* Modify CNTK-CPU-Infiniband-IntelMPI recipe

* Add setup task script for CNTK-GPU-Infiniband-IntelMPI

* Update CNTK-GPU-Infiniband-IntelMPI recipe

* Add setup task script for CNTK-GPU-OpenMPI

* Add setup task script for NAMD-Infiniband-IntelMPI

* Update NAMD-Infiniband-IntelMPI recipe

* Add setup task script for OpenFOAM-Infiniband-IntelMPI

* Update OpenFOAM-Infiniband-IntelMPI recipe

* Update TensorFlow-GPU Singularity recipe

* Add setup task script for OpenFOAM-TCP-OpenMPI

* Update OpenFOAM-TCP-OpenMPI recipe

* Add support for arbitrary commands with the MPI processes_per_node option

* Fix MPI with native images

* Modify CNTK-CPU-Infiniband-IntelMPI recipe

* Modify CNTK-GPU-Infiniband-IntelMPI recipe

* Modify NAMD-Infiniband-IntelMPI recipe

* Update processes_per_node documentation

* Fix `pool images list` with Singularity images

* Modify OpenFOAM-Infiniband-IntelMPI set up script

* Add check for mpi setting with Windows

* Add auto scratch support with OpenFOAM-Infiniband-IntelMPI recipe

* Modify OpenFOAM-TCP-OpenMPI set up script

* Add auto scratch support with OpenFOAM-TCP-OpenMPI recipe

* Add mpiBench-IntelMPI recipe

* Add mpiBench-MPICH recipe

* Add mpiBench-OpenMPI recipe

* Resolve PR comments

* Resolve PR comments
2019-07-17 18:57:06 -07:00
..
config Fixes and update of recipes (#290) 2019-07-17 18:57:06 -07:00
docker Fixes and update of recipes (#290) 2019-07-17 18:57:06 -07:00
README.md Fixes and update of recipes (#290) 2019-07-17 18:57:06 -07:00

README.md

NAMD-Infiniband-IntelMPI

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.

Configuration

Please see refer to this set of sample configuration files for this recipe.

Pool Configuration

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 appropriate platform_image with IB/RDMA as supported by Batch Shipyard.
  • inter_node_communication_enabled must be set to true
  • max_tasks_per_node must be set to 1 or omitted

Global Configuration

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 be alfpark/namd:2.11-icc-mkl-intelmpi which is published on Docker Hub.

Jobs Configuration

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 the set_up_namd.sh script which populate the benchmark template file and configure Intel MPI.
  • multi_instance property must be defined
    • num_instances should be set to pool_specification_vm_count_dedicated, pool_vm_count_low_priority, pool_current_dedicated, or pool_current_low_priority
    • coordination_command should be unset or null. For pools with native container support, this command should be supplied if a non-standard sshd is required.
    • resource_files array can be empty
    • pre_execution_command should source the set_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 or stmv
      • <steps> is the number of steps to execute
    • mpi property must be defined
      • runtime should be set to intelmpi
      • processes_per_node should be set to nproc
  • command should contain the command to pass to the mpirun invocation. For this example, the application command to run would be: $NAMD_DIR/namd2 apoa1.namd
  • infiniband can be set to true, however, it is implicitly enabled by Batch Shipyard when executing on a RDMA-enabled compute pool.

Dockerfile and supplementary files

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.