Ejemplo de multiprocesamiento de Python

Ejemplo de multiprocesamiento de Python

Python es un lenguaje de programación que es beneficioso en el desarrollo de sitios web y aplicaciones. Además, involucrado en la visualización y análisis de datos. Es relativamente un lenguaje fácil y a menudo lo usan incluso los no programadores. Este artículo se refiere al uso de multiprocesamiento en Python.

Multiprocesamiento

El multiprocesamiento se ocupa del potencial de un sistema que admite más de un procesador a la vez. Todas las aplicaciones en el multiprocesamiento se demolen en pequeños patrones, y cada uno de esos patrones es autodependiente en el trabajo. En este tipo de proceso, se utilizan dos o más procesos. Solo consideremos que una computadora se está ejecutando con el uso de un solo procesador. Si asignamos varios procesadores a la vez, se tirará de cada cambio de tarea a otra tarea después de un breve tiempo para mantener todos los procesos en funcionamiento. En otras palabras, si hay más tareas que hacer, más difíciles, será para mantenerlas en el camino de la finalización. Mientras que asignar cada tarea es un gran desafío también. En esta condición, necesitamos surgir el concepto de multiprocesamiento. Un sistema de multiprocesamiento puede permitir.

  • Multiprocesador: Una computadora que usa más de un procesador central.
  • Procesador de múltiples núcleos: Un solo componente que usa dos o más unidades de procesamiento.

Multiprocesamiento en pitón

Usando el concepto de multiprocesamiento, la unidad de procesamiento central puede ejecutar fácilmente varias tareas en un solo momento. Python usa el módulo de multiprocesamiento para introducir códigos paralelos. Para implementar el multiprocesamiento, primero debe saber sobre la cantidad de núcleos en su sistema. Hemos usado una sola pieza de código aquí para saber sobre las CPU que funcionan a la vez.

Para Python, puede usar cualquier otra herramienta para lograr los códigos. Hemos utilizado la herramienta Spyder para este propósito que seguramente ejecutará los códigos de lenguaje de Python.

Importar multiprocesamiento

Imprimir ("Número de CPU:", multiprocesamiento.cpu_count ())

En primer lugar, necesitamos importar el multiprocesamiento del paquete "PG" que habilite el funcionamiento. Para cada PC, la salida puede variar. Para mí, el número de núcleos es 4.

Ejemplo 1:

Usando un módulo de multiprocesamiento, calcularemos las funciones de cubo y cuadrado.

Entendamos el código mencionado anteriormente. Creamos un proceso, y luego creamos un objeto para procesar la clase.

P1 = multiprocesamiento.Process (print_cube (5,)))
P2 = multiprocesamiento.Proceso (print (print_square (2,)))

P1 y P2 son los objetos de los procesos. Estos procesos contienen la llamada funcional que tiene una función de impresión que llamará directamente a la función con argumentos como parámetro. Print_cube e print_square.

Utilizamos métodos de inicio para iniciar el proceso.

P1.comenzar()
P2.comenzar()

Una de las funciones utilizadas se describe como.

Def print_square (num):
print ("cuadrado: ".formato (num * num)))

La función cuadrada calculará el cuadrado multiplicando el número dado utilizado en la llamada de función. La función toma el número en la variable "num".

Cuando ejecutamos el código, la salida mostrará los valores resultantes de ambas funciones.

Ejemplo 2:

Usando estructuras de datos, debe estar familiarizado con el uso de pilas y colas en el lenguaje de programación. Desde el módulo de multiprocesamiento, importamos una clase de cola aquí que sea FIFO (primero en primera salida) estructura de datos. Habrá dos procesos que funcionan alternativamente. Usamos dos funciones aquí. La función PUT () se usa aquí para insertar datos en la cola. Mientras que usamos Get () para recuperar los elementos de la cola. A continuación se muestra el código que ilustra el funcionamiento del multiprocesamiento en la cola. El primer paso es introducir colas.

De la cola de importación de multiprocesamiento

