es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Ejecuciones múltiples de mpirun al mismo tiempo?

Tengo una lista de comandos mpirun en serie en un script de bash. Puedo ejecutar el script de bash para que los comandos mpirun individuales se ejecuten en serie (pero de manera paralela entre sí). Ahora bien, cada uno de estos comandos mpirun requiere solo una fracción de los recursos computacionales totales que tiene el sistema. Eso significa que cuando se ejecuta el primer comando mpirun, solo algunos CPUs están trabajando, el resto debería estar inactivo. ¿Hay alguna forma de volver a ‘canalizar’ cada uno de los comandos mpirun del script de bash en diferentes conjuntos de CPUs para que se utilicen de manera eficiente casi todos los recursos computacionales? (Extra: Cada comando mpirun ejecuta un código Python común pero con un conjunto diferente de argumentos).

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar GNU Parallel para distribuir los comandos mpirun entre diferentes conjuntos de CPUs. Esto aprovechará casi todos los recursos informáticos y mejorará la eficiencia del sistema.

    Aquí tienes un ejemplo de línea de comando:

    parallel -j <número_de_cpus> --line-buffer mpirun -np <número_de_procesos> python <ruta_del_script> {1} ::: <lista_de_argumentos>
    

    Explicación:

    • parallel: Comando de GNU parallel para distribuir la carga de trabajo.
    • -j <número_de_cpus>: Especifica el número de CPUs que se utilizarán.
    • --line-buffer: Almacena en búfer la salida para mostrar los resultados más rápido en la terminal.
    • mpirun: El comando para ejecutar programas MPI.
    • -np <número_de_procesos>: El número de procesos que se ejecutarán en paralelo.
    • python <ruta_del_script>: La ruta al script de Python que se ejecuta con cada comando mpirun.
    • {1}: Representa los argumentos pasados al script de Python.
    • ::: <lista_de_argumentos>: La lista de argumentos que se pasan a cada comando mpirun.

    Al usar este comando, puedes distribuir eficientemente la carga de trabajo entre todas las CPUs y mejorar el rendimiento general del sistema.</número_de_procesos></número_de_cpus></número_de_procesos></número_de_cpus>

Comments are closed.