배열 작업을 SGE에 제출하는 Perl 스크립트가 있습니다. 모든 작업을 병렬로 실행하여 시간을 절약하고 스크립트가 모든 작업을 마칠 때까지 기다렸다가 모든 SGE 출력 파일의 정보를 통합하고 최종 출력을 생성하는 다음 처리 단계로 넘어갑니다. 내가 사용, 대기 다음 배경으로 모든 작업을 보내고하기 위해-sync yes 옵션을 사용하여 SGE에 작업 종료 코드 인쇄 방지
병렬 :: ForkManager 및 루프 :
일에 "대기"일부 위해서는$fork_manager = new Parallel::ForkManager(@as);
# @as: Max nb of processes to run simultaneously
for $a (@as) {
$fork_manager->start and next; # Starts the child process
system "qsub <qsub_options> ./script.plx";
$fork_manager->finish; # Terminates the child process
}
$fork_manager->wait_all_children;
<next processing step, local>
그러나, 내가 가진 qsub 옵션에 "-sync yes"를 추가해야했습니다. 그러나 SGE는이 작업의 "부작용"으로 각 배열 작업의 각 작업에 대한 종료 코드를 인쇄하며 많은 작업이 있고 단일 작업이 가볍기 때문에 기본적으로 모든 쉘 메시지를 사용하기 때문에 내 셸을 사용할 수 없게 만듭니다. qsub 작업이 실행 중입니다.
어떻게 이러한 메시지를 제거 할 수 있습니까? 내가 qsub의 작업 종료 코드를 확인하는 데 관심이 있습니다. (모든 작업이 다음 단계 전에 확인되었음을 확인할 수 있습니다.)하지만 각 작업의 종료 코드가 아닙니다 (어쨌든 옵션을 통해 작업의 오류를 기록합니다.) 나는 그것을 필요로 할 때).