2.3.3 CN/Procesamiento
El área temática de procesamiento incluye numerosos temas de otras áreas de conocimiento. En concreto, la cobertura del tratamiento debe incluir un análisis de las arquitecturas de hardware, incluyendo los sistemas paralelos, jerarquías de memoria, y las interconexiones entre procesadores. Estos se tratan en:
Arquitectura y Organización (AR) Interfacingandcommunication,
Arquitectura y Organización (AR) Multiprocessingandalternativearchitectures,
Arquitectura y Organización (AR) Performanceenhancements.
Temas:
Electivo
- Conceptos Fundamentales de Programación:
- El concepto de un algoritmo que consiste en un número finito de pasos bien definidos, cada uno de los cuales
se completa en una cantidad finita de tiempo, al igual que todo el proceso.
- Ejemplos de algoritmos bien conocidos como ordenamiento y busqueda.
- El concepto de análisis como entendimiento de lo que el problema realmente pregunta, cómo un problema puede ser abordado utilizando un algoritmo y cómo se representa la información de manera que una máquina pueda procesarla.
- El desarrollo o la identificación de un flujo de trabajo (workflow).
- El proceso de convertir un algoritmo en código máquina ejecutable.
- Procesos de Software incluyendo modelos de ciclo de vida, requerimientos, diseño, implementación, verificación y mantenimiento.
- Representación máquina de datos de aritmética para computación.
- Métodos Numéricos
- Algoritmos para encajar datos numéricamente (e.g. Método de Newton)
- Algoritmos para computación numérica, incluyendo arquitecturas paralelas.
- Propiedades fundamentales de computación paralela y distribuida:
- Ancho de banda.
- Latencia.
- Escalabilidad.
- Granularidad.
- Paralelismo, incluyendo parelelismo de tareas, datos y eventos.
- Arquitecturas Paralelas incluyendo arquitecturas de procesador, memoria y caching.
- Paradigmas de Programación Paralela incluyendo hilos, paso de mensajes, técnicas orientadas a eventos,
Arquitecturas de Software Paralelo y Map / Reduce.
- Computación en Grid.
- El impacto de la arquitectura en tiempo computacional.
- Tiempo total de la curva de la ciencia para el paralelismo: continuidad de las cosas.
- Costos de Cálculo, ej., el costo de recalcular un valor vs el costo de almacenar y buscar.
Objetivos de Aprendizaje (Learning Outcomes):
Elective:
- Explicar las características y definir las propiedades de los algoritmos y como se relacionan con el procesamiento de la maquina [Familiarizarse]
- Analizar declaraciones simples de problemas para identificar información relevante y seleccionar el procedimiento apropiado para resolver el problema [Evaluar]
- Identificar o bosquejar un flujo de trabajo para un proceso computacional existente tal como la creación de un grafo basado en datos experimentales [Familiarizarse]
- Describir el proceso de convertir un algoritmo a código maquina ejectuable [Familiarizarse]
- Resumir las fases del desarrollo de software y comparar varios ciclos de vida en comín [Familiarizarse]
- Explicar como los datos son representados en una máquina. Comparar representaciones de números enteros a numeros flotantes. Describir underflow, overflow, redondeo, y truncamiento de errores en la representación de datos [Familiarizarse]
- Aplicar algoritmos numéricos estándar para resolver ecuaciones diferenciales ordinarias y parciales. Usar sistemas computaciones para resolver sistemas de ecuaciones [Usar]
- Describir las propiedades básicas de ancho de banda, latencia, escalabilidad y granularidad [Familiarizarse]
- Describir los niveles de paralelismo incluyendo tareas, datos, y eventos de paralelismo [Familiarizarse]
- Comparar y contrastar paradigmas de programación paralela reconociendo las fortalezas y debilidades de cada una [Evaluar]
- Identificar los problemas que afectan la corrección y eficiencia de un cálculo [Familiarizarse]
- Diseñar, codificar, probar y depurar programas para un cálculo paralelo [Usar]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM