Aracılığıyla paylaş


HTCondor

HTCondor , küme tanımınızın yapılandırma bölümündeki "run_list" değiştirilerek CycleCloud kümesinde kolayca etkinleştirilebilir. HTCondor kümesinin üç temel bileşeni vardır. İlki, zamanlama ve yönetim daemon'larını sağlayan "merkezi yönetici"dir. HTCondor kümesinin ikinci bileşeni, işlerin sisteme gönderildiği bir veya daha fazla zamanlayıcıdır. Son bileşen, hesaplamayı gerçekleştiren konaklar olan bir veya daha fazla yürütme düğümüdür. Basit bir HTCondor şablonu şöyle görünebilir:

[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'da tanımı olan bir kümeyi içeri aktarmak ve başlatmak bir "yönetici" ve "zamanlayıcı" düğümü ve bir "yürütme" düğümü verir. Yürütme düğümleri komutuyla kümeye cyclecloud add_node eklenebilir. 10 yürütme düğümü daha eklemek için:

cyclecloud add_node htcondor -t execute -c 10

HTCondor Otomatik Ölçeklendirme

CycleCloud, HTCondor için otomatik ölçeklendirmeyi destekler. Bu, yazılımın kuyruğunuzun durumunu izleyeceği ve işi en uygun sürede/maliyette tamamlamak için gerektiğinde düğümleri açıp kapatacağı anlamına gelir. Küme tanımınıza ekleyerek Autoscale=true HTCondor için otomatik ölçeklendirmeyi etkinleştirebilirsiniz:

[cluster htcondor]
Autoscale = True

HTCondor Gelişmiş Kullanımı

İşlerin ortalama çalışma zamanını biliyorsanız, işinizde (dakika cinsinden) tanımlayabilirsiniz average_runtime . CycleCloud, en az düğüm sayısını başlatmak için bunu kullanır (örneğin, beş adet 10 dakikalık iş, 10 olarak ayarlandığında beş average_runtime düğüm yerine yalnızca tek bir düğüm başlatır).

Nodearray'i Otomatik Ölçeklendirme

Varsayılan olarak, HTCondor nodearray'den 'execute' adlı çekirdekler istemektedir. Bir iş farklı bir nodearray gerektiriyorsa (örneğin, bir iş akışındaki belirli işler yüksek bellek gereksinimine sahipse), iş için bir slot_type öznitelik belirtebilirsiniz. Örneğin, ekleme +slot_type = "highmemory" HTCondor'un "execute" yerine "highmemory" nodearray düğümünden bir düğüm istemesine neden olur (bunun şu anda nodearray'nin [[[configuration]]] bölümünde ayarlanması gerektiğini htcondor.slot_type = "highmemory" unutmayın). Bu, HTCondor'un requirements işleri nasıl zamanlamasını etkilemez, bu nedenle işin veya rank ifadelerine startd özniteliğini eklemek slot_type isteyebilirsiniz. Örneğin: Requirements = target.slot_type = "highmemory".

İşleri HTCondor'a Gönderme

İşleri HTCondor zamanlayıcıya göndermenin en genel yolu komutudur (zamanlayıcı düğümünden çalıştır):

condor_submit my_job.submit

Örnek bir gönderme dosyası şöyle görünebilir:

      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 Yapılandırma Başvurusu

İşlevleri özelleştirmek için ayarlayabileceğiniz HTCondor'a özgü yapılandırma seçenekleri şunlardır:

yapılandırma seçeneklerini HTCondor-Specific Description
htcondor.agent_enabled Doğruysa, iş gönderme ve yoklama için condor_agent kullanın. Varsayılan: false
htcondor.agent_version Kullanılacak condor_agent sürümü. Varsayılan: 1.27
htcondor.classad_lifetime Classad'lerin varsayılan yaşam süresi (saniye olarak). Varsayılan: 700
htcondor.condor_owner HTCondor ölçek genişletme betiklerinin sahibi olan Linux hesabı. Varsayılan: kök
htcondor.condor_group HTCondor scaledown betiklerinin sahibi olan Linux grubu. Varsayılan: kök
htcondor.data_dir Günlükler, biriktirme dizinleri, yürütme dizinleri ve yerel yapılandırma dosyası dizini. Varsayılan: /mnt/condor_data (Linux), C:\All Services\condor_local (Windows)
htcondor.ignore_hyperthreads (Yalnızca Windows) Hiper iş parçacığı oluşturmayı "devre dışı bırakmanın" bir yolu olarak CPU sayısını algılanan CPU'ların yarısı olacak şekilde ayarlayın. Otomatik ölçeklendirme kullanıyorsanız, [[node]] veya [[nodearray]] bölümündeki yapılandırma ayarıyla Cores hiper iş parçacığı olmayan çekirdek sayısını belirtin. Varsayılan: false
htcondor.install_dir HTCondor'un yüklendiği dizin. Varsayılan: /opt/condor (Linux), C:\condor (Windows)
htcondor.job_start_count Bir schedd'nin döngü başına başlayacağı iş sayısı. 0 sınırsızdır. Varsayılan: 20
htcondor.job_start_delay Her iş başlangıç aralığı arasındaki saniye sayısı. 0 hemen. Varsayılan: 1
htcondor.max_history_log İş geçmişi dosyasının bayt cinsinden boyut üst sınırı. Varsayılan: 20971520
htcondor.max_history_rotations Tutulacak iş geçmişi dosyası sayısı üst sınırı. Varsayılan: 20
htcondor.negotiator_cycle_delay Yeni bir müzakereci döngüsü başlamadan önce geçmesi gereken en az saniye sayısı. Varsayılan: 20
htcondor.negotiator_interval condor_negotiator bir anlaşma döngüsünü ne sıklıkta (saniye olarak) başlatır? Varsayılan: 60
htcondor.negotiator_inform_startd Doğruysa, müzakereci bir işle eşleştiğinde başlatılanı bilgilendirmektedir. Varsayılan: true
htcondor.remove_stopped_nodes True ise, durdurulan yürütme düğümleri "kapalı" olarak işaretlenmek yerine CycleServer görünümünden kaldırılır.
htcondor.running Doğruysa, HTCondor toplayıcısı ve müzakereci daemon'ları merkezi yönetici üzerinde çalışır. Aksi takdirde yalnızca condor_master çalışır. Varsayılan: true
htcondor.scheduler_dual Doğruysa, zamanlayıcılar iki schedd çalıştırır. Varsayılan: true
htcondor.single_slot Doğruysa, makineyi tek bir yuva olarak ele alır (makinenin sahip olduğu çekirdek sayısından bağımsız olarak). Varsayılan: false
htcondor.slot_type Otomatik ölçeklendirme için düğüm dizisinin slot_type tanımlar. Varsayılan: yürütme
htcondor.update_interval Toplayıcıya güncelleştirme yayımlamak için başlatılanın aralığı (saniye cinsinden). Varsayılan: 240
htcondor.use_cache_config Doğruysa, örneğin yapılandırma için CycleServer yoklamasını sağlamak için cache_config kullanın. Varsayılan: false
htcondor.version Yüklenecek HTCondor sürümü. Varsayılan: 8.2.6

HTCondor Otomatik Olarak Oluşturulan Yapılandırma Dosyası

HTCondor,kullanıcı tanımlı öznitelikler de dahil olmak üzere çok sayıda yapılandırma ayarına sahiptir. CycleCloud, kümede tanımlanan öznitelikleri kullanarak özel bir yapılandırma dosyası oluşturma olanağı sunar:

Öznitelik Açıklama
htcondor.custom_config.enabled True ise, belirtilen öznitelikler kullanılarak bir yapılandırma dosyası oluşturulur. Varsayılan: false
htcondor.custom_config.file_name Yazacak dosyanın adı (/config içine htcondor.data_diryerleştirilir). Varsayılan: ZZZ-custom_config.txt
htcondor.custom_config.settings Gibi özel yapılandırma dosyasına yazılması gereken öznitelikler htcondor.custom_config.settings.max_jobs_running = 5000

Not

içeren HTCondor yapılandırma öznitelikleri. bu yöntem kullanılarak belirtilemez. Bu tür öznitelikler gerekiyorsa, bunlar bir yemek kitabında veya cluster-init ile yüklenen bir dosyada belirtilmelidir.

CycleCloud, zamanlayıcılar arasında standart bir otomatik durdurma öznitelikleri kümesini destekler:

Öznitelik Açıklama
cyclecloud.cluster.autoscale.stop_enabled Bu düğümde otomatik durdurma etkinleştirildi mi? [true/false]
cyclecloud.cluster.autoscale.idle_time_after_jobs Bir düğümün ölçeği azaltılmadan önce işleri tamamladıktan sonra boşta oturma süresi (saniye olarak).
cyclecloud.cluster.autoscale.idle_time_before_jobs Bir düğümün ölçeği azaltılmadan önce işleri tamamlamadan önce boşta durma süresi (saniye olarak).