순차 작업 실행을 위한 스크립트

순차 작업 실행을 위한 스크립트

저는 최근에 Linux 사용법을 배우기 시작했습니다. 클러스터에서 직렬 작업을 실행하기 위해 bash 쉘에 스크립트를 작성하고 싶습니다. 나는 그러한 스크립트를 작성하는 방법에 대한 팁과 지침을 찾고 있었습니다. 나는 다음과 같이 쓸 수 있었습니다:

#!/bin/bash
#PBS -l nodes=1:ppn=8
#PBS -l walltime=1:00:00
#PBS -e test.err
#PBS -o test.log
cd /home/myuser/
echo "Running on host `hostname`"
echo "Time is `date`"
echo "Directory is `pwd`"
/home/myuser/comsol4.3b/bin/comsol batch -inputfile DF.mph -outputfile output.mph -batchlog out.log

마지막 줄은 실행할 프로그램(COMSOL이라고 함)을 호출합니다. 내 코드에서 누락된 것 중 하나는 "qsub" 명령입니다. 이 명령을 코드의 나머지 명령과 병합하는 방법을 모르겠습니다. "qsub" 명령을 통해 내가 사용하고 있는 프로그램을 호출하는 행을 수정하는 방법을 안내해 줄 수 있는 사람이 있습니까?

제 질문이 너무 간단해서 죄송합니다. 문제를 해결하려고 많은 시간을 보냈지만 안타깝게도 그럴 수 없습니다.

편집하다: 정리하자면, 코드 마지막 줄만 입력하면 마스터 노드에서만 실행되는데, 이는 원하지 않습니다. PBS 라인을 사용하여 할당한 리소스를 사용하도록 코드의 마지막 라인을 수정하고 싶습니다. 어떻게 해야 합니까?

기록에 따르면, 이 명령은 qhost250개의 노드가 있고, 각 노드의 코어 수는 4코어/노드에서 16코어/노드 범위로 표시됩니다.

답변1

어떤 클러스터링 소프트웨어를 사용하고 있는지 지정하지 않았지만 요청한 사실에 따르면 qsubGridEngine(및 그 파생물)과 PBS가 모두 해당 특정 명령을 사용한다는 것을 알고 있으므로 해당 명령부터 시작하겠습니다.

나는 GridEngine(및 그 파생물)에 가장 익숙하므로 해당 패키지를 사용하여 명령을 제출하려면 비슷한 작업을 수행해야 합니다.

다음은 샘플 스크립트입니다. 이를 이라고 부르겠습니다 sample.bash.

#!/bin/bash
echo "Working directory is $PWD"

이 스크립트를 제출하려면 다음을 수행해야 합니다.

$ qsub sample.bash

클러스터의 특정 노드를 대상으로 하려면 GridEngine 예약 소프트웨어가 노드 중 하나를 선택하고 그 중 하나에서 작업을 실행할 수 있도록 노드에 고유한 속성 집합을 포함해야 합니다.

관련 정보