U  g3@sdddlZddlZddlZddlZddlmZedZdddZ ddZ d d Z d d Z d dZ dS)N MPIDisabledlsf_cray_intelcCs@|dkr t}tjdg}tjj|d|d}|}|}dS)z%!Runs the "sync" command as an exe().Nz /bin/syncT)capturelogger) module_loggerprodutilprogRunnerpipelinePipeline to_stringpoll)rsyncpversionstatusrE/lfs/h1/ops/prod/packages/hmon.v3.2.7/ush/produtil/mpi_impl/no_mpi.pyrunsyncs rcCs<|dk r0t|dr||_t|dr8|j|dSn|`|SdS)z!Does nothing. This implementation does not support OpenMP. @param arg An produtil.prog.Runner or produtil.mpiprog.MPIRanksBase object tree @param threads the number of threads, or threads per rank, an integerNthreadsenv)ZOMP_NUM_THREADS)hasattrrr)argrrrropenmps  rcKs tddS)zT!Raises an exception to indicate MPI is not supported @param arg,kwargs Ignored.z!This job cannot run MPI programs.Nr)rkwargsrrr mpirunner%srcCsdS)z0!Returns False to indicate MPI is not supported.Frrrrr can_run_mpi)srcKstjjt|gf|S)z!Returns an ImmutableRunner that will run the specified program. @returns an empty list @param exe The executable to run on compute nodes. @param kwargs Ignored.)r r ImmutableRunnerstr)exerrrr make_bigexe,sr")N)oslogging produtil.progr produtil.pipelineZ mpi_impl_baser getLoggerrrrrrr"rrrr s