UNIVERSIDAD PRIVADA DEL NORTE
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS COMPUTACIONALES
INTEGRANTES:
1. ESCATE TATAJE, ALEXANDER JESÚS (N00242930)
2. MORENO VILLALOBOS, GONZALO ALDAHIR (N00113052)
3. OLORTEGUI MEJIA, JEREMY LUIS ADOLFO (N00313354)
4. ROMAN ESCOBAR, EDGAR JEANPAUL (N00327232)
5. VERASTEGUI PILCO, JORDAN GIANCARLOS (N00357398)
DOCENTE: Dr. Ing. PUCUHUAYLA REVATTA, Felix Rogelio
San Juan de Lurigancho, 2025
PERÚ
LABORATORIO 13
Se realizo la instalación de “pip install gevent”
Código: ejemplo1_gevent_funciones()
En Spyder, se crea un archivo nuevo y se ejecuta ese código:
Haz clic en el botón Play (triángulo verde) o presiona F5.
Debería abrirse una ventana externa (cmd) y mostrar:
1. El código en mención es:
RESULTADO:
Se muestran mezclados, porque corren concurrentemente.
El orden puede variar (eso es normal en programación paralela).
El orden puede cambiar (paralelismo).
Los mensajes pueden mezclarse.
2. . Imagen de prueba: “ejemplo2”
RESULTADO:
Sale una sola línea.
Se ejecuta en un hilo (thread), no crea proceso.
3. . Imagen de prueba: “ejemplo3”
RESULTADO:
El orden de los “Procesando número” puede variar.
Los resultados SIEMPRE son [27, 64, 216].
4. . Imagen de prueba: “ejemplo4”
RESULTADO:
Los números cambian en cada PC.
Lo importante es que muestra 2 IDs diferentes.
5. . Imagen de prueba: “ejemplo5”
RESULTADO:
Se abre ventanita negra
Varias líneas de “valor:” mezcladas
Sonidos BEEP por cada proceso
6. . Imagen de prueba: “ejemplo6”
RESULTADO:
Salen 4 objetos (uno por URL).
El orden puede variar.
7. . Imagen de prueba: “ejemplo7”
RESULTADO:
Los procesos trabajan en paralelo
1 URL fallará (eso es normal, la guía lo indica)
Al final aparecerán archivos .html en tu carpeta de trabajo
8. . Imagen de prueba: “ejemplo8”
RESULTADOS:
Explicación:
CONCLUSIÓN FINAL:
El desarrollo del Laboratorio 13 permitió comprender de manera práctica cómo funciona
la programación paralela y concurrente en Python mediante el uso de librerías como
gevent, threading y multiprocessing. Se evidenció que la ejecución secuencial limita el
rendimiento cuando se manejan múltiples tareas, mientras que los procesos concurrentes y
paralelos permiten aprovechar de forma más eficiente los recursos del sistema,
especialmente los procesadores multinúcleo.
El uso de gevent permitió observar cómo varias funciones pueden alternar su ejecución
mediante corrutinas, logrando concurrencia sin necesidad de crear procesos completos. Por
otro lado, multiprocessing demostró la creación de procesos independientes, cada uno con
su propio espacio de memoria, lo cual evita las restricciones del Global Interpreter Lock
(GIL) y permite un paralelismo real. Herramientas como Pool, ThreadPool y Queue
facilitaron la distribución de tareas, la coordinación entre procesos y el manejo eficiente de
múltiples agentes trabajando simultáneamente.
En conjunto, los ejercicios realizados muestran que la programación paralela es
fundamental para aplicaciones que requieren procesamiento intensivo, descargas
simultáneas, análisis en tiempo real o ejecución de múltiples tareas autónomas. Este
laboratorio no solo permitió reforzar conceptos teóricos, sino que también brindó
habilidades prácticas para diseñar sistemas más rápidos, escalables y eficientes.