Привет, у меня есть простой скрипт, который берет файл и запускает на нем другой скрипт Perl. Сценарий делает это для каждого файла изображения в текущей папке. Это работает на машине с 2 четырехъядерными процессорами Xeon, 16 ГБ оперативной памяти, работающей под управлением RedHat Linux.
Первый скрипт work.pl в основном вызывает magicplate.pl, передает некоторые параметры и имя файла для обработки magicplate.pl. Magic Plate обрабатывает каждое изображение около минуты. Поскольку work.pl выполняет одну и ту же функцию более 100 раз, а система имеет несколько процессоров и ядер, я подумал о разделении задачи, чтобы она могла выполняться несколько раз параллельно. Я мог бы разделить изображения по разным папкам, если это необходимо. Любая помощь будет здорово. Спасибо
Вот что у меня есть до сих пор:
use strict;
use warnings;
my @initialImages = <*>;
foreach my $file (@initialImages) {
if($file =~ /.png/){
print "processing $file...\n";
my @tmp=split(/\./,$file);
my $name="";
for(my $i=0;$i<(@tmp-1);$i++) {
if($name eq "") { $name = $tmp[$i]; } else { $name=$name.".".$tmp[$i];}
}
my $exten=$tmp[(@tmp-1)];
my $orig=$name.".".$exten;
system("perl magicPlate.pl -i ".$orig." -min 4 -max 160 -d 1");
}
}