Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcję HTCondor można włączyć w klastrze CycleCloud, modyfikując run_list sekcję konfiguracji definicji klastra. Klaster HTCondor składa się z trzech podstawowych składników. Pierwszy to centralny menedżer, który zapewnia demony planowania i zarządzania. Drugi składnik jest co najmniej jednym harmonogramem, z którego zadania są przesyłane do systemu. Ostatnim składnikiem jest jeden lub więcej węzłów wykonywania, które są hostami, które wykonują obliczenia. Prosty szablon HTCondor może wyglądać następująco:
[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]
Podczas importowania i uruchamiania klastra z tą definicją w usłudze CycleCloud uzyskujesz menedżera i węzeł harmonogramu oraz jeden węzeł wykonywania . Węzły wykonywania można dodać do klastra cyclecloud add_node przy użyciu polecenia . Aby dodać 10 kolejnych węzłów uruchamiania, użyj następującego polecenia:
cyclecloud add_node htcondor -t execute -c 10
HTCondor Autoskalowanie
Usługa CycleCloud obsługuje skalowanie automatyczne dla HTCondor. Oprogramowanie monitoruje stan kolejki i włącza i wyłącza węzły zgodnie z potrzebami, aby ukończyć pracę w optymalnym czasie i kosztach. Aby włączyć skalowanie automatyczne dla funkcji HTCondor, dodaj Autoscale=true do definicji klastra:
[cluster htcondor]
Autoscale = True
HTCondor Zaawansowane Użytkowanie
Jeśli znasz średni czas działania zadań, zdefiniuj average_runtime (w minutach) w swoim zadaniu. Usługa CycleCloud używa tej wartości do uruchomienia minimalnej liczby węzłów. Jeśli na przykład zostaną przesłane pięć 10-minutowych zadań i average_runtime zostanie ustawionych na 10, usługa CycleCloud uruchamia tylko jeden węzeł zamiast pięciu.
Automatyczne skalowanie tablicy węzłów
Domyślnie HTCondor żąda rdzeni z tablicy węzłów o nazwie execute. Jeśli zadanie wymaga innego węzła (na przykład jeśli niektóre zadania w przepływie pracy mają wysokie wymaganie dotyczące pamięci), określ slot_type atrybut zadania. Na przykład dodanie +slot_type = "highmemory" powoduje, że HTCondor zażąda węzła z highmemory węzłaarray zamiast execute (to ustawienie wymaga htcondor.slot_type = "highmemory" obecnie ustawienia należy ustawić w sekcji nodearray [[[configuration]]] ). To ustawienie nie wpływa na sposób, w jaki HTCondor planuje zadania, więc możesz uwzględnić atrybut startd slot_type w wyrażeniach requirements lub rank zadania. Na przykład: Requirements = target.slot_type = "highmemory".
Przesyłanie zadań do HTCondor
Najbardziej ogólnym sposobem przesyłania zadań do harmonogramu HTCondor jest polecenie (uruchamiane z węzła harmonogramu):
condor_submit my_job.submit
Przykładowy plik do przesłania może wyglądać tak:
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
Dokumentacja konfiguracji HTCondor
Następujące opcje konfiguracji specyficzne dla funkcji HTCondor dostosowują funkcjonalność:
| HTCondor-Specific Opcje konfiguracji | Opis |
|---|---|
| htcondor.agent_enabled | Jeśli prawda, użyj condor_agent do przesyłania zadań i sondowania. Domyślnie: fałsz |
| htcondor.agent_version | Wersja condor_agent do użycia. Domyślnie: 1.27 |
| htcondor.classad_lifetime | Domyślny czas życia ogłoszeń klasowych (w sekundach). Domyślnie: 700 |
| htcondor.condor_właściciel | Konto Linux, które jest właścicielem skryptów skalowania w dół HTCondor. Domyślny: root |
| htcondor.condor_group | Grupa Linux, która jest właścicielem skryptów do redukcji HTCondor. Domyślny: root |
| htcondor.data_dir | Katalog dla logów, katalogów spool, katalogów do wykonywania i lokalnego pliku konfiguracyjnego. Domyślnie: /mnt/condor_data (Linux), C:\All Services\condor_local (Windows) |
| htcondor.ignore_hyperthreads | (Tylko system Windows) Ustaw liczbę procesorów na połowę wykrytych, aby wyłączyć hyperthreading. Jeśli używasz autoskalowania, określ liczbę rdzeni bez hiperwątków za pomocą ustawienia konfiguracyjnego Cores w sekcji [[node]] lub [[nodearray]]. Domyślnie: fałsz |
| htcondor.install_dir | Katalog, do którego zainstalowany jest HTCondor. Domyślnie: /opt/condor (Linux), C:\condor (Windows) |
| htcondor.liczba_uruchomienia_pracy | Liczba zadań, które schedd uruchamia na jeden cykl. 0 jest nieograniczone. Ustawienie domyślne: 20 |
| htcondor.job_start_delay | Liczba sekund pomiędzy każdym przedziałem uruchamiania zadania. 0 jest natychmiastowe. Ustawienie domyślne: 1 |
| htcondor.max_historia_dziennika | Maksymalny rozmiar pliku historii zadania w bajtach. Domyślna wartość: 20971520 |
| htcondor.max_historia_rotacji | Maksymalna liczba plików historii zadań do zachowania. Ustawienie domyślne: 20 |
| htcondor.negotiator_cycle_delay | Minimalna liczba sekund przed rozpoczęciem nowego cyklu negocjatora. Ustawienie domyślne: 20 |
| htcondor.negotiator_interval | Jak często (w sekundach) condor_negotiator rozpoczyna cykl negocjacji. Ustawienie domyślne: 60 |
| htcondor.negotiator_inform_startd | Jeśli to prawda, negocjator informuje o rozpoczęciu, gdy pasuje do zadania. Domyślnie: prawda. |
| htcondor.remove_stopped_nodes (usuń zatrzymane węzły) | Jeśli to prawda, zatrzymane węzły wykonawcze są usuwane z widoku CycleServer zamiast być oznaczane jako „down”. |
| htcondor.running | Jeśli to prawda, demony kolekcjonera i negocjatora HTCondor działają na centralnym menedżerze. W przeciwnym razie działa tylko condor_master. Domyślnie: prawda. |
| htcondor.scheduler_dual | Jeśli to prawda, harmonogramy uruchamiają dwa scheddy. Domyślnie: prawda. |
| htcondor.single_slot | Jeśli to prawda, traktuje maszynę jako pojedyncze gniazdo (bez względu na liczbę rdzeni, które posiada maszyna). Domyślnie: fałsz |
| htcondor.slot_type | Definiuje typ gniazda tablicy węzłów do automatycznego skalowania. Domyślnie: wykonaj |
| htcondor.update_interval | Interwał (w sekundach), w którym startd ma opublikować aktualizację w module zbierającym. Domyślnie: 240 |
| htcondor.use_cache_config | Jeśli wartość to true, użyj cache_config, aby instancja sondowała serwer CycleServer w celu skonfigurowania. Domyślnie: fałsz |
| htcondor.version | Wersja HTCondor do zainstalowania. Domyślnie: 8.2.6 |
Automatycznie wygenerowany plik konfiguracyjny HTCondor
HTCondor ma dużą liczbę ustawień konfiguracji, w tym atrybutów zdefiniowanych przez użytkownika. Usługa CycleCloud oferuje możliwość utworzenia niestandardowego pliku konfiguracyjnego przy użyciu atrybutów zdefiniowanych w klastrze:
| Atrybut | Opis |
|---|---|
| htcondor.custom_config. włączone | Jeśli ma wartość true, generowany jest plik konfiguracyjny przy użyciu określonych atrybutów. Domyślnie: fałsz |
| htcondor.custom_config.nazwa_pliku | Nazwa pliku (umieszczonego w htcondor.data_dir/config) do zapisania. Domyślnie: ZZZ-custom_config.txt |
| htcondor.custom_config. Ustawienia | Atrybuty do zapisania w niestandardowym pliku konfiguracyjnym, takie jak htcondor.custom_config.settings.max_jobs_running = 5000 |
Uwaga
Nie można określić atrybutów konfiguracji HTCondor zawierających metodę . przy użyciu tej metody. Jeśli potrzebujesz takich atrybutów, określ je w książce kucharskiej lub pliku zainstalowanym za pomocą cluster-init polecenia.
Usługa CycleCloud obsługuje standardowy zestaw atrybutów automatycznego zatrzymania w różnych harmonogramach.
| Atrybut | Opis |
|---|---|
| cyclecloud.klaster.autoskalowanie.zatrzymanie_wlaczone | Włącza automatyczne zatrzymanie w tym węźle. [prawda/fałsz] |
| cyclecloud.cluster.autoscale.czas_bezczynności_po_zadaniach | Ilość czasu (w sekundach), przez jaki węzeł pozostaje bezczynny po zakończeniu zadań, zanim nastąpi jego automatyczne zatrzymanie. |
| cyclecloud.klaster.autoskalowanie.czas_bezczynności_przed_zadaniami | Czas (w sekundach), przez który węzeł pozostaje bezczynny przed ukończeniem zadań, zanim zostanie automatycznie zatrzymany. |