2014-10-06 2 views
0

저는 대개 대학의 클러스터에서 데이터를 처리합니다. 이전에 수행 된 대부분의 작업은 병렬 배치 쉘 (작업을 여러 배치로 나누어 병렬 처리)에 기반합니다. 이 셸의 예는 다음과 같습니다.lsf 클러스터에서 mpi 작업 제출

#! /bin/bash 
#BSUB -J model_0001 
#BSUB -o z_output_model_0001.o 
#BSUB -n 8 
#BSUB -e z_output_model_0001.e 
#BSUB -q general 
#BSUB -W 5:00 
#BSUB -B 
#BSUB -N 
some command 

이번에는 일부 mpi 작업 (mpi4py 기준)을 테스트하고 있습니다. 이 코드는 랩톱에서 단일 작업 (4 개의 프로세서를 사용하여 실행하는 1 개의 작업)에서 테스트되었습니다. 이제 클러스터에서 다중 작업 (30) 작업을 제출해야합니다 (실행하려면 8 개의 프로세서를 사용하는 1 개의 작업). 내 디자인은 다음과 같습니다. 위의 30 개의 유사한 쉘 파일을 준비하십시오. 명령은 각 mpi 명령 ("mpiexec -n 8 mycode.py args"와 같은 것)입니다. 그리고 각 쉘은 8 개의 프로세서를 예약합니다.

나는 일자리를 제출했다. 그러나 내가 올바르게하고 있는지 확실하지 않습니다. 실행 중이지만 mpi 기반으로 실행되는지 확실하지 않습니다. 어떻게 확인할 수 있습니까? 여기에 2 개의 질문이 더 있습니다 :

1) 보통 병렬 작업의 경우, 일반적으로 단일 작업을 예약 할 수있는 한계 수가 있습니다 - 16. 16 세 이상에서는 결코 성공하지 못했습니다. mpi를 사용하면 더 많은 정보를 예약 할 수 있습니까? mpi가 다르기 때문에. 기본적으로 저는 연속적인 메모리가 필요하지 않습니다.

2) 클러스터에 우선 순위 규칙이 있다고 생각합니다. 보통 병렬 작업의 경우 보통 하나의 작업 (예 : 작업 당 10 개의 작업과 16 개의 프로세서)에 대해 더 많은 프로세서를 예약 할 때 단일 작업에 대해 적은 프로세서를 예약하는 것보다 대기열에서 훨씬 더 많은 대기 시간이 필요합니다 (각 작업을 8 개의 하위 -tasks (총 80 개의 하위 작업) 및 하위 작업 당 2 개의 프로세서). mpi에 더 많은 프로세서를 예약 할 수 있다면. 이 규칙에 영향을 줍니까? 나는 영원히 기다릴 것이라고 걱정합니다 ...

+1

분명히 이것은 클러스터 관리자에게 질문입니까? 정확한 솔루션은 클러스터가 실행되는 미들웨어에 완전히 의존하며 여기에 아무도 없습니다. – talonmies

+0

질문 제목의 "lsf"와 "lsf"태그는 미들웨어가 Platform LSF임을 나타냅니다. ;-) – janneb

+0

당신 말이 맞아요. 방금 대학의 IT 지원보다 유용하다는 것을 알았습니다. 대학의 경우 문제가 내 코딩 지식과 더 관련이 있다면 일반적으로 유용한 응답이 없습니다. 어쩌면 그들은 매일 너무 많은 표를 얻었을 것입니다. 그래서 mpi를 사용하는 데 명백한 코딩 오류가 있는지 먼저 여기에서 시도합니다. 아니면 대학 사이의 클러스터가 비슷합니까? 어쨌든, 당신의 의견은 옳습니다. 나는 그들에게 연락 할 것이다. – Kenny

답변

0

글쎄, 증가하는 "#BSUB -n"은 정확히 당신이해야 할 일입니다. 이 옵션은 얼마나 많은 실행 "슬롯"을 예약했는지 알려줍니다. 당신이 20 순위와 함께 MPI 작업을 실행하려는 경우, 당신은

#BSUB -n 20 

이 IIRC 슬롯, LSF는 많은 노드에서 슬롯을 할당합니다 동일한 노드에 할당 할 필요가없는 실행이 요청에 필요한 필요 만족해야합니다. 하지만 LSF를 사용한 이후로 얼마 동안 지났으며 현재는이를 사용하는 시스템에 액세스 할 수 없으므로 잘못 될 수 있습니다 (로컬 클러스터 LSF 구성에 따라 다를 수 있음).

+0

감사합니다. 나는 노력할지도 모른다. 하지만 내 경험에 따르면 단일 작업으로 최대 16 개의 프로세서 만 예약 할 수 있습니다. 이것은 내 간단한 병렬 배치 경험을 기반으로합니다. mpi에도 영향을 줍니까? – Kenny

+0

"-n 8"시도하고 작동합니다. 그런 다음 20으로 전환합니다. 내가 말했듯이, 그것은 영원히 계류중인 것 같습니다. 이것은 내가 연속 메모리를 필요로하지 않기 때문에 나 혼란스럽고 단일 프로세서 작업을 위해서 적어도 동시에 512를 실행할 수 있는데 왜 mpi가 20을 예약 할 수 없는지 ... – Kenny

+0

'-R "span [ptile = # slots]"옵션 슬롯의 그룹을 지정하는 데 사용할 수 있습니다. –