HTCondor 사용법: 두 판 사이의 차이

1,728 바이트 추가됨 ,  2023년 4월 4일 (화)
편집 요약 없음
편집 요약 없음
편집 요약 없음
7번째 줄: 7번째 줄:
# 프로그램이 여러개의 작업으로 쪼개어져 작동할 수 있도록 '''병렬화''' 합니다.
# 프로그램이 여러개의 작업으로 쪼개어져 작동할 수 있도록 '''병렬화''' 합니다.
# 프로그램이 각 노드에서 작업될 수 있도록 '''작업 환경 구축 과정을 구상하고, 쉘 스크립트를 작성'''합니다.
# 프로그램이 각 노드에서 작업될 수 있도록 '''작업 환경 구축 과정을 구상하고, 쉘 스크립트를 작성'''합니다.
# 필요한 폴더를 생성하고, 이동할 파일과 출력될 파일위치를 파악합니다.
# 필요한 파일을 이동하고 쉘 스크립트가 각 작업별로 작동한 후 결과 파일을 가져올 수 있도록 '''condor_submit 의 submit file 을 작성'''합니다.
# 필요한 파일을 이동하고 쉘 스크립트가 각 작업별로 작동한 후 결과 파일을 가져올 수 있도록 '''condor_submit 의 submit file 을 작성'''합니다.


32번째 줄: 33번째 줄:
</syntaxhighlight>python 도 ''getopt'' 활용 가능 (''import getopt, 활용방법은 별도 검색'')
</syntaxhighlight>python 도 ''getopt'' 활용 가능 (''import getopt, 활용방법은 별도 검색'')


== 작업 과정 구성 ==
== 작업 과정 구상 ==
작업과정 구성은 각 노드의 운영체제와 접근할 수 있는 스토리지(라이브러리)에 따라 구성 방법이 다릅니다.
각 노드의 운영체제와 접근할 수 있는 스토리지(라이브러리)에 따라 작업 과정 구상이 다릅니다. 작업 과정을 구상하지 않고 바로 condor_submit 을 하는 과정으로 넘어갈 수도 있습니다. '''(작업 과정에 대한 구상이 필요없는 경우가 더 많습니다.)'''


=== 환경 구성을 해야만 하는 경우 ===
본 과정은 '''하나의 실행파일로 작업을 정의할 수 없는 경우, (여러 과정의 실행이 필요한 경우)''' 그를 '''하나의 실행 파일을 실행하는 것으로 묶는 과정'''으로, 보통 Shell Script 하나를 만듦으로써 끝나게 됩니다. 마지막의 "하나의 실행파일" 은 python 스크립트가 될 수도 있습니다만, 본 과정에서는 Shell Script 로 다룹니다.
 
=== 작업과정 구상을 하는 경우 ===
작업 과정을 구상하는 경우는 다음과 같습니다.
 
* '''작업환경 구성을 해야하는 경우'''
* 한개의 실행파일(executable)로 작업이 끝나지 않는 경우
* 프로그램이 자주 액세스하는 파일을 먼저 노드에 복사하는 경우
 
==== 작업 환경 구성을 해야만 하는 경우 ====
다음과 같은 경우 개별 노드에서 작업환경을 구성해야하며, '''보통 새로 프로그램을 빌드해야만 합니다. 보통 잘 구성된 클러스터는, 이럴 일이 잘 없습니다.'''
다음과 같은 경우 개별 노드에서 작업환경을 구성해야하며, '''보통 새로 프로그램을 빌드해야만 합니다. 보통 잘 구성된 클러스터는, 이럴 일이 잘 없습니다.'''


42번째 줄: 52번째 줄:


위 상황 이외에도 작업환경을 노드별로 구축해야하는 경우가 발생할 수 있으나, 이는 이를 아는 것은 매우 경험적인 부분입니다. (비명시적일 경우가 더 많습니다)
위 상황 이외에도 작업환경을 노드별로 구축해야하는 경우가 발생할 수 있으나, 이는 이를 아는 것은 매우 경험적인 부분입니다. (비명시적일 경우가 더 많습니다)
==== 한개의 실행파일로 작업이 끝나지 않는 경우 ====
여러 실행파일의 연속적 실행으로 작업을 해야하는 경우가 있습니다. 이 경우 또한 작업과정 구상을 따로 해야합니다.
==== 파일을 노드에 복사하는 경우 ====
일반적으로, 공통마운트 스토리지가 있어서 이에 액세스하면 되지만 네트워크 스토리지는 인트라넷 속도를 지속적으로 소모하여 전체 노드의 속도를 줄일 수 있습니다. 최초 1회 노드로 복사하여 내부에서 접근함으로서 이를 방지할 수 있습니다.


=== Argument Pass-Through ===
=== Argument Pass-Through ===
<syntaxhighlight lang="shell">
#!/bin/bash
</syntaxhighlight>


== condor_submit ==
== condor_submit ==
condor_submit 은


=== 숫자로 병렬화한 경우 ===
=== 숫자로 병렬화한 경우 ===