Técnicas de Computación Científica.  

Comienzo Curso 11/12: ( 4 de Octubre: repetición clase de presentación del 28 de Septiembre. Aula 3102.)

NOTA: .


Optativa, Quinto Curso - Primer Cuatrimestre - 4.5 Créditos - Máximo 25 Alumnos.



 

Profesores:                                        

  vicente@fi.upm.es



Breve descripción:

La computación científica ha jugado tradicionalmente un papel muy importante en el avance de la informática.  En los inicios de ésta era prácticamente la única fuerza impulsora,  proporcionando los problemas que eran la motivación para el desarrollo tanto de software como de hardware.  Recordemos que los problemas para los que se construyeron máquinas como el ENIAC procedían de las áreas técnicas y científicas.  El primer compilador que se  realizó (en 1957) fue el de Fortran I,  acrónimo de FORmula TRANslator, destinado al mercado técnico. Posteriormente,  los ordenadores se fueron aplicando también en otras areas.  La computación científica acabó convirtiéndose en sinónimo  de cálculo intensivo y de grandes máquinas -ordenadores vectoriales,  paralelismo masivo, etc.-  con un número muy limitado de usuarios que se ocupaban de problemas extremadamente técnicos y muy lejos de cualquier aplicación inmediata.

Si bien es cierto que es en las áreas donde las necesidades de velocidad y memoria son más acuciantes donde la Computación Científica ha mostrado más su importancia,  no lo es el que sea un mercado pequeño o que sus únicas contribuciones pertenezcan a temas muy alejados de la práctica informática habitual. De hecho, el mercado técnico y científico es hoy más grande que nunca y, debido a la importancia del ordenador en el desarrollo, diseño y fabricación de nuevos productos, está creciendo muy rápidamente.  La última contribución realmente llamativa es el mismo World Wide Web.  Este se desarrolló en el CERN (Centre Européenne pour la Recherche Nucleairé) como respuesta a las necesidades de colaboración entre grupos internacionales de investigadores.  El posterior desarrollo de un browser gráfico  (Mosaic) en el NCSA (National  Center for Supercomputing Applications), también dedicado a la computación científica,  proporcionó el empuje inicial para  el enorme  crecimiento  que ha experimentado  la internet hasta convertirse en la base de lo que llaman la nueva economía.

 Un último desarrollo generado en este campo y con un previsible gran impacto en el resto del mundo informático es el GRID.Este nombre fue puesto por analogía con el nombre inglés para las redes eléctricas. La idea básica es tratar el poder de cálculo o de acceso a datos como si se tratase de un fluido. El objetivo final es que desde cualquier punto de acceso a la red se puedan utilizar todos sus recursos de una manera transparente, independientemente de que aquellas máquinas que hacen los cálculos tengan distintas arquitecturas o que estén geográficamente dispersas o que unas se ocupen de servir o recoger los datos, otras de trabajar con ellos y otras de presentar los resultados.  La realización total de este potencial depende de que seamos capaces de sincronizar muchos recursos distintos y dispersos para lo que hay que tener en cuenta, además del hardware,  una serie de capas software que van desde las herramientas de programación a los protocolos de comunicaciones y seguridad que permiten el acceso a todos los recursos necesarios requeridos por una aplicación. Realizando autentificaciones entre distintas máquinas, garantizando accesos a ciertos recursos, etc. Y esto realizado de manera transparente para el usuario final, de modo que su utilización no sea más complicada que un recurso puramente local.  Hay varios proyectos en marcha y es una línea de investigación preferente tanto de los programas de investigación europeos como norteamericanos.
 

La  Computación Científica sigue siendo,  pués, una fuerza importante en el  desarrollo de la informática.  Uno de los motivos para el auge que está teniendo esta rama es el abaratamiento de los ordenadores de grandes prestaciones  y  el  aumento  de  potencia de los ordenadores tipo workstation.  Además, la agrupación de estos en clusters y las tecnologías que ya ha generado el GRID han aumentado el tamaño y complejidad de los problemas tratables. Esto ha hecho que el número de usuarios interesados en resolver problemas en ciencia e ingeniería utilizando ordenadores  se haya incrementado tan notablemente que en algunos paises se están ofreciendo especializaciones en una nueva rama, híbrida entre la informática y otra ciencia o ingeniería,  bajo el nombre de "Ciencia e Ingeniería Computacional" (por  distinguirla de  Ciencias de la Computación. Ver 1 , 2 , 3  , 4).  En esta nueva titulación se ofrece formación en aquellas áreas, tanto de ciencia como de ingeniería,  en las que el peso de las técnicas computacionales es tal que no se puede progresar sin la ayuda de la informática. Es esta una titulación en expansión. Un listado de algunas de las Universidades que la imparten se puede encontrar aqui.
 
 

