Configure SGE para llenar cada nodo por completo en lugar de distribuir trabajos

Configure SGE para llenar cada nodo por completo en lugar de distribuir trabajos

Publicado originalmente en Stack Overflow por error... Consulte PD en la parte inferior para obtener la respuesta de esa publicación.

He buscado esto por un tiempo, pero no puedo encontrar la respuesta. El problema que tengo es este: supongamos que tengo un SGE configurado con dos máquinas de 12 CPU. Tengo dos trabajos de 1 CPU para enviar al grid, pero otros usuarios a menudo querrán enviar trabajos de 12 CPU. Estos son trabajos de memoria compartida que no se pueden dividir en varias máquinas. Lo que sucede es que a veces envío mis dos trabajos y cada uno de ellos irá a una máquina separada, dejando a cada uno con 11/12 CPU libres. Esto evita que otros ejecuten trabajos de 12 CPU mientras yo estoy trabajando.

¿Hay alguna forma de evitar esto? Sé que puedes usar las reglas de relleno para controlar un solo qsub (por lo que el relleno puede hacer que un qsub de 12 CPU permanezca en una máquina, se divida entre varias, etc.), pero ¿existe una configuración comparable para forzar el funcionamiento de qsub separados? a la misma maquina? También sé que puedo solicitar explícitamente una máquina en particular (creo que es -h nombre de máquina o algo similar), pero preferiría tener una configuración más sólida que esta.

Se agradece cualquier ayuda. ¡Gracias!

PD: En la publicación de Stack Overflow, llegó una respuesta antes de que se cerrara el hilo sugiriendo usar el entorno paralelo asignación_rule=$fill_up. A menos que haya hecho algo mal al intentarlo, no creo que esto satisfaga el problema. Por lo que he visto en las pruebas, si configuro fill_up esto significa que las CPU solicitadas DENTRO de un solo qsub se colocan en la misma máquina grid si es posible, pero las CPU de DIFERENTES qsubs seguirán yendo a la máquina de baja carga (o lo que sea). la cuadrícula elige), y podría ir a una máquina vacía. Probar esto implicó realizar qsubting en algunos trabajos de CPU individuales, esperar ~5 minutos y luego enviar algunos más. Aunque a veces el primer grupo terminaría en la misma máquina (supongo que porque la carga de la máquina no es en tiempo real, ¿entonces todos fueron enviados a la misma máquina de carga baja?), pero el segundo grupo no iría consistentemente a la misma máquina que el primer grupo.

Respuesta1

El valor predeterminado del programadorcargar_forumlala configuración esnp_load_avgque asigna nuevos trabajos a los nodos con el promedio de carga más bajo. Para que llene los nodos, puede configurarfórmula_cargaatragamonedas. Para ver la configuración actual del programador:

qconf -ssconf

Para modificar la configuración:

qconf -msconf

información relacionada