Archive

Archive for the ‘General’ Category

Rendimiento de diferentes implementaciones de BLAST

February 21st, 2012

 

Introducción

El BLAST (Basic Local Alignment Search Tool) es un algoritmo y un programa informático de alineamiento de secuencias de tipo local, ya sea de ADN o de proteínas, empleado en bioinformática. El programa es capaz de comparar una secuencia problema contra una gran cantidad de secuencias que se encuentren en una base de datos y encontrar las que tienen mayor parecido así como la significación de cada resultado [1].

Muchas variantes han sido creadas para resolver algunos problemas específicos de búsqueda, pero BLAST es la herramienta más usada para la anotación y predicción funcional de genes o secuencias proteicas. BLAST es desarrollado por los Institutos Nacionales de Salud del gobierno de EE.UU., por lo que es de dominio público y puede usarse gratuitamente desde el servidor del Centro Nacional para la Información Biotecnológica (NCBI). No obstante, en el NCBI no se pueden hacer busquedas masivas al ser un recurso público y compartido [2].

El Servicio General de Informática Aplicada a la Investigación (IZO/SGI) de la UPV/EHU ha instalado y comparado 3 versiones diferentes de BLAST con el objeto de poder realizar cálculos másivos con BLAST. Para realizar cálculos masivos es necesario poder paralelizar el programa para poder emplear muchos cores simultáneamente. Una forma trivial es dividir el fichero de secuencias a estudiar en múltiples ficheros y enviarlos paralelamente y de forma independiente. Este método es complementario a cualquiera de las versiones estudiadas y es técnicamente sencillo. No obstante, tiene el inconveniente de tener que partir los datos iniciales para tras el cálculo tener que reagruparlos, cada uno de los procesos puestos en marcha debe de leer una copia de la base de datos lo cual es muy pesado y puede suponer un una importante carga para el servidor de datos, teniendo N cores no permite un reparto óptimo de la carga al no ser trivial el reparto de los procesos de forma homogénea en los recursos. Estos inconvenientes tendrán mayor o menor importacia dependiendo de la arquitectura y configuración del ordenador o cluster empleado.

Por ello, hemos escogido tres programas que paralelizan BLAST de forma diferente pero directa y que en cualquiera de los casos producen resultados idénticos: el proporcionado por el NCBI, gpuBLAST [3] y mpiBLAST [4]. Los benchmark se han ejecutado en nodos Xeon de 8 cores a 2.24 GHz y con una tarjeta Tesla C2070 y este software está instalado en las máquinas del IZO-SGI [5].

 

NCBI BLAST

Programa proporcionado con el NCBI capaz de abrir hilos de ejecución lo que lo limita a tener que ejecutarse en un único nodo y paralelizarse en tantos hilos como cores tiene el nodo (no se ha medido con hyperthreading activado). Con este programa hemos chequeado primero la dependencia del cálculo con el formato de la base de datos, en concreto con el tamaño máximo de cada fichero de la misma.

 

Tabla 1. Tiempo empleado por NCBI-Blastx en función del tamaño máximo de fichero de las bases de datos.
Tamaño máximo (MB) 1000 500 200
Tiempo (s) 4004 3063 2682

 

En la tabla 1 podemos ver como al reducir el tamaño máximo permitido para los ficheros que contienen la base de datos NR se aumenta el rendimiento de blastx de forma considerable. Por ello, no es recomendable la instalación de las bases de datos blast preformateadas que ofrece NCBI, pues son ficheros muy grandes cuyo rendimiento en ordenadores de muchos cores se ve penalizado al no poder repartir la carga en los cores adecuadamente. Es por tanto conveniente formatear manualmente las bases de datos produciendo un número suficiente de ficheros o fragmentos de base de datos. Hemos detectado también que el trocear la base de datos aumenta el rendimiento si se usan varios cores pero se penaliza si se usa únicamente 1.

 

Tabla 2. Tiempo empleado por NCBI-Blastx en función del nº de cores.
Cores 1 8
Tiempo (s) 17002 2658
Aceleración 1 6.4

En cuanto a la escalabilidad de NCBI se ve en la tabla 2 que es muy buena. En un core empleó 17002 segundos en ejecutarse y en 8 cores 2658 segundos, lo cual representa una aceleración de 6.3 y una eficiencia de la paralización del 80%.

 

