ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/crab_help.py
Revision: 1.34
Committed: Tue Sep 18 09:07:50 2007 UTC (17 years, 7 months ago) by spiga
Content type: text/x-python
Branch: MAIN
CVS Tags: CRAB_1_5_4, CRAB_1_5_4_pre2, CRAB_1_5_4_pre1
Changes since 1.33: +4 -0 lines
Log Message:
remove lib-dynload loaded by UI env to support 32bit compatibility mode

File Contents

# User Rev Content
1 nsmirnov 1.1
2     ###########################################################################
3     #
4     # H E L P F U N C T I O N S
5     #
6     ###########################################################################
7    
8     import common
9    
10     import sys, os, string
11 spiga 1.34 for p in sys.path:
12     if p.find( "python2.3/lib-dynload" ) != -1 :
13     sys.path.pop( sys.path.index(p) )
14    
15 nsmirnov 1.1 import tempfile
16    
17     ###########################################################################
18     def usage():
19     usa_string = common.prog_name + """ [options]
20 slacapra 1.3
21     The most useful general options (use '-h' to get complete help):
22    
23 slacapra 1.26 -create -- Create all the jobs.
24     -submit n -- Submit the first n available jobs. Default is all.
25     -status -- check status of all jobs.
26 slacapra 1.20 -getoutput|-get [range] -- get back the output of all jobs: if range is defined, only of selected jobs
27 slacapra 1.4 -kill [range] -- kill submitted jobs
28 fanzago 1.12 -cancelAndResubmit [range] -- kill and resubmit submitted jobs
29 slacapra 1.4 -clean -- gracefully cleanup the idrectory of a task
30     -testJdl [range] -- check if resources exist which are compatible with jdl
31 slacapra 1.27 -list [range] -- show technical job details
32 slacapra 1.4 -postMortem [range] -- provide a file with information useful for post-mortem analysis of the jobs
33 slacapra 1.20 -printId [range] -- print the job SID
34     -continue|-c [dir] -- Apply command to task stored in [dir].
35 slacapra 1.33 -h [format] -- Detailed help. Formats: man (default), tex, html, txt.
36 nsmirnov 1.1 -cfg fname -- Configuration file name. Default is 'crab.cfg'.
37 slacapra 1.4 -debug N -- set the verbosity level to N
38 nsmirnov 1.1 -v -- Print version and exit.
39    
40 slacapra 1.4 "range" has syntax "n,m,l-p" which correspond to [n,m,l,l+1,...,p-1,p] and all possible combination
41    
42 nsmirnov 1.1 Example:
43 slacapra 1.26 crab -create -submit 1
44 nsmirnov 1.1 """
45 slacapra 1.20 print
46 nsmirnov 1.1 sys.exit(2)
47    
48     ###########################################################################
49     def help(option='man'):
50     help_string = """
51     =pod
52    
53     =head1 NAME
54    
55     B<CRAB>: B<C>ms B<R>emote B<A>nalysis B<B>uilder
56    
57 slacapra 1.3 """+common.prog_name+""" version: """+common.prog_version_str+"""
58 nsmirnov 1.1
59 slacapra 1.19 This tool B<must> be used from an User Interface and the user is supposed to
60 slacapra 1.3 have a valid GRID certificate.
61 nsmirnov 1.1
62     =head1 SYNOPSIS
63    
64 slacapra 1.13 B<"""+common.prog_name+"""> [I<options>] [I<command>]
65 nsmirnov 1.1
66     =head1 DESCRIPTION
67    
68 slacapra 1.3 CRAB is a Python program intended to simplify the process of creation and submission into grid environment of CMS analysis jobs.
69 nsmirnov 1.1
70 slacapra 1.3 Parameters for CRAB usage and configuration are provided by the user changing the configuration file B<crab.cfg>.
71 nsmirnov 1.1
72 slacapra 1.3 CRAB generates scripts and additional data files for each job. The produced scripts are submitted directly to the Grid. CRAB makes use of BOSS to interface to the grid scheduler, as well as for logging and bookkeeping and eventually real time monitoring.
73 nsmirnov 1.1
74 slacapra 1.26 CRAB support any CMSSW based executable, with any modules/libraries, including the user provided one, and deals with the output produced by the executable. Up to version 1_2_1, also ORCA (and FAMOS) based executable were supported. CRAB provides an interface with CMS data discovery services (DBS and DLS), which are completely hidden to the final user. It also splits a task (such as analyzing a whole dataset) into smaller jobs, according with user requirements.
75 nsmirnov 1.1
76 slacapra 1.13 CRAB web page is available at
77    
78     I<http://cmsdoc.cern.ch/cms/ccs/wm/www/Crab/>
79 slacapra 1.6
80 slacapra 1.19 =head1 HOW TO RUN CRAB FOR THE IMPATIENT USER
81    
82     Please, read all anyway!
83    
84     Source B<crab.(c)sh> from the CRAB installation area, which have been setup either by you or by someone else for you.
85    
86     Modify the CRAB configuration file B<crab.cfg> according to your need: see below for a complete list: in particular set your jobtype (orca or famos) and fill the corresponding section. A template and commented B<crab.cfg> can be found on B<$CRABDIR/python/crab.cfg>
87    
88 spiga 1.25 ~>crab -create
89 slacapra 1.19 create all jobs (no submission!)
90    
91 spiga 1.25 ~>crab -submit 2 -continue [ui_working_dir]
92 slacapra 1.19 submit 2 jobs, the ones already created (-continue)
93    
94 slacapra 1.26 ~>crab -create -submit 2
95 slacapra 1.19 create _and_ submit 2 jobs
96    
97 spiga 1.25 ~>crab -status
98 slacapra 1.19 check the status of all jobs
99    
100 spiga 1.25 ~>crab -getoutput
101 slacapra 1.19 get back the output of all jobs
102    
103 slacapra 1.20 =head1 RUNNING CMSSW WITH CRAB
104 nsmirnov 1.1
105 slacapra 1.3 =over 4
106    
107     =item B<A)>
108    
109 slacapra 1.26 Develop your code in your CMSSW working area. Do anything which is needed to run interactively your executable, including the setup of run time environment (I<eval `scramv1 runtime -sh|csh`>), a suitable I<ParameterSet>, etc. It seems silly, but B<be extra sure that you actaully did compile your code> I<scramv1 b>.
110 slacapra 1.3
111     =item B<B)>
112    
113 slacapra 1.20 Source B<crab.(c)sh> from the CRAB installation area, which have been setup either by you or by someone else for you. Modify the CRAB configuration file B<crab.cfg> according to your need: see below for a complete list.
114    
115     The most important parameters are the following (see below for complete description of each parameter):
116    
117     =item B<Mandatory!>
118    
119     =over 6
120    
121     =item B<[CMSSW]> section: datasetpath, pset, splitting parameters, output_file
122    
123     =item B<[USER]> section: output handling parameters, such as return_data, copy_data etc...
124    
125     =back
126    
127     =item B<Run it!>
128    
129     You must have a valid voms-enabled grid proxy. See CRAB web page for details.
130    
131     =back
132    
133 slacapra 1.19 =head1 HOW TO RUN ON CONDOR-G
134    
135     The B<Condor-G> mode for B<CRAB> is a special submission mode next to the standard Resource Broker submission. It is designed to submit jobs directly to a site and not using the Resource Broker.
136    
137     Due to the nature of this submission possibility, the B<Condor-G> mode is restricted to OSG sites within the CMS grid, currently the 7 US T2: Florida(ufl.edu), Nebraska(unl.edu), San Diego(ucsd.edu), Purdue(purdue.edu), Wisconsin(wisc.edu), Caltech(ultralight.org), MIT(mit.edu).
138    
139     =head2 B<Requirements:>
140    
141     =over 2
142    
143     =item installed and running local Condor scheduler
144    
145     (either installed by the local Sysadmin or self-installed using the VDT user interface: http://www.uscms.org/SoftwareComputing/UserComputing/Tutorials/vdt.html)
146    
147     =item locally available LCG or OSG UI installation
148    
149     for authentication via grid certificate proxies ("voms-proxy-init -voms cms" should result in valid proxy)
150    
151     =item set of the environment variable EDG_WL_LOCATION to the edg directory of the local LCG or OSG UI installation
152    
153     =back
154    
155     =head2 B<What the Condor-G mode can do:>
156    
157     =over 2
158    
159     =item submission directly to a single OSG site,
160    
161     the requested dataset has to be published correctly by the site in the local and global services
162    
163     =back
164    
165     =head2 B<What the Condor-G mode cannot do:>
166    
167     =over 2
168    
169     =item submit jobs if no condor scheduler is running on the submission machine
170    
171     =item submit jobs if the local condor installation does not provide Condor-G capabilities
172    
173     =item submit jobs to more than one site in parallel
174    
175     =item submit jobs to a LCG site
176    
177     =item support grid certificate proxy renewal via the myproxy service
178    
179     =back
180    
181     =head2 B<CRAB configuration for Condor-G mode:>
182    
183     The CRAB configuration for the Condor-G mode only requires changes in crab.cfg:
184 nsmirnov 1.1
185 slacapra 1.19 =over 2
186 slacapra 1.3
187 slacapra 1.19 =item select condor_g Scheduler:
188 slacapra 1.4
189 slacapra 1.19 scheduler = condor_g
190 slacapra 1.4
191 slacapra 1.19 =item select the domain for a single OSG site:
192 nsmirnov 1.1
193 slacapra 1.19 CE_white_list = "one of unl.edu,ufl.edu,ucsd.edu,wisc.edu,purdue.edu,ultralight.org,mit.edu"
194 slacapra 1.4
195 slacapra 1.19 =back
196 slacapra 1.4
197     =head1 COMMAND
198    
199     =over 4
200    
201 slacapra 1.26 =item B<-create>
202 slacapra 1.4
203 slacapra 1.26 Create the jobs: from version 1_3_0 it is only possible to create all jobs.
204     The maximum number of jobs depens on dataset and splittig directives. This set of identical jobs accessing the same dataset are defined as a task.
205 slacapra 1.4 This command create a directory with default name is I<crab_0_date_time> (can be changed via ui_working_dir parameter, see below). Inside this directory it is placed whatever is needed to submit your jobs. Also the output of your jobs (once finished) will be place there (see after). Do not cancel by hand this directory: rather use -clean (see).
206     See also I<-continue>.
207    
208     =item B<-submit n>
209    
210     Submit n jobs: 'n' is either a positive integer or 'all'. Default is all.
211 slacapra 1.26 The first 'n' suitable jobs will be submitted. This option must be used in conjunction with -create (to create and submit immediately) or with -continue, to submit previously created jobs. Failure to do so will stop CRAB and generate an error message.
212 slacapra 1.4 See also I<-continue>.
213    
214     =item B<-continue [dir] | -c [dir]>
215    
216     Apply the action on the task stored on directory [dir]. If the task directory is the standard one (crab_0_date_time), the more recent in time is taken. Any other directory must be specified.
217     Basically all commands (but -create) need -continue, so it is automatically assumed, with exception of -submit, where it must be explicitly used. Of course, the standard task directory is used in this case.
218    
219 slacapra 1.26 =item B<-status>
220 nsmirnov 1.1
221 slacapra 1.26 Check the status of the jobs, in all states. If BOSS real time monitor is enabled, also some real time information are available, otherwise all the info will be available only after the output retrieval.
222 nsmirnov 1.1
223 slacapra 1.20 =item B<-getoutput|-get [range]>
224 nsmirnov 1.1
225 slacapra 1.20 Retrieve the output declared by the user via the output sandbox. By default the output will be put in task working dir under I<res> subdirectory. This can be changed via config parameters. B<Be extra sure that you have enough free space>. See I<range> below for syntax.
226 nsmirnov 1.1
227 slacapra 1.4 =item B<-resubmit [range]>
228 nsmirnov 1.1
229 slacapra 1.4 Resubmit jobs which have been previously submitted and have been either I<killed> or are I<aborted>. See I<range> below for syntax.
230 nsmirnov 1.1
231 slacapra 1.4 =item B<-kill [range]>
232 nsmirnov 1.1
233 slacapra 1.4 Kill (cancel) jobs which have been submitted to the scheduler. A range B<must> be used in all cases, no default value is set.
234 nsmirnov 1.1
235 slacapra 1.4 =item B<-testJdl [range]>
236 nsmirnov 1.1
237 slacapra 1.4 Check if the job can find compatible resources. It's equivalent of doing I<edg-job-list-match> on edg.
238 nsmirnov 1.1
239 slacapra 1.20 =item B<-printId [range]>
240    
241 slacapra 1.26 Just print the SID (grid job identifier) of the job(s).
242 slacapra 1.20
243 slacapra 1.4 =item B<-postMortem [range]>
244 nsmirnov 1.1
245 slacapra 1.19 Produce a file (via I<edg-job-logging-info -v 2>) which might help in understanding grid related problem for a job.
246 nsmirnov 1.1
247 slacapra 1.13 =item B<-list [range]>
248    
249     Dump technical informations about jobs: for developers only.
250    
251 slacapra 1.4 =item B<-clean [dir]>
252 nsmirnov 1.1
253 slacapra 1.26 Clean up (i.e. erase) the task working directory after a check whether there are still running jobs. In case, you are notified and asked to kill them or retrieve their output. B<Warning> this will possibly delete also the output produced by the task (if any)!
254 nsmirnov 1.1
255 slacapra 1.4 =item B<-help [format] | -h [format]>
256 nsmirnov 1.1
257 slacapra 1.4 This help. It can be produced in three different I<format>: I<man> (default), I<tex> and I<html>.
258 nsmirnov 1.1
259 slacapra 1.4 =item B<-v>
260 nsmirnov 1.1
261 slacapra 1.4 Print the version and exit.
262 nsmirnov 1.1
263 slacapra 1.4 =item B<range>
264 nsmirnov 1.1
265 slacapra 1.13 The range to be used in many of the above commands has the following syntax. It is a comma separated list of jobs ranges, each of which may be a job number, or a job range of the form first-last.
266 slacapra 1.4 Example: 1,3-5,8 = {1,3,4,5,8}
267 nsmirnov 1.1
268 slacapra 1.6 =back
269    
270 slacapra 1.4 =head1 OPTION
271 nsmirnov 1.1
272 slacapra 1.6 =over 4
273    
274 slacapra 1.4 =item B<-cfg [file]>
275 nsmirnov 1.1
276 slacapra 1.4 Configuration file name. Default is B<crab.cfg>.
277 nsmirnov 1.1
278 slacapra 1.4 =item B<-debug [level]>
279 nsmirnov 1.1
280 slacapra 1.13 Set the debug level: high number for high verbosity.
281 nsmirnov 1.1
282 slacapra 1.6 =back
283    
284 slacapra 1.5 =head1 CONFIGURATION PARAMETERS
285    
286 spiga 1.25 All the parameter describe in this section can be defined in the CRAB configuration file. The configuration file has different sections: [CRAB], [USER], etc. Each parameter must be defined in its proper section. An alternative way to pass a config parameter to CRAB is via command line interface; the syntax is: crab -SECTION.key value . For example I<crab -USER.outputdir MyDirWithFullPath> .
287 slacapra 1.5 The parameters passed to CRAB at the creation step are stored, so they cannot be changed by changing the original crab.cfg . On the other hand the task is protected from any accidental change. If you want to change any parameters, this require the creation of a new task.
288 slacapra 1.6 Mandatory parameters are flagged with a *.
289 slacapra 1.5
290     B<[CRAB]>
291 slacapra 1.6
292 slacapra 1.13 =over 4
293 slacapra 1.5
294 slacapra 1.6 =item B<jobtype *>
295 slacapra 1.5
296 slacapra 1.26 The type of the job to be executed: I<cmssw> jobtypes are supported
297 slacapra 1.6
298     =item B<scheduler *>
299    
300 slacapra 1.27 The scheduler to be used: I<edg> is the standard grid one. Other choice are I<glite> or I<glitecoll> for bulk submission or I<condor_g> (see specific paragraph)
301 slacapra 1.5
302     =back
303    
304 slacapra 1.20 B<[CMSSW]>
305    
306     =over 4
307    
308 slacapra 1.22 =item B<datasetpath *>
309 slacapra 1.20
310 slacapra 1.22 the path of processed dataset as defined on the DBS. It comes with the format I</PrimaryDataset/DataTier/Process> . In case no input is needed I<None> must be specified.
311 slacapra 1.20
312 slacapra 1.22 =item B<pset *>
313 slacapra 1.20
314 slacapra 1.22 the ParameterSet to be used
315 slacapra 1.20
316 slacapra 1.26 =item I<Of the following three parameter exactly two must be used, otherwise CRAB will complain.>
317 slacapra 1.20
318 slacapra 1.22 =item B<total_number_of_events *>
319    
320 slacapra 1.26 the number of events to be processed. To access all available events, use I<-1>. Of course, the latter option is not viable in case of no input. In this case, the total number of events will be used to split the task in jobs, together with I<event_per_job>.
321 slacapra 1.22
322 slacapra 1.26 =item B<events_per_job*>
323 slacapra 1.22
324 slacapra 1.26 number of events to be accessed by each job. Since a job cannot cross the boundary of a fileblock it might be that the actual number of events per job is not exactly what you asked for. It can be used also with No input.
325 slacapra 1.22
326     =item B<number_of_jobs *>
327    
328     Define the number of job to be run for the task. The number of event for each job is computed taking into account the total number of events required as well as the granularity of EventCollections. Can be used also with No input.
329    
330     =item B<output_file *>
331    
332     the output files produced by your application (comma separated list).
333 slacapra 1.20
334 slacapra 1.23 =item B<pythia_seed>
335    
336     If the job is pythia based, and has I<untracked uint32 sourceSeed = x> in the ParameterSet, the seed value can be changed using this parameter. Each job will have a different seed, of the type I<pythia_seed>I<$job_number> .
337    
338 slacapra 1.24 =item B<vtx_seed>
339    
340     Seed for random number generation used for vertex smearing: to be used only if PSet has I<untracked uint32 VtxSmeared = x>. It is modified if and only if also I<pythia_seed> is set. As for I<pythia_seed> the actual seed will be of the type I<vtx_seed>I<$job_number>.
341    
342 slacapra 1.30 =item B<g4_seed>
343    
344     Seed for randome generation of Geant4 SimHits I<untracked uint32 g4SimHits = x>. The treatment is that of I<vtx_seed> above
345    
346     =item B<mix_seed>
347    
348     Seed for randome generation of mixing module I<untracked uint32 mix = x>. The treatment is that of I<vtx_seed> above
349    
350     =item B<first_run>
351    
352     First run to be generated in a generation jobs. Relevant only for no-input workflow.
353    
354 slacapra 1.31 =item B<executable>
355 slacapra 1.30
356 slacapra 1.31 The name of the executable to be run on remote WN. The default is cmsrun. The executable is either to be found on the release area of the WN, or has been built on user working area on the UI and is (automatically) shipped to WN. If you want to run a script (which might internally call I<cmsrun>, use B<USER.script_exe> instead.
357 slacapra 1.30
358     =item I<DBS and DLS parameters:>
359    
360     =item B<use_dbs_1>
361    
362     To use DBS1 instead of default DBS2
363 slacapra 1.6
364 slacapra 1.26 =item B<dbs_url>
365 slacapra 1.6
366 slacapra 1.30 The URL of the DBS query page. For expert only. (both DBS1 and DBS2)
367    
368 slacapra 1.26 =item B<dbs_instance>
369 slacapra 1.6
370 slacapra 1.30 The instance of DBS to be accessed at a given URL. For expert only. For DBS1 only.
371 slacapra 1.6
372 slacapra 1.26 =item B<dls_type>
373 slacapra 1.6
374 slacapra 1.30 Type of DLS: can be DLI or mysql. For expert only. For DBS1 only
375 slacapra 1.6
376 slacapra 1.26 =item B<dls_endpoint>
377 slacapra 1.6
378 slacapra 1.30 Access point for DLS. For expert only. For DBS1 only
379 slacapra 1.13
380     =back
381    
382     B<[USER]>
383    
384     =over 4
385    
386 slacapra 1.6 =item B<additional_input_files>
387    
388 slacapra 1.26 Any additional input file you want to ship to WN: comma separated list. These are the files which might be needed by your executable: they will be placed in the WN working dir. You don't need to specify the I<ParameterSet> you are using, which will be included automatically. Wildcards are allowed.
389 slacapra 1.6
390 slacapra 1.31 =item B<script_exe>
391    
392     A user script that will be run on WN (instead of default cmsrun). It's up to the user to setup properly the script itself to run on WN enviroment. CRAB guarantees that the CMSSW environment is setup (eg scram is in the path) and that the modified pset.cfg will be placed in the working directory, with name CMSSW.cfg . The script itself will be added automatically to the input sandbox.
393    
394 slacapra 1.6 =item B<ui_working_dir>
395    
396     Name of the working directory for the current task. By default, a name I<crab_0_(date)_(time)> will be used. If this card is set, any CRAB command which require I<-continue> need to specify also the name of the working directory. A special syntax is also possible, to reuse the name of the dataset provided before: I<ui_working_dir : %(dataset)s> . In this case, if eg the dataset is SingleMuon, the ui_working_dir will be set to SingleMuon as well.
397    
398     =item B<return_data *>
399    
400     The output produced by the ORCA executable on WN is returned (via output sandbox) to the UI, by issuing the I<-getoutput> command. B<Warning>: this option should be used only for I<small> output, say less than 10MB, since the sandbox cannot accomodate big files. Depending on Resource Broker used, a size limit on output sandbox can be applied: bigger files will be truncated. To be used in alternative to I<copy_data>.
401    
402     =item B<outputdir>
403    
404 slacapra 1.9 To be used together with I<return_data>. Directory on user interface where to store the ORCA output. Full path is mandatory, "~/" is not allowed: the defaul location of returned output is ui_working_dir/res .
405 slacapra 1.6
406     =item B<logdir>
407    
408 slacapra 1.9 To be used together with I<return_data>. Directory on user interface where to store the ORCA standard output and error. Full path is mandatory, "~/" is not allowed: the defaul location of returned output is ui_working_dir/res .
409 slacapra 1.6
410     =item B<copy_data *>
411    
412     The output (only the ORCA one, not the std-out and err) is copied to a Storage Element of your choice (see below). To be used as an alternative to I<return_data> and recomended in case of large output.
413    
414     =item B<storage_element>
415    
416     To be used together with I<copy_data>. Storage Element name.
417    
418     =item B<storage_path>
419    
420     To be used together with I<copy_data>. Path where to put output files on Storage Element. Full path is needed, and the directory must be writeable by all.
421    
422     =item B<register_data>
423    
424     To be used together with I<copy_data>. Register output files to RLS catalog: for advanced LCG users.
425    
426     =item B<lfn_dir>
427    
428     To be used together with I<register_data>. Path for the Logical File Name.
429    
430     =item B<use_central_bossDB>
431    
432     Use central BOSS DB instead of one for each task: the DB must be already been setup. See installation istruction for more details.
433    
434     =item B<use_boss_rt>
435    
436     Use BOSS real time monitoring.
437    
438     =back
439    
440 slacapra 1.5 B<[EDG]>
441 nsmirnov 1.1
442 slacapra 1.13 =over 4
443 slacapra 1.6
444     =item B<lcg_version>
445 nsmirnov 1.1
446 slacapra 1.6 Version of LCG middleware to be used.
447 nsmirnov 1.1
448 slacapra 1.13 =item B<RB>
449 slacapra 1.6
450 slacapra 1.29 Which RB you want to use instead of the default one, as defined in the configuration of your UI. The ones available for CMS are I<CERN> and I<CNAF>: the configuration files needed to change the broker will be automatically downloaded from CRAB web page and used. If the files are already present on the working directory they will be used.
451     You can use any other RB which is available, if you provide the proper configuration files. Eg, for RB XYZ, you should provide I<edg_wl_ui.conf.CMS_XYZ> and I<edg_wl_ui_cmd_var.conf.CMS_XYZ> for EDG RB, or I<glite.conf.CMS_XYZ> for glite WMS. These files are searched for in the current working directory, and, if not found, on crab web page. So, if you put your private configuration files in the working directory, they will be used, even if they are not available on crab web page.
452     Please get in contact with crab team if you wish to provide your RB or WMS as a service to the CMS community.
453 slacapra 1.6
454 slacapra 1.14 =item B<proxy_server>
455    
456     The proxy server to which you delegate the responsibility to renew your proxy once expired. The default is I<myproxy.cern.ch> : change only if you B<really> know what you are doing.
457    
458 slacapra 1.26 =item B<role>
459    
460     The role to be set in the VOMS. See VOMS documentation for more info.
461    
462 slacapra 1.27 =item B<group>
463    
464     The group to be set in the VOMS, See VOMS documentation for more info.
465    
466 slacapra 1.28 =item B<dont_check_proxy>
467    
468     If you do not want CRAB to check your proxy. The creation of the proxy (with proper lenght), its delegation to a myproxyserver is your responsability.
469    
470 slacapra 1.6 =item B<requirements>
471    
472     Any other requirements to be add to JDL. Must be written in compliance with JDL syntax (see LCG user manual for further info). No requirement on Computing element must be set.
473    
474 slacapra 1.27 =item B<additional_jdl_parameters:>
475    
476     Any other parameters you want to add to jdl file: comma separated list, each
477     item B<must> be complete, including the closing ";"
478    
479 slacapra 1.6 =item B<max_cpu_time>
480    
481     Maximum CPU time needed to finish one job. It will be used to select a suitable queue on the CE. Time in minutes.
482    
483     =item B<max_wall_clock_time>
484    
485     Same as previous, but with real time, and not CPU one.
486    
487     =item B<CE_black_list>
488    
489 slacapra 1.27 All the CE (Computing Element) whose name contains the following strings (comma separated list) will not be considered for submission. Use the dns domain (eg fnal, cern, ifae, fzk, cnaf, lnl,....)
490 slacapra 1.6
491     =item B<CE_white_list>
492    
493 slacapra 1.27 Only the CE (Computing Element) whose name contains the following strings (comma separated list) will be considered for submission. Use the dns domain (eg fnal, cern, ifae, fzk, cnaf, lnl,....)
494    
495     =item B<SE_black_list>
496    
497     All the SE (Storage Element) whose name contains the following strings (comma separated list) will not be considered for submission.
498    
499     =item B<SE_white_list>
500    
501     Only the SE (Storage Element) whose name contains the following strings (comma separated list) will be considered for submission.
502 slacapra 1.6
503     =item B<virtual_organization>
504    
505     You don't want to change this: it's cms!
506    
507     =item B<retry_count>
508    
509     Number of time the grid will try to resubmit your job in case of grid related problem.
510    
511 slacapra 1.27 =item B<shallow_retry_count>
512    
513     Number of time shallow resubmission the grid will try: resubmissions are tried B<only> if the job aborted B<before> start. So you are guaranteed that your jobs run strictly once.
514    
515 slacapra 1.30 =item B<maxtarballsize>
516    
517     Maximum size of tar-ball in Mb. If bigger, an error will be generated. The actual limit is that on the RB input sandbox. Default is 9.5 Mb (sandbox limit is 10 Mb)
518    
519 slacapra 1.6 =back
520    
521 nsmirnov 1.1 =head1 FILES
522    
523 slacapra 1.6 I<crab> uses a configuration file I<crab.cfg> which contains configuration parameters. This file is written in the INI-style. The default filename can be changed by the I<-cfg> option.
524 nsmirnov 1.1
525 slacapra 1.6 I<crab> creates by default a working directory 'crab_0_E<lt>dateE<gt>_E<lt>timeE<gt>'
526 nsmirnov 1.1
527     I<crab> saves all command lines in the file I<crab.history>.
528    
529     =head1 HISTORY
530    
531 fanzago 1.15 B<CRAB> is a tool for the CMS analysis on the grid environment. It is based on the ideas from CMSprod, a production tools implemented originally by Nikolai Smirnov.
532 nsmirnov 1.1
533     =head1 AUTHORS
534    
535     """
536     author_string = '\n'
537     for auth in common.prog_authors:
538     #author = auth[0] + ' (' + auth[2] + ')' + ' E<lt>'+auth[1]+'E<gt>,\n'
539     author = auth[0] + ' E<lt>' + auth[1] +'E<gt>,\n'
540     author_string = author_string + author
541     pass
542     help_string = help_string + author_string[:-2] + '.'\
543     """
544    
545     =cut
546 slacapra 1.19 """
547 nsmirnov 1.1
548     pod = tempfile.mktemp()+'.pod'
549     pod_file = open(pod, 'w')
550     pod_file.write(help_string)
551     pod_file.close()
552    
553     if option == 'man':
554     man = tempfile.mktemp()
555     pod2man = 'pod2man --center=" " --release=" " '+pod+' >'+man
556     os.system(pod2man)
557     os.system('man '+man)
558     pass
559     elif option == 'tex':
560     fname = common.prog_name+'-v'+common.prog_version_str
561     tex0 = tempfile.mktemp()+'.tex'
562     pod2tex = 'pod2latex -full -out '+tex0+' '+pod
563     os.system(pod2tex)
564     tex = fname+'.tex'
565     tex_old = open(tex0, 'r')
566     tex_new = open(tex, 'w')
567     for s in tex_old.readlines():
568     if string.find(s, '\\begin{document}') >= 0:
569     tex_new.write('\\title{'+common.prog_name+'\\\\'+
570     '(Version '+common.prog_version_str+')}\n')
571     tex_new.write('\\author{\n')
572     for auth in common.prog_authors:
573     tex_new.write(' '+auth[0]+
574     '\\thanks{'+auth[1]+'} \\\\\n')
575     tex_new.write('}\n')
576     tex_new.write('\\date{}\n')
577     elif string.find(s, '\\tableofcontents') >= 0:
578     tex_new.write('\\maketitle\n')
579     continue
580     elif string.find(s, '\\clearpage') >= 0:
581     continue
582     tex_new.write(s)
583     tex_old.close()
584     tex_new.close()
585     print 'See '+tex
586     pass
587     elif option == 'html':
588     fname = common.prog_name+'-v'+common.prog_version_str+'.html'
589     pod2html = 'pod2html --title='+common.prog_name+\
590     ' --infile='+pod+' --outfile='+fname
591     os.system(pod2html)
592     print 'See '+fname
593     pass
594 slacapra 1.33 elif option == 'txt':
595     fname = common.prog_name+'-v'+common.prog_version_str+'.txt'
596     pod2text = 'pod2text '+pod+' '+fname
597     os.system(pod2text)
598     print 'See '+fname
599     pass
600 nsmirnov 1.1
601     sys.exit(0)