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

MANEJO DEL PARALELISMO Y CONCURRENCIA EN PYTHON


Enviado por   •  18 de Enero de 2023  •  Tesinas  •  2.578 Palabras (11 Páginas)  •  78 Visitas

Página 1 de 11

[pic 1]

UNIVERSIDAD AGRARIA DEL ECUADOR

FACULTAD DE CIENCIAS AGRARIAS

CARRERA DE INGENERÍA EN COMPUTACIÓN E INFORMÁTICA

MATERIA:

SISTEMAS OPERATIVOS DISTRIBUIDOS

TEMA:

MANEJO DEL PARALELISMO Y CONCURRENCIA EN PYTHON

PRINCIPALES LIBRERÍAS EN EL MANEJO DEL PARALELISMO EN PYTHON

INCONVENIENTES DEL USO DEL PARALELISMO EN PYTHON

APLICACIÓN DE LA LIBRERÍA MPI

ESTUDIANTES:

ALTAMIRANO MORENO ANTHONY

DE LA PAZ GARCIA ROBERTO

NARVAEZ FERNANDEZ JUAN

CURSO:

7TO SEMESTRE C

DOCENTE GUÍA:

ING. JORGE HIDALGO

PERIODO: 2022 – 2023

GUAYAQUIL-ECUADOR


Tabla de Contenido

Tabla de Contenido        2

1.        Python y el paralelismo        3

1.1        Manejo del paralelismo en Python        3

1.2        Concurrencia en Python        3

1.3        Librerías en el manejo del paralelismo        4

1.3.1        Librerías predeterminadas de Python        4

1.3.2        Librerías externas de Python        4

1.4        Inconvenientes del uso del paralelismo en Python        5

1.4.1        Condición de carrera        5

2.        Librería MPI        6

2.1        Aplicación de la librería MPI        6

2.2        Explicación del ejercicio con MPI        7

3.        Bibliografía        11


  1. Python y el paralelismo

  1. Manejo del paralelismo en Python

Antes que nada, se debe dar a conocer lo expuesto por códigofacilito (2019), “en la actualidad la mayoría de los lenguajes de programación soportan la programación concurrente y la programación en paralelo, pudiendo así ejecutar diferentes tareas en diferentes procesadores, sin embargo, con Python esto no es así”. Por lo cual se debe tener en mente que Python utiliza otro tipo de procedimientos para realizar el paralelismo en su programación.

Platzi (2022) explica en uno de sus cursos que “en Python, cuando nos referimos a concurrencia, estaremos hablando de Threads y Processes cuando nos refiramos al paralelismo”, de esta forma se puede entender que el paralelismo en Python está relacionado directamente a la concurrencia.

Si se observa la documentación en la página web oficial de Python se obtiene lo existen dos librerías en particular que tienen que ver con el paralelismo, las cuales son multiprocessing y threading, la primera estaba basada en procesos y la segundo en hilos. Estas dos librerías se explicarán más adelante.

  1. Concurrencia en Python

Un breve concepto acerca de concurrencia es que “en el campo de la programación, cuando hablamos de sistemas concurrentes, nos referimos a diversos procesos que ocurren, prácticamente, al mismo tiempo” (edX, 2022).

En una de las secciones de los cursos de la empresa Platzi (2022) se explica que:

Lo primero a tener en cuenta es que debemos importar el módulo threading para poder usar los threads, luego generaremos una instancia de la clase Thread, la cual va a recibir un target como parámetro, este target es la función que queremos que ejecute en esta instancia del Thread que estamos crenado.

Con lo anteriormente expuesto se puede determinar que para el uso de la concurrencia en Python es necesario del uso de la librería threading con la cual se podrán realizar las operaciones correspondientes. Cabe aclarar que esta librería permite que se puedan generar hilos diferentes al hilo principal.

  1. Librerías en el manejo del paralelismo

  1. Librerías predeterminadas de Python

  1. Multiprocessing

multiprocessing es un paquete que permite crear procesos (spawning) utilizando una API similar al módulo threading. El paquete multiprocessing ofrece concurrencia tanto local como remota, esquivando el Global Interpreter Lock mediante el uso de subprocesos en lugar de hilos (threads). Debido a esto, el módulo multiprocessing le permite al programador aprovechar al máximo múltiples procesadores en una máquina determinada. (Python, 2023)

  1. Threading

Python (2023) explica que “este módulo construye interfaces de subprocesamiento de nivel superior sobre el módulo _thread de nivel inferior”.

  1. Librerías externas de Python

Existen librerías que tienen funcionalidades más específicas para determinados casos pero que son desarrolladas por la comunidad detrás de Python, las librerías más usadas son:

  • Nuitka
  • Numba
  • Pythran
  • Pyston
  • Cython
  • pp
  • IPython
  • mpl4py
  • PaPy
  • pypar

Estas son solo unas cuantas librerías externas a Python o creadas por la comunidad, pero hay muchas más con funcionalidades extras o para problemas específicos, pero todas tienen el manejo del paralelismo como seña identificativa.

  1. Inconvenientes del uso del paralelismo en Python

  1. Condición de carrera

Bahit Eugenia (2022) explica que:

En la programación paralela, cuando dos procesos trabajan de forma simultánea compartiendo de un mismo conjunto de datos, si intentan escribir sobre estos, el resultado dependerá de cuál de los dos procesos sea más rápido y logre escribir primero. Esta situación se conoce como condición de carrera. (pág. 147)

Este problema es uno de los más complicados de tratar al momento de trabajar con paralelismo en Python, es por eso que la mejor solución es prevenirlas a través de una buena sincronización.

...

Descargar como (para miembros actualizados)  txt (16.7 Kb)   pdf (156.1 Kb)   docx (224.2 Kb)  
Leer 10 páginas más »
Disponible sólo en Clubensayos.com