Después de importar el módulo, introduzca los nombres de los automóviles a la variable de matriz. Usaremos un bucle for para insertar los valores dentro de la cola, y el put () lo hará así. Se utiliza una variable "CNT" para contar el número de automóviles utilizados. Inicializar el objeto de cola a través de la declaración.

Queue = Queue ()

Entonces se usa un bucle para agregar valores; Esto usará una palabra clave de "cola" para usar la función put () para argumentar como el nombre del automóvil que se insertará. La función "CNT" se incrementará después de cada inserción.

Para el coche en los automóviles:

Cola.poner (coche)
CNT += 1

Del mismo modo, para PUT (), se usa un bucle de tiempo hasta que toda la cola no esté vacía.

Mientras no no hace cola.vacío():

Imprimir ('Elemento no:', CNT ", cola.conseguir())
CNT+= 1

La salida muestra ambas funciones que funcionan de forma independiente. Una vez que una función completa su trabajo, el otro proceso se usa.

Ejemplo 3:

Este ejemplo contiene dos procesos. En cada proceso, se obtiene "PID" a través de la función get (). Hemos usado dos módulos. Uno es el multiprocesamiento, y el otro es el sistema operativo del sistema operativo.

Cada proceso se asigna una identificación diferente.

Proceso def)::

Imprimir ("ID del proceso en ejecución de Worker1: ".formato (sistema operativo.getpid ()))

El mensaje se concatena con la llamada de función para recibir la identificación del proceso. En el programa principal, la ID del proceso principal se recupera utilizando el mismo enfoque a través de Get (). Entonces los procesos se crean a través del multiprocesamiento. Se accede a cada proceso a través de sus respectivos objetos. i.mi., Para el proceso 1, el objeto es P1.

P1 = multiprocesamiento.Proceso (Target = Process1)

El objetivo es la función que se ejecutará por el proceso. A medida que se crean los procesos, entonces necesitan comenzar. Se muestra el estado de cada proceso; Para esto, necesitamos monitorear la finalización del proceso. Esto necesitará algo de tiempo para esperar. Usaremos una función que esperará hasta la ejecución completa del proceso.

P1.unirse()

Cuando esta función de unión obtiene la señal, imprime la declaración de que la ejecución se completa. Una bandera booleana determinará que el proceso está vivo o no; Si es así, entonces es cierto, de lo contrario es falso.

Print ("El proceso P1 está vivo: ".formato (P1.is_alive ()))

Ahora ejecute el programa y tome la salida. Puede ver que primero, se muestra la identificación principal y luego la ID de proceso de cada proceso. Una vez finalizado la ejecución, el estado se muestra para ambos procesos, que es "falso".

Ejemplo 4:

En este ejemplo, verá el funcionamiento del multiprocesamiento e importación de tiempo de importación, grupo, cpu_count. El grupo se utiliza para ejecutar procesos con múltiples entradas y distribuir estos datos de entrada entre los procesos. Una función cuadrada calculará el cuadrado del valor de entrada. Al usar el módulo de tiempo del paquete, usaremos la función de sueño.

Tiempo.dormir (3)

Esta función tiene una expansión de tiempo de 3 segundos. Significa que el valor de esta función se mostrará después de este tiempo específico. En el programa principal, iniciamos el temporizador, y luego se asignan los valores ficticios de cada 4 núcleos.

Con piscina () como piscina:

Res = grupo.mapa (cuadrado, valores)
Imprimir (Res)

La función del grupo está dando valores y llamando a la función al mismo tiempo. Entonces tenemos que detener el temporizador. Esta función del temporizador contará los segundos utilizados para esta función, conocido como tiempo transcurrido; Se obtiene restando el valor de inicio del tiempo desde el valor final.

Ahora ejecute el programa. Se muestra la primera línea, y luego toma 3 segundos. Después de eso, se muestra otro resultado.

Conclusión

"Ejemplo de multiprocesamiento de Python" es una breve introducción al fenómeno del multiprocesamiento. Cada ejemplo explicado aquí importa diferentes paquetes del módulo de multiprocesamiento. Este manejo de procesos paralelos entre sí se logra a través del número de CPU. Más el número de CPU mayores será la posibilidad de un buen multiprocesamiento.