Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

MATLAB 작업 스케줄러 연동을 위한 고급 옵션 구성하기

클러스터에 MATLAB® 작업 스케줄러를 연동할 때 다음 지침에 따라 고급 옵션을 구성하십시오.

참고

MATLAB 작업 스케줄러 연동을 처음 수행하는 경우라면 네트워크 라이선스 매니저와 함께 사용하도록 MATLAB 작업 스케줄러 설치 항목에서 가장 일반적인 구성 옵션을 알아보십시오.

다음 지침에서 matlabrootMATLAB Parallel Server™를 설치한 위치를 나타냅니다. 지침에서 이 단어가 사용된 부분이 나오면 경로를 해당하는 위치로 바꾸십시오.

여러 버전의 MATLAB Parallel Server 실행하기

MATLAB 작업 스케줄러 클러스터를 업그레이드한 후 MATLAB 데스크탑 클라이언트에서 R2016a 릴리스부터의 Parallel Computing Toolbox를 사용해서 연결할 수 있습니다. 이러한 이전 버전과의 호환성 기능을 활용하려면 다음을 수행하십시오.

  1. 최신 버전의 MATLAB Parallel Server를 클러스터에 설치합니다. 클러스터에서 이 버전을 사용해서 MATLAB 작업 스케줄러를 실행해야 합니다.

  2. 클러스터에서 지원하고자 하는 각 릴리스별로 MATLAB Parallel Server를 설치합니다. 예를 들어 클러스터에서 R2016a와 R2016b를 사용하려면 MATLAB Parallel Server의 R2016a 릴리스와 R2016b 릴리스를 모두 설치합니다.

  3. 이 설치 위치를 MATLAB 작업 스케줄러에 구성합니다. mjs_def 구성 파일에서, MJS_ADDITIONAL_MATLABROOTS 변수에 각 MATLAB Parallel Server 설치 위치를 지정합니다. 이 구성 파일은 matlabroot/toolbox/parallel/bin에서 찾을 수 있으며, Linux의 경우 mjs_def.sh이고 Windows의 경우 mjs_def.bat입니다. 자세한 내용은 mjs 항목을 참조하십시오.

이렇게 구성하면 MATLAB 작업 스케줄러는 설치된 릴리스의 MATLAB 클라이언트에서 클러스터에 작업을 제출할 수 있습니다. MATLAB 작업 스케줄러는 해당 버전의 MATLAB 워커를 동적으로 시작하여 작업을 실행합니다.

Windows 클러스터 호스트 설정하기

Windows 컴퓨터의 클러스터에 MATLAB Parallel Server를 처음 설치할 때 작업 통신을 위한 호스트를 구성해야 합니다.

참고

Windows 클러스터가 없거나 이전 버전의 MATLAB Parallel Server가 이미 Windows 클러스터에 설치되어 있는 경우에는 이 단계를 건너뛸 수 있습니다.

클러스터 노드에 Windows 방화벽 구성하기

클러스터 노드에 Windows® 방화벽을 사용하고 있는 경우 다음을 수행하십시오.

  1. 관리자 권한이 있는 사용자로 로그인합니다.

  2. Windows 명령 프롬프트에서 다음을 실행합니다.

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
    

    이 명령은 MATLAB을 허용 프로그램으로 추가합니다. 다른 방화벽도 사용하는 중이라면 마찬가지로 구성해야 합니다.

Windows 사용자의 mjs 액세스 구성하기

mjs를 실행하는 사용자는 클러스터 MATLAB 설치 위치에 액세스할 수 있어야 합니다. 기본적으로 mjs는 사용자 LocalSystem으로 실행됩니다. 네트워크에서 LocalSystem이 설치 위치에 액세스 가능하다면 이 단계를 건너뛸 수 있습니다. (네트워크 구성과 LocalSystem 액세스 권한이 확실하지 않으면 MathWorks 설치 지원팀에 문의하십시오.)

참고

LocalSystem이 설치 위치에 액세스할 수 없는 경우에는 mjs를 다른 사용자로 실행해야 합니다.

다음 단계를 수행하여 다른 사용자를 설정할 수 있습니다.

  1. 표준 텍스트 편집기(예: 워드패드)를 사용하여 다음 위치에 있는 mjs_def 파일을 엽니다.

    matlabroot\toolbox\parallel\bin\mjs_def.bat
  2. MJSUSER 파라미터를 설정하는 라인을 찾아서 domain\username 형식으로 값을 입력합니다.

    set MJSUSER=mydomain\myusername
  3. MJSPASS 파라미터를 설정하여 사용자 비밀번호를 입력합니다.

    set MJSPASS=password
  4. 파일을 저장합니다.

