Logo Studenta

2 3 Actividades para conseguir el Paralelismo

¡Estudia con miles de materiales!

Vista previa del material en texto

Nombre del alumno: Antony Arturo García Pérez
Matrícula: 2020690020
Carrera: Licenciatura en Ciencia de Datos
Nombre de la materia: Computo de alto desempeño
Nombre del docente: Gerardo Altamirano
2.3. Actividades para conseguir el Paralelismo 
Sabinas, Coahuila							12/09/2021
Responda las siguientes preguntas:
· Explique el funcionamiento de un sistema con memoria compartida.
La memoria compartida es una función del sistema operativo que permite a los procesos y hebras del servidor de bases de datos compartir datos mediante el compartimiento del acceso a agrupaciones de memoria. ... Para permitir que procesadores virtuales y programas de utilidad compartan datos.
· Explique los principales problemas con los sistemas de memoria compartida.
El problema con los sistemas de memoria compartida es que muchas CPU necesitan un acceso rápido a la memoria y probablemente memoria caché, que tiene dos complicaciones: Degradación del tiempo de acceso: cuando varios procesadores intentan acceder a la misma ubicación de memoria, se genera contención.
· Explique el funcionamiento de un sistema con memoria distribuída.
Básicamente los sistemas distribuidos se constituyen a través de la conexión de un grupo de varias computadoras. Estos ordenadores están físicamente separados, cada uno contiene su software y su hardware individual, pero tienen en común una red de comunicaciones que conecta a todos ellos a la vez.
· Explique los principales problemas con los sistemas de memoria distribuída.
El acceso simultáneo a memoria es un problema. Poca escabilidad de procesadores, debido a que se puede generar un cuello de botella al incrementar el numero de CPU's.
· Explique a que es un full cache miss.
En informática, una caché, antememoria​ o memoria intermedia​ es un componente de hardware o software que guarda datos para que las solicitudes futuras de esos datos se puedan atender con mayor rapidez; los datos almacenados en una caché pueden ser el resultado de un cálculo anterior o el duplicado de datos almacenados, el termino caché miss se emplea para denotar que dentro de los datos de cache no se cumple con lo solicitado, por lo que se dice que el caché falla (cache miss)
· ¿Qué es la latencia de una memoria?
Las latencias de las memorias RAM son varios parámetros que indican cuántos ciclos de reloj tarda la RAM en procesar una columna de datos y enviarlos hacia la CPU. Estos parámetros son 5 o 6 números, aunque normalmente nos solemos fijar en solo 2 de ellos para calificar la latencia de un módulo RAM.
· ¿Qué es el ancho de banda de una memoria?
El ancho de banda máximo de memoria es la velocidad máxima a la cual el procesador puede leer o almacenar datos en una memoria de semiconductor (en GB/s).
· Explique dos estrategias para superar problemas de latencia en la memoria.
Stride-One Access
La mayoría de las memorias caché están organizadas en bloques que contienen varios elementos de datos. Por ejemplo, el bloque de caché de nivel 2 en SGI Origin puede contener 16 números de punto flotante de doble precisión. En todas las máquinas, estos números se encuentran en direcciones contiguas en la memoria. Si un programa está dispuesto para iterar sobre elementos sucesivos en la memoria, puede sufrir como máximo una falta de caché por cada bloque de caché.
Reorganización de datos
Una segunda estrategia para mejorar el comportamiento de una jerarquía de memoria monoprocesador es reorganizar las estructuras de datos para que los elementos de datos que se utilizan juntos se almacenen juntos en la memoria. Por ejemplo, muchos programas Fortran más antiguos utilizan matrices multidimensionales para almacenar estructuras de datos complejas.
· Explique que es el cache blocking
Algunos problemas que podemos encontrar al programar pueden ser resueltos gracias al cache blocking, con este cada vez que nuestro computador presente un cache miss en lugar de buscar únicamente lo que le solicitamos, traerá también algunos de lo que seamos propensos a solicitar
· Explique qué es el paralelismo de tarea
Paralelismo de tareas es un paradigma de la programación concurrente que consiste en asignar distintas tareas a cada uno de los procesadores de un sistema de cómputo. En consecuencia, cada procesador efectuará su propia secuencia de operaciones.
· Explique qué es el paralelismo de datos.
Paralelismo de datos es un paradigma de la programación concurrente que consiste en subdividir el conjunto de datos de entrada a un programa, de manera que a cada procesador le corresponda un subconjunto de esos datos.
· Explique el modelo de programación de memoria compartida.
En este modelo, las tareas paralelas comparten un espacio de direcciones global donde ellas leen y escriben de forma asíncrona. Esto requiere mecanismos de protección, tales como cerraduras, semáforos y monitores para controlar el acceso concurrente.
· Explique el modelo de programación de paso de mensajes (message passing)
El modelo de paso de mensajes es el que define los métodos y funciones para poder llevar a cabo el envío de un mensaje de un proceso emisor a un destinatario. Supone un enfoque opuesto al paradigma tradicional en el cual los procesos, funciones y subrutinas sólo podían ser llamados directamente a través de su nombre.
· Explique que es un ciclo paralelo (parallel loop)
La forma típica de paralelizar bucles es asignar diferentes iteraciones, o diferentes bloques de iteraciones, a diferentes procesadores. El enfoque principal de la paralelización de bucles es el descubrimiento de bucles que no tienen carreras.
· Explique que es la Programación SPMD.
SPMD usualmente se refiere a la programación de traspaso de mensajes sobre arquitecturas de computadoras con memoria distribuidas. La memoria distribuida es el estilo de programación utilizado en supercomputadoras paralelas de investigación propia en Beowulf clusters destinado a los grupos más grandes de la Teragrid.
· Explique que es el speedup y como calcularlo.
En arquitectura de computadores, speedup es un proceso realizado para mejorar el rendimiento de un sistema que procesa un problema determinado. Más técnicamente, es la mejora en la velocidad de ejecución de una tarea ejecutada en dos arquitecturas similares con diferentes recursos. 
Speed-up = 1 / ( F / x + (1-F) ) Tiempo de ejecución con mejora = tiempo de ejecución sin mejora * F / x + tiempo de ejecución sin mejora * (1-F) INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO LEY DE AMDAHL 9 Page 10 Donde: S Es la aceleración o speed-up del sistema.
· ¿Qué significa que un sistema sea de Entrada/Salida paralela (Parallel I/O)
Debido a que los cálculos en paralelo se pueden ejecutar a altas velocidades, es frecuente que los programas en paralelo necesiten acceder a grandes cantidades de datos. La E / S de alto rendimiento se convierte, por tanto, en una preocupación fundamental. En una computadora en paralelo, eso significa inevitablemente E / S en paralelo; sin paralelismo, nos vemos reducidos a leer y escribir archivos desde un solo procesador, que casi siempre está garantizado para proporcionar solo un rendimiento bajo. Es decir, necesitamos técnicas que puedan permitir que muchos procesadores realicen E / S al mismo tiempo, con el objetivo de explotar el paralelismo en la red de comunicación y el sistema de E / S de la computadora paralela.