Skip to content

Latest commit

 

History

History
77 lines (51 loc) · 2.46 KB

README.adoc

File metadata and controls

77 lines (51 loc) · 2.46 KB

Distribution

This repository contains the definiton file and the dependencies required to build a singularity container that can run the CANDLE benchmarks and the supervisor.

Building the singularity image:

To build the singularity image, install singularity 2.4 release:

Once singularity is installed, you can create a singularity CANDLE image by running:

$ sudo singularity build -s candle-sandbox.img swift-hypervisor.def
$ sudo singularity build candle.simg ./candle-sandbox.img

Hyperparameter optimization:

The hyperparameter optimization within this image is based on EMEWS: http://www.mcs.anl.gov/~emews/tutorial/

EMEWS uses Swift/T parallel scripting language which can be compiled using stc, and run on multiple nodes using turbine. By default, turbine launches MPI jobs using the batch scheduler (e.g. SLURM). In this image, however, this functionality is changed so that mpiexec is called before turbine. This is done by removing the mpiexec call from the turbine script as shown here:

Therefore a call to turbine using this image will look like:

$ mpiexec -n 4 singularity exec candle.simg  turbine <program.tic> [args]

Installing an MPI implementation:

The MPI implementation and version installed in the singularity container has to match the version in the host. In order to change the MPI version wihtin the container edit this section in the defintion file:

Binding directories to the image:

To bind directories to the singularity image at runtime, edit this line in the definition file to create the directories within you image:

and define the environment variable SINGULARITY_BINDPATH as a comma separated directories as mentioned here:

and here:

for example:

$ export SINGULARITY_BINDPATH="/gs2,/gs3,/gs4,/gs5,/gs6,/gpfs,/spin1,/data,/scratch,/fdb,/lscratch"

Other configurations

This image intalls a vanilla version of Keras, TensorFlow, and Theano that runs on CPU without any optimization. The def file can be edited to install the version that is appropriate to a given platform with all optimizations turned on.