3.17.1 SF/Paradigmas computacionales (3 horas Core-Tier1)
El punto de vista que aquí se presenta es las múltiples representaciones de un sistema a través de capas, desde bloques de construcción de hardware hasta los componentes de aplicaciones y el paralelismo disponible en cada representación.
Temas:
Core Tier1
- Bloques básicos de construcción de un computador (compuertas, flip-flops, registros, interconexiones; Caminos de datos (Datapath) + Control + Memoria)
- Hardware como un paradigma computacional: bloques de construcción lógicos fundamentales; expresiones lógicas, minimización, formas de suma de productos.
- Procesamiento secuencial a nivel de aplicacion: single thread.
- Procesamiento paralelo simple a nivel de aplicación: niveles de pedidos (web-services, cliente-servidor, distribuído), una hebra simple por servidor, múltiples hebras con múltiples servidores.
- Concepto básico de la secuencia de ejecución (pipelining), etapas de superposición de procesamiento.
- Conceptos básicos de escalabilidad: ir más rápido vs manejar problemas grandes.
Objetivos de Aprendizaje:
Core-Tier1:
- Enumerar los patrones comúnmente encontrados de cómo los cálculos son organizados [Familiarizarse]
- Describir los bloques de construcción básicos de las computadoras y su rol en desarrollo histórico de la arquitectura del computador. [Familiarizarse]
- Articular las diferencias entre un solo thread contra múltiples threads, un solo servidor contra modelos de servidores múltiples, motivados por ejemplos del mundo real (recetas de cocina, lineas de múltiples cajeros y parejas) [Familiarizarse]
- Articular el concepto de escalabilidad fuerte y débil, es decir, cómo el rendimiento se ve afectado por la escala del problema contra escala de los recursos para resolver el problema. Esto puede ser motivado por lo simple, ejemplos en el mundo real [Familiarizarse]
- Diseñar un circuito lógico simple usando los bloques de construcción fundamental del diseño lógico [Usar]
- Usar herramientas para la captura, síntesis, y la simulación para evaluar un diseño lógico [Usar]
- Escribir problema secuencial simple y una versión paralela simple de un mismo programa [Usar]
- Evaluar el desempeño de las versiones simples secuenciales y paralelas de un programa con diferentes tamaños de problemas, y ser capaz de describir los planos de velocidad obtenidos [Evaluar]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM