1 - Multiprocessing.ipynb#

Librería Multiprocessing de Python#

La librería Multiprocessing de Python es una biblioteca estándar que permite la creación de procesos en paralelo en una computadora con múltiples núcleos o CPUs. Proporciona una interfaz de programación para crear y administrar procesos de manera fácil y eficiente, lo que permite acelerar la ejecución de programas que realizan tareas intensivas en cómputo.

1 - ¿Cómo ejecutar funciones en paralelo utilizando la librería multiprocessing de Python?#

  • La librería multiprocessing de Python permite ejecutar funciones en paralelo utilizando procesos.

  • Para ello, se utiliza la función Process() de la librería multiprocessing.

  • La función Process() recibe como argumentos el nombre de la función que se desea ejecutar y los argumentos de la función.

  • La función Process() devuelve un objeto de tipo Process que se puede almacenar en una lista.

  • Para ejecutar la función, se utiliza el método start() del objeto Process.

  • Para esperar a que termine la ejecución de la función, se utiliza el método join() del objeto Process.

  • En el ejemplo, se crea una función mi_fun que imprime el número del proceso en el que se ejecuta.

  • Se crea una lista Process_jobs que almacena los objetos Process.

  • Se crea un bucle for que crea 5 procesos, los almacena en la lista Process_jobs, y los ejecuta.

  • Se crea un bucle for que espera a que terminen los procesos almacenados en la lista Process_jobs.

import multiprocessing

def mi_fun(i):
    print ('Función llamada en el proceso: %s \n' %i)
    return

if __name__ == '__main__':
    Process_jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=mi_fun, args=(i,))
        Process_jobs.append(p)
        p.start()
    for p in Process_jobs:
        p.join()
Función llamada en el proceso: 0 
Función llamada en el proceso: 2 
Función llamada en el proceso: 3 
Función llamada en el proceso: 1 




Función llamada en el proceso: 4