batch-shipyard/recipes/OpenFOAM-TCP-OpenMPI
Fred Park 05e9773741 Update recipes
- `remove_container_after_exit` is now defaulted enabled
- Move to CentOS-HPC 7.3 for ib recipes
2017-08-03 19:13:57 -07:00
..
config Update recipes 2017-08-03 19:13:57 -07:00
docker Fix GlusterFS setup on Ubuntu 2016-09-29 19:15:38 -07:00
README.md Add list tasks poll option 2017-05-22 19:45:25 -07:00

README.md

OpenFOAM-TCP-OpenMPI

This recipe shows how to run OpenFOAM on Linux using OpenMPI over TCP 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:

  • 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 OpenFOAM image that can be run with MPI in a Docker container context. This can be alfpark/openfoam:4.0-gcc-openmpi or alfpark/openfoam:v1606plus-gcc-openmpi which are published on Docker Hub.
  • docker_volumes must be populated with the following:
    • shared_data_volumes should contain an Azure File Docker volume driver, a GlusterFS share or a manually configured NFS share. Batch Shipyard has automatic support for setting up Azure File Docker Volumes and GlusterFS, please refer to the Batch Shipyard Configuration doc.

Jobs Configuration

The jobs configuration should set the following properties within the tasks array which should have a task definition containing:

  • image should be the name of the Docker image for this container invocation. For this example, this should be alfpark/openfoam:4.0-gcc-openmpi.
  • command should contain the mpirun command. If using the sample run_sample.sh script then the command should be simply: /opt/OpenFOAM/run_sample.sh
  • shared_data_volumes should have a valid volume name as defined in the global configuration file. Please see the previous section for details.
  • 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
    • resource_files array can be empty

Dockerfile and supplementary files

The Dockerfile for the Docker image can be found here. Please note that you must agree with the OpenFOAM license before using this Docker image.