2016-11-04 8 views
1

R 및 클러스터를 처음 사용해 본 경험이 있습니다. Google에서 검색하여 패키지 "doMPI"를 발견했습니다. 이 패키지를 사용하면 프로세스 생성을 자동화 할 수 있습니다. 그러나, 나는 기능에 대해 약간 혼란 스럽다.doMPI 및 클러스터

1 - startMPIcluster와 registerDOMPI의 차이점은 무엇입니까?

2 - startMPIcluster에서 전달되는 논쟁은 무엇입니까?

3 - "mpirun -H n1, n2, n3 -n 1 R - 슬레이브 -f sincMPI.R"명령을 사용할 때 "-n 1"은 무엇을 의미합니까?

4 - 마지막으로, 각 클러스터에 60 개의 CPUS가있는 클러스터가 4 개 있다고 가정합니다. 내 코드는 어떨까요?

+1

이전에 클러스터로 작업 한 적이 없다면 MPI가 다소 어려울 수 있습니다. 병렬 패키지 (R과 함께 제공됨)를 대신 사용해보십시오. MPI만큼 효율적이지는 않지만 사용하기가 훨씬 쉽습니다. –

+1

@HongOoi 병렬은 단일 노드에서 사용하기 쉽지만 클러스터에서 여러 노드를 사용하려는 경우, 특히 일괄 대기열 처리 시스템의 컨텍스트에서는 쉽지 않습니다. 이러한 맥락에서 MPI는 병렬로 실행되는 표준 방법입니다. 단일 노드에서 시작하는 것이 더 쉽지만 클러스터의 진정한 이점은 여러 노드를 사용하는 것입니다. –

답변

2

doMPI vignette을 읽으셨습니까? 나는이 질문들에 대답하려고 애썼다. 또한 doMPI 소스 배포판을 다운로드하고 그 안에 포함 된 예제 스크립트를 살펴볼 것을 제안합니다. 귀하의 질문에 대해서는

:

  1. startMPIcluster 병렬 계산에 사용되는 일련의 프로세스를 나타내는 클러스터 객체를 생성하는 데 사용됩니다; registerDoMPI은 foreach를 사용하여 클러스터 객체를 등록하는 데 사용되므로 병렬 foreach 루프를 실행하는 데 사용됩니다. 두 기능을 모두 사용해야합니다. 당신이 -n 1 옵션에 mpirun을 통해 R 스크립트를 실행하면

  2. , mpirun이는 (내가 마스터 프로세스를 호출)하여 R 스크립트를 실행하는 하나 개의 프로세스를 시작하고 startMPIcluster의 첫 번째 인수는 근로자의 수를 지정 foreach 루프에 의해 생성 된 작업을 실행하기 위해 마스터가 시작되어야합니다. mpirun을 사용하여 여러 프로세스를 시작하는 경우 count 값을 지정하지 않아도됩니다. mpirun을 사용하여 모든 작업자를 시작하고 (예 : -n 3 사용) count 값의 값을 지정하지 않는 것이 좋습니다.

  3. mpirun -n 옵션은 시작해야하는 작업자/프로세스의 수를 지정합니다. 작업자를 생성하려면 -n 1을 사용해야 mpirun은 마스터 만 시작하고 startMPIclustercount 인수를 사용하여 생성 할 작업자 수를 제어해야합니다.

정말 마지막 질문을 이해하지 못합니다. 그러나 비 네트와 예제는 이러한 모든 개념을 더 잘 이해하는 데 도움이 될 것입니다.