mpiBLAST

Programa desarrollado a partir del de NCBI y que le implementa la paralelización. Para ello divide la base de datos BLAST en fragmentos que reparte entre los cores, cada uno de los cuales hace la busqueda en sus fragmentos asignados. Es conveniente formatear la base de datos de tal modo que cada core trabaje sobre un único fragmento. El IZO-SGI realizó un informe en el 2008 sobre el rendimiento de mpiBLAST con intención de poder predecir los requerimientos de tiempo y memoria de mpiBLAST [6]. Se vió que mpiBLAST escala linealmente en ambos casos, a mayor número de nodos (y fragmentos de la base de datos) menor tiempo y menor memoria. Esto convierte a mpiBLAST en una aplicación ideal para su uso en clusters de muchos nodos pequeños (por ejemplo el grid Pendulo del IZO-SGI [7]) dado que permite reducir el tamaño de cada proceso de forma que entre en la memoria RAM del ordenador. Hay que mencionar que mpiBLAST está implementado sobre una versión más antigua del NCBI, por lo que esto puede suponer una penalización en su rendimiento.

 

Tabla 3. Tiempo empleado por NCBI-Blastx y mpiBLAST en función del número de cores.
Tamaño máximo (MB) 1 8 22
mpiBLAST 37601 2200
NCBI BLAST 5157

 

Hemos comparado mpiBLAST con el NCBI blast. mpiBLAST se ha ejecutado en 24 cores, no obstante sólo usa para la búsqueda en la base de los 22 cores pues 2 son siempre usados para la gestión del resto de procesos. Hemos decidido por ello compararlo con los 22 cores que realizan el cálculo. Comparándolo con el cálculo en un solo core (37601 s.) mpiBLAST supone una aceleración de 17 y un redimiento de la paralelización del 78%, es decir, paraleliza muy bien al compararlo con el cálculo en un core.

 

gpuBLAST

Existen varias implementeaciones de BLAST para GPGPUs pero hemos seleccionado ésta dado que produce exactamente los mismos resultados que el NCBI BLAST, solo está implementado el uso de GPGPUs en blastp. Hemos ejecutado gpuBLAST en tarjetas C2070 de última generación para cálculo científico.

Tabla 4. Tiempo empleado por NCBI-Blastp
1 core 1 core + gpu 8 cores 8 cores+gpu
Tiempo (s) 6457 2244 888 774

 

Como se observa en la tabla 4 gpuBLAST multiplica por 2.5 la velocidad de ejecución respecto a la versión que se ejecuta en un core. No obstante, los nodos tienen varios cores  que sería absurdo no usar y si ejecutamos NCBI-BLAST usando los 8 cores logramos una aceleración cercana a 8 que bate a la ejecución de gpuBLAST. Igualmente podemos ejecutar gpuBLAST usando todos los cores más la GPGPU. El multiplicar el número de cores por 8 (+GPGPU) en esta ocasión no múltiplica por 8 la velocidad de ejecución de sistema con 1 core con GPGPU dado que gran parte del trabajo ya lo está realizando la GPGPU y solo se acelera la parte que estaba realizando el core. De este modo conseguimos acelerar por 3 nuevamente la ejecución y conseguimos el mejor resultado pero sólo es un 20% más rápido que usar los 8 cores. Las GPGPUs pueden ser una alternativa para acelerar la ejecución de BLAST en ordenadores con poco potencia donde añadir una GPGPU de gama medía podría mejorar sensiblemente los resultados. No obstante, para servidores de gama alta con muchos cores el uso de la GPGPU no mejora el resultado de forma muy significativa.

 

Referencias

[1] NCBI-BLAST (wikipedia): http://es.wikipedia.org/wiki/BLAST
[2] NCBI-BLAST: http://blast.ncbi.nlm.nih.gov/Blast.cgi
[3] Artículo sobre gpuBLAST: http://bioinformatics.oxfordjournals.org/content/27/2/182
[4] Artículo sobre mpiBLAST: http://synergy.cs.vt.edu/pubs/papers/darling-cwce2002-mpiblast.pdf
[5] Software en el IZO-SGI: http://www.ehu.es/sgi/software-de-calculo/software-de-calculo-disponible
[6] Infome del IZO-SGI sobre mpiBLAST: http://www.ehu.es/sgi/software-de-calculo/mpiblast
[7] Grid Péndulo: http://www.ehu.es/sgi/recursos/cluster-pendulo

 

 

