Bagikan melalui


HTCondor

HTCondor dapat dengan mudah diaktifkan pada kluster CycleCloud dengan memodifikasi "run_list" di bagian konfigurasi definisi kluster Anda. Ada tiga komponen dasar kluster HTCondor. Yang pertama adalah "manajer pusat" yang menyediakan daemon penjadwalan dan manajemen. Komponen kedua dari kluster HTCondor adalah satu atau beberapa penjadwal tempat pekerjaan dikirimkan ke dalam sistem. Komponen akhir adalah satu atau beberapa simpul eksekusi yang merupakan host melakukan komputasi. Templat HTCondor sederhana mungkin terlihat seperti:

[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]

Mengimpor dan memulai kluster dengan definisi di CycleCloud akan menghasilkan simpul "manajer" dan "penjadwal", serta satu simpul "jalankan". Node eksekusi dapat ditambahkan ke kluster melalui cyclecloud add_node perintah . Untuk menambahkan 10 simpul eksekusi lainnya:

cyclecloud add_node htcondor -t execute -c 10

HTCondor Autoscaling

CycleCloud mendukung penskalaan otomatis untuk HTCondor, yang berarti bahwa perangkat lunak akan memantau status antrean Anda dan menyalakan dan menonaktifkan simpul sesuai kebutuhan untuk menyelesaikan pekerjaan dalam jumlah waktu/biaya yang optimal. Anda dapat mengaktifkan penskalaan otomatis untuk HTCondor dengan menambahkan Autoscale=true ke definisi kluster Anda:

[cluster htcondor]
Autoscale = True

Penggunaan Tingkat Lanjut HTCondor

Jika Anda mengetahui rata-rata runtime pekerjaan, Anda dapat menentukan average_runtime (dalam menit) dalam pekerjaan Anda. CycleCloud akan menggunakannya untuk memulai jumlah minimum simpul (misalnya, lima pekerjaan 10 menit hanya akan memulai satu simpul, bukan lima ketika average_runtime diatur ke 10).

Nodearray Skala Otomatis

Secara default, HTCondor akan meminta inti dari nodearray yang disebut 'execute'. Jika pekerjaan memerlukan nodearray yang berbeda (misalnya jika pekerjaan tertentu dalam alur kerja memiliki persyaratan memori yang tinggi), Anda dapat menentukan slot_type atribut untuk pekerjaan tersebut. Misalnya, menambahkan +slot_type = "highmemory" akan menyebabkan HTCondor meminta simpul dari nodearray "highmemory" alih-alih "jalankan" (perhatikan bahwa saat ini perlu htcondor.slot_type = "highmemory" diatur di bagian nodearray [[[configuration]]] ). Ini tidak akan memengaruhi bagaimana HTCondor menjadwalkan pekerjaan, jadi Anda mungkin ingin menyertakan slot_type atribut yang dimulai dalam pekerjaan requirements atau rank ekspresi. Misalnya: Requirements = target.slot_type = "highmemory".

Mengirimkan Pekerjaan ke HTCondor

Cara paling umum untuk mengirimkan pekerjaan ke penjadwal HTCondor adalah perintah (dijalankan dari simpul penjadwal):

condor_submit my_job.submit

Contoh file kirim mungkin terlihat seperti ini:

      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

Referensi Konfigurasi HTCondor

Berikut ini adalah opsi konfigurasi khusus HTCondor yang dapat Anda atur untuk menyesuaikan fungsionalitas:

