ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Manejo del paralelismo en Python


Enviado por   •  22 de Enero de 2021  •  Documentos de Investigación  •  520 Palabras (3 Páginas)  •  674 Visitas

Página 1 de 3
  1. Manejo del paralelismo en Python

El manejo del paralelismo en Python no es tan apto, ya que gracias a la librería GIL no deja que se ejecuten varios hilos en paralelo. Sin embargo, se puede hacer énfasis en ejemplos que tienen parelización pero con ayuda de biblioteca threading y multriprocesing.

“Gil es sólo una instancia del intérprete de python se ejecuta en un sólo proceso. Por lo tanto, en general, el uso de subprocesos múltiples solo mejora los cálculos de entrada-salida enlazados y no los de CPU” (Galli, 2015, pág. 25).

En la actualidad la mayoría de lenguajes en programación soportan la programación en paralelo pudiendo así ejecutar diferentes tareas en diferentes procesadores; sin embargo, con Python no es así ya que al utilizar threads no sería capaz de lograr un buen paralelismo.

Según Campos (2011) afirma que:

El mecanismo utilizado en CPython para impedir que múltiples threads modifiquen los objetos de Python a la vez en una aplicación multi hilo”.

El lenguaje está diseñado para que un thread y solo un thread pueda ejecutarse a la vez, evitando que los programas aprovechen al máximo los sistemas multiprocesadores en determinadas situaciones.

  1. Librerías que ayudan el uso del paralelismo en Python

Las principales librerías que permiten la paralelización en Python son: pypar, numba, map.

  1. Pypar

Es reconocido como un modulo de escritorio de Python que permite que se ejecuten en paralelo múltiples procesadores, además se debe tener cuidado con los comandos de recepción para garantizar que este tenga la correcta sintaxis.

“Proporciona un paralelismo eficiente y escalable utilizando la interfaz de paso de mensajes (MPI) para manejar big data y problemas altamente computacionales” (Roberts, 2016).

  1. Numba

Numba puede compilar un gran subconjunto de tareas en Python, teniendo soporte para la paralelización ya que es de código abierto y compatible para este tipo de lenguaje de programación.

“Es un compilador de Python, diseñado especialmente para funciones numéricas y que permite acelerar funciones directamente en Python” (Díaz, 2020).

  1. Función map

Esta función se utiliza como expresiones lamdba ya que permite el ahorro de esfuerzo al crear bucles for, además se puede utilizar sobre más de un iterable con la condición que tengan la misma longitud.

“Permite realizar, de forma sencillas, ciertas operaciones sobre determinados conjuntos de datos, de una forma rápida y sencilla” (Martínez, 2019).

Es decir, esta función trabaja de una forma muy similar a filter(), con la diferencia que en lugar de aplicar una condición a un elemento de una lista o secuencia, aplica una función sobre todos los elementos y como resultado se devuelve un iterable de tipo map.

...

Descargar como (para miembros actualizados) txt (4 Kb) pdf (63 Kb) docx (214 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com