Command to run D0 framework executable. 25OCT01, v02-03-01, HLM Usage: rund0exe [...] Command line options: General ------- -h - Get help. Global parameters -------------------- -exe=exe - Name of executable -rcp=rcp - Name of framework rcp script -rcppkg=rcppkg - Name of framework rcp package -initscript=script - Initialization script for executable -localbuild - Use local build instead of official version -localrcp - Use local rcp's in addition to official ones -localfwkrcp - Use local version of main framework rcp -name=name - Override default job name Modes of running (default mode is interactive) ---------------- -batch - Use batch queue [default = short] -debug - Use interactive debugger. -purify - Use Purify. -profile - Use ssrun to profile (works on d0mino only). -maxopt - Use optimized build. -jobname=jobname - Specify batch job name [default = rund0exe] d0mino (LSF) batch system switches: -q=queue - Specify default batch queue. -mem=mem - Specify maximum memory. [default = 500000] Above switches ignored if SAM is being used (SAM picks the queue) clued0 (PBS) batch system switches: -cput=time - Specify maximum CPU time. [default = 3:00:00] -mem=mem - Specify maximum memory. [default = 500Mb] -node=node - Specify node where job should be run [default = system chooses] -thisnode - Run job on the current node. Source of input --------------- -filelist=filelist.dat - List of files/datasets to process -defname=defname - SAM project definition name Framework options ----------------- -num=num - Specify number of events to process [default = all] -out=file - Write processed events to specified file -forcercpoutfile - Use this switch to force the usage of the output files specified in the WriteEvent rcp (ignore -out switch) -skip=num - Specify number of events to skip [default = none] -eventlist=eventlist.dat - Process only these specific collision ids eventlist.dat is a file containing a list of collision ids. -suppress - Disable printing of individual error message in log file (Instead, a summary is printed at the end of the job) SAM options ----------- -group=group - Specify SAM group [default = dzero] Special ------- -fpe - Turn on floating point exception handling on Linux -runscript=script - Specify a custom script to run before actually running the executable. Note that this script will only work reliably if it contains command line commands. It is intended for advanced users. Description ----------- `rund0exe' can run any D0 framework executable. The user must specify the executable (-exe), the main framework rcp file (-rcp) and the package where that rcp file resides (-rcppkg). It is assumed that the D0 environment has been setup correctly by the user (e.g. setup D0RunII xx.xx.xx) before running. The command creates a new directory where the executable will be run, and all output from the job will be placed. By default, the name of the directory is a combination of executable name, release version and input file name. To override this default name, use the -name option. The command supports running the executable interactively (default) or in a batch queue (-batch). In addition, it supports running debug mode (-debug). To run in batch mode, use the -batch option (only available on platforms with a batch system). The default batch queue is 'short'. To override this default, use the -q=xxx option. To use the debug mode, use the -debug option. You must have first setup the totalview debugger. To use the utility Purify, use the -purify option. (You must have first setup purify.) Purify can take a long time to run. You may use the -batch and -q=xxx options to submit the job to the batch system. In that cause, the results will be placed in the file purify.pv. To analyze this file, use "purify -view purify.pv". User's may wish to customize their purify options. The following have been found to be useful: In ~/.purify, place the following lines: suppress umr * suppress fmr * suppress fmw * suppress abr * suppress abw * suppress fmm * Also, set the following environmental variable in your .login: setenv PUREOPTIONS "-chain-length=24" To profile your executable, use the -profile option. This currently only works on d0mino. You may find some useful information on how to analyze the results of profiling at the following web site: http://www-d0.fnal.gov/~greenlee/profile.txt The command supports processing files either available on local disk, or available within SAM. To process a set of local disk files, create an ASCII file (e.g. mydata.dat) containing a list of files to process (one line per file). Then specify this list using the -filelist option (e.g. -filelist=mydata.dat). NOTE: you must specify the complete path of each file. For example, if you wish to process the files myfile1.dat and myfile2.dat, which are located in /scratch/1/mydir, you would include the following two lines in your "mydata.dat" file: /scratch/1/mydir/myfile1.dat /scratch/1/mydir/myfile2.dat To process files within SAM, first use SAM to create a dataset definition, and then use the -defname option. For convenience, users may optionally place the SAM dataset definition name into an ASCII file, prefacing it with the string "SAMDEFNAME:", and then use the -filelist option. To specify the number of events to process, use the -num option (e.g. -num=100). To skip a certain number of events, use the -skip option. If you would like to process only specific collision ids ( ), you may use the -eventlist option. Create a file with a list of desired collision ids and use -eventlist=thatfile.dat. For example, to process event number 123456 in run 191919, create a file (eg. myevents.dat) with the line "191919 123456" and use -eventlist=myevents.dat. By default, the specified framework executable must reside in the official release. To use a locally built exe, use the -localbuild. When using this option, you should execute this command at the base of that local build. If you would like to use the executable in the official build, but make a few changes to some rcp parameters in your local area, use the -localrcp option. For example, if you would like to change a parameter in a rcp file from package xxx, first checkout that package's rcp directory using the command "cvs checkout xxx/rcp" and modify your local copy. Then issue the rund0exe command with the -localrcp option. Example ------- To run reco_analyze out of the p05.00.04 production release, % setup n32 # on d0mino % setup D0RunII p05.00.04 % rund0exe -exe=RecoAnalyze_x \ -rcppkg=reco_analyze \ -rcp=runRecoAnalyze.rcp \ -filelist=mydata.dat where mydata.dat contains a list of files to process. To process files in SAM, % rund0exe -exe=RecoAnalyzeSAM_x \ -rcppkg=reco_analyze \ -rcp=runRecoAnalyzeSAM.rcp \ -defname=my-dataset-definition-name To use a local version of an emreco rcp file, % cd myrundir % cvs checkout emreco/rcp --- modify appropriate rcp script -- % rund0exe -localrcp \ -exe=RecoAnalyze_x \ -rcppkg=reco_analyze \ -rcp=runRecoAnalyze.rcp \ -filelist=mydata.dat NOTE: If you want to run an executable out of a production release, and wish to modify one of the rcp parameters associated with a given package in that release, you will need to checkout that particular version of the package. For example, to use p08.09.00 RECO, and modify a parameter in emreco, do % setup D0RunII p08.09.00 % cvs checkout -r p08-br emreco/rcp # Get emreco from the "p08 branch" --- modify appropriate rcp script -- % rund0exe -localrcp \ -exe=RecoAnalyze_x \ -rcppkg=reco_analyze \ -rcp=runRecoAnalyze.rcp \ -filelist=mydata.dat Known Bugs ---------- In order to override a framework rcp, you must checkout the package and make a local build of the executable, and then use the -localbuild switch. Limitations ----------- 1) Running executables on Linux machines running RH 7.1, which were built on machines running RH 6.1 require special care. On CLUED0, a command has been created to allow this functionality ("setup fixexe"). Users of the CLUED0 batch system must create a special "run time script" that contains the one line "setup fixexe", and then use the option "-runscript=that.script". Please report problems to melanson@fnal.gov