서버에서 필수 포트 열기

mjs 서비스는 BASE_PORT부터 시작해서 포트를 필요한 만큼 사용합니다. 기본적으로 BASE_PORT는 27350입니다.

nJ개 작업 관리자와 nW개 워커를 실행하는 호스트를 사용하는 경우 mjs 서비스는 총 7+2*nJ+4*nW개의 연속 포트를 자신이 사용할 포트로 예약합니다. 작업 관리자와 워커는 서로 다른 호스트에 있다 하더라도 함께 작동하려면 모두 동일한 기본 포트를 사용해야 합니다. 그렇지 않으면 작업 관리자와 워커는 서로 통신할 수 없습니다. 또한 MPI 통신은 BASE_PORT+1000에서 시작하는 포트에서 이루어지며 2*nW개의 연속 포트를 사용합니다.

예를 들어 1개의 작업 관리자와 16개의 워커가 있는 호스트를 사용하는 경우, 다음 범위의 포트가 열려 있어야 합니다.

  • 27350 – 27422: mjs 서비스용.

  • 28350 – 28382: MPI 통신용.

디폴트가 아닌 BASE_PORT를 사용하여 MATLAB에서 클러스터로 연결하려면 MATLAB 작업 스케줄러 클러스터 프로파일의 'Host' 속성에 BASE_PORT 값을 추가해야 합니다. 이때 Hostname:BASE_PORT 형식을 사용해야 합니다(예: myMJSHost:44001).

이전 설치에서 mjs 서비스 중지하기

클러스터 노드에서 이전 버전의 MATLAB Parallel Server를 실행하고 있었다면, 새로운 설치에서 서비스를 시작하기 전에 먼저 mjs 서비스를 중지해야 합니다.

Windows에서 mjs 중지하기

  1. 관리자 권한으로 Windows 명령 창을 엽니다.

  2. 명령 창에서, 제어 스크립트가 있는 이전 설치 폴더로 이동합니다.

    cd oldmatlabroot\toolbox\parallel\bin
    
  3. 다음 명령을 입력하여 이전 서비스를 중지하고 설치된 서비스와 관련 파일을 제거합니다.

    mjs uninstall -clean
    

    R2019a 이전 릴리스에서 이 서비스 이름은 mdce입니다. 이 경우 다음 명령을 대신 입력하십시오.

    cd oldmatlabroot\toolbox\distcomp\bin
    mdce uninstall -clean
    

    참고

    -clean 플래그를 사용하면 모든 기존 작업 데이터가 영구적으로 제거됩니다. 제거하기 전에 이 데이터가 더 이상 필요하지 않은지 확인하십시오.

  4. 모든 워커 노드에서 이 단계의 지침을 반복합니다.

UNIX에서 mjs 중지하기

  1. 루트 계정으로 로그인합니다. 루트 계정으로 로그인할 수 없으면 oldmatlabroot/toolbox/parallel/bin/mjs_def.sh 파일에서 CHECKPOINTBASE, LOGBASE, PIDBASE, LOCKBASE 파라미터를 변경하여 쓰기 권한이 있는 폴더를 가리키도록 해야 합니다. R2019a 이전 릴리스에서 이 파일은 oldmatlabroot/toolbox/distcomp/bin/mdce_def.sh입니다.

  2. 각 클러스터 노드마다 다음 명령을 입력하여 mjs 서비스를 중지하고 관련 파일을 제거합니다.

    cd oldmatlabroot/toolbox/parallel/bin
    ./mjs stop -clean

    R2019a 이전 릴리스에서 이 서비스 이름은 mdce입니다. 이 경우 다음 명령을 대신 입력하십시오.

    cd oldmatlabroot/toolbox/distcomp/bin
    ./mdce stop -clean

    참고

    -clean 플래그를 사용하면 모든 기존 작업 데이터가 영구적으로 제거됩니다. 제거하기 전에 이 데이터가 더 이상 필요하지 않은지 확인하십시오.

MATLAB 작업 스케줄러 보안 수준 설정하기

클러스터 노드에서 mjs 서비스를 시작하기 전에 보안 수준을 설정합니다. 지침은 Set Security Level 항목을 참조하십시오. 추가적인 보안 고려 사항은 Set MATLAB Job Scheduler Cluster Security 항목을 참조하십시오.

