0% encontró este documento útil (0 votos)
41 vistas2 páginas

1elkin Mauricio Mendez Pinzon Emmendezp

Este documento presenta una serie de actividades relacionadas con el capítulo 2 del libro "Structured Parallel Programming". Explica conceptos clave como el paralelismo de datos, la descomposición funcional y la clasificación del paralelismo basado en tareas propuesta por los autores. También traduce un párrafo al español y describe brevemente las cuatro categorías de paralelismo de Flynn: SISD, SIMD, MISD y MIMD.

Cargado por

Harol Achagua
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas2 páginas

1elkin Mauricio Mendez Pinzon Emmendezp

Este documento presenta una serie de actividades relacionadas con el capítulo 2 del libro "Structured Parallel Programming". Explica conceptos clave como el paralelismo de datos, la descomposición funcional y la clasificación del paralelismo basado en tareas propuesta por los autores. También traduce un párrafo al español y describe brevemente las cuatro categorías de paralelismo de Flynn: SISD, SIMD, MISD y MIMD.

Cargado por

Harol Achagua
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 2

Universidad Nacional de Colombia

Computación Paralela y
Distribuida

Con base en capítulo 2 del texto Structured Parallel Programming realizar las siguientes actividades,

1. El texto utiliza los siguientes símbolos, entre otros, para representar los componentes fundamentales
de los algoritmos.

Para cada símbolo, describir en qué momento se utiliza.


Rta : Estos símbolos representan tareas, datos, puntos de bifurcación y unión, y dependencias.
Ellos son se utiliza en gráficos que representan cada uno de los patrones que presentaremos, y
también para describir algoritmos paralelos. Esta notación se puede aumentar de vez en cuando con
polígonos que representan subgrafos o Construcciones de flujo de control en serie comunes a partir
de diagramas de flujo, como diamantes para la selección.

2. ¿Qué es paralelismo en datos?


• El paralelismo de datos hace referencia a los escenarios en los que la misma operación
se realiza simultáneamente (es decir, en paralelo) en elementos de una colección o
matriz de origen
¿Qué es descomposición funcional?
• Es lo opuesto al paralelismo, un enfoque que ejecuta diferentes funciones de programa
en paralelo. En el mejor de los casos, la descomposición funcional mejora el
rendimiento en un constante factor. Por ejemplo, si un programa tiene funciones f, g y
h, ejecutarlas en paralelo en el mejor de los casos triplica rendimiento, pero solo si las
tres funciones toman exactamente la misma cantidad de tiempo para ejecutarse y no
dependen unos de otros, y no hay gastos generales. De lo contrario, la mejora será
menor.
¿Cuál es la relación entre el paralelismo en datos y la descomposición funcional?
• La relación entre las dos es que juntas están enfocadas a el paralelismo, aunque en
algunas ocasiones la descomposición funcional puede proporcionar un poco mas de
paralelismo para cumplir con el objetivo de rendimiento

3. Los autores del libro consideran ambiguo el término de paralelismo basado en tareas (task
parallelism) y consideran más útil una clasificación basada en el grado de regularidad.
¿cuáles sonlos términos propuestos por ellos para esta clasificación?
• Evitan el termino task parallelismo porque su significado varia, dado que algunos
desarrolladores lo usan para significade descomposición funcional (no escalable) y otros para
significar (escalable) y otro simplemente significan cualquier tipo de paralelismo
¿qué características tienen las tareas queincluye cada término?
• Paralelismo regular: Las tareas son similares y tienen dependencias predecibles.
• Paralelismo irregular: las tareas son diferentes de una manera que crea dependencias
impredecibles
4. Traduzca el siguiente párrafo a español.
We use task to refer to a unit of potentially parallel work with a separate flow of control. Tasks are executed
by scheduling them onto software threads, which in turn the OS schedules onto hardware threads. A single
software thread may run many tasks, though it actively runs only one task at a time. Scheduling of software
threads onto hardware threads is usually preemptive—it can happen at any time. In contrast, scheduling of
tasks onto software threads is typically non-preemptive (cooperative)—a thread switches tasks only at
predictable switch points. Non-preemptive scheduling enables significantly lower overhead and stronger
reasoning about space and time requirements tan threads. Hence, tasks are preferable to software threads as
an abstraction for scalable parallelism.

Traducción: Usamos tarea para referirnos a una unidad de trabajo potencialmente paralela con un flujo de
control separado. Las tareas se ejecutan programándolas en hilos de software, que a su vez el sistema
operativo programa en hilos de hardware. Un único hilo de software puede ejecutar muchas tareas, aunque
sólo ejecuta activamente una tarea a la vez. La programación de los hilos de software en los hilos de
hardware suele ser preventiva: puede ocurrir en cualquier momento. En cambio, la programación de tareas
en hilos de software suele ser no preventiva (cooperativa): un hilo cambia de tarea sólo en puntos de
cambio predecibles. La programación no preventiva permite una sobrecarga significativamente menor y un
mayor razonamiento sobre los requisitos de espacio y tiempo de los hilos. Por lo tanto, las tareas son
preferibles a los hilos de software como abstracción para el paralelismo escalable.

Traducción realizada con la versión gratuita del traductor www.DeepL.com/Translator


5. Con base en la subsección 2.4.3 y https://en.wikipedia.org/wiki/Flynn%27s_taxonomy, describa
brevemente las cuatro categorías de paralelismo de Flynn.

• SISD : Un único procesador ejecuta un solo flujo de instrucciones para operar datos en
una única memoria
• SIMD: Todas las unidades ejecutan una misma instrucción, pero con datos diferentes
Es un computador que explota varios flujos de datos dentro de un único flujo de
instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural
• MISD: usado generalmente en paralelismo redundante, donde muchas unidades
realizan diferentes operacións en los mismo datos
• MIND: a diferencia de la anterior en este caso Varios procesadores autónomos que
ejecutan simultáneamente instrucciones diferentes sobre datos diferentes, usualmente
utilizado en sistemas distribuidos

También podría gustarte