Files
rocm-systems/internal/continuous_integration/short/parser.py
T
2024-07-01 09:57:08 -05:00

86 γραμμές
3.6 KiB
Python

#!/tool/pandora64/.package/python-3.8.0/bin/python3
import argparse
class Parser():
def __init__(self):
# A parent directory containing log file output from one of the
# configuration runs. The output directories are intended to
# be symmetric in naming with the various configurations supplied
# by the library's build_configs.
self._default_config = 'RC_SINGLE'
# The list of log files which need to be checked for performance
# differences.
self._default_logs = ['get.log',
'get_nbi.log',
'get_swarm.log',
'put.log',
'put_nbi.log']
# The maximum pairwise difference for the log file latencies.
self._default_latency_max = 5.0
# The minimum bandwidth difference for the log file bandwidths.
self._default_bandwidth_min = -50.0
# The Jenkins tester archives slave output on the master's
# filesystem which currently uses this top-level path (as the
# resperf account).
self._default_jenkins_path = \
'/proj/radl_extra/users/resperf/jenkins-2.192/'
# The performance tester runs as part of the 'short' job to
# verify that no performance degradation has occurred between
# commits. This archive path is the generic archive path
# for all of the builds. The Kleene star is used as a place
# holder for the Jenkins build number.
self._default_archive_path = \
'jobs/shmem_short/builds/*/archive/'
# The default benchmark path can be used to alter archive
# output placement. Currently, this is initialized to an empty
# string, but subsequently initialized to inject the config
# path.
self._default_benchmark_path = ''
def setup_options(self, argparser):
argparser.add_argument('-j',
dest='jenkins_path',
default=self._default_jenkins_path)
argparser.add_argument('-a',
dest='archive_path',
default=self._default_archive_path)
argparser.add_argument('-b',
dest='benchmark_path',
default=self._default_benchmark_path)
argparser.add_argument('-c',
dest='config',
default=self._default_config)
argparser.add_argument('-l',
dest='logs',
nargs='*',
default=self._default_logs)
argparser.add_argument('-x',
dest='latency_max',
type=float,
default=self._default_latency_max)
argparser.add_argument('-y',
dest='bandwidth_min',
type=float,
default=self._default_bandwidth_min)
argparser.add_argument('-o',
dest='one_changeset')
argparser.add_argument('-r',
dest='changeset_range',
nargs=2,
metavar=("most_recent_changeset", "least_recent_changeset"))
return argparser
def parse_command_line(self):
p = argparse.ArgumentParser()
p = self.setup_options(p)
args = p.parse_args()
args.benchmark_path = args.config + args.benchmark_path
return args