Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez activer HTCondor sur un cluster CycleCloud en modifiant la run_list
section configuration de votre définition de cluster. Il existe trois composants de base d’un cluster HTCondor. Le premier est le gestionnaire central, qui fournit les démons de planification et de gestion. Le deuxième composant est un ou plusieurs planificateurs, à partir desquels les travaux sont envoyés dans le système. Le composant final est un ou plusieurs nœuds d’exécution, qui sont les hôtes qui effectuent le calcul. Un modèle HTCondor simple peut ressembler à ceci :
[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]
Lorsque vous importez et démarrez un cluster avec cette définition dans CycleCloud, vous obtenez un gestionnaire et un nœud planificateur et un nœud d’exécution . Vous pouvez ajouter des nœuds d’exécution au cluster à l’aide de la cyclecloud add_node
commande. Pour ajouter 10 nœuds d’exécution supplémentaires, utilisez la commande suivante :
cyclecloud add_node htcondor -t execute -c 10
Mise à l’échelle automatique de HTCondor
CycleCloud prend en charge la mise à l’échelle automatique pour HTCondor. Le logiciel surveille l’état de votre file d’attente et active et désactive les nœuds selon les besoins pour terminer le travail dans un délai et un coût optimaux. Pour activer la mise à l’échelle automatique pour HTCondor, ajoutez Autoscale=true
à votre définition de cluster :
[cluster htcondor]
Autoscale = True
Utilisation avancée de HTCondor
Si vous connaissez le runtime moyen des travaux, définissez average_runtime
(en minutes) dans votre travail. CycleCloud utilise cette valeur pour démarrer le nombre minimal de nœuds. Par exemple, si cinq travaux de 10 minutes sont soumis et que average_runtime
est défini sur 10, CycleCloud démarre un seul nœud au lieu de cinq.
Mise à l’échelle automatique de Nodearray
Par défaut, HTCondor demande des cœurs à partir du nodearray appelé execute
. Si un travail nécessite un nœud différent (par exemple, si certains travaux au sein d’un flux de travail ont une exigence de mémoire élevée), spécifiez un slot_type
attribut pour le travail. Par exemple, ajouter +slot_type = "highmemory"
fait en sorte que HTCondor demande un nœud du tableau de nœuds highmemory
au lieu de execute
(ce paramètre nécessite actuellement que htcondor.slot_type = "highmemory"
soit défini dans la section du tableau de nœuds [[[configuration]]]
). Ce paramètre n’affecte pas la façon dont HTCondor planifie les tâches. Vous pouvez donc inclure l’attribut slot_type
startd dans les expressions requirements
ou rank
des tâches. Par exemple : Requirements = target.slot_type = "highmemory"
.
Soumission de tâches à HTCondor
La façon la plus générique d’envoyer des travaux à un planificateur HTCondor est la commande (exécutée à partir d’un nœud planificateur) :
condor_submit my_job.submit
Un exemple de fichier d’envoi peut ressembler à ceci :
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
Référence de configuration HTCondor
Les options de configuration spécifiques à HTCondor suivantes personnalisent les fonctionnalités :
options de configuration HTCondor-Specific | Descriptif |
---|---|
htcondor.agent_enabled | Si la valeur est true, utilisez le condor_agent pour l’envoi et le sondage des travaux. Valeur par défaut : false |
htcondor.agent_version | Version du condor_agent à utiliser. Valeur par défaut : 1.27 |
htcondor.classad_lifetime | Durée de vie par défaut des classads (en secondes). Valeur par défaut : 700 |
htcondor.condor_owner | Le compte Linux propriétaire des scripts de réduction HTCondor. Valeur par défaut : racine |
htcondor.condor_group | Le groupe Linux propriétaire des scripts de réduction HTCondor. Valeur par défaut : racine |
htcondor.data_dir | Répertoire des journaux, répertoires de pool, répertoires d’exécution et fichier config local. Valeur par défaut : /mnt/condor_data (Linux), C :\All Services\condor_local (Windows) |
htcondor.ignore_hyperthreads | (Windows uniquement) Définissez le nombre de processeurs sur la moitié des processeurs détectés pour « désactiver » l’hyperthreading. Si vous utilisez la mise à l’échelle automatique, spécifiez le nombre de cœurs non hyperthread avec le Cores paramètre de configuration dans la section [[node]] ou [[nodearray]]. Valeur par défaut : false |
htcondor.install_dir | Répertoire sur lequel HTCondor est installé. Par défaut : /opt/condor (Linux), C :\condor (Windows) |
htcondor.job_start_count | Nombre de travaux qu’un planificateur démarre par cycle. 0 est illimité. Valeur par défaut : 20 |
htcondor.job_start_delay | Nombre de secondes entre chaque intervalle de début du travail. 0 est immédiat. Valeur par défaut : 1. |
htcondor.max_journal_historique | Taille maximale du fichier d’historique des travaux en octets. Par défaut : 20971520 |
htcondor.max_histoire_rotations | Nombre maximal de fichiers d’historique des travaux à conserver. Valeur par défaut : 20 |
htcondor.negotiator_cycle_delay | Le nombre minimal de secondes avant qu’un nouveau cycle de négociateur puisse commencer. Valeur par défaut : 20 |
htcondor.negotiator_interval | À quelle fréquence (en secondes) le condor_negotiator démarre-t-il un cycle de négociation ? Valeur par défaut : 60 |
htcondor.negotiator_inform_startd | Si vrai, le négociateur informe le startd quand il est associé à un travail. Valeur par défaut : true |
htcondor.remove_stopped_nodes | Si la valeur est true, les nœuds d’exécution arrêtés sont supprimés de la vue CycleServer au lieu d’être marqués comme « down ». |
htcondor.course à pied | S’il est vrai, le collecteur HTCondor et les démons négociateurs s’exécutent sur le responsable central. Sinon, seul le condor_master s’exécute. Valeur par défaut : true |
htcondor.scheduler_dual | Si la valeur est true, les programmateurs exécutent deux planificateurs. Valeur par défaut : true |
htcondor.single_slot | Si la valeur est vraie, traite la machine comme une unité unique (quel que soit le nombre de cœurs qu’elle possède). Valeur par défaut : false |
htcondor.slot_type | Définit la slot_type d’un tableau de nœuds pour la mise à l’échelle automatique. Valeur par défaut : exécuter |
htcondor.update_interval | Intervalle (en secondes) pour que le startd publie une mise à jour vers le collecteur. Valeur par défaut : 240 |
htcondor.use_cache_config | Si la valeur est true, utilisez cache_config pour que l’instance interroge CycleServer pour la configuration. Valeur par défaut : false |
htcondor.version | Version de HTCondor à installer. Valeur par défaut : 8.2.6 |
Fichier de configuration automatiquement généré de HTCondor
HTCondor a un grand nombre de paramètres de configuration, y compris les attributs définis par l’utilisateur. CycleCloud offre la possibilité de créer un fichier de configuration personnalisé à l’aide d’attributs définis dans le cluster :
Caractéristique | Descriptif |
---|---|
htcondor.custom_config.activé | Si la valeur est true, un fichier de configuration est généré à l’aide des attributs spécifiés. Valeur par défaut : false |
htcondor.custom_config.nom_fichier | Nom du fichier (placé dans htcondor.data_dir /config) à écrire. Par défaut : ZZZ-custom_config.txt |
htcondor.custom_config.paramètres | Attributs à écrire dans le fichier de configuration personnalisé, par exemple htcondor.custom_config.settings.max_jobs_running = 5000 |
Remarque
Vous ne pouvez pas spécifier d’attributs de configuration HTCondor contenant un .
en utilisant cette méthode. Si vous avez besoin de ces attributs, spécifiez-les dans un livre de recettes ou un fichier installé avec cluster-init
.
CycleCloud prend en charge un ensemble standard d'attributs d'arrêt automatique pour les planificateurs
Caractéristique | Descriptif |
---|---|
cyclecloud.cluster.autoscale.stop_enabled | La fonction d'arrêt automatique est-elle activée sur ce nœud ? [vrai/faux] |
cyclecloud.cluster.autoscale.idle_time_after_jobs | Durée (en secondes) pendant laquelle un nœud reste inactif après avoir terminé les tâches avant que sa capacité ne soit réduite. |
cyclecloud.cluster.autoscale.temps_d'attente_avant_les_jobs | Durée (en secondes) pendant laquelle un nœud reste inactif avant de terminer les tâches, avant d'être réduit en capacité. |