비방하는 것은 아주 새로운 일입니다. Linux 클러스터에서 여러 핵심 작업을 실행하기 위해 slurm을 얻으려면 어떻게 해야 합니까?

비방하는 것은 아주 새로운 일입니다. Linux 클러스터에서 여러 핵심 작업을 실행하기 위해 slurm을 얻으려면 어떻게 해야 합니까?

저는 일부 기존 프로세스를 현재 slurm에서 실행 중인 개선된 Linux 클러스터로 옮기려고 노력해 왔습니다. 나는 끝났다고 생각했지만 이제 내 문제는 여러 코어를 실행하려고 하는 것입니다.

이것은 내 제출 스크립트입니다.

   #!/bin/bash
   #
   #SBATCH --job-name=test_mpi
   #SBATCH --output=res_mpi.txt
   #
   #SBATCH -n 4
   #SBATCH --time=10:00
   srun mkdir -p /tmp/tedhyu/new
  srun cp Ru13.in /tmp/tedhyu/new/lcao.in
  srun cp ~tedhyu/atom_pbe/* /tmp/tedhyu/new
  srun cd /tmp/tedhyu/new
  srun -N 1  -n 4 --chdir=/tmp/tedhyu/new  mpiexec ~tedhyu/bin/origin1_centos6.4_mpich2_quest_265c.x

"qstat -n"을 실행하면 코어가 하나만 표시됩니다.

작업 ID 사용자 이름 대기열 이름 SessID NDS TSK 메모리 시간 사용량 S 시간


11778 tedhyu 원자 test_mpi -- 1 4 -- 00:10 C 00:00
node3-5/4

다음은 1개의 코어만 실행 중임을 보여주는 출력의 처음 몇 줄입니다.

    srun: error: node3-5: tasks 0-3: Exited with exit code 1
     MPINFO::: Global Communicator        :::
     MPINFO::: Global Context = ****      :::
     MPINFO::: Global Size =       1      :::
     MPINFO::: Global Root =       0      :::
     MPINFO::: Global Rank =       0      :::
     DEV: VDW development version

전역 크기는 4와 같아야 합니다.

누구든지 올바른 방향으로 나를 가리킬 수 있다면... 감사합니다!

답변1

스크립트의 마지막 줄에는 srun을 사용하지 마세요. 실행 파일을 시작하려면 mpirun 또는 mpiexec를 사용하세요.

srun의 기능: 다음에 나오는 명령의 $SLURM_NTASKS 인스턴스(각 예약된 CPU 코어에 대해 하나씩)를 시작합니다. 당신은 이것을 원하지 않고 mpiexec가 작업을 CPU로 포크하기를 원합니다. 예를 들어 마지막 줄은 다음과 같습니다.

mpirun -np $SLURM_NTASKS ./myexecutable.exe

관련 정보