Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile abilitare HTCondor in un cluster CycleCloud modificando la run_list
sezione nella configurazione della definizione del cluster. Ci sono tre componenti di base di un cluster HTCondor. Il primo è il gestore centrale, che fornisce i daemon di pianificazione e gestione. Il secondo componente è costituito da uno o più scheduler, da cui i lavori vengono inviati al sistema. Il componente finale è costituito da uno o più nodi di esecuzione, ovvero gli host che eseguono il calcolo. Un semplice modello HTCondor potrebbe assomigliare a:
[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]
Quando si importa e si avvia un cluster con questa definizione in CycleCloud, si ottiene un nodo di gestione , uno di pianificazione e un nodo di esecuzione . È possibile aggiungere nodi di esecuzione al cluster utilizzando il cyclecloud add_node
comando. Per aggiungere altri 10 nodi di esecuzione , utilizzare il seguente comando:
cyclecloud add_node htcondor -t execute -c 10
Ridimensionamento automatico HTCondor
CycleCloud supporta la scalabilità automatica per HTCondor. Il software monitora lo stato della coda e attiva e disattiva i nodi in base alle esigenze per completare il lavoro in un lasso di tempo e costi ottimali. Per abilitare la scalabilità automatica per HTCondor, aggiungere Autoscale=true
alla definizione del cluster:
[cluster htcondor]
Autoscale = True
Utilizzo avanzato di HTCondor
Se si conosce il tempo di esecuzione medio dei processi, definirlo average_runtime
(in minuti) nel processo. CycleCloud utilizza tale valore per avviare il numero minimo di nodi. Ad esempio, se vengono inviati cinque processi di 10 minuti ed average_runtime
è impostato su 10, CycleCloud avvia un solo nodo anziché cinque.
Nodearray di scalabilità automatica
Per impostazione predefinita, HTCondor richiede i core dal nodearray chiamato execute
. Se un processo richiede un nodearray diverso (ad esempio, se alcuni processi all'interno di un flusso di lavoro hanno un requisito di memoria elevato), specificare un slot_type
attributo per il processo. Ad esempio, l'aggiunta +slot_type = "highmemory"
fa sì che HTCondor richieda un nodo dall'array highmemory
di execute
nodi anziché (questa impostazione richiede htcondor.slot_type = "highmemory"
attualmente di essere impostata nella sezione dell'array di [[[configuration]]]
nodi). Questa impostazione non influisce sul modo in cui HTCondor pianifica i processi, quindi potrebbe essere necessario includere l'attributo slot_type
requirements
startd nelle espressioni del processo o rank
in quelle del processo. Ad esempio: Requirements = target.slot_type = "highmemory"
.
Invio di lavori a HTCondor
Il modo più generico per inviare lavori a un'utilità di pianificazione HTCondor è il comando (eseguito da un nodo dell'utilità di pianificazione):
condor_submit my_job.submit
Un file di invio di esempio potrebbe essere simile al seguente:
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
Informazioni di riferimento sulla configurazione di HTCondor
Le seguenti opzioni di configurazione specifiche di HTCondor personalizzano la funzionalità:
HTCondor-Specific opzioni di configurazione | Descrizione |
---|---|
htcondor.agent_enabled | Se true, utilizzare il condor_agent per l'invio dei processi e il polling. Impostazione predefinita: false |
htcondor.agent_version | La versione del condor_agent da utilizzare. Impostazione predefinita: 1.27 |
htcondor.classad_lifetime | La durata predefinita degli annunci (in secondi). Impostazione predefinita: 700 |
htcondor.condor_owner | Account Linux proprietario degli script di riduzione HTCondor. Impostazione predefinita: root |
htcondor.condor_group | Gruppo Linux proprietario degli script di riduzione HTCondor. Impostazione predefinita: root |
htcondor.data_dir | La directory per i log, le directory di spooling, le directory di esecuzione e il file di configurazione locale. Impostazione predefinita: /mnt/condor_data (Linux), C:\Tutti i servizi\condor_local (Windows) |
htcondor.ignore_hyperthreads | (Solo Windows) Impostare il numero di CPU su metà delle CPU rilevate per "disabilitare" l'hyperthreading. Se si usa la scalabilità automatica, specificare il numero di core non hyperthread con l'impostazione Cores di configurazione nella sezione [[node]] o [[nodearray]]. Impostazione predefinita: false |
htcondor.install_dir | La directory in cui è installato HTCondor. Impostazione predefinita: /opt/condor (Linux), C:\condor (Windows) |
htcondor.job_start_count | Il numero di processi avviati da una schedulazione per ciclo. 0 è illimitato. Valore predefinito: 20 |
htcondor.job_start_delay | Il numero di secondi tra l'intervallo di avvio di ogni processo. 0 è immediato. Predefinito: 1 |
htcondor.max_registro_cronologia | Dimensione massima del file di cronologia dei processi in byte. Impostazione predefinita: 20971520 |
htcondor.max_rotazioni_cronologia | Il numero massimo di file di cronologia dei processi da conservare. Valore predefinito: 20 |
htcondor.negotiator_cycle_delay | Il numero minimo di secondi prima dell'avvio di un nuovo ciclo di negoziazione. Valore predefinito: 20 |
htcondor.negotiator_interval | La frequenza (in secondi) con cui il condor_negotiator avvia un ciclo di negoziazione. Valore predefinito: 60 |
htcondor.negotiator_inform_startd | Se true, il negoziatore informa l'iniziato quando corrisponde a un lavoro. Valore predefinito: true |
htcondor.remove_stopped_nodes | Se true, i nodi di esecuzione arrestati vengono rimossi dalla vista CycleServer invece di essere contrassegnati come "inattivi". |
htcondor.running | Se true, i demoni del raccoglitore e del negoziatore HTCondor vengono eseguiti sul gestore centrale. In caso contrario, viene eseguito solo il condor_master. Valore predefinito: true |
htcondor.scheduler_dual | Se true, gli scheduler eseguono due schedd. Valore predefinito: true |
htcondor.single_slot | Se true, considera la macchina come un singolo slot (indipendentemente dal numero di core che la macchina possiede). Impostazione predefinita: false |
htcondor.slot_type | Definisce il slot_type di una matrice di nodi per la scalabilità automatica. Impostazione predefinita: execute |
htcondor.update_interval | Intervallo (in secondi) per la pubblicazione di un aggiornamento nell'agente di raccolta. Impostazione predefinita: 240 |
htcondor.use_cache_config | Se true, utilizzare cache_config per fare in modo che l'istanza esegua il polling di CycleServer per la configurazione. Impostazione predefinita: false |
htcondor.version | La versione di HTCondor da installare. Impostazione predefinita: 8.2.6 |
File di configurazione generato automaticamente da HTCondor
HTCondor dispone di un gran numero di impostazioni di configurazione, inclusi gli attributi definiti dall'utente. CycleCloud offre la possibilità di creare un file di configurazione personalizzato utilizzando gli attributi definiti nel cluster:
Attributo | Descrizione |
---|---|
htcondor.custom_config.enabled | Se true, viene generato un file di configurazione utilizzando gli attributi specificati. Impostazione predefinita: false |
htcondor.custom_config.nome_file | Il nome del file (inserito in htcondor.data_dir /config) da scrivere. Impostazione predefinita: ZZZ-custom_config.txt |
htcondor.custom_config.impostazioni | Gli attributi da scrivere nel file di configurazione personalizzato, ad esempio htcondor.custom_config.settings.max_jobs_running = 5000 |
Annotazioni
Non è possibile specificare gli attributi di configurazione HTCondor contenenti un utilizzando questo .
metodo. Se tali attributi sono necessari, specificarli in un libro di ricette o in un file installato con cluster-init
.
CycleCloud supporta un set standard di attributi di autostop tra utilità di pianificazione:
Attributo | Descrizione |
---|---|
cyclecloud.cluster.autoscale.stop_enabled | L'arresto automatico è abilitato su questo nodo? [vero/falso] |
cyclecloud.cluster.autoscale.idle_time_after_jobs | Il tempo (in secondi) in cui un nodo rimane inattivo dopo aver completato i processi prima di essere ridotto. |
cyclecloud.cluster.autoscale.tempo_inattivo_prima_delle_attività | Quantità di tempo (in secondi) per un nodo inattivo prima di completare i processi prima che venga ridotta. |