Cluster de Computación - IUIIComo herramientas de depuración de códigos seriales, paralelos con MPI y paralelos sobre GPUs están los siguientes programas instalados:
El debugger idb es la herramienta principal de depuración para los compiladores de Intel.
Para usar idb cargamos el módulo con el mismo nombre con
$ module load idb
El programa para usarlo en modo de línea de comando es idbc
$ idbc
Intel(R) Debugger for applications running on Intel(R) 64, Version 12.0, Build [1.3842.2.129]
(idb)
Más información sobre su uso encontramos en /opt/intel/composerxe-2011/Documentation/en_US/debugger/ o con “man idbc” o “idbc -help”.
El debugger gdb es el depurador estándar que viene con la distribución de linux y soporta los compiladores de GNU. Es una herramienta de línea de comando:
$ gdb
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-32.el5_6.2)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(gdb)
Más detalles de su opciones con “man gdb” o “gdb -help”.
CUDA gdb es el depurador de códigos en CUDA. CUDA gdb ofrece las siguientes funciones.
Para trabajar con cuda-gdb cargamos el módulo cuda antes de usar el programa.
$ module load cuda
$ cuda-gdb
NVIDIA (R) CUDA Debugger
4.0 release
Portions Copyright (C) 2007-2011 NVIDIA Corporation
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
(cuda-gdb)
Más información sobre cómo usar cuda-gdb encontramos en el documento /opt/cuda/doc/cuda-gdb.pdf.
Otra herramienta de gran utilidad para el desarrollador de CUDA es cuda-memcheck . Esta herramienta ofrece las siguientes funcionalidades:
Para usar cuda-memchek hace falta cargar el módulo cuda previamente con:
$ module load cuda
La sintáxis del comando es:
$ cuda-memcheck [opciones] [mi-programa] [opciones-de-mi-programa]
La información más detallada sobre el comando cuda-memcheck la encontramos en el documento
/opt/cuda/doc/cuda-memcheck.pdf .
La herramienta de Intel “Trace Analyset and Collector” es una herramienta potente para entender el comportamiento de una aplicación MPI, encontrar cuellos de botella y conseguir desarrollar aplicaciones de alto rendimiento para clusteres HPC basados en CPUs de Intel. La herramienta soporta Intel MPI y otras librerías MPI basadas en MPICH.
Para poder usar el Trace Analyzer and Collector hay que compilar el código fuente con la opción global “-trace” como por ejemplo:
$ module load icc
$ module load impi
$ module load trace
$ mpiicc –trace mi_programa.c –o mi_programa
Para que el programa crea la información de “trace” añadimos al comando “mpiexec” la misma opción “-trace”. La línea en una script de trabajo que mandamos al cluster puede ser:
mpiexec –trace –np 24 ./mi_programa
En cuando termine el programa se crea un fichero mi_programa.sft que se puede analizar con la herramienta gráfica tranceanalyzer ejecutando:
$ traceanalyzer ./mi_programa.stf
Más información sobre el uso de Trace Analyzer and Collector encontramos en /opt/intel/itac/8.0.1.009/doc/.

