¿Cómo demorar el script bash hasta que haya suficientes núcleos inactivos para ejecutarlo?

Soy un estudiante que quiere realizar un benchmark de un gasoducto NGS, monitoreando el performance de acuerdo con la cantidad de núcleos que tiene asignados y el tamaño del file de input. Por esta razón, escribí un script bash para llamarlo varias veces con diferentes parameters nr_of_cores y files de input, anotando el time de finalización y otras statistics. Todo lleva alnetworkingedor de un día en recorrer los diferentes escenarios. (Gastar, por supuesto, la mayor parte del time ejecutando el file más grande con un único núcleo, por lo que no es como si estuviese bloqueando todo el server por la duración)

Tengo acceso a un server compartido de 64 núcleos para ejecutarlo. El server compartido, sin embargo, varía enormemente en número de núcleos inactivos dependiendo de la hora del día y las personas que intentan realizar proyectos. (La parte superior de nr_of_cores que voy a probar es 36, con un file pequeño).

Mi pregunta: ¿hay alguna manera fácil de hacer que mi script bash espere hasta que sepa que los núcleos [X] están disponibles antes de ejecutar un command? Me imagino de esa manera, obtendría datos más confiables, no ralentizaría la gente con tareas más urgentes para ejecutar, y podría comenzar el guión cada vez, en lugar de esperar hasta que vea que es un día lento. .

¡Gracias!

Solutions Collecting From Web of "¿Cómo demorar el script bash hasta que haya suficientes núcleos inactivos para ejecutarlo?"

Asumiendo que puede permitirse decirle al sistema que lo ejecute en algún momento posterior, y que el administrador del sistema es sensible y lo tiene instalado, puede usar lo siguiente para ejecutarlo cuando los niveles de carga sean lo suficientemente bajos (cero por defecto, pero el sysadmin puede establecer cualquier valor arbitrario para el umbral):

 batch << EOF <command> EOF 

Sin embargo, aparte de eso, la única manera que conozco de hacer esto es sondear el promedio de carga por ti mismo y disparar el command cuando está por debajo de un umbral. Si decides ir por esa ruta, lo que quieres ver es el primer campo en /proc/loadavg , que da el promedio de 1 minuto.