def getInstance(): """Make an instance of the relevant MPI class. Also set the RM instance""" scriptname, mpi, found_mpi = whatMPI(sys.argv[0]) ismpirun = scriptname == 'mpirun' mo = MympirunOption(ismpirun=ismpirun) if mo.args is None or len(mo.args) == 0: mo.parser.print_shorthelp() raise ExitException("Exit no args provided") sched, found_sched = whatSched(getattr(mo.options, 'schedtype', None)) found_mpi_names = [x.__name__ for x in found_mpi] found_sched_names = [x.__name__ for x in found_sched] if mo.options.showmpi: setLogLevelInfo() _logger.info("Found MPI classes %s" % (", ".join(found_mpi_names))) raise ExitException("Exit from showmpi") if mo.options.showsched: setLogLevelInfo() _logger.info("Found Sched classes %s" % (", ".join(found_sched_names))) raise ExitException("Exit from showsched") if mpi is None: mo.parser.print_shorthelp() mo.log.raiseException(( "No MPI class found (scriptname %s; ismpirun %s). Please use mympirun through one " "of the direct calls or make sure the mpirun command can be found. " "Found MPI %s") % (scriptname, ismpirun, ", ".join(found_mpi_names))) else: mo.log.debug("Found MPI class %s (scriptname %s; ismpirun %s)" % (mpi.__name__, scriptname, ismpirun)) if sched is None: mo.log.raiseException( "No sched class found (options.schedtype %s ; found Sched classes %s)" % (mo.options.schedtype, ", ".join(found_sched_names))) else: mo.log.debug( "Found sched class %s from options.schedtype %s (all Sched found %s)" % (sched.__name__, mo.options.schedtype, ", ".join(found_sched_names))) class M(mpi, sched): """Temporary class to couple MPI and local sched""" def __init__(self, **kwargs): self.log = getLogger("%s_%s" % (mpi.__name__, sched.__name__)) super(M, self).__init__(**kwargs) return M(options=mo.options, cmdargs=mo.args)
def getInstance(): """Make an instance of the relevant MPI class. Also set the RM instance""" scriptname, mpi, found_mpi = whatMPI(sys.argv[0]) ismpirun = scriptname == 'mpirun' mo = MympirunOption(ismpirun=ismpirun) if mo.args is None or len(mo.args) == 0: mo.parser.print_shorthelp() raise ExitException("Exit no args provided") sched, found_sched = whatSched(getattr(mo.options, 'schedtype', None)) found_mpi_names = [x.__name__ for x in found_mpi] found_sched_names = [x.__name__ for x in found_sched] if mo.options.showmpi: setLogLevelInfo() _logger.info("Found MPI classes %s" % (", ".join(found_mpi_names))) raise ExitException("Exit from showmpi") if mo.options.showsched: setLogLevelInfo() _logger.info("Found Sched classes %s" % (", ".join(found_sched_names))) raise ExitException("Exit from showsched") if mpi is None: mo.parser.print_shorthelp() mo.log.raiseException(("No MPI class found (scriptname %s; ismpirun %s). Please use mympirun through one " "of the direct calls or make sure the mpirun command can be found. " "Found MPI %s") % (scriptname, ismpirun, ", ".join(found_mpi_names))) else: mo.log.debug("Found MPI class %s (scriptname %s; ismpirun %s)" % (mpi.__name__, scriptname, ismpirun)) if sched is None: mo.log.raiseException("No sched class found (options.schedtype %s ; found Sched classes %s)" % (mo.options.schedtype, ", ".join(found_sched_names))) else: mo.log.debug("Found sched class %s from options.schedtype %s (all Sched found %s)" % (sched.__name__, mo.options.schedtype, ", ".join(found_sched_names))) class M(mpi, sched): """Temporary class to couple MPI and local sched""" def __init__(self, **kwargs): self.log = getLogger("%s_%s" % (mpi.__name__, sched.__name__)) super(M, self).__init__(**kwargs) return M(options=mo.options, cmdargs=mo.args)
def get_mpi_and_sched_and_options(): """Parses the mpi and scheduler based on current environment and guesses the best one to use""" scriptname, mpi, found_mpi = whatMPI(sys.argv[0]) ismpirun = scriptname == 'mpirun' mo = MympirunOption(ismpirun=ismpirun) if mo.args is None or len(mo.args) == 0: mo.parser.print_shorthelp() raise ExitException("Exit no args provided") sched, found_sched = whatSched(getattr(mo.options, 'schedtype', None)) found_mpi_names = [x.__name__ for x in found_mpi] found_sched_names = [x.__name__ for x in found_sched] if mo.options.showmpi: fancylogger.setLogLevelInfo() _logger.info("Found MPI classes %s" % (", ".join(found_mpi_names))) raise ExitException("Exit from showmpi") if mo.options.showsched: fancylogger.setLogLevelInfo() _logger.info("Found Sched classes %s" % (", ".join(found_sched_names))) raise ExitException("Exit from showsched") if mpi is None: mo.parser.print_shorthelp() mo.log.raiseException(( "No MPI class found (scriptname %s; ismpirun %s). Please use mympirun through one " "of the direct calls or make sure the mpirun command can be found. " "Found MPI %s") % (scriptname, ismpirun, ", ".join(found_mpi_names))) else: mo.log.debug("Found MPI class %s (scriptname %s; ismpirun %s)" % (mpi.__name__, scriptname, ismpirun)) if sched is None: mo.log.raiseException( "No sched class found (options.schedtype %s ; found Sched classes %s)" % (mo.options.schedtype, ", ".join(found_sched_names))) else: mo.log.debug( "Found sched class %s from options.schedtype %s (all Sched found %s)" % (sched.__name__, mo.options.schedtype, ", ".join(found_sched_names))) return mpi, sched, mo
def get_mpi_and_sched_and_options(): """Parses the mpi and scheduler based on current environment and guesses the best one to use""" scriptname, mpi, found_mpi = whatMPI(sys.argv[0]) ismpirun = scriptname == 'mpirun' mo = MympirunOption(ismpirun=ismpirun) if mo.args is None or len(mo.args) == 0: mo.parser.print_shorthelp() raise ExitException("Exit no args provided") sched, found_sched = whatSched(getattr(mo.options, 'schedtype', None)) found_mpi_names = [x.__name__ for x in found_mpi] found_sched_names = [x.__name__ for x in found_sched] if mo.options.showmpi: fancylogger.setLogLevelInfo() _logger.info("Found MPI classes %s" % (", ".join(found_mpi_names))) raise ExitException("Exit from showmpi") if mo.options.showsched: fancylogger.setLogLevelInfo() _logger.info("Found Sched classes %s" % (", ".join(found_sched_names))) raise ExitException("Exit from showsched") if mpi is None: mo.parser.print_shorthelp() mo.log.raiseException(("No MPI class found (scriptname %s; ismpirun %s). Please use mympirun through one " "of the direct calls or make sure the mpirun command can be found. " "Found MPI %s") % (scriptname, ismpirun, ", ".join(found_mpi_names))) else: mo.log.debug("Found MPI class %s (scriptname %s; ismpirun %s)" % (mpi.__name__, scriptname, ismpirun)) if sched is None: mo.log.raiseException("No sched class found (options.schedtype %s ; found Sched classes %s)" % (mo.options.schedtype, ", ".join(found_sched_names))) else: mo.log.debug("Found sched class %s from options.schedtype %s (all Sched found %s)" % (sched.__name__, mo.options.schedtype, ", ".join(found_sched_names))) return mpi, sched, mo