MATLAB 작업 스케줄러 연동을 위한 고급 옵션 구성하기
클러스터에 MATLAB® 작업 스케줄러를 연동할 때 다음 지침에 따라 고급 옵션을 구성하십시오.
참고
MATLAB 작업 스케줄러 연동을 처음 수행하는 경우라면 네트워크 라이선스 매니저와 함께 사용하도록 MATLAB 작업 스케줄러 설치 항목에서 가장 일반적인 구성 옵션을 알아보십시오.
다음 지침에서 matlabroot
는 MATLAB Parallel Server™를 설치한 위치를 나타냅니다. 지침에서 이 단어가 사용된 부분이 나오면 경로를 해당하는 위치로 바꾸십시오.
여러 버전의 MATLAB Parallel Server 실행하기
MATLAB 작업 스케줄러 클러스터를 업그레이드한 후 MATLAB 데스크탑 클라이언트에서 R2016a 릴리스부터의 Parallel Computing Toolbox를 사용해서 연결할 수 있습니다. 이러한 이전 버전과의 호환성 기능을 활용하려면 다음을 수행하십시오.
최신 버전의 MATLAB Parallel Server를 클러스터에 설치합니다. 클러스터에서 이 버전을 사용해서 MATLAB 작업 스케줄러를 실행해야 합니다.
클러스터에서 지원하고자 하는 각 릴리스별로 MATLAB Parallel Server를 설치합니다. 예를 들어 클러스터에서 R2016a와 R2016b를 사용하려면 MATLAB Parallel Server의 R2016a 릴리스와 R2016b 릴리스를 모두 설치합니다.
이 설치 위치를 MATLAB 작업 스케줄러에 구성합니다.
mjs_def
구성 파일에서,MJS_ADDITIONAL_MATLABROOTS
변수에 각 MATLAB Parallel Server 설치 위치를 지정합니다. 이 구성 파일은
에서 찾을 수 있으며, Linux의 경우matlabroot
/toolbox/parallel/binmjs_def.sh
이고 Windows의 경우mjs_def.bat
입니다. 자세한 내용은 mjs 항목을 참조하십시오.
이렇게 구성하면 MATLAB 작업 스케줄러는 설치된 릴리스의 MATLAB 클라이언트에서 클러스터에 작업을 제출할 수 있습니다. MATLAB 작업 스케줄러는 해당 버전의 MATLAB 워커를 동적으로 시작하여 작업을 실행합니다.
Windows 클러스터 호스트 설정하기
Windows 컴퓨터의 클러스터에 MATLAB Parallel Server를 처음 설치할 때 작업 통신을 위한 호스트를 구성해야 합니다.
참고
Windows 클러스터가 없거나 이전 버전의 MATLAB Parallel Server가 이미 Windows 클러스터에 설치되어 있는 경우에는 이 단계를 건너뛸 수 있습니다.
클러스터 노드에 Windows 방화벽 구성하기
클러스터 노드에 Windows® 방화벽을 사용하고 있는 경우 다음을 수행하십시오.
관리자 권한이 있는 사용자로 로그인합니다.
Windows 명령 프롬프트에서 다음을 실행합니다.
matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
이 명령은 MATLAB을 허용 프로그램으로 추가합니다. 다른 방화벽도 사용하는 중이라면 마찬가지로 구성해야 합니다.
Windows 사용자의 mjs 액세스 구성하기
mjs를 실행하는 사용자는 클러스터 MATLAB 설치 위치에 액세스할 수 있어야 합니다. 기본적으로 mjs는 사용자 LocalSystem
으로 실행됩니다. 네트워크에서 LocalSystem
이 설치 위치에 액세스 가능하다면 이 단계를 건너뛸 수 있습니다. (네트워크 구성과 LocalSystem
액세스 권한이 확실하지 않으면 MathWorks 설치 지원팀에 문의하십시오.)
참고
LocalSystem
이 설치 위치에 액세스할 수 없는 경우에는 mjs를 다른 사용자로 실행해야 합니다.
다음 단계를 수행하여 다른 사용자를 설정할 수 있습니다.
표준 텍스트 편집기(예: 워드패드)를 사용하여 다음 위치에 있는
mjs_def
파일을 엽니다.matlabroot\toolbox\parallel\bin\mjs_def.bat
MJSUSER
파라미터를 설정하는 라인을 찾아서domain\username
형식으로 값을 입력합니다.set MJSUSER=mydomain\myusername
MJSPASS
파라미터를 설정하여 사용자 비밀번호를 입력합니다.set MJSPASS=password
파일을 저장합니다.
서버에서 필수 포트 열기
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 중지하기
관리자 권한으로 Windows 명령 창을 엽니다.
명령 창에서, 제어 스크립트가 있는 이전 설치 폴더로 이동합니다.
cd oldmatlabroot\toolbox\parallel\bin
다음 명령을 입력하여 이전 서비스를 중지하고 설치된 서비스와 관련 파일을 제거합니다.
mjs uninstall -clean
R2019a 이전 릴리스에서 이 서비스 이름은 mdce입니다. 이 경우 다음 명령을 대신 입력하십시오.
cd oldmatlabroot\toolbox\distcomp\bin mdce uninstall -clean
참고
-clean
플래그를 사용하면 모든 기존 작업 데이터가 영구적으로 제거됩니다. 제거하기 전에 이 데이터가 더 이상 필요하지 않은지 확인하십시오.모든 워커 노드에서 이 단계의 지침을 반복합니다.
UNIX에서 mjs 중지하기
루트 계정으로 로그인합니다. 루트 계정으로 로그인할 수 없으면
파일에서oldmatlabroot
/toolbox/parallel/bin/mjs_def.shCHECKPOINTBASE
,LOGBASE
,PIDBASE
,LOCKBASE
파라미터를 변경하여 쓰기 권한이 있는 폴더를 가리키도록 해야 합니다. R2019a 이전 릴리스에서 이 파일은
입니다.oldmatlabroot
/toolbox/distcomp/bin/mdce_def.sh각 클러스터 노드마다 다음 명령을 입력하여 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)
mjs 서비스 시작
모든 노드(헤드 노드와 워커 노드)에 mjs 서비스를 설치해야 합니다. 헤드 노드에서 시작하십시오.
관리자 권한으로 Windows 명령 창을 엽니다.
Windows 명령 창에서, 제어 스크립트가 있는 폴더로 이동합니다.
cd matlabroot\toolbox\parallel\bin
다음 명령을 입력하여 mjs 서비스를 설치합니다.
mjs install
다음 명령을 입력하여 mjs 서비스를 시작합니다.
mjs start
모든 워커 노드에서 이 단계의 지침을 반복합니다.
위의 3번~5번을 대체하는 다른 방법은 한 컴퓨터에서 원격으로 노드에 mjs 서비스를 설치하고 시작하는 것입니다. 이렇게 하려면 다음을 입력하십시오.
cd matlabroot\toolbox\parallel\bin ssh hostA mjs install ssh hostA mjs start
여기서
hostA
는 원격 호스트를 나타냅니다.ssh
유틸리티에 대한 자세한 내용은 다음을 입력하여 사용법을 살펴보십시오.ssh
설치된 mjs 서비스는 컴퓨터가 재부팅할 때마다 실행을 시작합니다. MATLAB 작업 스케줄러 또는 워커 세션이 실행 중인지 여부와 관계없이 mjs 서비스는 명시적으로 중지되거나 제거되기 전까지 계속 실행됩니다.
MATLAB 작업 스케줄러 시작
MATLAB 작업 스케줄러를 시작하려면 Windows 명령 프롬프트에 다음 명령을 입력합니다. 이때 반드시 MATLAB 작업 스케줄러가 실행되는 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.
Windows 명령 프롬프트에서, 시작 스크립트가 있는 폴더로 이동합니다.
cd matlabroot\toolbox\parallel\bin
이름
<MyMJS>
에 원하는 고유한 텍스트를 지정하여 MATLAB 작업 스케줄러를 시작합니다.startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
MATLAB 작업 스케줄러가 지정한 호스트에서 실행되고 있는지 확인합니다.
nodestatus -remotehost <MATLAB Job Scheduler host name>
참고
MATLAB 작업 스케줄러가 실행되는 호스트에서
startjobmanager
를 실행하는 경우에는-remotehost
플래그를 지정할 필요가 없습니다.클러스터에 MATLAB 작업 스케줄러가 둘 이상 있는 경우, 각각은 고유한 이름을 가져야 합니다.
워커 시작
참고
컴퓨터에서 mjs 서비스가 이미 실행되고 있어야 해당 컴퓨터에서 워커를 시작할 수 있습니다. 네트워크 라이선스 매니저를 사용하고 있다면 네트워크에서 실행 중이어야 합니다.
워커로 사용되는 각 노드에 대해 Windows 명령 프롬프트에 다음 명령을 입력합니다. 이때 반드시 MATLAB 워커가 실행될 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.
시작 스크립트가 있는 폴더로 이동합니다.
cd matlabroot\toolbox\parallel\bin
각 노드에서 워커를 실행합니다. 이때
<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>
워커가 실행되고 있는지 확인합니다.
nodestatus -remotehost <worker host name>
모든 워커 노드에 대해 2번~3번을 반복합니다.
MATLAB Parallel Server는 최대 10,000개의 워커가 있는 MATLAB 작업 스케줄러 클러스터를 지원합니다. (R2023b 이후)
mjs, MATLAB 작업 스케줄러, 워커 프로세스와 관련하여 이들을 종료하거나 사용자 지정하는 등의 자세한 내용을 알아보려면 MATLAB 작업 스케줄러 클러스터 사용자 지정 항목을 참조하십시오.
명령줄 인터페이스 사용하기(UNIX)
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
MATLAB 작업 스케줄러 시작
MATLAB 작업 스케줄러를 시작하려면 다음 명령을 입력합니다. 이때 반드시 MATLAB 작업 스케줄러가 실행되는 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.
시작 스크립트가 있는 폴더로 이동합니다.
cd matlabroot/toolbox/parallel/bin
이름
<MyMJS>
에 원하는 고유한 텍스트를 지정하여 MATLAB 작업 스케줄러를 시작합니다. 다음 텍스트를 한 라인으로 입력합니다../startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
MATLAB 작업 스케줄러가 지정한 호스트에서 실행되고 있는지 확인합니다.
./nodestatus -remotehost <MATLAB Job Scheduler host name>
참고
클러스터에 MATLAB 작업 스케줄러가 둘 이상 있는 경우, 각각은 고유한 이름을 가져야 합니다.
워커 시작
참고
컴퓨터에서 mjs 서비스가 이미 실행되고 있어야 해당 컴퓨터에서 워커를 시작할 수 있습니다. 네트워크 라이선스 매니저를 사용하고 있다면 네트워크에서 실행 중이어야 합니다.
MATLAB 워커를 호스팅하는 각 컴퓨터에 대해 다음 명령을 입력합니다. 이때 반드시 MATLAB 워커가 실행되는 컴퓨터에 있어야 할 필요는 없습니다. 설치된 MATLAB Parallel Server에 액세스할 수만 있으면 됩니다.
시작 스크립트가 있는 폴더로 이동합니다.
cd matlabroot/toolbox/parallel/bin
각 노드에서 워커를 실행합니다. 이때
<MyMJS>
에는 이 워커에 등록하려는 MATLAB 작업 스케줄러의 이름을 식별하는 텍스트를 사용합니다. 다음 텍스트를 한 라인으로 입력합니다../startworker -jobmanagerhost <MATLAB Job Scheduler host name> -jobmanager <MyMJS> -remotehost <worker host name> -v
동일한 컴퓨터에서 둘 이상의 워커 세션을 실행하려면,
-name
옵션을 사용하여 각 워커에 고유한 이름을 지정합니다../startworker ... -name <worker1> ./startworker ... -name <worker2>
워커가 실행되고 있는지 확인합니다. 각 워커 노드에 대해 다음 명령을 반복합니다.
./nodestatus -remotehost <worker host name>
MATLAB Parallel Server는 최대 10,000개의 워커가 있는 MATLAB 작업 스케줄러 클러스터를 지원합니다. (R2023b 이후)
mjs, MATLAB 작업 스케줄러, 워커 프로세스와 관련하여 이들을 종료하거나 사용자 지정하는 등의 자세한 내용을 알아보려면 MATLAB 작업 스케줄러 클러스터 사용자 지정 항목을 참조하십시오.
부팅 시 자동으로 시작되도록 mjs 서비스 구성하기(UNIX)
systemd
시스템 및 서비스 관리자를 사용하여 부팅 시 mjs 서비스를 시작할 수 있습니다. 이 단계는 반드시 필요하지는 않지만 시스템이 비정상적으로 종료되는 경우에 유용합니다. 구성하면, 컴퓨터가 재부팅될 때마다 mjs 서비스 실행이 시작되고 MATLAB 작업 스케줄러 또는 워커 세션이 실행 중인지 여부와 관계없이 명시적으로 중지될 때까지 계속 실행됩니다.
이러한 단계를 수행하려면 루트 권한이 있어야 합니다.
Debian, Fedora, SUSE, (Fedora 아닌) Red Hat 플랫폼
각 클러스터 노드에서, 다음 단계에 따라 unit 파일을 만들고 시스템 부팅 시 mjs 서비스가 자동으로 시작되도록 구성합니다.
/etc/systemd/system
폴더에mjs.service
라는systemd
unit 파일을 만들고 편집합니다.nano /etc/systemd/system/mjs.service
다음과 같은 구성 옵션을
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 파일을 저장합니다.
(Fedora 아닌) Red Hat 플랫폼의 경우, 다음과 같이 unit 파일 권한을 설정합니다.
chmod 664 /etc/systemd/system/mjs.service
systemd
서비스 파일을 다시 불러와서 변경 사항을 업데이트합니다.systemctl daemon-reload
부팅 시 자동으로 시작되도록 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) 항목을 참조하십시오.