El itinerario de Ingeniería de Computadores del Grado en Ingeniería Informática

12 junio, 2014

En esta entrada presentamos en detalle el itinerario de Ingeniería de Computadores dentro del Grado en Ingeniería Informática adaptado al EEES. En inglés, esta subdisciplina se denomina Computer Engineering, según las guías curriculares de la ACM (Association for Computer Machinery).

Hoy en día la tecnología impregna nuestras vidas y presenta nuevas oportunidades y retos a los cuales tenemos que hacer frente a través de conocimientos y adelantos tecnológicos que evolucionan constantemente. Por ejemplo, la evolución de los ordenadores personales, los dispositivos de movilidad (como tablets, y smartphones), y las tecnologías de comunicación, tanto las redes alámbricas como las inalámbricas. Pero también tenemos desde sistemas de cómputo hechos a medida para ser empotrados, por ejemplo en electrodomésticos o automóviles, hasta grandes supercomputadores, que mediante técnicas de computación de altas prestaciones (HPC, high performance computing), simulan la evolución del clima, de las galaxias, o nos permiten analizar el genoma de los animales, las plantas y el humano para determinar tratamientos y diseño de nuevos fármacos para diversas enfermedades. Por estos motivos actualmente la Ingeniería de Computadores está siendo el foco de gran atención y expectación dentro de las disciplinas relacionadas con la Ingeniería Informática.

Consecuentemente, la Ingeniería de Computadores nace dentro de un marco en el cual se estudia el diseño y la aplicación de los computadores para dar soluciones a los problemas cotidianos y no cotidianos de la sociedad. Los computadores como principal actor de este marco enlazan ámbitos relacionados con los equipos electrónicos (hardware), la programación (software) y las telecomunicaciones. Esta potente combinación de ámbitos controla una parte significativa de nuestras tareas diarias impactante de forma positiva en la economía, progreso, seguridad y bienestar de la sociedad.

Concretando algo más su influencia y repercusión, por un lado los procesadores (CPU) son cada vez más potentes incorporando multitud de núcleos (o cores) de procesamiento dando lugar a potencias de cómputo, dentro de una única máquina (que hoy en día podemos tener en nuestro escritorio), que hace unos años no lograban ni los supercomputadores más potentes. En la computación de altas prestaciones, se combinan estas arquitecturas avanzadas, las CPU multicore, combinándolas en múltiples nodos para formar estructuras de computación en Cloud Grid o Clúster, permitiendo escalar así la computación a múltiples nodos. Existe, también, la posibilidad de combinar diversas y nuevas formas de computación, como las basadas en computación gráfica (GPU: Graphic Processing Unit) con las clásicas por procesador central. Es por todo ello que con este complejo conjunto de nuevas tecnologías y desarrollos hardware podremos afrontar problemas anteriormente irresolubles en tiempos aceptables, y permitiendo escalar en varios factores de magnitud (x100, x1000, o incluso mayores) el rendimiento de algoritmos científicos comunes usados en múltiples campos.

Por otro lado, nos encontramos en un mundo totalmente conectado y globalizado en el que disponemos de servicios de almacenamiento y procesamiento completamente distribuidos (denominado cómputo o almacenamiento en la nube).

La Ingeniería de Computadores ofrece un abanico de posibilidades muy amplio para dar soluciones a los problemas expuestos: desde los más pequeños pensados para resolver un problema específico/cotidiano (gestión interna de funciones un electrodoméstico, móvil, coche, videojuegos,  etc.) hasta las grandes infraestructuras distribuidas que tienen que gestionarse de forma eficiente (redes de telecomunicaciones, bases de datos, cómputo científico, etc.).

Temas clave en Ingeniería de Computadores
Temas clave en Ingeniería de Computadores

Podemos distinguir diferentes ámbitos de referencia dentro de este itinerario:

– Administración de sistemas y redes de computadores: Administración y configuración de un sistema informático: desde los sistemas operativos, hasta las redes de computadores, y la gestión de la seguridad del entorno.

– Arquitectura de computadores: Análisis de los elementos comunes y estructura de las principales arquitecturas. Análisis de arquitecturas paralelas, multicore, basadas en computación gráfica (GPUs), multiprocesadores, y  multicomputadores.  Análisis de rendimiento de algoritmos científicos, y adecuación (/sintonización) de éstos para arquitecturas particulares.

– Sistemas operativos: Componentes y gestión del sistema operativo, modificación de las funcionalidades de un kernel, del sistema de ficheros, de la entrada/salida. Concurrencia. Diseño de componentes de un sistema operativo.

