![비방하는 것은 아주 새로운 일입니다. Linux 클러스터에서 여러 핵심 작업을 실행하기 위해 slurm을 얻으려면 어떻게 해야 합니까?](https://linux55.com/image/186867/%EB%B9%84%EB%B0%A9%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%80%20%EC%95%84%EC%A3%BC%20%EC%83%88%EB%A1%9C%EC%9A%B4%20%EC%9D%BC%EC%9E%85%EB%8B%88%EB%8B%A4.%20Linux%20%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EC%97%90%EC%84%9C%20%EC%97%AC%EB%9F%AC%20%ED%95%B5%EC%8B%AC%20%EC%9E%91%EC%97%85%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20slurm%EC%9D%84%20%EC%96%BB%EC%9C%BC%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
저는 일부 기존 프로세스를 현재 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