Comment retarder le script bash jusqu'à ce qu'il y ait suffisamment de coeurs inactifs pour l'exécuter?

Je suis un étudiant qui veut comparer un pipeline NGS, en surveillant les performances en fonction du nombre de cœurs qu'il a alloué et de la taille du file d'input. Pour cette raison, j'ai écrit un script bash pour l'appeler plusieurs fois avec différents parameters nr_of_cores et des files d'input, en notant le time d'achèvement et d'autres statistics. L'set prend environ une journée pour parcourir les différents scénarios. (Dépenses, bien sûr, la plupart du time sur l'exécution du plus gros file avec un seul kernel, donc ce n'est pas comme je bloque tout le server pour la durée)

J'ai access à un server 64-core partagé pour l'exécuter. Le server partagé, cependant, varie énormément en nombre de coeurs inactifs en fonction de l'heure de la journée et des personnes qui tentent de réaliser des projets. (Le top nr_of_cores que je vais tester est 36, avec un petit file.)

Ma question: Y a t-il un moyen facile de faire attendre mon script bash jusqu'à ce qu'il sache que les cœurs [X] sont disponibles avant d'exécuter une command? J'imagine que je pourrais get des données plus fiables, que je ne ralentirais pas les gens avec des tâches plus urgentes et que je pourrais commencer le script à chaque fois, au lieu d'attendre jusqu'à ce que je vois avec htop que c'est un jour lent .

Merci!

En supposant que vous pouvez vous permettre de dire au système de l'exécuter plus tard, et que le sysadmin est sensible et installé, vous pouvez utiliser ce qui suit pour l'exécuter lorsque les niveaux de charge sont suffisamment bas (zéro par défaut, mais le sysadmin peut définir n'importe quelle valeur arbitraire pour le seuil):

 batch << EOF <command> EOF 

A part cela, la seule façon que je sache, c'est d'interroger la moyenne de charge et de triggersr la command quand elle est en dessous d'un certain seuil. Si vous décidez d'aller dans cette voie, ce que vous voulez regarder est le premier champ dans /proc/loadavg , ce qui donne la moyenne d'une minute.