Un paseo por cloudnumbers
Cloudnumbers es una empresa que ofrece servicios de computación de alto rendimiento en la nube con especial énfasis en aplicaciones que corren sobre R. Me ofrecieron una cuenta temporal y gratuita el otro día y en la entrada de hoy voy a describir mis primeros pasos en su plataforma.
Hace dos años hice, y dejé descrita, mi primera incursión en la computación con R en la nube. En dicha ocasión utilicé la plataforma EC2 de Amazon: en resumidas cuentas, Amazon alquila servidores con diversas configuraciones de software por horas a un precio muy competitivo y uno puede acceder a ellos vía ssh, instalar R, los paquetes necesarios, correr el código y descargar los resultados.
Cloudnumbers ha desarrollado una interfaz entre el usuario y EC2 —que es quien finalmente proporciona los servidores— concebida para facilitar su manejo. Está pensada para quienes quieren aprovechar la capacidad de cálculo que proporciona la nube con diversas herramientas y, en particular, R.
Mi experiencia comenzó en la página de acceso al servicio, donde introduje el nombre de usuario y contraseña que me habían proporcionado. Inmediatamente accedí a una página en la que aparecieron mis
- workspaces, que son espacios de almacenamiento persistente y
- sesiones, que son instancias de un servidor.
Las sesiones se abren cuando quieres ejecutar algún proceso y las cierras cuando terminas. Cada hora de uso de una sesión tiene un precio que depende de sus características y que va descontándose de tu crédito inicial.
El procedimiento de trabajo consiste esencialmente de los siguientes pasos:
- Subir tus ficheros a un workspace
- Crear una sesión asociada a dicho workspace
- Ejecutar el proceso en la sesión correspondiente
- Guardar tus resultados en el workspace y cerrar la sesión
- Descargar los resultados del workspace
En el resto de la entrada, voy a detallarlos y acompañarlos de capturas de pantalla. En primer lugar, subo mis ficheros (código, datos iniciales, etc.) a un _workspace —_un directorio remoto— al que uno puede subir y bajar ficheros a través de una inerfaz como la siguiente:
Una vez subidos el código y los datos iniciales necesarios, creo una sesión. Para ello, primero le asocio un workspace:
Después, selecciono el tipo de aplicación que quiero ejecutar (R, en mi caso):
Como he seleccionado R, tengo la opción de elegir qué paquetes añadir a mi instancia:
Luego puedo elegir el tipo de hardware sobre el que correrá mi sesión: número y tipo de CPU, tamaño de la memoria, etc. Obviamente, en función de dicha selección, variará el precio por hora de uso de la instancia.
Finalmente, puedo dar un nombre a la instancia y confirmar la selección. A partir de ese momento, comienza la instalación de la sesión —proceso que puede llevar varios minutos— al cabo del cual se tiene acceso a la interfaz de la sesión. A través del navegador, uno se encuentra con varias pestañas.
Una de ellas es la de la consola, donde puede ejecutar R. Los paquetes elegidos de antemano están disponibles.
La pestaña desktop proporciona acceso al escritorio de una sesión de Ubuntu.
Puede apreciarse cómo los ficheros de nuestro workspace (que hemos subido previamente) están montados en una carpeta. Nuestra sesión de R puede leer y escribir en ella. En realidad, tenemos un Ubuntu corriendo en nuestro navegador, y podemos abrir cualquier aplicación: desde la terminal hasta un navegador (que hará las delicias de los amigos de la recursividad).
En la pestaña de estadísticas uno puede seguir la evolución de uso de los distintos recursos del sistema:
También es posible seleccionar un fichero y editarlo:
Una vez que el proceso que se quiere correr en la instancia termina —¡hay que asegurarse de que los datos de salida se guardan dentro del workspace!— se puede deterner la sesión —y así deja de correr el taxímetro— y descargar los resultados al ordenador local a través de la interfaz del workspace.
¿Qué experiencia tendrán mis lectores con este tipo de plataformas? Estoy pensando en contar lo mismo que aparece en esta entrada en las Jornadas de R. ¿Creéis que valdría la pena?