다음을 통해 공유


HTCondor

클러스터 정의의 구성 섹션에서 "run_list"을 수정하여 CycleCloud 클러스터에서 HTCondor를 쉽게 사용하도록 설정할 수 있습니다. HTCondor 클러스터에는 세 가지 기본 구성 요소가 있습니다. 첫 번째는 일정 및 관리 디먼을 제공하는 "중앙 관리자"입니다. HTCondor 클러스터의 두 번째 구성 요소는 작업이 시스템에 제출되는 하나 이상의 스케줄러입니다. 최종 구성 요소는 호스트가 계산을 수행하는 하나 이상의 실행 노드입니다. 간단한 HTCondor 템플릿은 다음과 같습니다.

[cluster htcondor]

  [[node manager]]
  ImageName = cycle.image.centos7
  MachineType = Standard_A4 # 8 cores

      [[[configuration]]]
      run_list = role[central_manager]

  [[node scheduler]]
  ImageName = cycle.image.centos7
  MachineType = Standard_A4 # 8 cores

      [[[configuration]]]
      run_list = role[condor_scheduler_role],role[filer_role],role[scheduler]

  [[nodearray execute]]
  ImageName = cycle.image.centos7
  MachineType = Standard_A1 # 1 core
  Count = 1

      [[[configuration]]]
      run_list = role[usc_execute]

CycleCloud에서 정의를 사용하여 클러스터를 가져오고 시작하면 "관리자" 및 "스케줄러" 노드와 하나의 "실행" 노드가 생성됩니다. 실행 노드는 명령을 통해 cyclecloud add_node 클러스터에 추가할 수 있습니다. 10개 이상의 실행 노드를 추가하려면 다음을 수행합니다.

cyclecloud add_node htcondor -t execute -c 10

HTCondor 자동 크기 조정

CycleCloud는 HTCondor에 대한 자동 크기 조정을 지원합니다. 즉, 소프트웨어는 최적의 시간/비용으로 작업을 완료하기 위해 필요에 따라 큐 상태를 모니터링하고 노드를 켜고 끕니다. 클러스터 정의에 추가하여 Autoscale=true HTCondor에 대해 자동 크기 조정을 사용하도록 설정할 수 있습니다.

[cluster htcondor]
Autoscale = True

HTCondor 고급 사용

작업의 평균 런타임을 알고 있는 경우 작업에서(분) 정의 average_runtime 할 수 있습니다. CycleCloud는 최소 노드 수를 시작하는 데 사용합니다(예: 10분 작업 5개는 10으로 설정된 경우 average_runtime 5개가 아닌 단일 노드만 시작함).

Nodearray 자동 크기 조정

기본적으로 HTCondor는 'execute'라는 nodearray에서 코어를 요청합니다. 작업에 다른 nodearray가 필요한 경우(예를 들어 워크플로 내의 특정 작업에 높은 메모리 요구 사항이 있는 경우) 작업에 대한 특성을 지정할 slot_type 수 있습니다. 예를 들어 추가 +slot_type = "highmemory" 하면 HTCondor가 "실행" 대신 "highmemory" nodearray에서 노드를 요청합니다(현재 nodearray의 [[[configuration]]] 섹션에서 설정해야 함htcondor.slot_type = "highmemory"). 이는 HTCondor가 작업을 예약하는 방식에 영향을 미치지 않으므로 작업 또는 rank 식에 requirements 시작 특성을 포함 slot_type 할 수 있습니다. 예: Requirements = target.slot_type = "highmemory"

HTCondor에 작업 제출

HTCondor 스케줄러에 작업을 제출하는 가장 일반적인 방법은 명령입니다(스케줄러 노드에서 실행).

condor_submit my_job.submit

샘플 제출 파일은 다음과 같습니다.

      Universe = vanilla
      Executable = do_science
      Arguments = -v --win-prize=true
      Output = log/$(Cluster).$(Process).out
      Error = log/$(Cluster).$(Process).err
      Should_transfer_files = if_needed
      When_to_transfer_output = On_exit
      +average_runtime = 10
      +slot_type = "highmemory"
      Queue

HTCondor 구성 참조

다음은 기능을 사용자 지정하도록 설정할 수 있는 HTCondor 관련 구성 옵션입니다.

