jueves, octubre 13, 2005

Cuando el tiempo de ejecución importa

Cuando se programa una aplicación, generalmente la rapidez de los componentes no resultan un factor tan importante como antaño (velocidad del procesador, velocidad de acceso a memoria, etc), porque la máquina trabaja tan rápido como el más lento de sus componentes.

Cuando la aplicación interactua con un usuario, será tan rápido el proceso, como la velocidad de respuesta del usuario.

Es común encontrar en la Internet discusiones sobre la ventaja en rendimiento de un lenguaje compilado sobre uno interpretado.

Este rendimiento no resulta en ventaja real en tiempo de ejecución cuando existe un usuario que interactuará con la aplicación. Y si puede ser un factor en tiempo de desarrollo el lenguaje ocupado. Por ejemplo, realizar una aplicación en lenguaje C puede resultar en un tiempo muy largo de desarrollo en comparación con el tiempo de desarrollo en Python de esa misma aplicación. Y puede ser que el rendimiento final sea insignificante porque existe una interacción con un usuario.

Sin embargo, a pesar de que en muchos casos no importará mucho si se usa un lenguaje interpretado o un lenguaje compilado para programar una aplicación dada; hay casos especiales en que el rendimiento si importa.

El computo científico se caracterisa porque mediante computadoras buscan simular comportamientos de interés para la comunidad científica. Simular comportamiento de proteínas, reacciones nucleares o atómicas, comportamiento de fluidos, etc.

Estas simulaciones son muy complejas y demanda un gran poder de cálculo. En algunos casos, se tiene sistemas de ecuaciones que tratan de aproximarse a la descripción del comportamiento del fénomeno de interes; y estos sistemas de ecuaciones no siempre se pueden resolver de manera analítica, y cuando es posible, el tiempo que ha de invertirse en su solución puede ser demasiado.

Para resolver estos sistemas, se utilizan métodos numéricos que nos den una aproximación lo mejor posible a la solución real. Y estos métodos se programan para que sea una computadora quien realice el trabajo de cálculo.

Este proceso puede tardar desde horas, hasta meses; así que los investigadores que se dedican a realizar estas tareas, buscan métodos más eficiente así como también les importa que el lenguaje que van a usar genere un programa que se ejecute lo más rápido posible, porque una diferencia del 10 % cuando se habla de meses, es una ganancia significativa.

1 Comentarios:

Anonymous Anónimo dijo...

¡Bien dicho! El siguiente paso es ¡¡muerte a .NET!

¡Expropiemos el laboratorio de Microsoft de la facultad!

:P

10:40 p.m.  

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal