Introduction¶
The aim of this short introduction is to help trace_suite developers outside DLR to use the standard quality management tool Pavayo used and developed at DLR. The Python script ‘pavayo.py’ enables to launch, post-process and summarize automatically a large number of test cases. The test cases are specified using the XML format and are sorted in test levels.
Please note that all test cases are stored at DLR. Consequently, the download capability of Pavayo cannot be used outside of the DLR network. Therefore, external users must either receive the test cases from DLR or create their own. If they want to set up their own download server, a few variables have to be changed and the directory concept of DLR has to be used.
For support and bug reports please contact trace-info@dlr.de.
System requirements¶
Python package dependencies will be automatically installed.
Additional modules, which can not be automatically installed are:
Tecplot360 as ‘tec360’
Latex (pdflatex)
pysvn [optional]
Setup¶
Download the MOJO package from the TRACE team site and untar the archive (
$tar -xf MOJO.tar.gz
).Install MOJO package and all dependent python packages using
$source mojo-env.sh [--venv <name-of-virtual-env-directory>]
in ‘mojo’ directory. ‘<name-of-virtual-env-directory>’ can be an existing environment or a non-existing path. If omitted a virtual environment under a default name is generated in the current working directory. This will automatically add MOJO to the PYTHONPATH and the executable scripts, e.g. pavayo.py to the PATH.
Note
A manual installation can be done via $pip install <path-to-MOJO>
.
Warning
It is recommended to use $pip install
only in a virtual environment or at least install packages only for your user,
i.e. use option '--user'
.
Changelog¶
3.0.30¶
- MOJO was restructured and is now a python package which can be installed with pip
Executable scripts were moved to the bin folder
MOJO uses Python 3
Many interfaces were cleaned up, often removing to specific default parameter
Add support for queuing system slurm
Add support of DLR cluster CARA
The gmcplay module was extended by some commands
tecplot * Add tecplots VARAUXDATA functionality to TecplotDataset * Add convenience functions to instantiate tecplot dataset directly from a file: TecplotDataset.fromFile() * Add convenience functions to load a list of flattened numpy arrays directly from tecplot dataset: TecplotDataset.getFlattenedZoneDataFromFile()
New performance benchmarking tools in mojo.performance
- pavayo.py:
Introducing –unusedLiteratureDatabase allowing test sutie runs without literature database
Set default weights for every job
More compact progress visualization in an interactive console
Writing failedJobs.json instantly during a pavayo run, allowing to debug failed test cases before pavayo has finished the whole suite
New –includeSanitizerLogs option parsing log files for GCC sanitizer output and including it in reports
Dump test case runtimes using the all new –saveTestCaseRuntimes option
Integrate PyMesh as available executable, allowing test case setups with a meshing stage
Add reference checks for tecplot-style ascii files, cgns files and json files configurable via testsuite xml files
Use gitpython to fetch the literature data base
- contrib:
new analyzeTRACEMetadata.py script allows to analyze test suites and selectivly execute test cases using pavayo
new applyJournal.py to apply a specified gmcPlay journal to multiple CGNS files
2.0.49¶
Tecplot: Allow arbritrary characters in file header and zone title
Allow wild cards when selecting test cases
User defined executables in pavayo
Allow multiple Tecplot macro executions in one directory
Cluster: Jobs for help information should be executed on the master
Test suite report may show that test case is modified even if this is not the case
pavayo should work without reference to a svn repository
New method to create file listings of folders to be displayed in the console using colors and indentations
Tool that converts basic LaTeX to Doxygen syntax
kill job started with trace.py
trace.py to start TRACE with threads
Support for qsub walltime limit in qSubJob, trace/prep/post.py
JobManagement: add a job executed as a shell job but reserving a given number of processors
Facilitate handling of test suite reports in case of additional pages due to test case errors
bugs in tecplotData.py
Testsuite run with coverage
reactivate valgrind feature in pavayo.py
Read 1D cellcentered Tecplot data
Analysis of time samples
Mandatory changes in MOJO¶
Under MOJO/src/mojo/jobManagement/management/clusterInfo.py
Complete the list of nodes with the nodes that are available on your cluster according to the following pattern. An example is given for the westmere nodes:
# cluster node types # [type(#threads, #coresPerSocket, #threadsPerSocket)] __westmere = ['w', [24, 6, 12]] Complete the corresponding dictionary. cluster_node_types = {'w' : __westmere, 'westmere' : __westmere, … }
Complete the list of supported cluster with the name of your own cluster:
supportedClusters = ["SCL-EIP", "PROTEC",…]
Complete the class ClusterInfo
A new command line for your cluster must be added similarly to _SCL_EIP_COMMAND_LINE
Modify the method getCommandLine() by including your cluster and make sure that the method _clustername() works properly.
When this is done, add MOJO/import to the PYTHONPATH of your system.
If you want to use the scripts ‘trace.py’, ‘prep.py’ and ‘post.py’ you shoud also consider the following step
Set default node type for the command line parser
Change the default value of the node type to the abbreviation of your cluster in method commandLineClusterOptionParser.checkSetup() (MOJO/src/mojo/traceSuiteControl/commandLineParser.py):
self.options.nodeTypeOption.value = "ib"
In order to check if MOJO is now working, try the command pavayo.py -h
. The help menu of pavayo.py should be printed on your screen.