"os"
"os/exec"
"sort"
+ "strings"
"syscall"
"time"
env = append(env, "SINGULARITYENV_"+k+"="+v)
}
+ // Singularity always makes all nvidia devices visible to the
+ // container. If a resource manager such as slurm or LSF told
+ // us to select specific devices we need to propagate that.
+ for _, s := range os.Environ() {
+ if strings.HasPrefix(s, "CUDA_VISIBLE_DEVICES=") {
+ env = append(env, "SINGULARITYENV_"+s)
+ }
+ }
+
args = append(args, e.imageFilename)
args = append(args, e.spec.Command...)