Actividad Final - Sist - Dist

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

UNIVERSIDAD AUTÓNOMA DE

NUEVO LEÓN
FACULTAD DE INGENIERÍA MECÁNICA
Y ELÉCTRICA

Sistemas Distribuidos y Paralelos


PIA
Equipo: 5
Grupo: 003 L-M-V M5
Docente: M.A. Evanivaldo Rivelino Medina Ruiz

Integrantes Matricula

Valeria Flores Simental 1969439

Ana Laura Durán Ramírez 1969975


Grecia Damiani Hernández González 1998444

Andrea Ximena Rivera Aceves 2010184

Veronica Abigail Moreno Sanchez 1996810

Elizabeth Sarai Balleza Villanueva 2082399

Fecha: 04 de junio del 2024


INTRODUCCIÓN
Los sistemas distribuidos y paralelos son áreas de la computación que se enfocan en la
organización y el manejo de tareas complejas en múltiples computadoras. Si bien
comparten algunos conceptos fundamentales, se diferencian en su enfoque principal:
Sistemas Distribuidos:
• Una colección de computadoras independientes que se conectan y trabajan juntas
para lograr un objetivo común.
• Características: Autonomía, descentralización, heterogeneidad, concurrencia,
escalabilidad y transparencia.
• Aplicaciones: Internet, redes sociales, comercio electrónico, computación en la
nube.
Sistemas Paralelos:
• Se enfocan en aprovechar múltiples procesadores o computadoras para ejecutar
tareas de manera simultánea.
• Características: Concurrencia, paralelismo, escalabilidad y eficiencia.

• Aplicaciones: Simulación científica, análisis de datos, gráficos por computadora,


inteligencia artificial.

OBJETIVO Y RESULTADO QUE SE DESEA OBTENER DE UN SISTEMA


DISTRIBUIDO Y PARALELO
Sistemas Distribuidos
Objetivos:
• Transparencia: Que los recursos parezcan locales.
• Comunicación eficiente: Minimizar la latencia.
• Consistencia: Mantener datos coherentes en todos los nodos.

Resultados Deseados:
• Alta disponibilidad.
• Rendimiento escalable.
• Consistencia de datos.
Sistemas Paralelos
Objetivos:
• Aceleración del procesamiento: Reducir tiempos de ejecución.
• Balanceo de carga: Distribuir el trabajo uniformemente.

• Minimización de overhead: Reducir la sobrecarga de coordinación.


Resultados Deseados:
• Mayor velocidad de procesamiento.
• Uso óptimo de recursos.
• Escalabilidad con más procesadores.
MARCO TEORICO

