Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencia de la Computación. LICENCIATURA EN CIENCIA DE LA COMPUTACIÓN PROGRAMA DE ASIGNATURA Electivo I – Diseño e Implementación de Sistemas en Micro y Macro escala. Autor: Oscar Rojas D. oscar.rojas.d@usach.cl I. Objetivos El objetivo de este curso es proporcionar los conocimientos teóricos y prácticos para el diseño de hardware y software en micro y macro escala, donde el campo de aplicación abarca desde la construcción y programación de hardware a nivel de chips como de la implementación de soluciones en máquinas paralelas y distribuidas. A nivel micro la aplicación directa es la construcción y programación de artefactos y maquinas, específicamente en el campo de la robótica, domótica y control automático. A nivel macro, en la programación de soluciones paralelas y distribuidas, donde actualmente el campo de aplicación directa es computo científico de gran escala, motores de búsqueda y sistemas que requieren comunicación de procesos. La fusión de ambas escalas es requerida principalmente por que el hardware micro actual, tiene disponible unidades de cómputo multiprocesador, por lo cual el tener conocimiento de técnicas de cómputo paralelo colabora en la programación y diseño del hardware actual, como a su vez ya es un requerimiento necesario para el desarrollo de aplicaciones escalables. Contenidos Unidad I: Diseño e implementación de software en Micro-Controladores. Introducción a la programación de Chips – EEprom Tipos de EEprom Lenguajes de programación de EEprom Diseño de Hardware con EEprom Implementación (Robótica, domótica y control automático) Unidad II: Diseño e implementación de software en máquinas paralelas y distribuidas Introducción a la computación paralela Modelo de programación multi-hebra (Multicore Intel & AMD) Modelo de programación OpenMP, BSP y MPI (Cluster de computadoras) Modelo de programación Gpu-Nvidia (tecnología tarjetas de video) Modelo de programación distribuida en .net y RMI (Microsoft & Java) Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencia de la Computación. Implementación (Computo científico, motores de búsqueda web y sistemas de gran escala) Unidad III: Proyecto de curso El alumno desarrollara un proyecto de investigación, donde pondrá en práctica los conocimientos proporcionados en clase. Dicho proyecto será propuesto por el alumno, donde podrá elegir un problema a resolver ya este a nivel Micro como Macro. El desarrollo del proyecto será guiado íntegramente por el profesor, ya sea a nivel de diseño, programación e implementación. Metodología y resultados esperados Clases teóricas complementadas con la práctica: a medida que se avanza en teoría, se mostraran ejemplos de lo visto en clase, donde al término de cada unidad se realizara una actividad de laboratorio donde pueda observar y analizar las ventajas y debilidades de las tecnologías vistas en clases. Resultado esperado: que el alumno, además de tener una base de conocimientos que le permita en un futuro poder diseñar u/o implementar un sistema Micro o Macro, sea capaz de proponer soluciones ya sean a nivel de diseño como de implementación en un mercado altamente competitivo, como lo es el área de la computación e informática y los conocimientos adquiridos en este curso le permitan acercarse mucho más al uso de las tecnologías disponibles en la actualidad, ya sean estas a un nivel de programación de bajo nivel, como de alto nivel. II. Evaluación 2 Pruebas 20% c/u Laboratorio 60% III. Web-Bibliografía Parallel Scientific Computation: A structured approach using BSP and MPI, Rob H. Bisseling, Oxford University Press. OpenMP C and C++ Application Program Interface, online version 2.0. 2000 http://cedicyt.usach.cl/microcomputadores/