General

Curso de Fortran

February 17th, 2012

 

Curso de especial interés para desarrolladores de código de aplicaciones científicas en Fortran. El periodo para reservar plaza está abierto hasta el 1 de marzo. Las plazas son limitadas.

Para realizar la reserva de plaza debe de darse de alta en el sitio web del Centro a través del formulario

https://www.cesga.es/es/registro

Cuando y dónde

El curso tiene una duración de 15 horas y se celebrará en las instalaciones del CESGA en Santiago de Compostela los días 12, 13 y 14 de marzo de 2012.

Temario

Consulte aquí el temario.

Curso impartido por Juan Touriño Dominguez de la Universidade da Coruña.

Más información

Web del curso

 

 

 

General

Schrödinger Workshop on “Computational Drug Discovery”

January 27th, 2012

 

Schrödinger Workshop “Computational Drug Discovery”

Madrid, Spain

Thursday February 23, 2012 at the CSIC

Schrödinger Applications Scientist Jas Bhachoo will be hosting a workshop from 9.30 to 17.00 on Thursday February 23, 2012 at the CSIC Madrid in Spain. This workshop has been designed for intermediate-advanced users and organized in collaboration with Dra Sonia Martinez from CSIC Madrid.

Registration

Participation in this workshop is free of charge. If you wish to participate we kindly ask you to register as soon as possible as seats are limited. To register, please e-mail katia.dekimeche@schrodinger.com  with your name, department and contact information.

Agenda

09.30     Welcome and Introduction
09.45     Session I:
Target structure prediction, refinement and characterization.Small molecule preparation with conformational searching. Virtual screening: Docking
13.00     Lunch Break
14.00     Session II:
Post docking analysis with clustering, SIFts, and extra-precision algorithms. Virtual screening: Structure-based pharmacophore screening and shaped-based
screening. Data reduction and filtering using 2D approaches.
16.30     Summary and Discussion
17.00     Close

 

 

General

Nuevos recursos computacionales en el Servicio de Cálculo Científico

January 9th, 2012

 

El Servicio General de Informática Aplicada a la Investigación (Cálculo Científico) -IZO/SGI- dentro el marco del contrato firmado con el CIC-nanoGUNE ha ampliado sus recursos computacionales.

La ampliación consta de 648 nuevos cores de computación, una ampliación del sistema de archivos paralelo para cálculo hasta los 22 TB y una ampliación adquirida por el IZO-SGI del HOME de 5.6 TB.

En más detalle se han adquirido 54 nodos con doble procesador Xeon cada uno de 6 cores a 2.4 GHz, lo que da el total de 648 cores. Los nodos están conectados entre sí con una red infiniband a 40 Gb/s y tienen un disco local de 250 GB. La memoria RAM de los nodos se distribuye en:

  • 1 nodo de 96 GB.
  • 18 nodos de 48 GB.
  • 35 nodos de 24 GB.

Se ha ampliado el rendimiento y la capacidad del sistema de archivos paralelo basado en Lustre hasta los 22 TB.

Además el IZO-SGI ha ampliado la capacidad hasta los 5.6 TB y el rendimiento de su /home con un nuevo sistema en alta disponibilidad.

 

Infraestructura de cálculo del IZO-SGI, cluster Arina

Infraestructura de cálculo del IZO-SGI, cluster Arina

En la imagen el cluster de cálculo Arina del IZO-SGI, principal infraestructura dedicada al cálculo científico de la UPV/EHU.

 

 

 

 

 

 

 

 

 

 

 

 

General

New computational resources at the Computing Service

January 9th, 2012

 

The Service of Informatics applied to the research (Scientific Computing) -IZO/SGI- in the framework of the contract signed with CIC-nanoGUNE has increased its computational resources.

The increase consist in new 648 computation cores, an extension of the parallel filesystem up to 22 TB and a new /home with 5.6 TB.

In detail, 54 computing nodes have been acquired with two Xeon processors each. The processor has 6 2.4 GHz cores, so we have new 648 cores. The nodes are interconnected with a 40 Gb/s infiniband network and have a 250 GB local disk. The RAM memory is distributed as follows:

  • 1 node with 96 GB.
  • 18 nodes with 48 GB.
  • 35 nodes with 24 GB.

