ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UfCode/UserArea/StatTools/gridCI.pl
Revision: 1.1
Committed: Wed Dec 8 10:57:12 2010 UTC (14 years, 4 months ago) by kkotov
Content type: application/x-perl
Branch: MAIN
CVS Tags: V2012-H-02, V2012-01-00, V2011-01-01, V2011-01-00, AnnaDimuon, V01-00-01, V01-00-00, HEAD
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 kkotov 1.1 #!/usr/bin/perl -w
2    
3     use strict;
4     use POSIX ":sys_wait_h";
5    
6     #my @free_nodes = ("localhots","localhots","localhots","localhots");
7     my @free_nodes = ("localhots");
8     my %busy_nodes = ();
9    
10     my $mass_min = 1000;
11     my $mass_max = 2000;
12     my $mass_bins = 50;
13    
14     my $lambda_min = 1000;
15     my $lambda_max = 2000;
16     my $lambda_bins = 50;
17    
18     my $f = 1.;
19     my $fp = 1.;
20     my $fs = 1.;
21    
22     for my $m (0..$mass_bins) {
23     for my $l (0..$lambda_bins) {
24    
25     while( $#free_nodes < 0 ){
26     foreach my $pid (keys %busy_nodes){
27     if( waitpid($pid,WNOHANG)>0 ){
28     my $node = delete $busy_nodes{$pid};
29     push @free_nodes, $node;
30     }
31     }
32     sleep(1);
33     }
34    
35     my $mass = $m*($mass_max -$mass_min )/$mass_bins + $mass_min;
36     my $lambda = $l*($lambda_max-$lambda_min)/$lambda_bins + $lambda_min;
37    
38     my $host = pop @free_nodes;
39     my $pid = fork();
40     die "Can't fork process for m=$m l=$l fs=$fs" unless( defined($pid) );
41     $busy_nodes{$pid} = $host;
42    
43     if( $pid==0 ){
44     exec "/raid/raid3/cms/kkotov/Pythia/qStarCI $lambda $mass $f $fp $fs > /raid/raid3/cms/kkotov/Pythia/xsecCI/$lambda\_$mass\_$fs.txt 2>&1";
45     }
46    
47     }
48     }
49    
50