– Sistemas empotrados (embedded): Componentes software y hardware del sistema, sistema operativo para entornos empotrados, programación de funcionalidades, test y evaluación del sistema.

Para acceder a este itinerario se recomienda una buena base de programación, tanto a alto nivel (C por ejemplo), como en bajo nivel (ensamblador). También se recomienda tener una buena base sobre: componentes básicos de un ordenador, el funcionamiento de los sistemas operativos y la configuración básica de los componentes de una red.

Los trabajos finales de itinerario tienden a aplicar los conocimientos adquiridos dentro del itinerario. Dejamos a continuación algunos ejemplos de proyectos :

– Virtualización y Cloud Computing en la Pyme: Se introduce a las pequeñas y medianas empresas en el mundo de la virtualización y el cloud computing. Partiendo de la presentación de ambas tecnologías, se recorren las diferentes fases por las que atraviesa un proyecto tecnológico consistente en la instalación de una plataforma virtualizada que alberga los sistemas informáticos básicos en una PYME.

– Exploring Cross-layer power management for PGAS applications on the SCC platform: Se investiga el comportamiento de alimentación de los núcleos de aplicaciones científicas PGAS en la plataforma Intel SCC y se exploran las oportunidades y desafíos para la administración de energía en el marco PGAS.

– Evaluación de aplicaciones HPC sobre Clouds públicos / privados: Se evalúan los recursos de computación en Cloud, para determinar su adecuación a las tareas HPC (Computación de altas prestaciones).

– Costes energéticos y rendimiento con entornos virtualizados en nuevas aplicaciones de memorias Flash: Medir en sistemas distribuidos cuánto supone el coste energético con la utilización de máquinas virtuales en función de las tecnologías de almacenamiento empleadas y determinar si existen posibles estrategias que mejoren este ahorro de consumo, en particular con nuevas tecnologías de almacenamiento Flash.

– Linux como sistema operativo de tiempo real: Evaluación del kernel Linux para capacidades de tiempo real, para sistemas empotrados, análisis de los diferentes parámetros que intervienen en los componentes del kernel.

– Desarrollo CUDA en Java y Python: Se analizan las diferentes posibilidades de computación gráfica (mediante GPU) en los lenguajes Java y Python, y se realizan varias implementaciones de algoritmos en la plataforma NVIDIA Cuda.

Respecto a las salidas profesionales, la mayoría de los perfiles de este itinerario están muy valorados dentro de las empresas (p.e. casos administrador, hardware) ya que en gran medida dependen de él la buena operación de todos los componentes de un sistema informático, así como el diseño y test de nuevos productos o servicios. A continuación describimos posibles salidas profesionales:

– El análisis, diseño, desarrollo, implantación, pruebas y mantenimiento de aspectos relacionados con los equipos electrónicos (hardware), la programación (software) y las telecomunicaciones.

– Mantenimiento y configuración de sistemas de computadores a gran escala (mainframe systems).

– Diseño de sistemas de redes (LAN y WAN) para la transmisión de voz, datos, video,… a través de medios tanto alámbricos (Ethernet, fibra óptica) como inalámbricos  (tecnologías WiFi) teniendo en cuenta aspectos de rendimiento y seguridad.

– Subsistemas digitales integrados en otros equipos (embedded systems)

– Diseño de sistemas y aplicaciones específicos: Dispositivos móviles, industriales, domótica, …

– Diseño de sistemas, middleware y aplicaciones distribuidas: redes de computadores, sistemas Grid y sistemas Cloud.

– Diseño y optimización de algoritmos para aplicaciones de altas prestaciones: Desde juegos hasta cómputo científico.

Finalmente, este itinerario también permite realizar actividades de investigación dentro de los ámbitos de referencia. Como ejemplo de dichos ámbitos podemos mencionar: diseño de nuevas arquitecturas de microprocesadores; arquitecturas paralelas y/o distribuidas; adecuación de algoritmos a computación gráfica (mediante GPUs); diseño de nuevos algoritmos para diversos campos científicos mediante métodos de HPC (computación de altas prestaciones); diseño de herramientas de análisis y sintonización de rendimiento para aplicaciones paralelas y distribuidas en entornos multicore, GPU, o computación en Cluster, Grid y Cloud.

(Visited 233 times, 1 visits today)
Autor / Autora
Comentarios
Estudiante3 julio, 2014 a las 9:41 am

Yo mismo consideré este grado, y ahora amigos más pequeñas me preguntan el respecto. Soy estudiante del de comunicación y estoy contento con mi elección. Muchas gracias por el post bien documentaado, sin duda les referiré a este artículo.

Responder
Deja un comentario