Sistemas Distribuidos
Definición y Finalidad
Un sistema distribuido es un conjunto de programas informáticos que utilizan recursos
computacionales en varios nodos de cálculo distintos para lograr un objetivo compartido
común. La finalidad principal de los sistemas distribuidos es eliminar los cuellos de botella
o los puntos de error centrales de un sistema, asegurando así una mayor eficiencia y
robustez.
Características Principales
1. Recursos Compartidos: Los sistemas distribuidos pueden compartir hardware,
software o datos, optimizando el uso de recursos.
2. Procesamiento Simultáneo: Varias máquinas pueden procesar la misma función a
la vez, aumentando la capacidad de procesamiento.
3. Escalabilidad: La capacidad computacional y de procesamiento puede escalarse
añadiendo máquinas adicionales según sea necesario.
4. Detección de Errores: Los errores se pueden detectar más fácilmente debido a la
redundancia de componentes.
5. Transparencia: Un nodo puede acceder a otros nodos del sistema y comunicarse con
ellos de manera transparente.
Importancia en Data & Analytics
En el ámbito de data & analytics, los sistemas distribuidos se han convertido en un
estándar debido a su capacidad para escalar y almacenar volúmenes casi infinitos de
datos de manera costo-efectiva. Tecnologías como Databricks, Spark, Hadoop, Cloudera
y Presto utilizan procesamiento distribuido para manejar grandes cantidades de datos.
Evolución de los Sistemas Distribuidos
A lo largo del tiempo, las tecnologías utilizadas en data & analytics han evolucionado de
herramientas de propósito general a herramientas de propósito específico, conformando
stacks tecnológicos. Esta evolución ha sido impulsada por la necesidad de simplificar la
complejidad del procesamiento de grandes volúmenes de datos y satisfacer las
crecientes demandas de información detallada por parte de los usuarios de negocio.
Cómo Funcionan los Sistemas Distribuidos
Capacidades de Almacenamiento y Procesamiento
Un sistema distribuido es un conjunto de componentes que permiten almacenar,
procesar y administrar recursos de manera eficiente. Estos sistemas tienen una
capacidad de almacenamiento y procesamiento virtualmente infinita, ya que se pueden
agregar nuevos servidores continuamente.
Escalabilidad
- Escalabilidad Vertical: Se aumenta la capacidad de un servidor añadiendo más
memoria, procesadores o sustituyéndolo por uno más potente.
- Escalabilidad Horizontal: Se crean nuevos clústers, añadiendo servidores pequeños
que trabajan coordinadamente como una única máquina.
Ejemplo Práctico
Imagina que una empresa tiene un solo servidor grande. Si esta falla, la operación se
detiene hasta que se repare. Para evitar esto, la empresa podría tener dos servidores,
uno principal y otro de respaldo. Sin embargo, tener un servidor grande en desuso sería
un desperdicio de capital. En lugar de eso, con un sistema distribuido, se pueden usar
múltiples servidores pequeños, de modo que, si uno falla, la pérdida de capacidad es
marginal y los costos son menores.
Beneficios
- Tolerancia a Fallos: Alta resistencia a fallos debido a la redundancia de componentes.
- Escalabilidad: Capacidad de añadir o quitar equipos según las necesidades.
- Reducción de Costos: Uso de equipos más pequeños y menos costosos en lugar de
grandes servidores.
Almacenamiento Distribuido
Los sistemas distribuidos dividen los archivos en bloques y los distribuyen en diferentes
nodos. Esto asegura que, si un nodo falla, la información no se pierde, mejorando la
eficiencia y la rapidez en los tiempos de lectura.
Computación Paralela
Definición y Funcionamiento
La computación paralela es una combinación de componentes de hardware y software
que utilizan recursos masivos de cómputo de manera conjunta para resolver una tarea
computacional. Este método es esencial en áreas que requieren el procesamiento de
grandes volúmenes de datos.
Requisitos para Computación Paralela
1. División del Problema: El problema computacional debe dividirse en componentes
que puedan ser resueltos simultáneamente.
2. Ejecución Independiente: Las instrucciones deben poder ejecutarse en cualquier
momento.
3. Eficiencia con Más Recursos: El problema debe resolverse más rápidamente a
medida que se añaden más recursos informáticos.
Beneficios de la Computación Paralela
o Modelos Realistas: Representa mejor el mundo real, donde los eventos no
ocurren de manera secuencial.
o Ahorro de Tiempo: Mejora la eficiencia del procesamiento de datos, reduciendo
el tiempo necesario para ejecutar tareas.
o Ahorro de Dinero: Al optimizar el uso de recursos, se reducen los costos
operativos, especialmente en sistemas que manejan grandes volúmenes de
transacciones.
o Resolución de Problemas Complejos: Permite manejar tareas complejas y
grandes volúmenes de datos, esencial para aplicaciones de IA y big data.
o Uso Eficiente de Recursos: La capacidad de procesar grandes cantidades de
datos en tiempo real es crucial en un mundo donde se generan 2.5 quintillones de
bytes de información diariamente.

En resumen, tanto los sistemas distribuidos como la computación paralela son


fundamentales para el procesamiento eficiente y escalable de grandes volúmenes de
datos. Estas tecnologías proporcionan soluciones avanzadas para los desafíos actuales
y futuros en el ámbito de data & analytics, permitiendo a las empresas y organizaciones
manejar grandes volúmenes de datos de manera más efectiva y costo-efectiva
METODOLOGIA
Metodología de los sistemas distribuidos y paralelos
La metodología para desarrollar sistemas distribuidos y paralelos implica una serie de
pasos y principios que aseguran la eficiencia, escalabilidad y fiabilidad del sistema. A
continuación, se muestra una descripción de los aspectos clave de esta metodología:

