Está en la página 1de 25

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE CIENCIAS MATEMÁTICAS


ESCUELA DE POST-GRADO

¿QUÉ PROBLEMAS SE PUEDEN RESOLVER USANDO


MAESTRIA EN MATEMÁTICA APLICADA Y COMPUTACIONAL
“Año del Bicentenario:200 años de Independencia”

COMPUTACIÓN PARALELA?
Profesor (Mg): Edwin Chávez Ramírez

Estudiante: Gilder Reyes Tucto


Lima-2021
PARTIREMOS POR UNA
GENERALIDAD
En general, la eficiencia de una máquina, para resolver un problema dado, depende
de la implementación del algoritmo de resolución. En particular, las máquinas
paralelas ofrecen un poder de cálculo enorme, pero explotar todas sus
potencialidades no es fácil.

Por otro lado, los problemas tienen diferentes características factibles a explotar,
cuando se desean desarrollar aplicaciones paralelas para resolverlos. La mejor
implementación secuencial de resolución de un problema dado no conlleva
obligatoriamente al mejor algoritmo paralelo, ya que para desarrollar un algoritmo
paralelo se deben explotar lo que denominaremos las fuentes de paralelismo del
problema.
EXISTEN DOS FORMAS DE VER EL
1) Modo Concurrente: supongamos una aplicación paralela compuesta de tareas, donde
PARALELISMO
además, existe una estructura de intercambio de información entre las tareas. Los sistemas
concurrentes buscan ejecutar simultáneamente las que se pueden (si no existen dependencia
entre ellas, etc.). La red de intercambio de información es asimétrica y los intercambios
asincrónicos. Los problemas de asignación de tareas y gestión de la red de interconexión son
dos de los problemas más importantes a resolver. Este enfoque implica que las tareas a
paralelizar deben ser explícitamente definidas.
2) Modo Paralelo: las tareas de la aplicación se organizan en forma de una estructura
regular como una tabla. Las tareas son lo más parecido posible entre ellas, y la red de
interconexión es síncrona y simétrica espacialmente. Muchas veces, esto conlleva a que las
aplicaciones pasen por una fase de pre-tratamiento para espaciarlas y transformarlas en
tareas simétricas. Es más fácil construir máquinas paralelas para que exploten este modo.
Normalmente, en este caso, el paralelismo es implícito, por lo que extraer su paralelismo es
uno de los problemas fundamentales a resolver.
PERFIL DE PARALELISMO
El perfil de paralelismo de una aplicación es definido como la “cantidad de paralelismo”
que una aplicación posee. Dicha cantidad esta caracterizada por dos parámetros: grado y
grano de paralelismo
GRANULARIDAD
El grano de paralelismo es definido como el tamaño promedio de las acciones (tamaño
promedio de una tarea elemental) en termino de:
- Número de instrucciones ejecutadas.
- Número de palabras de memorias usadas.
- Duración de su tiempo de ejecución.
. Así, la granularidad, es la relación entre la computación y la comunicación, a lo interno de
una aplicación. Una granularidad pequeña (grano fino) implica más comunicación y cambios
de contextos entre las tareas (es una aplicación con comunicación intensiva). Una
granularidad grande (grano fuerte) implica menos comunicación, pero puede que potenciales
tareas concurrentes queden agrupadas, y por consiguiente, ejecutadas secuencialmente.
Así, la determinación del grano ideal, para una aplicación dada, es importante, para
definir la mejor relación entre paralelismo (grano pequeño) y comunicación (grano
grande). El problema de determinación del tamaño óptimo del grano para una
aplicación dada es un problema de optimización del tipo MaxMin (Maximizar
paralelismo y Minimizar comunicación), y debe estar vinculado a la máquina donde se
ejecuta la aplicación. El paralelismo a grano fuerte, es normalmente usado en las
arquitecturas tipo MIMD, mientras que el paralelismo a grano fino es especialmente
usado en las máquinas SIMD.
GRADO DE PARALELISMO
El grado de paralelismo puede ser diferente a través de las diferentes partes de un programa,
por lo que se habla de un grado de paralelismo máximo, mínimo y promedio.
El grado máximo es el límite superior en cuanto al número de procesadores que podrían
utilizarse. Con ese número de procesadores la ejecución de la aplicación quizás sería la más
rápida posible, pero su eficacidad podría ser mediocre si ese valor máximo excede en mucho
al grado promedio de paralelismo

El grado de paralelismo puede ser diferente a través de las diferentes partes de un programa,
por lo que se habla de un grado de paralelismo máximo, mínimo y promedio. El grado
máximo es el límite superior en cuanto al número de procesadores que podrían utilizarse. Con
ese número de procesadores la ejecución de la aplicación quizás sería la más rápida posible,
pero su eficacidad podría ser mediocre si ese valor máximo excede en mucho al grado
promedio de paralelismo (muchos procesadores pasarían inactivos durante gran parte de la
ejecución del programa).
Paralelismo de Datos
En este tipo de paralelismo se asocian directamente los datos a los procesadores. Como los
cálculos se realizan en paralelo sobre procesadores idénticos, es posible centralizar el control.
Al ser los datos similares, la operación a repetir toma el mismo tiempo sobre todos los
procesadores, y el controlador puede enviar de manera síncrona la operación a ejecutar a todos
los procesadores. Normalmente, este es un tipo de paralelismo de grano fino, por lo cual se
requieren plataformas del tipo SIMD.
LAS PRINCIPALES LIMITACIONES QUE SE ENCUENTRAN EN ESTE
PARALELISMO SON LAS SIGUIENTES
- Manejo de Vectores: si el tamaño de la máquina es más pequeño que el tamaño de los
datos vectoriales, hay que descomponerlos, lo que agrega un tiempo extra de asignación
y de gestión de tareas.
- - Manejo de Escalares: las aplicaciones que manipulan datos vectoriales, usan
frecuentemente datos escalares. Cuando se procesa el escalar, sólo un procesador trabaja
y el resto permanece ocioso
- Operaciones de difusión y reducción: estas operaciones sobre los datos vectoriales
normalmente no son realizadas en paralelo, aunque realmente esto depende de la topología
de la plataforma.
LIBRERÍAS PARALELAS
En esta estrategia, la idea de base es que normalmente el tiempo de cómputo en las aplicaciones
está concentrada en una sola parte del mismo. Si se trata de optimizar esas partes, por ejemplo,
produciendo versiones paralelas eficientes de las mismas en forma de rutinas, se podrían
desarrollar librerías paralelas de ellas. Así, a pesar de que no toda la aplicación sea
paralelizable, la parte de mayor demanda computacional típicamente si lo es. Este enfoque ha
sido usado por mucho tiempo en las máquinas vectoriales, para las cuales se han desarrollado
rutinas óptimas.
RECODIFICACIÓN DE PARTES
La idea es explotar esas características para maximizar la generación de tareas con posibilidad
de ser ejecutadas concurrentemente. Un punto importante a resaltar es el hecho cuando se
trabaja en una plataforma de procesamiento distribuida heterogénea (lo que implica diferentes
lenguajes, estructuras de control, etc.). En este caso, se añade el problema de tener que portar
las porciones de las aplicaciones, a cada una de las diferentes arquitecturas.
GRACIAS POR SU ATENCIÓN
APLICACIÓN
APLICACIÓN
APLICACIÓN
PARALELISMO Y CONCURRENCIA
CONCURRENCIA
CONCURRENCIA
APLICACIÓN
APLICACIÓN
APLICACIÓN
APLICACIÓN
APLICACIÓN
APLICACIÓN
APLICACIÓN

También podría gustarte