Datos Identificativos 2014/15
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 O obxetivo do curso é proporcionar unha destreza na programación, a compilación e a execución de aplicacións científicas en xeral. O curso é unha introducción a ferramentas e técnicas básicas necesarias para programar códigos científicos de alta calidade en entornos Unix. Os contidos do curso se poderán aplicar a programas Java, C, C++ e 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
Desenvolver código nun entorno Unix e entender as fases involucradas neste desenvolvemento AI3
AI4
BI9
Escribir programas usando unha aproximación modular con múltiples ficheiros e chamadas a librerías externas AI3
AI4
AI10
BI9
Mellorar o entorno de desenvolvemento e execución das súas aplicacións mediante ferramentas que permitan unha maior comodidade e productividade na programación/execución AI3
AI4
AI10
BI9
CM2
CM3
CM6
CM7
Cuantificar e avaliar o rendemento dos seus propios códigos AI1
BI3
BI4
BI6
BI8
BI13
CM1
Obter datos “experimentais” dos seus propios códigos AI1
AI2
BI4
BI6
BI8
BI13
CM1

Contidos
Temas Subtemas
1. Introducción a. Linguaxes de programación en HPC
b. Ciclo de vida no desenvolvemento de programas
Introducción ó sistema operativo Unix a. Historia
b. Comandos básicos
2. Ferramentas de desenvolvemento software a. Entornos de desenvolvemento
b. Xestión de versións
c. Depuración de programas
d. Xeración de documentación
3. Compilación/linkado de programas a. Descripción do proceso de compilación/linkado
b. Compiladores C e Fortran
c. Descripción e uso das opcións de compilación
d. Definición e uso das opcións de optimización
e. Chamadas a subrutinas Fortran dende C e viceversa
4. Execución de programas a. Sistemas de colas
b. Programación de scripts.
c. Analise de rendemento
5. Construcción de software a. Ficheiros make para a construcción de software
b. Librerías: creación e manipulación de librerías propias
c. Documentación de usuario: man e info
d. Empaquetadores
Contidos prácticos: • Resolución de boletíns de exercicios relacionados coos tópicos estudiados en
clase.
• Realización de prácticas semi-dirixidas polo profesor
• Realización dun proxecto proposto polo profesor: utilización e/ou construcción de software para a resolución dun problema complexo que involucre a maioría dos contidos 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 traballo en grupo que ten como finalidade o estudo intensivo dunha ferramenta ou conxunto de ferramentas determinadas, desde unha perspectiva prácticas. Se utilizan como plataforma previa á utilización de dita(s) ferramenta(s) nas clases prácticas, por iso se caracterizan pola practicidade dos conñecementos adquiridos.
Prácticas de laboratorio Actividade que permite ós estudiantes aprender e afianzar os coñecementos xa adquiridos sobre as diferentes ferramentas nos seminarios mediante a realización de sesións prácticas en ordenadores.
Sesión maxistral Exposición oral complementada col uso de medios audiovisuais e a introducción de fases de debate cos estudantes. O obxetivo é presentar ós estudantes unha perspectiva xeral das ferramentas que se van a empregar no resto da asignatura, así como do contexto e as finalidades para as que se utilizan.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Descrición
A atención personalizada na realización das prácticas de laboratorio se amosa imprescindible para dirixir ós alumnos no uso das diferentes ferramentas. Ademáis, esta atención servirá para validar e avaliar a destreza adquirida por cada alumno no uso das diferentes ferramentas tratadas na asignatura.

Avaliación
Metodoloxías Descrición Cualificación
Seminario Seguemento continuado e obxetivable dunha 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

A presente materia ten un forte compoñente práctico. A división en temas está pensada para facilitar a adquisición progresiva dos coñecementos e permitir que a aplicación dos mesmos sexa incremental. Con este esquema se pretende reducir o tempo de aprendizaxe. O alumno deberá tratar de resolver os problemas plantexados coa axuda do material proporcionado. Ademáis deberá levar a cabo de forma individual un proxecto proposto polo profesor, que lle obligará a realizar unha boa planificación para poder entregar en plazo o traballo solicitado. Ademáis da bibliografía recomendada, resulta moi interesante a búsqueda e elecció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