9 import os, socket, logging
12 from .mpi_impl_base
import MPIMixed, MPIDisabled, OpenMPDisabled
14 module_logger=logging.getLogger(
'lsf_cray_intel')
17 """!Runs the "sync" command as an exe()."""
18 if logger
is None: logger=module_logger
25 inside_aprun=os.environ.get(
'INSIDE_APRUN',
'')
27 inside_aprun=int(inside_aprun)
33 """!When more than one thread is requested, this raises
34 OpenMPDisabled to indicate OpenMP is not allowed.
36 @param arg An produtil.prog.Runner or
37 produtil.mpiprog.MPIRanksBase object tree
38 @param threads the number of threads, or threads per rank, an
40 if threads
is not None:
43 raise OpenMPDisabled(
"You cannot start a new OpenMP program from within an aprun invocation.")
46 """!Raises an exception to indicate MPI is not supported
47 @param arg,kwargs Ignored."""
48 raise MPIDisabled(
'You cannot start a new MPI program from within an aprun invocation.')
51 """!Returns False to indicate MPI is not supported."""
55 """!Returns an ImmutableRunner that will run the specified program.
56 @returns an empty list
57 @param exe The executable to run on compute nodes.
58 @param kwargs Ignored."""
This module provides a set of utility functions to do filesystem operations.
def runsync
Runs the "sync" command as an exe().
def openmp(arg, threads)
When more than one thread is requested, this raises OpenMPDisabled to indicate OpenMP is not allowed...
This class is a wrapper around launch and manage.
def mpirunner(arg, kwargs)
Raises an exception to indicate MPI is not supported.
Implements the produtil.run: provides the object tree for representing shell commands.
def make_bigexe(exe, kwargs)
Returns an ImmutableRunner that will run the specified program.
def can_run_mpi()
Returns False to indicate MPI is not supported.
Object structure for describing MPI programs.
Represents a single stage of a pipeline to execute.
Internal module that launches and monitors processes.
An copy-on-write version of Runner.