The parallel filesystem for calculations, based on Lustre, has also been upgraded in performance and size up to de 22 TB.

In addition, the IZO-SGI has a new /home filesystem with increased performance and bigger size, 5.6 TB, configured in high availavility.

 

Infraestructura de cálculo del IZO-SGI, cluster Arina

Infraestructura de cálculo del IZO-SGI, cluster Arina

In the image the cluster for computing of thel IZO-SGI, the main infrastructure for scientific calculation of the UPV/EHU.

 

 

 

 

 

 

 

 

 

 

 

 

General

Konputazio baliabide berriak konputazio zerbitzuan

January 9th, 2012

Ikerkuntzari zuzendutako Informatikako Zerbitzuak (Kalkulo Zientifikoa) -IZO/SGI- CIC-nanoGUNErekin sinatutako kontratuaren barruan bere baliabide konputazionalak handitu ditu.

648 kore berri erosi dira, kalkulurako erabiltzen den eraginkortasun handiko  fitxategi sistema paraleloa ere 7 Gb-etatik  22 TBetaraino handitu da eta IZO-SGI-ak   5.6 TBetakoa /home berria erosi du ere.

Zehatzagoak izatearren 54 conputazio nodo erosi dira. Bakoitzak bi prozesagailu ditu. Prozesagailu hauek 2.4 GHz-etako 6 kore ditu bakoitzak beraz guztira 648 kore berri daude. Nodoak 40 Gb/s -ko  infiniband sare baten bitartez konektatuta daude eta 250 GB-etako disko gogor lokala dute. Nodoen RAM memoria banaketa ondoren adierazten dena da:

  • 96 GB-etako nodo bat.
  • 48 GB-etako 18 nodo.
  • 24 GB-etako 35 nodo.

Kalkuluentzako fitxategi sistema paraleloa, Lustren oinarritatua, eraginkortasun eta  tamainan, 22 TB-etaraino, hobetu da.

Gainera, IZO-SGIk /home berri bat eskuratu du eraginkortasun hobekoa  eta 5.6 TB-etako  tamainakoa, gainera, etaerabilgarritasun altuan konfiguratuta egongo da.

 

Infraestructura de cálculo del IZO-SGI, cluster Arina

Infraestructura de cálculo del IZO-SGI, cluster Arina

Irudian IZO-SGIren Arina klusterra, UPV/EHUren kalkulurako azpiegitura nagusiena ageri da.

 

 

 

 

 

 

 

 

 

 

 

 

General

GPU Programming in MATLAB

October 18th, 2011

 

Este es el título de un artículo publicado por Matlab en su revista electrónica Matlab Digest. Muestran lo relativamente sencillo que puede ser usar las GPUs desde Matlab aplicándolo al ejemplo de la evolución de ondas bidimensionales. De forma más general, mencionan el mayor problema actual para el uso de GPUs, que es la necesidad de mover los datos desde la RAM del ordenador a la GPU, siendo generalmente este trasiego de datos el cuello de botella de las aplicaciones y el elemento más crítico a la hora de considerar si una aplicación, cálculo o algoritmo es apto para GPUs.

 

Enlace al artículo GPU Programming in MATLAB

 

 

General

Memoria del 2010 del Servicio de Cálculo Científico

October 7th, 2011

 

El Servicio de Informática Aplicada a la Investigación (Cálculo Científico) IZO-SGI ha publicado la memoria del 2010

 

La memoria completa puede encontrarse en el siguiente enlace

Memoria del 2010 del IZO-SGI(pdf)

 

El IZO-SGI de un vistazo

2009 2010
Cores de cálculo 440 872
Cores de cálculo (Arina) 320 752
Horas de cálculo consumidas 2.15 millones 2.25 millones
Promedio de ocupación (Arina) 75.00% 47%¹
Trabajos enviados (Arina) 38497 65179
Trabajos de más de 2 minutos² 28377 50624
Tiempo promedio por trabajo³ 75.8 horas 44.4 horas
Tiempo medio de espera (Arina)† 5.7 horas 3.8 horas
Investigadores activos 101 98
Grupos activos 53 40
Cuentas nuevas 49 33
Satisfacción de los usuarios‡ 8.9 8.8
Artículos científicos†† 44 54
Visitas web 4925 5957
Páginas vistas 58731 40987
Posts en el blog HPC - 29
Visitas del blog HPC - 1431

 