HTCondor-Specific 구성 옵션 설명
htcondor.agent_enabled true이면 작업 제출 및 폴링에 condor_agent 사용합니다. 기본값: false
htcondor.agent_version 사용할 condor_agent 버전입니다. 기본값: 1.27
htcondor.classad_lifetime classads의 기본 수명(초)입니다. 기본값: 700
htcondor.condor_owner HTCondor 확장 스크립트를 소유하는 Linux 계정입니다. 기본값: root
htcondor.condor_group HTCondor 확장 스크립트를 소유하는 Linux 그룹입니다. 기본값: root
htcondor.data_dir 로그, 스풀 디렉터리, 실행 디렉터리 및 로컬 구성 파일에 대한 디렉터리입니다. 기본값: /mnt/condor_data(Linux), C:\All Services\condor_local(Windows)
htcondor.ignore_hyperthreads (Windows에만 해당) 하이퍼스레딩을 "사용하지 않도록 설정"하는 방법으로 CPU 수를 검색된 CPU의 절반으로 설정합니다. 자동 크기 조정을 사용하는 경우 [[node]] 또는 [[nodearray]] 섹션에서 구성 설정을 사용하여 하이퍼스레드가 아닌 코어 수를 Cores 지정합니다. 기본값: false
htcondor.install_dir HTCondor가 설치된 디렉터리입니다. 기본값: /opt/condor(Linux), C:\condor(Windows)
htcondor.job_start_count schedd가 주기별로 시작하는 작업 수입니다. 0은 무제한입니다. 기본값: 20
htcondor.job_start_delay 각 작업 시작 간격 사이의 초 수입니다. 0은 즉시 수행됩니다. 기본값: 1
htcondor.max_history_log 작업 기록 파일의 최대 크기(바이트)입니다. 기본값: 20971520
htcondor.max_history_rotations 유지할 작업 기록 파일의 최대 수입니다. 기본값: 20
htcondor.negotiator_cycle_delay 새 협상 주기가 시작되기 전의 최소 시간(초)입니다. 기본값: 20
htcondor.negotiator_interval condor_negotiator 협상 주기를 시작하는 빈도(초)입니다. 기본값: 60
htcondor.negotiator_inform_startd true이면 협상가가 작업과 일치할 때 시작되었음을 알릴 수 있습니다. 기본값: true
htcondor.remove_stopped_nodes true이면 중지된 실행 노드가 "down"으로 표시되지 않고 CycleServer 보기에서 제거됩니다.
htcondor.running true이면 HTCondor 수집기 및 협상가 디먼이 중앙 관리자에서 실행됩니다. 그렇지 않으면 condor_master만 실행됩니다. 기본값: true
htcondor.scheduler_dual true이면 스케줄러는 두 개의 schedd를 실행합니다. 기본값: true
htcondor.single_slot true이면 머신이 소유하는 코어 수에 관계없이 컴퓨터를 단일 슬롯으로 처리합니다. 기본값: false
htcondor.slot_type 자동 크기 조정을 위한 노드 배열의 slot_type 정의합니다. 기본값: execute
htcondor.update_interval 수집기 업데이트를 게시하기 시작한 간격(초)입니다. 기본값: 240
htcondor.use_cache_config true이면 cache_config 사용하여 구성을 위해 인스턴스 폴링 CycleServer를 갖습니다. 기본값: false
htcondor.version 설치할 HTCondor의 버전입니다. 기본값: 8.2.6

HTCondor 자동 생성 구성 파일

HTCondor에는 사용자 정의 특성을 포함하여 많은 수의 구성 설정이 있습니다. CycleCloud는 클러스터에 정의된 특성을 사용하여 사용자 지정 구성 파일을 만드는 기능을 제공합니다.

attribute 설명
htcondor.custom_config.enabled true이면 지정된 특성을 사용하여 구성 파일이 생성됩니다. 기본값: false
htcondor.custom_config.file_name 쓸 파일의 이름(/config에 htcondor.data_dir배치됨)입니다. 기본값: ZZZ-custom_config.txt
htcondor.custom_config.settings 사용자 지정 구성 파일에 쓸 특성(예: ) htcondor.custom_config.settings.max_jobs_running = 5000

참고

를 포함하는 HTCondor 구성 특성 이 메서드를 사용하여 지정할 수 없습니다. 이러한 특성이 필요한 경우 cookbook 또는 cluster-init와 함께 설치된 파일에 지정해야 합니다.

CycleCloud는 스케줄러에서 표준 자동 중지 특성 집합을 지원합니다.

attribute 설명
cyclecloud.cluster.autoscale.stop_enabled 이 노드에서 autostop을 사용할 수 있나요? [true/false]
cyclecloud.cluster.autoscale.idle_time_after_jobs 노드가 축소되기 전에 작업을 완료한 후 유휴 상태로 앉을 시간(초)입니다.
cyclecloud.cluster.autoscale.idle_time_before_jobs 노드가 축소되기 전에 작업을 완료하기 전에 유휴 상태로 앉을 시간(초)입니다.