Inf-025

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

UNIVERSIDAD TECNOLÓGICA DE SANTIAGO

UTESA

Nombre Asignatura Año Elaboración Código Número de créditos


ALGORITMOS PARALELOS 2015 INF-025 3
Nivel: Básico o General del Área ( ) General Común ( ) Especializado ( x )
Prerrequisitos: INF-705, INF-706

Introducción

En esta asignatura se trataran los temas relacionados con sistemas paralelos y modelos
de programación paralela. Metodología de diseño de algoritmos paralelos. Análisis de
algoritmos paralelos. Esquemas algorítmicos paralelos. Lenguajes y bibliotecas de
programación paralela.

Justificación

El aprovechamiento eficiente del hardware de uso convencional exige conocimientos de


programación, análisis y diseño de algoritmos paralelos, mientras el estudio de técnicas
de programación, análisis y diseño secuencial está bien asentado en los estudiantes de
las carreras en ingenierías en Sistemas Computacionales, no ocurre así en el ámbito
paralelo, por tal motivo se hace necesario que los futuros ingenieros en Sistemas
Computacionales conozcan las técnicas de algoritmos paralelos.

Descripción

Esta asignatura aborda los conceptos y problemas de programación y análisis de algoritmos


paralelos. Abarca fundamentalmente las nociones básicas en la programación paralela y
distribuida, centrándose en el desarrollo de software para arquitecturas como los "clusters" de
ordenadores, los sistemas multinúcleo y los procesadores gráficos.

Objetivo General
Conocer y establecer conceptos de la Complejidad y Análisis de Algoritmos Paralelos.
Introducir diferentes modelos de cómputo paralelo y establecer conceptos básicos sobre
el área. Comprender y explicar las diferentes técnicas sobre el Diseño y Justificación de
Algoritmos Paralelos.

Objetivos Específicos

- Conocer la importancia y aplicaciones de la programación paralela en la


actualidad.
- Adquirir los conceptos básicos de la computación paralela, incluyendo el
conocimiento de los modelos de computación paralela más destacados.
- Conocer los modelos de programación paralela más extendidos y las principales
herramientas software que los sustentan.
- Conocer las principales técnicas de descomposición y asignación de tareas, y
saber usarlas para diseñar algoritmos paralelos.
- Identificar los factores de diseño que más influyen en el rendimiento de una
aplicación paralela.
- Conocer y saber usar los esquemas algorítmicos más frecuentes en el desarrollo
de software paralelo.

274
UNIVERSIDAD TECNOLÓGICA DE SANTIAGO
UTESA

- Adquirir las habilidades propias de la programación paralela en un entorno de


memoria
- compartida y en un entorno de memoria distribuida.
- Conocer y adquirir experiencia en el uso de los lenguajes y bibliotecas más
usados para la implementación de programas paralelos.

Competencias

- Capacidad de desarrollar software eficiente para los sistemas actuales (paralelos en su


mayoría) y deben estudiar análisis y diseño de algoritmos paralelos usando nivel de
abstracción similar al estudiado en el ámbito secuencial.
- Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo
plataformas paralelas y distribuidas, así como desarrollar y optimizar software
para las mismas.
- Capacidad de evaluar el rendimiento de un algoritmo paralelo, en función de su
interés en aplicaciones concretas, utilizando técnicas de modelado propias del
ámbito de la computación paralela.
- Capacidad de escribir, compilar, ejecutar y evaluar experimentalmente programas
paralelos en un ordenador paralelo.
- Capacidad de aplicar principios matemáticos, ciencias de la ingeniería y ciencias
de la computación, a problemas de ingeniería informática.

Contenido
Temas Horas duración
UNIDAD I
- Introducción 16
- Conceptos básicos
- Procesamiento paralelo. Modelos de cómputo paralelos.
Desempeño computacional de algoritmos paralelos. Paradigma
trabajo-tiempo. Notación de optimalidad. Complejidad de la
comunicación.

- Técnicas básicas
- Árboles balanceados. Técnica Pointer Jumping. Divide y
vencerás. Particionamiento (Partitioning). Técnica de Pipelining.
Aceleramiento en cascada. Técnica Symmetry Breaking.
UNIDAD II
16
- Listas y árboles
- Técnica List Ranking. Técnica de Euler. Contracción de
árboles. Antecesor común más cercano.

