[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