Análisis de Requisitos:
• Identificación de Necesidades: Determinar los objetivos del sistema y los
requisitos funcionales y no funcionales.
• Especificación del Problema: Definir claramente el problema a resolver, las
restricciones del sistema y el entorno en el que se va a operar.
Diseño del Sistema:
• Arquitectura del Sistema: Decidir la estructura global del sistema, incluyendo la
selección de modelos de comunicación (cliente-servidor, peer-to-peer, etc.) y la
topología de red.
• Descomposición en Componentes: Dividir el sistema en módulos o
componentes más pequeños que puedan desarrollarse y probarse de manera
independiente.
Modelado y Simulación:
• Modelado: Crear modelos abstractos para representar los componentes del
sistema y sus interacciones.
• Simulación: Ejecutar simulaciones para evaluar el comportamiento del sistema
bajo diferentes escenarios y cargas de trabajo.
Desarrollo e Implementación:
• Programación Paralela y Distribuida: Utilizar técnicas y lenguajes adecuados
para programar aplicaciones paralelas (como MPI, OpenMP) y distribuidas (como
RPC, gRPC).
• Gestión de Concurrencia: Implementar mecanismos para manejar la
concurrencia y evitar condiciones de carrera, como semáforos, monitores y
bloqueos.
Pruebas y Validación:
• Pruebas Unitarias y de Integración: Probar cada componente individualmente
y luego integrarlos para asegurar que funcionen correctamente en conjunto.
• Pruebas de Rendimiento y Escalabilidad: Evaluar el rendimiento del sistema
bajo diferentes condiciones de carga y verificar su capacidad para escalar.
Despliegue y Mantenimiento:
• Despliegue: Implementar el sistema en el entorno de producción, asegurando
que esté configurado correctamente y que todos los componentes funcionen como
se espera.
• Monitorización y Mantenimiento: Monitorear el sistema en tiempo real para
detectar y resolver problemas rápidamente. Realizar mantenimiento preventivo y
actualizaciones periódicas.
Documentación y Formación:
• Documentación Técnica: Crear documentación detallada sobre el diseño,
implementación y uso del sistema.
• Formación: Capacitar a los usuarios y administradores del sistema para que
puedan utilizarlo y mantenerlo de manera efectiva.
Evaluación Continua:
• Retroalimentación y Mejora Continua: Recoger retroalimentación de los
usuarios y realizar mejoras continuas al sistema para adaptarlo a nuevas
necesidades y tecnologías emergentes.
Principios Clave
• Modularidad: Diseñar el sistema de manera modular para facilitar el desarrollo,
prueba y mantenimiento.
• Escalabilidad: Asegurar que el sistema pueda manejar un aumento en la carga
de trabajo sin degradar significativamente su rendimiento.
• Tolerancia a Fallos: Implementar mecanismos de redundancia y recuperación
para mantener la disponibilidad del sistema en caso de fallos.
• Consistencia y Coherencia: Mantener la integridad de los datos y la coherencia
del sistema, especialmente en entornos distribuidos.
Esta metodología proporciona un marco estructurado para el desarrollo de sistemas
distribuidos y paralelos, ayudando a los ingenieros a crear sistemas eficientes,
escalables y fiables.

RESULTADOS OBTENIDOS
Los sistemas distribuidos y paralelos consisten en hacer que varias computadoras
trabajen juntas para resolver un problema en común, brindando recursos a gran escala
para afrontar desafíos complejos.

Algunos de estos desafíos son cifrar volúmenes grandes de datos; resolver ecuaciones
físicas y químicas con muchas variables y renderizar animaciones de video de alta
calidad en tres dimensiones.
Los resultados que se pueden obtener gracias a los sistemas distribuidos y paralelos
son:

• Escalabilidad: Los sistemas distribuidos pueden crecer con su carga de trabajo