Arina Es el nombre del cluster de cálculo del IZO-SGI.
¹ El uso de 2010 es aparentemente bajo debido a que se instaló una ampliación de Arina que pasó de 300 cores a 752 y se hizo disponible a finales de Julio. Esto provocó que en Agosto y Septiembre Arina estuviese muy vacía y, debido a la magnitud de la ampliación, estos meses han tenido mucho peso en la media anual. En el mes de Noviembre ya se alcanzó un 76\% de ocupación.
² Los trabajos de menos de 2 minutos se deben normalmente a trabajos fallidos que terminan inmediatamente en error. En cualquier caso, aun de no ser así, dada su corta duración no repercuten en el cluster.
³ No se han tenido en cuenta los trabajos de menos de dos minutos. Tal vez sea relevante tener en centa que con la ampliación se han adquirido procesadores más rápidos.
Los trabajos se ejecutan a través de un sistema de colas que asigna a cada trabajo los recursos que se le han solicitado y ordena su ejecución para optimizar el uso del cluster. El tiempo en cola es el tiempo que están esperando los trabajos hasta que se liberan los recursos que necesitan.
Encuesta de satisfacción de los usuarios.
†† En los que se agradece al IZO-SGI.

Anuncios, General

Computing Service 2010 year report

October 7th, 2011

 

The Computing Service (IZO-SGI) of the UPV/EHU has published the report of the 2010 year.

 

The complete report in Spanish can be found in the following link

IZO-SGI 2010 year report (pdf)

 

The IZO-SGI Computing Service at a glance

2009 2010
Computing cores 440 872
Computing cores (Arina) 320 752
Consumed computing hours 2.15 millions 2.25 millions
Mean occupation (Arina) 75.00% 47%¹
Sent jobs (Arina) 38497 65179
<2 minutes jobs² 28377 50624
Mean time bper job³ 75.8 hours 44.4 hours
Queued mean time (Arina)† 5.7 hours 3.8 hours
Active researches 101 98
Active research groups 53 40
New accounts 49 33
Users satisfacction pool 8.9 8.8
Scientific articlesl‡ 44 54
Visits to the web 4925 5957
Viewed pages 58731 40987
Posts in the HPC blog - 29
Visits to the HPC blog - 1431

Arina Is the name of the main computing cluster of the IZO-SGI.
¹ The use in the 2019 is aparently low because we increased the number of cores from 300 up to 752 at the end of July. In August and September the cluster remained quite empty and this had an important impact on the mean value. In the November the monthly use was again at the 76%.

² The jobs that use less than 2 minutes are normally failed jobs or in any case they have low impact in the cluster.

³ The jobs has not been taken into account. Maybe it is relevant that the new nodes are faster than the old ones.
The jobs are executed through a queue software that organize the jobs and assign the proper resources to each one.
Articles where the IZO-SGI is acknowledged.

 

 

Anuncios, General

El IZO-SGI y el CIC-nanoGUNE colaborarán en HPC

October 4th, 2011

 

Los Servicios Generales de Investigación de la UPV/EHU han promovido la firma de un contrato con la Asociación Centro de Investigación Cooperativa en Nanociencias

Los Servicios Generales de Investigación de la UPV/EHU -SGIker-, aunando esfuerzos y capacidades con las entidades adheridas al Campus de Excelencia, EUSKAMPUS, han promovido la firma de un contrato con la Asociación Centro de Investigación Cooperativa en Nanociencias – CIC nanoGUNE para el alojamiento en las instalaciones de la propia Universidad, de nodos de computación y almacenamiento. El equipamiento será gestionado y administrado por el Servicio General de Informática Aplicada a la Investigación (Cálculo Científico) -IZO- que dispone de una amplia experiencia en High Performance Computing (HPC).

Este contrato incrementará la disponibilidad actual de infraestructura de alto nivel científico y tecnológico al servicio de la comunidad investigadora.

 

Infraestructura de cálculo del IZO-SGI, cluster Arina

Infraestructura de cálculo del IZO-SGI, cluster Arina

En la imagen el cluster de cálculo Arina del IZO-SGI, principal infraestructura dedicada al cálculo científico de la UPV/EHU.

 

 

 

 

 

 

 

 

 

 

 

General