mjs 서비스, MATLAB 작업 스케줄러, 워커 시작하기(명령줄)

그래픽 인터페이스 또는 명령줄을 사용하여 MATLAB 작업 스케줄러를 시작할 수 있습니다. 그래픽 인터페이스 사용 방법에 대한 지침은 MATLAB 작업 스케줄러 구성하기 항목을 참조하십시오. 그래픽 인터페이스 방식의 관리 센터를 사용하려면, 클러스터의 모든 노드에 대해 직접 네트워크 연결이 가능한 컴퓨터에서 관리 센터를 실행해야 합니다. 이러한 컴퓨터에서 관리 센터를 실행할 수 없다면 명령줄 인터페이스를 사용해야 합니다. 명령줄 인터페이스 사용 방법에 대한 지침은 다음 단계를 따르십시오.

명령줄 인터페이스 사용하기(Windows)

  1. mjs 서비스 시작

    모든 노드(헤드 노드와 워커 노드)에 mjs 서비스를 설치해야 합니다. 헤드 노드에서 시작하십시오.

    1. 관리자 권한으로 Windows 명령 창을 엽니다.

    2. Windows 명령 창에서, 제어 스크립트가 있는 폴더로 이동합니다.

      cd matlabroot\toolbox\parallel\bin
      
    3. 다음 명령을 입력하여 mjs 서비스를 설치합니다.

      mjs install
      
    4. 다음 명령을 입력하여 mjs 서비스를 시작합니다.

      mjs start
      
    5. 모든 워커 노드에서 이 단계의 지침을 반복합니다.

    위의 3번~5번을 대체하는 다른 방법은 한 컴퓨터에서 원격으로 노드에 mjs 서비스를 설치하고 시작하는 것입니다. 이렇게 하려면 다음을 입력하십시오.

    cd matlabroot\toolbox\parallel\bin
    ssh hostA mjs install
    ssh hostA mjs start

    여기서 hostA는 원격 호스트를 나타냅니다. ssh 유틸리티에 대한 자세한 내용은 다음을 입력하여 사용법을 살펴보십시오.

    ssh

    설치된 mjs 서비스는 컴퓨터가 재부팅할 때마다 실행을 시작합니다. MATLAB 작업 스케줄러 또는 워커 세션이 실행 중인지 여부와 관계없이 mjs 서비스는 명시적으로 중지되거나 제거되기 전까지 계속 실행됩니다.

  2. MATLAB 작업 스케줄러 시작

    MATLAB 작업 스케줄러를 시작하려면 Windows 명령 프롬프트에 다음 명령을 입력합니다. 이때 반드시 MATLAB 작업 스케줄러가 실행되는 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.

    1. Windows 명령 프롬프트에서, 시작 스크립트가 있는 폴더로 이동합니다.

      cd matlabroot\toolbox\parallel\bin
      
    2. 이름 <MyMJS>에 원하는 고유한 텍스트를 지정하여 MATLAB 작업 스케줄러를 시작합니다.

      startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
    3. MATLAB 작업 스케줄러가 지정한 호스트에서 실행되고 있는지 확인합니다.

      nodestatus -remotehost <MATLAB Job Scheduler host name>
      

      참고

      MATLAB 작업 스케줄러가 실행되는 호스트에서 startjobmanager를 실행하는 경우에는 -remotehost 플래그를 지정할 필요가 없습니다.

      클러스터에 MATLAB 작업 스케줄러가 둘 이상 있는 경우, 각각은 고유한 이름을 가져야 합니다.

  3. 워커 시작

    참고

    컴퓨터에서 mjs 서비스가 이미 실행되고 있어야 해당 컴퓨터에서 워커를 시작할 수 있습니다. 네트워크 라이선스 매니저를 사용하고 있다면 네트워크에서 실행 중이어야 합니다.

    워커로 사용되는 각 노드에 대해 Windows 명령 프롬프트에 다음 명령을 입력합니다. 이때 반드시 MATLAB 워커가 실행될 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.

    1. 시작 스크립트가 있는 폴더로 이동합니다.

      cd matlabroot\toolbox\parallel\bin
      
    2. 각 노드에서 워커를 실행합니다. 이때 <MyMJS>에는 이 워커에 등록하려는 MATLAB 작업 스케줄러의 이름을 식별하는 텍스트를 사용합니다. 다음 텍스트를 한 라인으로 입력합니다.

      startworker -jobmanagerhost <MATLAB Job Scheduler host name>
          -jobmanager <MyMJS> -remotehost <worker host name> -v
      

      동일한 노드에서 둘 이상의 워커 세션을 실행하려면, startworker 명령에 -name 옵션으로 각 워커에 고유한 이름을 제공하여 해당 노드의 각 워커에 대해 실행합니다.

      startworker ... -name <worker1 name>
      startworker ... -name <worker2 name>
      
    3. 워커가 실행되고 있는지 확인합니다.

      nodestatus -remotehost <worker host name>
      
    4. 모든 워커 노드에 대해 2번~3번을 반복합니다.

    mjs, MATLAB 작업 스케줄러, 워커 프로세스와 관련하여 이들을 종료하거나 사용자 지정하는 등의 자세한 내용을 알아보려면 MATLAB 작업 스케줄러 클러스터 사용자 지정 항목을 참조하십시오.