y sus necesidades. Puede agregar nuevos nodos, es decir, más dispositivos de
computación, a la red de computación distribuida cuando sean necesarios.
• Disponibilidad: El sistema de computación distribuida no se colapsará si una de
las computadoras se cae. El diseño muestra tolerancia a los fallos porque puede
seguir en funcionamiento incluso si las computadoras individuales fallan.
• Consistencia: Las computadoras de un sistema distribuido comparten
información y duplican datos entre ellos, pero el sistema administra
automáticamente la coherencia de datos en todas las computadoras. De este
modo, se obtiene el beneficio de la tolerancia a los fallos sin comprometer la
coherencia de datos.
• Transparencia: Los sistemas de computación distribuida proporcionan una
separación lógica entre el usuario y los dispositivos físicos. Puede interactuar con
el sistema como si se tratara de una única computadora sin preocuparse de la
instalación y configuración de las máquinas individuales. Puede tener diferentes
hardware, middleware, software y sistemas operativos que trabajan juntos para
que su sistema funcione sin problemas.
• Eficiencia: Los sistemas distribuidos ofrecen un rendimiento más rápido con un
uso óptimo de los recursos del hardware subyacente. Como resultado, puede
administrar cualquier carga de trabajo sin preocuparse por el fallo del sistema
debido a los picos de volumen o a la infrausación del costoso hardware.

ANALISIS DE RESULTADOS
Los sistemas distribuidos y paralelos representan una estrategia fundamental en el
mundo de la computación moderna, permitiendo que varias computadoras trabajen en
conjunto para resolver problemas complejos. A continuación, se presenta un análisis de
los resultados obtenidos, considerando los aspectos clave mencionados:
1. Escalabilidad
• Descripción: La escalabilidad se refiere a la capacidad de un sistema para crecer
y manejar una cantidad creciente de trabajo, o su potencial para ser ampliado para
acomodar ese crecimiento.
• Importancia: Es crucial para aplicaciones que experimentan un aumento
constante en la carga de trabajo, como servicios web, procesamiento de big data
y aplicaciones científicas.
• Beneficios: Permite la adición de nuevos nodos (computadoras) a medida que
crece la demanda, asegurando que el sistema pueda manejar incrementos de
carga sin necesidad de rediseño significativo.

2. Disponibilidad
• Descripción: La disponibilidad asegura que el sistema continúe operando incluso
si algunos de sus componentes fallan.
• Importancia: Es vital para servicios críticos donde el tiempo de inactividad puede
resultar en pérdidas significativas, tanto en términos económicos como de
confianza del usuario.
• Beneficios: Proporciona tolerancia a fallos, lo que significa que la falla de una
computadora no lleva al colapso del sistema completo. Esto es esencial para
aplicaciones en las que la continuidad del servicio es imprescindible.

3. Consistencia
• Descripción: La consistencia se refiere a la uniformidad de los datos en todos los
nodos del sistema distribuido.
• Importancia: En aplicaciones donde la precisión y la integridad de los datos son
críticas, la consistencia asegura que todas las computadoras tengan la misma
información en todo momento.
• Beneficios: Permite la duplicación y compartición de datos entre múltiples
computadoras, manteniendo la coherencia sin sacrificar la tolerancia a fallos. Esto
es útil en bases de datos distribuidas y sistemas de archivos.

4. Transparencia
• Descripción: La transparencia permite a los usuarios interactuar con el sistema
como si fuera una única entidad, sin preocuparse por los detalles subyacentes de
su funcionamiento.
• Importancia: Simplifica la interacción del usuario final con el sistema, ocultando
la complejidad de la infraestructura distribuida.
• Beneficios: Facilita la usabilidad y la gestión del sistema, permitiendo que
diferentes componentes de hardware y software trabajen juntos sin problemas
perceptibles para el usuario. Esto es beneficioso para usuarios no técnicos y para
la administración del sistema.

5. Eficiencia
• Descripción: La eficiencia implica un rendimiento óptimo y rápido del sistema con
el uso adecuado de los recursos disponibles.
• Importancia: Es fundamental para maximizar el uso de hardware costoso y
asegurar que las tareas se completen en el menor tiempo posible.
• Beneficios: Permite gestionar cargas de trabajo pesadas sin preocuparse por
fallos del sistema debido a picos en el volumen de trabajo o infrautilización del
hardware. Es esencial para tareas que requieren grandes recursos
computacionales, como el renderizado de gráficos 3D y el procesamiento de
grandes volúmenes de datos.
CONCLUSIONES

