1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
# JUBE Benchmarking Environment
# Copyright (C) 2008-2024
# Forschungszentrum Juelich GmbH, Juelich Supercomputing Centre
# http://www.fz-juelich.de/jsc/jube
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# For installation you can use:
#
# python setup.py install --user
#
# to install it into your .local folder. .local/bin must be inside your $PATH.
# You can also change the folder by using --prefix instead of --user
import os
add_opt = dict()
try:
from setuptools import setup
import sys
add_opt["install_requires"] = ['pyyaml']
if sys.hexversion < 0x02070000:
add_opt["install_requires"].append("argparse")
except ImportError:
from distutils.core import setup
SHARE_PATH = "share/jube"
DOC_PATH = "share/doc/jube"
def rel_path(directory, new_root=""):
"""Return list of tuples (directory, list of files)
recursively from directory"""
setup_dir = os.path.join(os.path.dirname(__file__))
cwd = os.getcwd()
result = list()
if setup_dir != "":
os.chdir(setup_dir)
for path_info in os.walk(directory):
root = path_info[0]
filenames = path_info[2]
files = list()
for filename in filenames:
path = os.path.join(root, filename)
if (os.path.isfile(path)) and (filename[0] != "."):
files.append(path)
if len(files) > 0:
result.append((os.path.join(new_root, root), files))
if setup_dir != "":
os.chdir(cwd)
return result
config = {'name': 'JUBE',
'description': 'JUBE Benchmarking Environment',
'author': 'Forschungszentrum Juelich GmbH',
'url': 'www.fz-juelich.de/ias/jsc/jube',
'download_url': 'www.fz-juelich.de/ias/jsc/jube',
'author_email': 'jube.jsc@fz-juelich.de',
'version': '2.7.1',
'packages': ['jube','jube.result_types','jube.util'],
'package_data': {'jube': ['help.txt']},
'data_files': ([(DOC_PATH,
['docs/JUBE.pdf']),
(DOC_PATH,
['AUTHORS','RELEASE_NOTES','CITATION.cff',
'CODE_OF_CONDUCT.md', 'CONTRIBUTING.md'])] +
rel_path("examples", DOC_PATH) +
rel_path("contrib", SHARE_PATH) +
rel_path("platform", DOC_PATH)),
'scripts': ['bin/jube', 'bin/jube-autorun'],
'long_description': (
"Automating benchmarks is important for reproducibility and "
"hence comparability which is the major intent when "
"performing benchmarks. Furthermore managing different "
"combinations of parameters is error-prone and often "
"results in significant amounts work especially if the "
"parameter space gets large.\n"
"In order to alleviate these problems JUBE helps performing "
"and analyzing benchmarks in a systematic way. It allows "
"custom work flows to be able to adapt to new architectures.\n"
"For each benchmark application the benchmark data is written "
"out in a certain format that enables JUBE to deduct the "
"desired information. This data can be parsed by automatic "
"pre- and post-processing scripts that draw information, "
"and store it more densely for manual interpretation.\n"
"The JUBE benchmarking environment provides a script based "
"framework to easily create benchmark sets, run those sets "
"on different computer systems and evaluate the results. It "
"is actively developed by the Juelich Supercomputing Centre "
"of Forschungszentrum Juelich, Germany."),
'license': 'GPLv3',
'platforms': 'Linux',
'classifiers': [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: GNU General Public License v3 " +
"(GPLv3)",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.2",
"Topic :: System :: Monitoring",
"Topic :: System :: Benchmark",
"Topic :: Software Development :: Testing"],
'keywords': 'JUBE Benchmarking Environment'}
config.update(add_opt)
setup(**config)
try:
import ruamel.yaml
except ImportError:
print("Warning: The python package 'ruamel.yaml' is not installed. The validity of yaml files cannot be checked properly and silent errors can occur. Nevertheless, the installation is complete.")
|