Última actualización: 19/04/2023


Curso Académico: 2023/2024

Computación Masiva
(16499)
Doble Grado Ciencia e Ingeniería de Datos - Ingeniería en Tecnologías de Telecomunicación (Plan: 456 - Estudio: 371)


Coordinador/a: MOLINA BULLA, HAROLD YESID

Departamento asignado a la asignatura: Departamento de Teoría de la Señal y Comunicaciones

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
Los laboratorios se harán usando los lenguajes C y Python.
Objetivos
El objetivo principal de esta asignatura es formar analistas en ciencias de datos, ya sea para investigación o el mercado laboral, usando las técnicas más novedasas que se aplican en aprendizaje máquina. Nos orientaremos aprender como sacarle el mayor partido a los recursos computacionales que podemos tener a nuestra disposición, desde el ordenador propio, recursos en la nube para programación con GPUs y programación para Big Data; conocimientos con alta demanda en diversos entornos. Para se explicarán los conceptos básicos de programación paralela: 1- usando los recuros de los ordenadores comunes, 2-programación hibrida: usando los recursos de un ordenador normal y hardware específico como las tarjetas de procesado gráfico (GPUs) 3- programación distribuida y en la nube, para grandes casos, como Big Data.
Competencias y resultados del aprendizaje
Descripción de contenidos: Programa
Programación Paralela: * Programación Multiprocesador/Multicore * Programación Paralela con Memoria Compartida (y los peligros para los datos) * Programación Paralela con Memoria Compartida con semáforos y bloqueo Programación Hibrida * Uso de las GPUs y su diferencia con el procesador del ordenador común. * Como se programan las GPUs: cuando y como se pueden utilizar. * Uso de técnicas avanzadas de programación en GPUs, gestión de los recursos de GPU. * COmo usar la GPU en Aprendizaje Máquina Programación Distribuida * Que es la computación distribuida y como podemos aprovecharla. * Uso de plataformas para programación distribuida para BigData y Aprendizaje Máquina * Casos de uso de Apache Spark para aprendizaje máquina
Actividades formativas, metodología a utilizar y régimen de tutorías
AF1: CLASES TEÓRICO-PRÁCTICAS. En ellas se presentarán los conocimientos que deben adquirir los alumnos. Estos recibirán las notas de clase y tendrán textos básicos de referencia para facilitar el seguimiento de las clases y el desarrollo del trabajo posterior. Se resolverán ejercicios, prácticas problemas por parte del alumno y se realizarán talleres y prueba de evaluación para adquirir las capacidades necesarias. AF2:  Actualizado a alegación AF3: TRABAJO INDIVIDUAL O EN GRUPO DEL ESTUDIANTE. MD1: CLASE TEORÍA. Exposiciones en clase del profesor con soporte de medios informáticos y audiovisuales, en las que se desarrollan los conceptos principales de la materia y se proporcionan los materiales y la bibliografía para complementar el aprendizaje de los alumnos. MD2: PRÁCTICAS. Resolución de casos prácticos, problemas, etc. planteados por el profesor de manera individual o en grupo. MD3: TUTORÍAS. Asistencia individualizada (tutorías individuales) o en grupo (tutorías colectivas) a los estudiantes por parte del profesor.
Sistema de evaluación
  • Peso porcentual del Examen Final 0
  • Peso porcentual del resto de la evaluación 100
Calendario de Evaluación Continua
Bibliografía básica
  • Benjamin Bengfort ; Jenny Kim. Interactive Spark using PySpark. O'Reilly Media. 2016
  • Holden Karau ; Rachel Warren. High Performance Spark. O'Reilly Media. 2017
  • Holden Karau, Andy Konwinski, Patrick Wendell & Matei Zaharia. Programming in Scala. Artima.
  • Mike Frampton. Mastering Apache Spark. Packt Publishing. 2015

El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.