PD01 y P1 resueltos
PD01 2026-II — Unidad 1: DAG, Foster
Sección titulada «PD01 2026-II — Unidad 1: DAG, Foster»Ej. 1 — Suavizado (2 pts)
Sección titulada «Ej. 1 — Suavizado (2 pts)»Resuelto paso a paso en Método de Foster: Foster con límite de 4 MB ⇒ píxeles por proceso, halo exchange, , , isoeficiencia lineal.
Ej. 2 — DAG (2 pts)
Sección titulada «Ej. 2 — DAG (2 pts)»Resuelto en Modelo DAG (incluye la dependencia WAR sobre b); cárgalo en el playground con el preset «PD01 Ej.2».
Ej. 3 — Particionamiento (2 pts)
Sección titulada «Ej. 3 — Particionamiento (2 pts)»Se deben completar tareas en procesos idénticos (). El proceso tarda en la tarea y ejecuta una tarea a la vez; con el conjunto necesita . Describa el particionamiento y la complejidad de un algoritmo que reparta las tareas minimizando el tiempo total.
Ver solución
Resolución propuesta (sin solución oficial). El tiempo total es el makespan ; minimizarlo exactamente es NP-difícil (partición multiproceso), así que se usa una heurística de particionamiento de tareas con balanceo:
- Estático (LPT, longest processing time first): ordenar las tareas por descendente, ; asignar cada una al proceso con menor carga actual (un min-heap de cargas), . Total . Garantiza un makespan ≤ del óptimo.
- Dinámico (work pool): si los no se conocen de antemano, los procesos toman la siguiente tarea al quedar libres (como Mandelbrot), pagando por tarea.
Cota inferior útil para argumentar: — la misma idea que de Brent.
P1 — Subsecuencia máxima (Divide y Vencerás)
Sección titulada «P1 — Subsecuencia máxima (Divide y Vencerás)»SubsecuenciaMaxima hace dos llamadas recursivas sobre mitades y MaximoCentro recorre linealmente de a . (a) Recurrencia. (b) Paralelización, y . (c) , , y escalabilidad fuerte/débil.
Ver solución
(a) ; maestro con , ⇒ .
(b)
pardo ML ← SubsecuenciaMaxima(A, l, m) MR ← SubsecuenciaMaxima(A, m+1, r)MaximoCentro con dos scans del algoritmo de clase (Parallel Prefix using Binary Tree Traversal): prefix-sum (+) desde hacia (y desde hacia ) y luego prefix-max; el último valor es maxIzq/maxDer. Cada scan: trabajo, span.
( niveles, cada uno aporta de span por MaximoCentro; sin paralelizarlo, .)
(c)
Fuerte: ⇒ no escala. Débil: ⇒ constante, escala.
Fuente ·CS4052-PD01-S02.pdf · PD01-Ejercicio1-Resolucion.md · P1.md