Categories
- deporte (1)
- entretenimiento (11)
- física (23)
- google SoC (19)
- informática (58)
- desarrollo web (4)
- java (2)
- motos (4)
- opinión (4)
- trabajo (9)
- ull (4)
- ulpgc (38)
- uncategorized (9)
Latest News
- Cómo hacer una interfaz web para un código científico (II)
- Cómo hacer una interfaz web para un código científico (I)
- Problemas computacionales en el SuperComputador de Canarias
- Quadpack
- Arquitectura exoterrestre
- Sistemas de control de versiones: Subversion
- Movistar y timofónica. Odisea 2008: Liberar el móvil.
- Poblaciones del Carbono bajo campo de radiación
- Tasas de absorción y emisión estimulada
- Intel Fortran Compiler
Monthly archives
- November 2009
- June 2009
- May 2009
- November 2008
- June 2008
- May 2008
- April 2008
- February 2008
- November 2007
- October 2007
- September 2007
- March 2007
- February 2007
- November 2006
- October 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
Links
Blogroll
Universidad
Search
Cómo hacer una interfaz web para un código científico (II)
El siguiente paso consiste en crear la infraestructura web para mantener la aplicación.
Lo más fácil es utilizar xampplite en Windows; en Linux hay que instalar el apache y un lenguaje de script con el que te sientas cómodo. Yo recomiendo python o php, aunque en este tutorial me ceñiré a php.
Nuestro sistema necesitará entradas, que serán suministradas por un formulario html, y un wrapper que lea las opciones del formulario y se las mande al código. Esto es un método directo, por así decirlo, hasta que instalemos un gestor de ejecución.
El formulario puede llamarse index.php y el wrapper run.php. Ambos en el mismo directorio del servidor web, que puede ser htdocs/wui.
He puesto un ejemplo que desarrollé para mi propio código. Es en el wrapper run.php donde se hace importante lo dicho en el anterior post, donde hablé de la necesidad de permitir al código leer opciones desde la línea de comandos.
El comando php para ejecutar el código es system(), que ejecuta un programa en el servidor. Cuando el programa termina, el script php continua su ejecución.
Ejemplo php:
$input = $_GET['opcion1'];
$output = $_GET['opcion2'];
system("micodigo -input $input -output $output");
¿Cuál es el problema aquí? Si nuestro código es costoso en tiempo computacional, tardará más de 10 segundos en ejecutarse. Tener al usuario esperando que una web se cargue más de 5 segundos es como mínimo, arriesgado: puede aburrise, darle a volver en el navegador, cerrar la ventana, etc.
Lo que necesitamos ahora es el job scheduler, para mandar el trabajo a ejecutarse y mientras, mostrar al usuario una web de espera y decirle cómo puede acceder a sus resultados cuando el trabajo haya finalizado.
De esto hablaremos en el siguiente post…
Posted by dsuarez
Posted in: uncategorized
No Comments »
November 2009
Cómo hacer una interfaz web para un código científico (I)
Recientemente he tenido que crear una interfaz gráfica sencilla para ejecutar via web el código de cálculo de propiedades radiativas de mi grupo de investigación.
Comienzo así una serie de posts sobre las técnicas que he utilizado para hacerlo funcionar.
En este primer post hablaré de la necesidad de controlar fácilmente las entradas y salidas del programa siguiendo buenas técnicas de diseño.
El programa será ejecutado por el servidor web en una primera fase o por un gestor de trabajos (job queue manager o job scheduling) en una fase posterior, es necesario que se le puedan pasar las opciones de ejecución por línea de comandos, al estilo Unix. Hay muchas formas de hacer esto y depende del lenguaje de programación utilizado. Esto es necesario porque varias instancias del programa se ejecutarán simultáneamente en la máquina, de modo que si los nombres de los ficheros están incluidos en el código fuente los ficheros pueden estar bloqueados por otra instancia, o peor aún, se sobreescribirán los datos de otras ejecuciones.
Por ejemplo, si disponemos de un código en python para ejecutar el Flexible Atomic Code para el cálculo de datos atómicos, será necesario que nuestro código admita al menos unos cuantos argumentos: elemento químico, ion y fichero de salida, de modo que pueda ejecutarse así:
runFac -ion 2 -elemento C -outfile carbono2.dat
Hechas estas modificaciones, podemos pasar a la segunda parte del artículo…
Posted by dsuarez
Posted in: uncategorized
No Comments »
November 2009
Problemas computacionales en el SuperComputador de Canarias
Posted by dsuarez
Posted in: uncategorized
No Comments »
June 2009
Quadpack
El quadpack es un conjunto de rutinas en fortran 77 que permiten realizar integraciones numéricas definidas e indefinidas mediante algoritmos muy bien probados. El FAC (Flexible Atomic Code) de la Universidad de Stanford hace uso de estas rutinas, por ejemplo.
Posted by dsuarez
Posted in: uncategorized
No Comments »
June 2009