Domanda

Sto cercando di eseguire i lavori QSUB su un cluster SGE (Sun Grid Engine) che supporta un massimo di 688 posti di lavoro.Mi piacerebbe sapere se esiste un modo per scoprire il numero totale di lavori che sono attualmente in esecuzione sul cluster in modo da poter inviare lavori in base al carico di cluster corrente.

Ho intenzione di fare qualcosa come: Dormire per 1 minuto e controllare di nuovo se il numero di lavori nel cluster è <688 e quindi inviare i lavori.

E solo per chiarire la mia domanda riguarda la conoscenza del numero totale di lavori presentati sul cluster non solo i lavori che ho presentato attualmente.

Grazie in anticipo.

È stato utile?

Soluzione

È possibile utilizzare qstat per elencare i lavori di tutti gli utenti; Questo con awk e wc possono essere utilizzati per scoprire il numero totale di lavori sul cluster:

qstat -u "*" | awk '{if ($5 == "r" || $5 == "qw") print $0;}' | wc -l
.

Il comando precedente tiene conto anche dei lavori in considerazione e in attesa di essere programmati su un nodo di calcolo.

Tuttavia, i systadmins del cluster potrebbero non consentire agli utenti di controllare i lavori che non appartengono a loro. Puoi verificare se riesci a vedere i lavori dell'utente in esecuzione:

qstat -u "*"
.

Se sai per un fatto che un altro utente sta eseguendo un lavoro e tuttavia non è possibile vederlo durante l'esecuzione del comando sopra, è molto probabile che i SYS Admins disabilitata quell'opzione.

Accodimento: dalla mia comprensione, sei solo un normale utente cluster - perché ti preoccupi di inviare lavori in questo modo. Perché non inviare semplicemente tutti i lavori che desideri e se il cluster non può pianificare i tuoi lavori, li inserirà solo in uno stato qw e programmarli quando STIG sente è il momento più appropriato.

Altri suggerimenti

A seconda di come è configurato il cluster, utilizzando l'array di lavoro (l'opzione -t per qsub) avrebbe girato questo limite.

Ho limiti simili impostati per il numero massimo di lavori che un singolo utente può inviare.Questo limite si conclude a singoli istanze di qsub e non singolo sottomissione dell'array di lavoro potenzialmente molte attività (quel limite è impostato tramite un'altra variabile di configurazione, max_aj_tasks).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top