Seu script perl pode iniciar os processos em segundo plano (X & amp;). Pode usar a chamada da função do garfo.
#!usr/bin/perl
'command1'; ### Takes ~30 Minute and use 30 core
# start child process
my $child_pid = fork() // die "Can't fork: $!"; # die unless defined($child_pid);
if ($child_pid == 0 ) {
# am the child process
exec( 'perl', 'test2.pl' );
die "exec failed!";
}
# am the parent process
'command2'; ### Takes ~10 Minute and use 2 core
'command3'; ### Takes ~10 Minute and use 1 core
'command4'; ### Takes ~10 Minute and use 1 core
# wait for the child process to finish
waitpid $child_pid, 0;