Elizabeth Sarai Balleza Villanueva 2082399

En resumen, los sistemas distribuidos y paralelos son cruciales para la tecnología actual
porque ofrecen soluciones fuertes y escalables para los desafíos de hoy en día. Si las
organizaciones entienden y aplican bien las recomendaciones para cada tipo de sistema,
pueden desarrollar plataformas resilientes y eficientes que crezcan con sus necesidades.
La combinación de distribución y paralelismo abre muchas posibilidades, permitiendo
enfrentar los problemas presentes y futuros de manera más efectiva y segura.

Andrea Ximena Rivera Aceves 2010184


Los sistemas distribuidos y paralelos permiten que varias computadoras trabajen juntas
para resolver problemas grandes y complejos. Los sistemas distribuidos se centran en
asegurar que los recursos sean siempre accesibles, funcionando bien y con datos
coherentes. Los sistemas paralelos buscan hacer las tareas más rápido y distribuir el
trabajo de manera equilibrada. Ambos son importantes para manejar grandes cantidades
de datos de forma eficiente, escalable y con menor costo.
Ana Laura Durán Ramírez 1969975
A lo largo del curso pudimos ver temas relacionados a los sistemas distribuidos y
paralelos, pero al realizar esta actividad comprendimos mejor los conceptos de lo que
trata un sistema distribuido y paralelo como estos han representado un gran avance en
la computación ya que nos ofrecen mejoras tanto en el rendimiento, escalabilidad y
resiliencia. Pero también su implementación tiene que ser cuidadosa para aprovechar
todos los beneficios que nos brindan estos sistemas.

Grecia Damiani Hernández González 1998444


Los sistemas distribuidos y paralelos ofrecen numerosas ventajas que los hacen ideales
para una amplia gama de aplicaciones. Su capacidad de escalar, alta disponibilidad,
consistencia de datos, transparencia para el usuario y eficiencia en el uso de recursos
los convierten en una solución poderosa para resolver problemas complejos y manejar
grandes volúmenes de trabajo de manera efectiva.

Valeria Flores Simental 1969439


Después de explorar los sistemas distribuidos y paralelos, queda claro que su papel es
fundamental en el paisaje tecnológico actual. Estas infraestructuras no solo ofrecen
mejoras en rendimiento y escalabilidad, sino que también garantizan la resiliencia y la
redundancia, aspectos esenciales en un mundo cada vez más interconectado. La
implementación efectiva de estas soluciones no solo optimiza el funcionamiento de las
aplicaciones, sino que también abre las puertas a innovaciones disruptivas que pueden
transformar industrias enteras y mejorar la calidad de vida. En conclusión, comprender y
dominar los sistemas distribuidos y paralelos es esencial para abrazar el futuro de la
tecnología y la informática.
Veronica Abigail Moreno Sanchez 1996810

En resumen, los sistemas distribuidos y paralelos son elementos esenciales en el paisaje


tecnológico actual. Permiten la colaboración efectiva de múltiples recursos
computacionales para resolver desafíos complejos y escalables. Su implementación
adecuada garantiza la robustez y la capacidad de adaptación necesarias para enfrentar
los retos tecnológicos en constante evolución. Estos sistemas son la base sobre la cual
se construyen soluciones sólidas y eficientes que impulsan el progreso y la innovación
en diversos campos de la informática y más allá.

RECOMENDACIONES

Recomendaciones para Sistemas Distribuidos y Paralelos


1. Diseño Híbrido
• Descripción: Combinar técnicas de sistemas distribuidos y paralelos.
• Beneficio: Aprovecha las ventajas de ambos enfoques.
• Ejemplo: Diseñar arquitecturas que permitan el procesamiento paralelo
dentro de cada nodo distribuido.
2. Automatización y Orquestación
• Descripción: Utilizar herramientas de orquestación como Kubernetes.

• Beneficio: Gestiona despliegues y escalabilidad de manera eficiente.


