Creando un servidor local para usar ParaView en paralelo.

Vamos a intentar hacer algo diferente.

Si alguien se ha lanzado a la aventura de aprender a usar OpenFOAM posiblemente habrá usado ParaView -o paraFoam- del modo tradicional, pero de esa manera estaremos desperdiciando los recursos que ofrece nuestro procesador (seguramente tengamos 2 o 4 cores en el ordenador de casa o en el portátil).

Quien halla llegado aquí del lado de la visualización científica posiblemente use ParaView “a secas” por lo que vamos a trabajar conformatos de datos para todo el mundo. Para ver cómo se exportan datos de OpenFOAM podéis ir a la sección al final.

Paraview en Paralelo.

Uno de los puntos fuertes de este software es que puede usarse en muchos cores de forma transparente al usuario (por lo que he visto hasta ahora) mediante el uso de rutinas mpi. Para ello debemos iniciar de una forma diferente nuestro programa, tenemos que configurar un servidor. Es muy simple en red local, pero puede complicarse ad infinitum si es remoto, con proxis,firewalls y esas cosas… pero como por ahora solo queremos exprimir nuestros cores vamos con ello:

1.-Nos movemos al directorio /bin de nuestra instalación de paraview, en mi caso (en Linux) es /opt/paraview…./bin.
2.-Desde ahí, en la terminal, lanzamos el script pvserver que inicia la conexión al “servidor” de paraview

$mpirun -np <numero_de_cores> ./pvserver --server-port=20000

mpirun nos pide un argumento que es el número de cores que podemos dejarle para jugar, -np .
Podéis ver las opciones de pvserver haciendo como siempre:

$pvserver --help

3.-Una vez hecho lanzamos paraview y configuramos -si no tenemos ya uno hecho- un nuevo servidor. File->Connect.

En esa ventana configuramos el servidor dando nombre y puerto (el puerto por defecto es 11111), se puede dejar pero yo lo he cambiado porque tengo otro servidor en ese puerto:

Pinchamos configurar y ponemos manual en la pestaña. Ésta es la versión más simple, y quiere decir que no podremos lanzarlo en remoto, pero para usarlo en nuestro propio ordenador nos sirve.

Quien quiera aventurarse a explorar más posibilidades tiene un buen punto de partida aquí. Setting up a ParaView Server.

4.-Tenemos a la consola esperando la conexión, así que ahora que tenemos nuestro servidor configurado volvemos a File->Connect y seleccionamos nuestro servidor, conectamos y listo. Ya estamos funcionando en paralelo (si es que no nos ha salido ningún error).

Abriendo casos.

¿Habrá que probarlo, no? =)

Y para eso tendremos que tener datos para trabajar, yo los voy a sacar de un caso de prueba de OpenFOAM (/incompressible/simpleFoam/airfoil2D para más señas).

Como ParaView se utiliza para el postprocesado de datos en campos muy diversos seguro que no todos los que estéis leyendo esto pretendéis utilizarlo para OpenFOAM, por lo que voy a convertir los datos a un formato VTK para que quien no tenga instalado paraFoam pueda leerlos. Desde el directorio raíz del caso:

$foamToVTK

Os dejo el fichero (son 18 Mb) por si queréis jugar con el.
Una vez abrimos ParaView, bien desde el modo gráfico o desde la terminal con:

$paraview

Para abrir un caso tenemos que abrir el fichero raíz de la carpeta VTK que contiene una indexación de los directorios:

No pasa nada si no os salen estos colores, he cambiado el esquema de color por defecto a HVS – “Red to blue rainbow” con el que me siento más cómodo =). En el icono de la barra de colores podéis cambiarlo cuando queráis.

Podéis jugar a poner líneas de corriente y secciones, ¿Notáis la diferencia de velocidad en el cálculo?.

Alguna cosa que me he dejado en el tintero.
Durante el tutorial me he visto en la obligación de no usar paraFoam sino solo paraview para abrir los ficheros, por lo que he tenido que trabajar con las extensiones VTK, pero he aprendido a hacer ficheros con extensión .foam para poder abrir los casos de openFOAM directamente el ordenadores que no tengan paraview. Desde la raíz del caso con una de las dos órdenes siguientes:

$touch case.foam
$paraFoam -touch -builtin

El fichero con el que hoy hemos trabajado lo dejo para la siguiente entrada, vamos a ver alguna cosa que seguramente no conocíais de OpenFOAM si lleváis relativamente poco tiempo.

Esta entrada fue publicada en cfd, computación paralela, OpenFOAM, python y etiquetada , , , , . Guarda el enlace permanente.

2 respuestas a Creando un servidor local para usar ParaView en paralelo.

  1. Alfonso Cubillos dijo:

    Que tal Samuel, muy interesante tu blog. Gracias.
    Hace días estuve mirando el tema de correr paraView en varios cores, pero me encontré con esto:
    http://www.cfd-online.com/Forums/openfoam-paraview/98531-how-run-parafoam-parallel.html

    Lo que entiendo de este foro, es que no tiene sentido correr paraFoam en paralelo si no se tienen varias tarjetas de video. Eso es cierto ?

    Gracias.
    Alfonso C

    • Samuel dijo:

      Hola Alfonso, gracias por la parte que me toca! He leído en enlace que me pasaste.

      En primer lugar quiero dejar claro que no soy un experto, voy a contestartelo mejor que pueda.

      Las GPU’s se diseñan desde el nivel hardware para realizar cierto tipo de operaciones especializadas en el renderizado, shaders, manejo de estructuras de vértices, etc.. de forma muy eficiente.

      En el caso de la visualización científica hay dos componentes, la visualización y el procesamiento de datos. Las CPU’s se encargan de lo segundo (aunque esto está cambiando). ¿Sirve de algo emplear paraview en paralelo? La respuesta por tanto es “depende de tus datos”.

      Partiremos de la base de que los datos de que dispones son de un tamaño considerable. ¿Quieres calcular muchas líneas de corriente, extraer superficies equipotenciales, calcular gradientes…? Necesitas CPU. ¿Tienes todos tus datos procesados y simplemente quieres manipularlos en tiempo real? No tiene sentido emplear CPU’s y librerías de renderizado.

      Otro factor a tener en cuenta, es que si empleas varios procesadores (no cores) puedes sacar partido de las GPU’s integradas, aunque es extraño que los servidores o los superordenadores empleen procesadores con gráficas integradas.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s