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. |