명령줄 인터페이스 사용하기(UNIX)

  1. mjs 서비스 시작

    각 클러스터 노드에서 다음 명령을 입력하여 mjs 서비스를 시작합니다.

    cd matlabroot/toolbox/parallel/bin
    ./mjs start

    또는 다음을 입력하여 한 컴퓨터에서 원격으로 노드에서 mjs 서비스를 시작할 수 있습니다.

    cd matlabroot/toolbox/parallel/bin
    ssh hostA matlabroot/toolbox/parallel/bin/mjs start
    ssh hostB matlabroot/toolbox/parallel/bin/mjs start
    ssh hostC matlabroot/toolbox/parallel/bin/mjs start
    

    여기서 hostA, hostB, hostC는 원격 호스트 이름을 나타냅니다. 호스트 이름의 목록이 길면 다음을 입력하여 한 컴퓨터에서 원격으로 여러 개의 노드에서 mjs 서비스를 시작할 수 있습니다.

    for host in hostA hostB hostC;
     do ssh $host matlabroot/toolbox/parallel/bin/mjs start;
    done 

    ssh 유틸리티에 대한 자세한 내용은 다음을 입력하여 사용법을 살펴보십시오.

    ssh

    또는 다음을 입력하여 시스템 참조 설명서에 액세스할 수 있습니다.

    man ssh

  2. MATLAB 작업 스케줄러 시작

    MATLAB 작업 스케줄러를 시작하려면 다음 명령을 입력합니다. 이때 반드시 MATLAB 작업 스케줄러가 실행되는 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.

    1. 시작 스크립트가 있는 폴더로 이동합니다.

      cd matlabroot/toolbox/parallel/bin
      
    2. 이름 <MyMJS>에 원하는 고유한 텍스트를 지정하여 MATLAB 작업 스케줄러를 시작합니다. 다음 텍스트를 한 라인으로 입력합니다.

      ./startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
      
    3. MATLAB 작업 스케줄러가 지정한 호스트에서 실행되고 있는지 확인합니다.

      ./nodestatus -remotehost <MATLAB Job Scheduler host name>
      

      참고

      클러스터에 MATLAB 작업 스케줄러가 둘 이상 있는 경우, 각각은 고유한 이름을 가져야 합니다.

  3. 워커 시작

    참고

    컴퓨터에서 mjs 서비스가 이미 실행되고 있어야 해당 컴퓨터에서 워커를 시작할 수 있습니다. 네트워크 라이선스 매니저를 사용하고 있다면 네트워크에서 실행 중이어야 합니다.

    MATLAB 워커를 호스팅하는 각 컴퓨터에 대해 다음 명령을 입력합니다. 이때 반드시 MATLAB 워커가 실행되는 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.

    1. 시작 스크립트가 있는 폴더로 이동합니다.

      cd matlabroot/toolbox/parallel/bin
      
    2. 각 노드에서 워커를 실행합니다. 이때 <MyMJS>에는 이 워커에 등록하려는 MATLAB 작업 스케줄러의 이름을 식별하는 텍스트를 사용합니다. 다음 텍스트를 한 라인으로 입력합니다.

      ./startworker -jobmanagerhost <MATLAB Job Scheduler host name>
         -jobmanager <MyMJS> -remotehost <worker host name> -v
      

      동일한 컴퓨터에서 둘 이상의 워커 세션을 실행하려면, -name 옵션을 사용하여 각 워커에 고유한 이름을 지정합니다.

      ./startworker ... -name <worker1>
      ./startworker ... -name <worker2>
      
    3. 워커가 실행되고 있는지 확인합니다. 각 워커 노드에 대해 다음 명령을 반복합니다.

      ./nodestatus -remotehost <worker host name>
      

    mjs, MATLAB 작업 스케줄러, 워커 프로세스와 관련하여 이들을 종료하거나 사용자 지정하는 등의 자세한 내용을 알아보려면 MATLAB 작업 스케줄러 클러스터 사용자 지정 항목을 참조하십시오.

