[linux] paralelne spustanie procesov (kompresia logov)

Peter Viskup skupko.sk na gmail.com
Úterý Únor 2 21:47:59 CET 2010


Nevsimol som si, ze to chces bindovat na jednotlive procesory.
Pre Perl mozes pouzit modul Forks::Super
http://search.cpan.org/~mob/Forks-Super-0.11/lib/Forks/Super.pm
pre prikazovy riadok utility taskset.

--
Peter Viskup

Peter Viskup wrote:
> Naskriptuj si to.
> Ja som to riesil v Perl-e (urcite sa to da aj v shelli ;-) ).
> (nasledujuci kod nemusi byt plne funkcny a je nutne ho doplnit)
>
> # spracuva sa prvy argument vo forme --childs <number>
>
> use warnings;
> use strict;
> use locale;
> my $MAXCHILD = 5;
> my $CURCHILD = 0;
> my ($num, $start_num, $end_num, $childs) = (0,0,0);
>
> use Getopt::Long;
> if (!GetOptions('childs=i'=>\$childs)) {
>    usage();
>    die "Wrong options!\n";
> }
> if ($childs>0){
>    $MAXCHILD=$childs;
> }
>
> while ($num <= $end_num) {
>    if($CURCHILD < $MAXCHILD){
>        if(my $pid = fork()){
>            addchild();
>        }
>        elsif(defined $pid){
>            # tuto nieco vykonava child...
>            exit;
>        }
>        else{
>            die "Fork failed: $!\n";
>        }
>    }
>    else {
>        while($CURCHILD >= $MAXCHILD){
>            my $processid = waitpid(-1, 0);
>            delchild();
>        }
>    }
> }
> sub addchild {$num++; $CURCHILD++;}
> sub delchild {$CURCHILD--;}
>
>
> -- 
> Peter Viskup
>
>
> Matus UHLAR - fantomas wrote:
>> Zdravim,
>>
>> poznate niekto aplikaciu ktora by mi umoznila zadefinovat niekolko 
>> procesov
>> ktore by sa mali spustit, pricom paralelne by malo bezat vzdy max. X
>> procesov?
>>
>> rad by som komprimoval dost velke logy paralelne na kazdom procesore 
>> jeden
>>
>>   
>
>



Další informace o konferenci linux