Opsi Konfigurasi HTCondor-Specific Deskripsi
htcondor.agent_enabled Jika true, gunakan condor_agent untuk pengiriman dan polling pekerjaan. Default: false
htcondor.agent_version Versi condor_agent yang akan digunakan. Default: 1.27
htcondor.classad_lifetime Masa pakai default classads (dalam detik). Default: 700
htcondor.condor_owner Akun Linux yang memiliki skrip penurunan skala HTCondor. Default: root
htcondor.condor_group Grup Linux yang memiliki skrip penurunan skala HTCondor. Default: root
htcondor.data_dir Direktori untuk log, direktori penampung, direktori eksekusi, dan file konfigurasi lokal. Default: /mnt/condor_data (Linux), C:\All Services\condor_local (Windows)
htcondor.ignore_hyperthreads (Hanya Windows) Atur jumlah CPU menjadi setengah dari CPU yang terdeteksi sebagai cara untuk "menonaktifkan" hyperthreading. Jika menggunakan skala otomatis, tentukan jumlah inti non-hyperthread dengan Cores pengaturan konfigurasi di bagian [[node]] atau [[nodearray]]. Default: false
htcondor.install_dir Direktori tempat HTCondor diinstal. Default: /opt/condor (Linux), C:\condor (Windows)
htcondor.job_start_count Jumlah pekerjaan yang di-schedd akan dimulai per siklus. 0 tidak terbatas. Default: 20
htcondor.job_start_delay Jumlah detik antara setiap interval mulai pekerjaan. 0 segera. Default: 1
htcondor.max_history_log Ukuran maksimum file riwayat pekerjaan dalam byte. Default: 20971520
htcondor.max_history_rotations Jumlah maksimum file riwayat pekerjaan yang akan disimpan. Default: 20
htcondor.negotiator_cycle_delay Jumlah minimum detik sebelum siklus negosiator baru dapat dimulai. Default: 20
htcondor.negotiator_interval Seberapa sering (dalam detik) condor_negotiator memulai siklus negosiasi. Default: 60
htcondor.negotiator_inform_startd Jika benar, negosiator menginformasikan dimulainya ketika cocok dengan pekerjaan. Default: true
htcondor.remove_stopped_nodes Jika true, node eksekusi yang dihentikan akan dihapus dari tampilan CycleServer alih-alih ditandai sebagai "down".
htcondor.running Jika true, daemon pengumpul dan negosiator HTCondor berjalan pada manajer pusat. Jika tidak, hanya condor_master yang berjalan. Default: true
htcondor.scheduler_dual Jika true, penjadwal menjalankan dua schedd. Default: true
htcondor.single_slot Jika benar, memperlakukan mesin sebagai slot tunggal (terlepas dari jumlah inti yang dimiliki mesin). Default: false
htcondor.slot_type Menentukan slot_type array simpul untuk penskalaan otomatis. Default: jalankan
htcondor.update_interval Interval (dalam detik) untuk mulai menerbitkan pembaruan ke kolektor. Default: 240
htcondor.use_cache_config Jika true, gunakan cache_config untuk memiliki cycleServer polling instans untuk konfigurasi. Default: false
htcondor.version Versi HTCondor yang akan diinstal. Default: 8.2.6

File Konfigurasi yang Dihasilkan Otomatis HTCondor

HTCondor memiliki sejumlah besar pengaturan konfigurasi, termasuk atribut yang ditentukan pengguna. CycleCloud menawarkan kemampuan untuk membuat file konfigurasi kustom menggunakan atribut yang ditentukan dalam kluster:

Atribut Deskripsi
htcondor.custom_config.enabled Jika true, file konfigurasi dihasilkan menggunakan atribut yang ditentukan. Default: false
htcondor.custom_config.file_name Nama file (ditempatkan di htcondor.data_dir/config) untuk ditulis. Default: ZZZ-custom_config.txt
htcondor.custom_config.settings Atribut untuk menulis ke file konfigurasi kustom seperti htcondor.custom_config.settings.max_jobs_running = 5000

Catatan

Atribut konfigurasi HTCondor yang berisi . tidak dapat ditentukan menggunakan metode ini. Jika atribut tersebut diperlukan, atribut tersebut harus ditentukan dalam buku masak atau file yang diinstal dengan cluster-init.

CycleCloud mendukung sekumpulan atribut autostop standar di seluruh penjadwal:

Atribut Deskripsi
cyclecloud.cluster.autoscale.stop_enabled Apakah autostop diaktifkan pada simpul ini? [benar/salah]
cyclecloud.cluster.autoscale.idle_time_after_jobs Jumlah waktu (dalam detik) untuk simpul untuk duduk diam setelah menyelesaikan pekerjaan sebelum diturunkan skalanya.
cyclecloud.cluster.autoscale.idle_time_before_jobs Jumlah waktu (dalam detik) untuk simpul untuk duduk diam sebelum menyelesaikan pekerjaan sebelum diturunkan skalanya.