[pygr-notify] [pygr commit] r196 - Edited wiki page through web user interface.
codesite-noreply at google.com
codesite-noreply at google.com
Thu Apr 23 17:55:30 PDT 2009
Author: marecki
Date: Thu Apr 23 17:41:32 2009
New Revision: 196
Modified:
wiki/MegatestSetup.wiki
Log:
Edited wiki page through web user interface.
Modified: wiki/MegatestSetup.wiki
==============================================================================
--- wiki/MegatestSetup.wiki (original)
+++ wiki/MegatestSetup.wiki Thu Apr 23 17:41:32 2009
@@ -2,7 +2,9 @@
= Introduction =
-The purpose of this page is to provide complete instructions for everyone
wishing to run megatests on his/her machine - from obtaining the necessary
data to actual running of megatests.
+_Megatests_ is a special class of tests performed on Pygr code, whose aim
is to ensure adequate performance of Pygr under heavy load. Running such
tests is particularly important during active development of code, as it
allows one to quickly detect any changes negatively impacting performance;
on the other hand, they can also be used to benchmark Pygr performance or,
indirectly, observe performance-degrading system problems on a certain
machine or machines.
+
+The purpose of this page is to provide complete instructions for everyone
wishing to run megatests on his/her system - from obtaining the necessary
data through actual running of megatests to automatic periodic running and
reporting.
*WARNING: this document is now being rewritten to acommodate recent
changes to megatest code. Large parts of it may either still be outdated or
conflict with each other.*
@@ -104,21 +106,54 @@
For more information on the subject of MySQL option files, see
http://dev.mysql.com/doc/refman/5.1/en/option-files.html.
-XXX
+=== The config file ===
+
+Database access aside, configuration of Pygr megatests is performed
entirely by setting appropriate keywords in appropriate files. At present,
megatests and the associated tools search for their configuration the
following files:
-=== Choosing the variant ===
+ # _.pygrrc_ in the user's home directory;
+ # _pygr.cfg_ in the user's home directory;
+ # _.pygrrc_ in the current directory;
+ # _pygr.cfg_ in the current directory.
-As you can see, there are full versions and _chrY(hg18)_ and _chrYh(dm2)_
versions. Current version of pygr megatest uses only short _(chrY for hg18
and chrYh for dm2)_ versions in order to reduce overhead (both CPU and
disc-space). If you want to test full version, you need to change
*megatest.py* files, i.e. remove all _chrY_/_chrYh_.
+All of the keywords listed below can be found in any of these files. They
are read in the order listed here, overriding old values with new ones
should a keyword appear in more than one.
-On leelab2 (2.8 GHz dual-core Opteron CPU), the short version of megatests
runs for about 5 minutes. On the other hand, the full version takes
approximately 30 hours.
+The config files follow standard syntax understood by Python's
[http://docs.python.org/library/configparser.html ConfigParser module],
i.e. very similar to that of Windows INI files. Among other things this
means keywords in a file are divided into sections. Megatests use keywords
from three sections: _megatests_ for general configuration, _megatests_dm2_
and _megatests_hg18_ for settings pertaining to specific input data sets.
-=== The config file ===
+==== Choosing the variant ====
+
+Both data sets used by megatests are quite large, making running tests
over them in their entirely quite time consuming - for example, on a
machine with a 2.8 GHz dual-core Opteron CPU and a SATA-2 RAID disc a
single such run takes approximately 30 hours! Therefore, it may be
desirable to run megatests only on subsets of the two data sets. In order
to do this, specify appropriate subsets using the _smallSampleKey_ keyword
in data set-specific sections. For example, to only use _chrYh_ in
_dm2_-based megatests and _chrY_ in _hg18_-based ones, specify:
+
+{{{
+[megatests_dm2]
+smallSampleKey = chrYh
+
+[megatests_hg18]
+smallSampleKey = chrY
+}}}
+
+On the aforementioned machine this reduces the running time of megatests
to approximately 10 minutes per run.
-The latest incarnation of megatest code and support scripts is quite
flexible in terms of where input should come from and output should go to,
meaning you could basically distribute the relevant directories all over
the system if you wanted to - but also that regardless of where they go,
Pygr needs to be told where to look for them. This, along with some other
megatest-related things, is done using a Pygr configuration file.
+Note that in principle any valid subsets could be used here, then again we
only provide reference output files for the two subsets shown in the
example.
+==== Location of data ====
+
+TBA
+
+
+==== Timing ====
+
+TBA
+
+
+==== Reporting ====
+
+TBA
+
+
+XXX
== Scripts ==
Pygr megatest-launching shell script (named e.g. _run_megatests_) looks
like this. Because shell script does not have HOME environmental variable,
it may not find path for some user-installed packages, i.e., pyrexc. Thus,
you may need to do all pyrexc building steps and others manually in shell
script. We need to make shell script intact in order to run this megatest
by crontab. Some of the lines in daily_megatest may not be operational.
PYTHONPATH should be modified according to your system. You can get pygr
from git and compile to see where the compiled pygr is located.
More information about the pygr-notify
mailing list