Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können HTCondor auf einem CycleCloud-Cluster aktivieren, indem Sie die run_list
im Konfigurationsabschnitt Ihrer Clusterdefinition ändern. Es gibt drei grundlegende Komponenten eines HTCondor-Clusters. Der erste ist der zentrale Manager, der die Planungs- und Verwaltungs-Daemons bereitstellt. Die zweite Komponente besteht aus einem oder mehreren Schedulern, von denen aus Jobs an das System übergeben werden. Die letzte Komponente besteht aus einem oder mehreren Ausführungsknoten, bei denen es sich um die Hosts handelt, die die Berechnung durchführen. Eine einfache HTCondor-Vorlage könnte wie folgt aussehen:
[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]
Wenn Sie einen Cluster mit dieser Definition in CycleCloud importieren und starten, erhalten Sie einen Manager und einen Scheduler-Knoten sowie einen Ausführungsknoten . Sie können dem Cluster Ausführungsknoten hinzufügen, indem Sie den cyclecloud add_node
Befehl verwenden. Um 10 weitere Ausführungsknoten hinzuzufügen, verwenden Sie den folgenden Befehl:
cyclecloud add_node htcondor -t execute -c 10
HTCondor Automatische Skalierung
CycleCloud unterstützt die automatische Skalierung für HTCondor. Die Software überwacht den Status Ihrer Warteschlange und schaltet Knoten nach Bedarf ein und aus, um die Arbeit in optimalem Zeit- und Kostenaufwand abzuschließen. Um die automatische Skalierung für HTCondor zu aktivieren, fügen Sie Ihrer Clusterdefinition Folgendes hinzu Autoscale=true
:
[cluster htcondor]
Autoscale = True
HTCondor Erweiterte Nutzung
Wenn Sie die durchschnittliche Laufzeit von Aufträgen kennen, definieren average_runtime
Sie sie (in Minuten) in Ihrem Auftrag. CycleCloud verwendet diesen Wert, um die minimale Anzahl von Knoten zu starten. Wenn beispielsweise fünf 10-Minuten-Aufträge übermittelt werden und average_runtime
auf 10 festgelegt ist, startet CycleCloud nur einen Knoten anstelle von fünf.
Nodearray automatisch skalieren
Standardmäßig fordert HTCondor Kerne vom nodearray mit dem Namen execute
. Wenn für einen Auftrag ein anderes nodearray erforderlich ist (z. B. wenn bestimmte Aufträge innerhalb eines Workflows einen hohen Speicherbedarf aufweisen), geben Sie ein slot_type
Attribut für den Auftrag an. Zum Beispiel bewirkt das Hinzufügen +slot_type = "highmemory"
, dass HTCondor einen Knoten vom highmemory
nodearray execute
anfordert (diese Einstellung muss htcondor.slot_type = "highmemory"
derzeit im Abschnitt des nodearrays [[[configuration]]]
festgelegt werden). Diese Einstellung wirkt sich nicht darauf aus, wie HTCondor die Aufträge plant, daher sollten Sie das slot_type
startd-Attribut in die Ausdrücke des requirements
Auftrags einschließen rank
. Beispiel: Requirements = target.slot_type = "highmemory"
.
Übermitteln von Aufträgen an HTCondor
Die allgemeinste Methode, Aufträge an einen HTCondor-Scheduler zu senden, ist der Befehl (ausgeführt von einem Scheduler-Knoten):
condor_submit my_job.submit
Eine Beispiel-Übermittlungsdatei könnte wie folgt aussehen:
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 Konfigurationsreferenz
Die folgenden HTCondor-spezifischen Konfigurationsoptionen passen die Funktionalität an:
HTCondor-Specific Konfigurationsoptionen | BESCHREIBUNG |
---|---|
htcondor.agent_enabled | Wenn true, verwenden Sie die condor_agent für die Auftragsübermittlung und den Abruf. Standardwert: FALSCH |
htcondor.agent_version | Die Version der zu verwendenden condor_agent. Voreinstellung: 1.27 |
htcondor.classad_lifetime | Die standardmäßige Lebensdauer von Kleinanzeigen (in Sekunden). Standardwert: 700 |
htcondor.condor_owner | Das Linux-Konto, das die HTCondor-Skripts zum Skalieren besitzt. Voreinstellung: root |
htcondor.condor_group | Die Linux-Gruppe, die die HTCondor-Skripts für die Skalierung besitzt. Voreinstellung: root |
htcondor.data_dir | Das Verzeichnis für Protokolle, Aufbereitungsverzeichnisse, Ausführungsverzeichnisse und die lokale Konfigurationsdatei. Standard: /mnt/condor_data (Linux), C:\Alle Dienste\condor_local (Windows) |
htcondor.ignore_hyperthreads | (Nur Windows) Legen Sie die Anzahl der CPUs auf die Hälfte der erkannten CPUs fest, um das Hyperthreading zu "deaktivieren". Wenn Sie die automatische Skalierung verwenden, geben Sie die Anzahl der Nicht-Hyperthread-Kerne mit der Cores Konfigurationseinstellung im Abschnitt [[node]] oder [[nodearray]] an. Standardwert: FALSCH |
htcondor.install_dir | Das Verzeichnis, in dem HTCondor installiert wird. Standardwert: /opt/condor (Linux), C:\condor (Windows) |
htcondor.job_start_count | Die Anzahl der Jobs, die ein Zeitplan pro Zyklus startet. 0 ist unbegrenzt. Standard: 20 |
htcondor.job_start_delay | Die Anzahl der Sekunden zwischen den einzelnen Auftragsstartintervallen. 0 ist unmittelbar. Standardwert: 1 |
htcondor.max_verlauf_protokoll | Die maximale Größe der Auftragsverlaufsdatei in Bytes. Standardeinstellung: 20971520 |
htcondor.max_Geschichte_Rotationen | Die maximale Anzahl von Auftragsverlaufsdateien, die aufbewahrt werden sollen. Standard: 20 |
htcondor.negotiator_cycle_delay | Die Mindestanzahl von Sekunden, bevor ein neuer Verhandlungszyklus gestartet werden kann. Standard: 20 |
htcondor.negotiator_interval | Wie oft (in Sekunden) das condor_negotiator einen Verhandlungszyklus startet. Standardwert: 60 |
htcondor.negotiator_inform_startd | Wenn true, informiert der Verhandlungsführer den startd, wenn er mit einem Job übereinstimmt. Voreinstellung: true |
htcondor.remove_stopped_nodes | Wenn true, werden gestoppte Ausführungsknoten aus der CycleServer-Ansicht entfernt, anstatt als "down" markiert zu werden. |
htcondor.running | Wenn true, werden HTCondor Collector- und Negotiator-Daemons auf dem zentralen Manager ausgeführt. Andernfalls wird nur der condor_master ausgeführt. Voreinstellung: true |
htcondor.scheduler_dual | Wenn true, führen die Planer zwei schedds aus. Voreinstellung: true |
htcondor.single_slot | Wenn true, wird der Computer als einzelner Steckplatz behandelt (unabhängig von der Anzahl der Kerne, die der Computer besitzt). Standardwert: FALSCH |
htcondor.slot_type | Definiert die slot_type eines Knotenarrays für die automatische Skalierung. Standardeinstellung: ausführen |
htcondor.update_interval | Das Intervall (in Sekunden), das startd benötigt, um eine Aktualisierung für den Collector zu veröffentlichen. Voreinstellung: 240 |
htcondor.use_cache_config | Wenn true, verwenden Sie cache_config, damit die Instanz CycleServer für die Konfiguration abfragt. Standardwert: FALSCH |
htcondor.version | Die Version von HTCondor, die installiert werden soll. Voreinstellung: 8.2.6 |
HTCondor Automatisch generierte Konfigurationsdatei
HTCondor verfügt über eine große Anzahl von Konfigurationseinstellungen, einschließlich benutzerdefinierter Attribute. CycleCloud bietet die Möglichkeit, eine benutzerdefinierte Konfigurationsdatei mit Attributen zu erstellen, die im Cluster definiert sind:
Merkmal | BESCHREIBUNG |
---|---|
htcondor.custom_config.aktiviert | Wenn true, wird eine Konfigurationsdatei mit den angegebenen Attributen generiert. Standardwert: FALSCH |
htcondor.custom_config.Dateiname | Der Name der Datei (in htcondor.data_dir /config abgelegt), die geschrieben werden soll. Voreinstellung: ZZZ-custom_config.txt |
htcondor.custom_config.Einstellungen | Die Attribute, die in die benutzerdefinierte Konfigurationsdatei geschrieben werden sollen, z. B. htcondor.custom_config.settings.max_jobs_running = 5000 |
Hinweis
Mit dieser Methode können Sie keine HTCondor-Konfigurationsattribute angeben, die a .
enthalten. Wenn Sie solche Attribute benötigen, geben Sie sie in einem Rezeptbuch oder einer Datei an, die mit installiert wird cluster-init
.
CycleCloud unterstützt einen Standardsatz von Autostop-Attributen für verschiedene Scheduler:
Merkmal | BESCHREIBUNG |
---|---|
cyclecloud.cluster.autoscale.stop_enabled | Ist "Autostop" auf diesem Knoten aktiviert? [wahr/falsch] |
cyclecloud.cluster.autoscale.Leerlaufzeit_nach_Aufträgen | Die Zeit (in Sekunden), die ein Knoten nach Abschluss von Aufträgen im Leerlauf bleibt, bevor er herunterskaliert wird. |
cyclecloud.cluster.autoscale.Wartezeit_vor_Arbeiten | Die Zeitspanne (in Sekunden), die ein Knoten im Leerlauf verbleiben soll, nachdem er Aufträge abgeschlossen hat und bevor er verkleinert wird. |