- Búsquedas y ordenamientos
- Búsquedas. Intercalados (Merging). Ordenamiento.
Ordenamiento en redes (Sorting Network). Problema de
selección. Cotas Mínimas.

- Teoría de gráficas
- Componentes conexas. Árboles generadores de peso

275
UNIVERSIDAD TECNOLÓGICA DE SANTIAGO
UTESA

mínimo. Componentes bi-conexas. Descomposición por orejas.


Gráficas dirigidas.
UNIDAD III

- Geometría computacional
- Envolvente convexa (revisado). Intersección de conjuntos 16
convexos. Traslape de planos (Plane Sweeping). Problemas
de visibilidad. Dominancia (DominanceCounting).

- Cadenas.
- Introducción. Apareamientos. Análisis de texto. Análisis de
patrones. Árboles de sufijos. Aplicaciones para árboles de
sufijos.

- Métodos numéricos
- Recurrencia lineal. Sistemas triangulares lineales. La
transformada de Fourier discreta. Multiplicación polinomial.
- Matrices Toeplitz. División polinomial. Evaluación de
polinomios. Matrices densas.

- Algoritmos aleatorios

- Medidas de desempeño. Conjunto independiente fraccional.


- Localización de un punto en una subdivisión planar
triangulada.
- Apareamiento de patrones. Verificación de identidades
polinomiales Ordenamiento. Apareamiento máximo

Metodología de Enseñanza

Exposición del profesor. Estudio de casos. Ejercicios prácticos. Investigación en Internet.


Solución de casos, aprendizaje basado en problemas, análisis, discusión y debates.
Estudio individual, tareas individuales, investigaciones y juego de roles.

Recursos Didácticos

Retroproyector, videos, transparencias, televisor, proyector de multimedia. Libros de


textos, publicaciones periódicas, computador, Internet, documentos audiovisuales,
planteamiento y resolución de problemas asignados por el profesor.

Metodología de Evaluación

La evaluación comprende el nivel de participación, pertinencia de las soluciones en los


casos presentados, los ejercicios prácticos y la calidad de la programación. Al finalizar
cada unidad, se realizan las siguientes pruebas parciales.

276
UNIVERSIDAD TECNOLÓGICA DE SANTIAGO
UTESA

Primer parcial Segundo parcial Tercer parcial


Tareas de 5% Tareas de 5% Ejercicios 10%
Investigación Investigación
Ejercicios 5% Ejercicios 5% Tareas de 5%
Investigación
Prueba escrita 20% Prueba escrita 20% Prueba escrita 15%
Total 30% Total 30% Total 30%
Más 10% de asistencia, participación y responsabilidad.

Bibliografía

Libro de Texto:

Casanova, H., Legrand, A., Robert, Y. (2008). Parallel Algorithms, (Chapman and
Hall/CRC Numerical Analy and Scient Comp. Series) CRC Press.
F. Almeida, D. Gimenez, J. M. Mantas, A.M. Vidal. 2008. Introducción a la Programación
Paralela. Paraninfo Cengage Learning,

Libros de Consultas:

Grama, A. Karypis, G., Kumar, V. Gupta, A. (2003). Introduction to Parallel Computing,


2nd ed., Addison Wesley.
Mohcine, J., Contassot-Vivier, S. Couturir, R. (2007). Parallel Iterative Algorithms: From
Sequential to Grid Computing, Chapman and Hall/CRC Numerical Analysis and
Scientific Computation Series.
Leighton, F. T. (2006). Introduction to Parallel Algorithms and Architectures, xth ed.,
Editorial.
Leopold, C., Parallel and Distributed Computing: A Survey of Models, Paradigms and
Approaches (2001). Wiley Series on Parallel and Distributed Computing, John
Wiley y Son Inc.
Roosta, S.H. (2000). EfParallel Processing and Parallel Algorithms: Theory and
Computation, Springer.
Correa, R., de Castro, I., Fiallos, M., Gomez L.F. (2002). Models for Parallel and
Distributed Computation: Theory, Algorithmic Techniques and Applications
(Applied Optimization), Kluwer Academic Pu.

277

También podría gustarte