Changeset 228

Show
Ignore:
Timestamp:
07/07/09 15:20:38 (5 months ago)
Author:
cholt
Message:

update mpi_iprscan

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • MPI/mpi_iprscan

    r225 r228  
    1010use lib "$FindBin::Bin/../lib"; 
    1111use lib "$FindBin::Bin/../perl/lib"; 
    12 use vars qw($RANK $LOG $EXE); 
     12use vars qw($RANK $LOG $EXE $TMP); 
    1313use Storable qw(freeze thaw); 
    1414use threads; 
     
    2424    } 
    2525 
     26    #build temp directory 
     27    my $n = umask(); 
     28    umask(0000); 
     29    $TMP = "/tmp/iprscanTMP"; 
     30    mkdir($TMP, 07777) if(! -d $TMP); 
     31    mkdir("$TMP/tmp", 07777) if(! -d "$TMP/tmp"); 
     32    umask($n); 
     33 
    2634   #what to do on ^C 
    2735    $SIG{'INT'} = sub { 
     
    6169use Storable; 
    6270use FileHandle; 
     71use File::Copy; 
    6372use File::Path; 
    6473use Getopt::Long qw(:config pass_through); 
     
    166175my $outfile; 
    167176my @appl; 
     177my $chpc; 
    168178my $cli; #always enabled, just here for implementation 
    169179 
     
    171181           "o=s" => \$outfile, 
    172182           "appl=s" => \@appl, 
     183           "chpc" => \$chpc, #hidden option used on the CHPC's computer farm 
    173184           "cli" => \$cli, #just used to strip off the option 
    174185           ); 
     
    191202    @appl = split(',', $apps); 
    192203    die "ERROR: Cannot determine default applications\n" if(! @appl); 
     204} 
     205 
     206#build localized database for each node 
     207if($chpc && ! -e "$TMP/iprscan/data/ok"){ 
     208    my $lock = new File::NFSLock("$TMP/.iprscan_lock", 'EX', 1200, 1205); 
     209     
     210    #build local db in /tmp 
     211    if(! -e "$TMP/iprscan/data/ok" && $lock){ 
     212        #remove old failed directories 
     213        if(-d "$TMP/iprscan"){ 
     214            move("$TMP/iprscan", "$TMP/old"); 
     215            File::Path::rmtree("$TMP/old"); 
     216        } 
     217        if(-d "$TMP/test"){ 
     218            move("$TMP/test", "$TMP/old"); 
     219            File::Path::rmtree("$TMP/old"); 
     220        } 
     221 
     222        my $free = `df /tmp | grep -v \"Filesystem\" | awk \'{print \$4}\'`; 
     223        if($free > 16000000){ 
     224            my @tar_db = split (":", $ENV{'TAR_DB'}); 
     225            @tar_db = grep {-d $_} @tar_db; 
     226             
     227            if (@tar_db){ 
     228                my $db = $tar_db[int(rand(@tar_db))]; 
     229                 
     230                my @files = ('latest_match.tar.gz', 
     231                             'latest_pthr.tar.gz', 
     232                             'latest_nopthr.tar.gz'); 
     233                 
     234                if(-e "$db/$files[0]" && 
     235                   -e "$db/$files[1]" && 
     236                   -e "$db/$files[1]" 
     237                   ){ 
     238                     
     239                    my $fail; 
     240                    foreach my $file (@files){ 
     241                        last if($fail); 
     242                        mkdir("$TMP/test") unless(-d "$TMP/test"); 
     243                        copy("$db/$file", "$TMP/test"); 
     244                        system("cd $TMP/test\n". 
     245                               "tar -zxvmf $file" 
     246                               ); 
     247                         
     248                        $fail = $?; 
     249                         
     250                        unlink("$TMP/test/$file"); 
     251                    } 
     252                     
     253                    if($fail){ 
     254                        File::Path::rmtree("$TMP/test"); 
     255                           
     256                    } 
     257                    else{ 
     258                        move("$TMP/test/iprscan", "$TMP/iprscan"); 
     259                        File::Path::rmtree("$TMP/test"); 
     260                        system("index_data.pl -p $TMP/iprscan/data -inx -bin"); 
     261                        system("touch $TMP/iprscan/data/ok"); 
     262                    } 
     263                } 
     264            } 
     265        } 
     266    } 
     267     
     268    $lock->unlock if($lock); 
    193269} 
    194270 
  • lib/Process/IPRtiers.pm

    r221 r228  
    167167 
    168168   return if ($self->terminated || $self->failed); 
    169    return if ($self->_level_started && ! $self->_level_finished); 
     169   #return if ($self->_level_started && ! $self->_level_finished); 
    170170 
    171171   $self->_next_level if ($self->_level_finished); 
  • lib/shadow_AED.pm

    r183 r228  
    7474                3 => 0, 
    7575               ); 
     76 
    7677   foreach my $i (@b_seq){ 
    7778      $index{$i}++;