No obstante, la gran mayoría de usuarios de  la computación científica,  o bien carecen de una formación específica en informática o bien consideran que personal  formado  como informático es el que debiera ocuparse de la parte computacional del problema.  Este curso pretende mostrar al  estudiante de informática las técnicas computacionales básicas con un mayor impacto en el área de la computación científica.  El objetivo es  que sea capaz  bien de integrarse en un grupo de trabajo ocupado en resolver este tipo de problemas o bien de asesorar sobre el uso  óptimo de la informática en este campo. El énfasis se pone en dos áreas, por un lado las técnicas que permiten extraer el máximo rendimiento de un ordenador dado, bien sea mediante la optimización secuencial o mediante el uso del paralelismo, y por otro, en la creación de aplicaciones para  la  presentación y exploración de las -típicamente enormes- cantidades de datos generadas  por los programas de cálculo masivo usuales en este campo.


Plan de Clase:

 Puesto que la asignatura tiene un enfoque eminentemente práctico, aproximadamente la mitad de las clases serán en un aula normal y la otra mitad en una aula informática. La distribución, siempre que sea posible, será de una clase teórica en la que se explicarán las técnicas que se pondrán en práctica, típicamente durante la siguiente clase, en el aula informática.


Temario:



 

Calificación:

Al finalizar cada uno de los tres temas los alumnos, en grupos de dos, propondrá por escrito (máximo dos folios) una trabajo relacionado con el tema. Esta propuesta será discutida con el profesor. Una vez realizado el trabajo, idéntica calificación será asignada a los dos miembros del grupo. La nota final será la media aritmética de los tres trabajos. Un esquema básico de trabajo se da aquí. Alternativamente a los trabajos, los alumnos podrán extender los ejercicios realizados en las clases prácticas y entregar los resultados como sustituto del trabajo del tema correspondiente.
Se espera de los alumnos que asistan a la gran mayoría de las clases prácticas.  Aquellos que asistan a menos de un 60% de las clases tendrán que pasar por un exámen de la asignatura. Dicho exámen constará de dos partes de una duración aproximada de una hora cada una. En la primera parte el alumno contesta por escrito a una serie de preguntas. En la  segunda, realizada en un aula informática,  deberá resolver (escribiendo algún programa corto o modificando alguno ya hecho y demostrando sus resultados) una serie de cuestiones prácticas. Evidentemente, ésta última parte se realizará usando los mismos entornos utilizados durante la asignatura. El exámen también lo podrán realizar aquellos alumnos que deseen subir la nota. En este caso deberán comunicarlo con antelación suficiente al profesor.

 
 


 Material de Clase:

Los programas a los que se hacen referencia en las siguientes transparencias están disponibles en el repositorio de la asignatura. La mayoría están escritos en Fortran 90, algunos están en C. Dada la simplicidad de la sintaxis del lenguaje no se espera que el alumno esté  previamente familiarizado con Fortran en ninguna de sus variantes. Las transparencias que estan a continuación son versiones razonables, pero cada año hay modificaciones que no necesariamente están en estas.
 
 



 

Nota Sobre las  Clases Prácticas:

Las clases prácticas se realizarán usando los siguientes sistemas:
 



De los diversos paquetes de visualización científica existentes hemos elegido DataExplorer. El motivo principal, además de ser un sistema muy completo al nivel de los mejores en su campo,  es que en la actualidad está bajo licencia OpenSource y por tanto se puede disponer de el en casi cualquier plataforma. Nosotros lo usaremos bien en la SP2 o bien bajo Linux, según las asignaciones de máquinas del Centro de Cálculo.



 

Referencias y Bibliografía:


Conferencias:

En la medida de lo posible y con el objeto de familiarizar al alumno con trabajo de investigación real relacionado con las técnicas mostradas en la asignatura, cada año se intenta traer un conferenciante externo que ofrece una clase  magistral.  Aquí reseñamos algunas de las ofrecidas en años anteriores junto con el material que nos haya sido cedido por el autor.
 











 
 
 
 
 

vicente@fi.upm.es                                                                                                                                                                          Actualizado: 24-Julio-2008