You are on page 1of 1

Computación Paralela y Distribuida

Taller

Actividad: Responder las preguntas con base en el capítulo 1 del libro "Structured Parallel
Programming Patterns" de Michael McCool, Arch D. Robison y James Reinders, Elsevier, 2012.

1. Traducir a español el siguiente párrafo


“We approach the problem of practical parallel programming through a combination of patterns
and examples. Patterns are, for our purposes in this book, valuable algorithmic structures that
are commonly seen in efficient parallel programs. The kinds of patterns we are interested in are
also called “algorithm skeletons” since they are often used as fundamental organizational
principles for algorithms. The patterns we will discuss are expressions of the “best known
solutions” used in effective and efficient parallel applications. We will discuss patterns both
“from the outside,” as abstractions, and “from the inside,” when we discuss efficient
implementation strategies. Patterns also provide a vocabulary to design new efficient parallel
algorithms and to communicate these designs to others. We also include many examples, since
examples show how these patterns are used in practice. For each example, we provide working
code that solves a specific, practical problem.”
2. ¿Qué es serialización (Serialization)? Describa los beneficios de la serialización.
3. Describa las dos cosas que se pueden hacer para pensar más en paralelismo (“Think
Parallel”).
4. ¿Qué es el span de un algoritmo paralelo?
5. ¿Cuáles son las tres cosas que deben poner atención [para el desempeño del programa]
cuando se diseña un algoritmo paralelo?
6. ¿Qué es balanceo de carga (load balancing)?¿Qué tipo de planificador utilizan Cilk Plus
and TBB para balancear la carga?
7. ¿Qué significa realizar varias operaciones mediante una “línea de ensamblaje” (pipelining)?
8. Traducir a español el siguiente párrafo
“Actually, there are two problems with memory (and communication): latency and bandwidth.
Bandwidth (overall data rate) can still be scaled in several ways, such as optical
interconnections, but latency (the time between when a request is submitted and when it is
satisfied) is subject to fundamental limits, such as the speed of light. Fortunately, as discussed
later in Section 2.5.9, latency can be hidden—given sufficient additional parallelism, above and
beyond that required to satisfy multiple computational units. So the memory wall has two
effects: Algorithms need to be structured to avoid memory access and communication as much
as possible, and fundamental limits on latency create even more requirements for parallelism.”
9. ¿Cuáles son las dos partes que conforman la estrategia de patrones de algoritmos?
10. Describa las tres características que deben tener los modelos de programación paralela.

You might also like