부팅 시 자동으로 시작되도록 mjs 서비스 구성하기(UNIX)

systemd 시스템 및 서비스 관리자를 사용하여 부팅 시 mjs 서비스를 시작할 수 있습니다. 이 단계는 반드시 필요하지는 않지만 시스템이 예기치 않게 종료되는 경우에 유용합니다. 구성하면, 컴퓨터가 재부팅될 때마다 mjs 서비스 실행이 시작되고 MATLAB 작업 스케줄러 또는 워커 세션이 실행 중인지 여부와 관계없이 명시적으로 중지될 때까지 계속 실행됩니다.

이러한 단계를 수행하려면 루트 권한이 있어야 합니다.

Debian, Fedora, SUSE, (Fedora 아닌) Red Hat 플랫폼

각 클러스터 노드에서, 다음 단계에 따라 unit 파일을 만들고 시스템 부팅 시 mjs 서비스가 자동으로 시작되도록 구성합니다.

  1. /etc/systemd/system 폴더에 mjs.service라는 systemd unit 파일을 만들고 편집합니다.

    nano /etc/systemd/system/mjs.service
  2. 다음과 같은 구성 옵션을 mjs.service 파일에 추가합니다.

    [Unit]
    Description=MATLAB Job Scheduler
    
    [Service]
    Type=forking
    ExecStart=matlabroot/toolbox/parallel/bin/mjs start 
    
    [Install]
    WantedBy=multi-user.target
    

    또한 systemd가 mjs 서비스를 중지하거나 재시작할 수 있는지 여부를 지정할 수 있습니다. 자세한 내용은 UNIX® 플랫폼에 대한 systemd 도움말 문서를 참조하십시오.

    unit 파일을 저장합니다.

  3. (Fedora 아닌) Red Hat 플랫폼의 경우, 다음과 같이 unit 파일 권한을 설정합니다.

    chmod 664 /etc/systemd/system/mjs.service
  4. systemd 서비스 파일을 다시 불러와서 변경 사항을 업데이트합니다.

    systemctl daemon-reload

  5. 부팅 시 자동으로 시작되도록 mjs systemd 서비스를 활성화합니다.

    systemctl enable mjs.service

    또한 mjs 서비스를 시작하여 mjs systemd 서비스가 성공적으로 구성되었는지 여부를 확인할 수 있습니다.

    systemctl start mjs.service

    mjs systemd 서비스의 상태를 확인하려면 다음 명령을 입력합니다.

    sudo systemctl status mjs.service

MATLAB 작업 스케줄러로 설치된 제품의 유효성 검사하기

MATLAB Parallel Server 제품이 올바르게 설치되고 구성되었는지 확인하려면 클러스터 프로파일을 만들어서 유효성 검사를 수행합니다. 지침은 MATLAB 클라이언트를 MATLAB Parallel Server 클러스터에 연결하기 항목을 참조하십시오. 프로파일 유효성을 검사할 때 사용할 워커의 개수를 지정하면 전체 클러스터가 점유되는 것을 피할 수 있습니다. 유효성 검사에 통과하지 못한 경우 MathWorks 설치 지원팀에 문의하거나 Troubleshoot Common Problems 항목을 참조하십시오.

클러스터 프로파일을 만든 후 본인의 응용 사례에 맞춰 NumWorkersRange, AttachedFiles, AdditionalPaths 등을 수정할 수 있습니다. 프로파일을 다른 사용자가 사용할 수 있도록 저장하려면, 클러스터 프로파일 관리자에서 프로파일을 선택하고 내보내기를 클릭한 다음 편리한 위치에 있는 파일에 프로파일을 저장합니다. 나중에 클러스터 프로파일 관리자를 실행했을 때 다른 사용자가 가져오기를 클릭하여 이 프로파일을 가져올 수 있습니다. 클러스터 프로파일에 대한 자세한 내용은 클러스터 검색 및 클러스터 프로파일 사용하기 (Parallel Computing Toolbox) 항목을 참조하십시오.

관련 예제

세부 정보