• Ejemplo: Implementar CI/CD para despliegues rápidos y confiables.
3. Redundancia y Recuperación
• Descripción: Diseñar con redundancia tanto en la distribución de nodos
como en la paralelización de tareas.
• Beneficio: Asegura la continuidad del servicio.
• Ejemplo: Implementar estrategias de recuperación ante desastres y fallos.
4. Optimización Continua

• Descripción: Realizar pruebas regulares de rendimiento y ajuste fino de


parámetros.

• Beneficio: Mantiene un rendimiento óptimo adaptándose a los patrones de


uso y carga.

• Ejemplo: Adaptar el sistema según los patrones de uso y carga.

DOS EJEMPLOS
Sistemas Distribuidos:
1. Redes Sociales: Plataformas como Facebook, Twitter e Instagram son ejemplos
de sistemas distribuidos. Cada vez que publicas un mensaje o una foto, esta
información se distribuye y replica en servidores distribuidos en diferentes
ubicaciones para garantizar su disponibilidad y escalabilidad.

2. Sistemas de Gestión de Bases de Datos Distribuidas: Las bases de datos


distribuidas como Cassandra, MongoDB y DynamoDB distribuyen los datos en
múltiples nodos de servidores para mejorar el rendimiento y la disponibilidad.
Estas bases de datos permiten manejar grandes volúmenes de datos de manera
eficiente y escalable.
Sistemas Paralelos:
1. Renderizado de Gráficos por Computadora: En la industria del
entretenimiento, el renderizado de gráficos por computadora, utilizado en
películas, videojuegos y aplicaciones de diseño, aprovecha sistemas paralelos
para procesar múltiples elementos gráficos simultáneamente, reduciendo el
tiempo necesario para generar imágenes complejas.

2. Cómputo Científico Intensivo: Las simulaciones de fluidos, análisis de


estructuras, cálculos matemáticos y otras tareas científicas intensivas requieren
sistemas paralelos para dividir y procesar datos en múltiples procesadores o
nodos de manera simultánea, acelerando significativamente el tiempo de
procesamiento.
REFERENCIAS BIBLIOGRAFICAS (FORMATO APA)

• Navarro, J. (2017, 22 julio). Sistemas paralelos vs distribuidos [Diapositivas].

SlideShare. https://es.slideshare.net/algoritmonavarro/sistemas-paralelos-vs-

distribuidos

• Luismi. (s. f.). Sistemas distribuidos y paralelos. Scribd.

https://es.scribd.com/document/406404509/Sistemas-Distribuidos-y-Paralelos

• Rouse, M. (2021). Big data (grandes volúmenes de datos). ComputerWeekly.es;


TechTarget. https://www.computerweekly.com/es/definicion/Big-data-grandes-
volumenes-de-datos
• ¿Qué la computación distribuida? - Explicación sobre la computación distribuida - AWS.
(s. f.). Amazon Web Services, Inc. https://aws.amazon.com/es/what-is/distributed-
computing/
• Atlassian. (s. f.). ¿Qué es un sistema distribuido? | Atlassian.
https://www.atlassian.com/es/microservices/microservices-architecture/distributed-
architecture#:~:text=Un%20sistema%20distribuido%20es%20un,error%20centrales%20
de%20un%20sistema.
• Dabat, C. (2024, 20 mayo). ¿Qué son y cómo funcionan los sistemas distribuidos?

datalytics.com. https://www.datalytics.com/blog/que-son-y-como-funcionan-los-

sistemas-

distribuidos/?gad_source=1&gclid=EAIaIQobChMIr92Wt7rAhgMVJEp_AB0bUQEIEA

MYASAAEgLj1_D_BwE

• ¿Qué son los sistemas de cómputo paralelo? (s. f.). CSC. https://csc.conicet.gov.ar/que-

son-los-sistemas-de-computo-

paralelo/#:~:text=Los%20sistemas%20de%20c%C3%B3mputo%20paralelo%20son%20
una%20combinaci%C3%B3n%20de%20componentes,para%20resolver%20una%20tarea

%20computacional.

• Unir, V. (2024, 9 abril). La computación paralela: características, tipos y usos. UNIR.

https://unir.net/ingenieria/revista/computacion-paralela/

También podría gustarte