Datos Identificativos 2012/13
Asignatura (*) Software de Base para Supercomputación Código 614473006
Titulación
Mestrado Universitario en Computación de Altas Prestacións
Descriptores Ciclo Período Curso Tipo Créditos
Mestrado Oficial 1º cuadrimestre
Primeiro Obrigatoria 3
Idioma
Castelán
Prerrequisitos
Departamento Electrónica e Sistemas
Coordinación
Andrade Canosa, Diego
Correo electrónico
diego.andrade@udc.es
Profesorado
Andrade Canosa, Diego
Rodríguez Álvarez, Gabriel
Correo electrónico
diego.andrade@udc.es
gabriel.rodriguez@udc.es
Web http://gac.des.udc.es/master
Descrición xeral El objetivo del curso es proporcionar una destreza en la programación, la compilación y la ejecución de aplicaciones científicas en general. El curso es una introducción a herramientas y técnicas básicas necesarias para programar códigos científicos de alta calidad en entornos Unix. Los contenidos del curso se podrán aplicar a programas Java, C, C++ y Fortran.

Competencias do título
Código Competencias da titulación
A1 Analizar e mellorar o rendemento dunha arquitectura ou un software dado.
A2 Definir, avaliar e seleccionar a arquitectura e o software máis axeitado para a resolución dun problema.
A3 Coñecer o manexo de librerías numéricas HPC, as suas posibilidades e as suas aplicacións nos distintos campos da Enxeñería.
A4 Profundizar no coñecemento das ferramentas de programación e particularmente en entornos Unix e linguaxes C e Fortran.
A10 Adquirir os coñecementos necesarios para a administración dos servizos dos sistemas.
B3 Comunicar conclusións (e os coñecementos e razóns últimas que as sustentan) a públicos especializados e non especializados dun modo claro e sen ambigüidades.
B4 Aplicar habilidades de aprendizaxe que lles permitan continuar estudando dun modo que deberá de ser en gran medida autodirigido ou autónomo.
B6 Capacidade de análise e síntese.
B8 Motivación pola calidade e mellora contínua.
B9 Usar as novas tecnoloxías.
B13 Expor, defender e discutir propostas.
C1 Expresarse correctamente, tanto de forma oral coma escrita, nas linguas oficiais da comunidade autónoma.
C2 Dominar a expresión e a comprensión de forma oral e escrita dun idioma estranxeiro.
C3 Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.
C7 Asumir como profesional e cidadán a importancia da aprendizaxe ao longo da vida.

Resultados de aprendizaxe
Competencias de materia (Resultados de aprendizaxe) Competencias da titulación
Desarrollar código en un entorno Unix y entender las fases involucradas en este desarrollo AI3
AI4
BI9
Escribir programas usando una aproximación modular con múltiples ficheros y llamadas a librerías externas AI3
AI4
AI10
BI9
Mejorar el entorno de desarrollo y ejecución de sus aplicaciones mediante herramientas que permitan una mayor comodidad y productividad en la programación/ejecución AI3
AI4
AI10
BI9
CM2
CM3
CM6
CM7
Cuantificar y evaluar el rendimiento de sus propios códigos AI1
BI3
BI4
BI6
BI8
BI13
CM1
Obtener datos “experimentales” de sus propios códigos AI1
AI2
BI4
BI6
BI8
BI13
CM1

Contidos
Temas Subtemas
1. Introducción a. Lenguajes de programación en HPC
b. Ciclo de vida en el desarrollo de programas
Introducción o sistema operativo Unix a. Historia
b. Comandos básicos
2. Herramientas de desarrollo software a. Entornos de desarrollo
b. Gestión de versiones
c. Depuración de programas
d. Generación de documentación
3. Compilación/linkado de programas a. Descripción del proceso de compilación/linkado
b. Compiladores C y Fortran
c. Descripción y uso de las opciones de compilación
d. Definición y uso de las opciones de optimización
e. Llamadas a subrutinas Fortran desde C y viceversa
4. Ejecución de programas a. Sistemas de colas
b. Programación de scripts.
c. Análisis de rendimiento
5. Construcción de software a. Ficheros make para la construcción de software
b. Librerías: creación y manipulación de librerías propias
c. Documentación de usuario: man e info
d. Empaquetadores
Contenidos prácticos: • Resolución de boletines de ejercicios relacionados con los tópicos estudiados en
clase.
• Realización de prácticas semi-dirigidas por el profesor
• Realización de un proyecto propuesto por el profesor: utilización y/o construcción de software para la resolución de un problema complejo que involucre la mayoría de los contenidos teóricos.

Planificación
Metodoloxías / probas Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Seminario 10 5 15
Prácticas de laboratorio 24 12 36
Sesión maxistral 18 6 24
 
Atención personalizada 0 0
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Seminario Técnica de trabajo en grupo que tiene como finalidad el estudio intensivo de una herramienta o conjunto de herramientas determinados, desde una perspectiva prácticas. Se utilizan como plataforma previa a la utilización de dicha(s) herramienta(s) en las clases prácticas, por ello se caracterizan por la practicidad de los conocimientos adquiridos.
Prácticas de laboratorio Actividad que permite a los estudiantes aprender y afianzar los conocimientos ya adquiridos sobre las diferentes herramientas en los seminarios mediante la realización de sesiones prácticas en ordenadores.
Sesión maxistral Exposición oral complementada con el uso de medios audiovisuales y la introducción de fases de debate con los estudiantes. El objetivo es presentar a los estudiantes una perspectiva general de las herramientas que se van a emplear en el resto de la asignatura, así como del contexto y las finalidades para las que se utilizan.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Descrición
La atención personalizada en la realización de las prácticas de laboratorio se antoja imprescindible para dirigir los alumnos en el uso de las diferentes herramientas. Además, esta atención servirá para validar y evaluar la destreza adquirida por cada alumno en el uso de las diferentes herramientas tratadas en la asignatura.

Avaliación
Metodoloxías Descrición Cualificación
Seminario Seguimiento continuado y objetivable de una participación activa 30
Prácticas de laboratorio Realización de prácticas 70
 
Observacións avaliación

Fontes de información
Bibliografía básica R. Stevens (1992). Advanced Programming in the Unix Environment.. Addison-Wesley
R. Mecklenburg (2004). Managing project with GNU Make. O'Reilly
A. Robbins (2000). Unix in a Nutshell. O'Reilly

Bibliografía complementaria


Recomendacións
Materias que se recomenda ter cursado previamente

Materias que se recomenda cursar simultaneamente

Materias que continúan o temario

Observacións
La presente materia tiene un fuerte componente práctico. La división en temas está pensada para facilitar la adquisición progresiva de los conocimientos y permitir que la aplicación de los mismos sea incremental. Con este esquema se pretende reducir el tiempo de aprendizaje. El alumno deberá tratar de resolver los problemas planteados con ayuda del material proporcionado. Además deberá llevar a cabo de forma individual un proyecto propuesto por el profesor, que le obligará a realizar una buena planificación para poder entregar en fecha el trabajo solicitado. Además de la bibliografía recomendada, resulta muy interesante la búsqueda y selección de recursos en Internet.


(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías