Source code for flow.environments.xsede

# Copyright (c) 2017 The Regents of the University of Michigan
# All rights reserved.
# This software is licensed under the BSD 3-Clause License.
"""Environments for XSEDE supercomputers."""
import logging

from ..environment import DefaultSlurmEnvironment


logger = logging.getLogger(__name__)


[docs]class CometEnvironment(DefaultSlurmEnvironment): """Environment profile for the Comet supercomputer. http://www.sdsc.edu/services/hpc/hpc_systems.html#comet """ hostname_pattern = 'comet' template = 'comet.sh' cores_per_node = 24 @classmethod def add_args(cls, parser): super(CometEnvironment, cls).add_args(parser) parser.add_argument( '--partition', choices=['compute', 'gpu', 'gpu-shared', 'shared', 'large-shared', 'debug'], default='shared', help="Specify the partition to submit to.") parser.add_argument( '--memory', help=("Specify how much memory to reserve per node in GB. " "Only relevant for shared queue jobs.")) parser.add_argument( '--job-output', help=('What to name the job output file. ' 'If omitted, uses the system default ' '(slurm default is "slurm-%%j.out").'))
[docs]class Stampede2Environment(DefaultSlurmEnvironment): """Environment profile for the Stampede2 supercomputer. https://www.tacc.utexas.edu/systems/stampede2 """ hostname_pattern = '.*stampede2' template = 'stampede2.sh' cores_per_node = 48 @classmethod def add_args(cls, parser): super(Stampede2Environment, cls).add_args(parser) parser.add_argument( '--partition', choices=['development', 'normal', 'large', 'flat-quadrant', 'skx-dev', 'skx-normal', 'skx-large', 'long'], default='skx-normal', help="Specify the partition to submit to.") parser.add_argument( '--job-output', help=('What to name the job output file. ' 'If omitted, uses the system default ' '(slurm default is "slurm-%%j.out").'))
[docs]class BridgesEnvironment(DefaultSlurmEnvironment): """Environment profile for the Bridges super computer. https://portal.xsede.org/psc-bridges """ hostname_pattern = r'.*\.bridges\.psc\.edu$' template = 'bridges.sh' cores_per_node = 28 @classmethod def add_args(cls, parser): super(BridgesEnvironment, cls).add_args(parser) parser.add_argument( '--partition', choices=['RM', 'RM-shared', 'RM-small', 'GPU', 'GPU-shared', 'LM'], default='RM-shared', help="Specify the partition to submit to.")
__all__ = ['CometEnvironment', 'BridgesEnvironment', 'Stampede2Environment']