David

Categories

Latest News

Monthly archives

Links


Search




Gprof: Uso básico para efectuar profiling

En este post describiré el modo de utilizar gprof para realizar el profiling de un programa.

Para empezar, debes contar con un compilador como gcc o g95 (éste último para Fortran 95) que soporte la opción -pg. También tienes que tener instaladas las binutils, ya que el gprof viene incluido en ellas. Lo normal es que utilices todo este en un entorno Unix, Linux o Cygwin. Aunque no lo he comprobado, seguro que existen versiones para Windows más o menos funcionales.

A continuación debes compilar tu programa con la opción -pg. Si tienes un programa con muchos ficheros fuente, compila cada fichero objeto con la opción; en el enlazado no es necesaria (y posiblemente no sea adminitad).

A continuación, ejecuta tu programa. Se creará en el directorio un fichero llamado gmon.out. Este fichero contiene la información recopilada durante la ejecución.

Por último, ejecuta gprof nombre-del-ejecutable > analisis.txt. La salida de gprof será redirigida a un fichero de texto que podrás analizar con detenimiento mediante un editor de textos o un analizador gráfico (como kprof).

Eso es todo por ahora. Hay multitud de características adicionales, como la posibilidad de crear grafos y visualizarlos gráficamente, aunque para ello hacen falta más herramientas. Un vistazo rapido a la Wikipedia puede proveer de la información necesaria para continuar progresando en el profiling.

Posted by dsuarez Posted in: informática No Comments » October 2006


Gprof: Profiling aplicado a optimización de tiempo de ejecución

Gprof es una herramienta de profiling. El profiling consiste en registrar información sobre un programa durante su ejecución. Algunos de los datos interesantes que se pueden extraer son:

Al optimizar un programa, conviene conocer la Ley de Amdahl que básicamente dice lo siguiente, citado directamente de la Wikipedia: “La mejora obtenida en el rendimiento de un sistema debido a la alteración de uno de sus componentes está limitada por la fracción de tiempo que se utiliza dicho componente”. En la siguiente ecuación, Fm es el tiempo del componente que se mejora, y Am es el factor de mejora del componente. Por ejemplo, Si Am=2 entonces el tiempo empleado para realizar la tarea que tardaba Fm es ahora Fm/2.

Ley de Amdahl

Gracias a gprof podemos averiguar cuales son las funciones donde el programa consume la mayor parte del tiempo (se dice que el 80% del tiempo de ejecución se consume en un 20% del código: regla 80/20) y por tanto, aquellas que merece la pena optimizar para mejorar el rendimiento global del programa en cuestión.

En un post futuro publicaré una pequeña guía de utilización. Hasta entonces.

Posted by dsuarez Posted in: informática, pfc No Comments » October 2006


Decepción

Mi estancia como Technical Student en el CERN no pinta tan bien como esperaba. Me han comunicado que he sido asignado al DSU o Unidad de Servicios de Departamento, y que estaré asignado a un proyecto relativo a la biblioteca digital del CERN.

Mi decepción es debida a que esperaba un puesto donde tuviera que emplear mi conocimientos de programación numérica, trabajo con clusteres o con el grid; en fin, algo relacionado con mis intereses profesionales.

Ahora mismo estoy a la espera de que me comuniquen mi tarea con más detalle para decidirme definitivamente.

Posted by dsuarez Posted in: informática, trabajo No Comments » October 2006


Programa Technical Student en el CERN

El CERN es el Consejo Europeo para la Investigación Nuclear (Conseil Européen pour la Recherche Nucléaire). El CERN recibe fondos de muchos de los paises europeos (España incluida) y en sus instalaciones se investiga principalmente sobre física de partículas. Es uno de los más importantes laboratorios de investigación del mundo.

Las instalaciones se encuentran principalmente en Ginebra, Suiza; Aunque por su extensión (el LHC o Large Hadron Collider tiene 27 km de circunferencia) algunas de sus instalaciones se encuentran en Francia.

El programa para el que me han aceptado consiste en un periodo de entre 6 y 12 meses de trabajo en alguno de los proyectos del CERN. Mi intención es comenzar el 1 de noviembre y permanecer allí hasta finales de junio y volver para poder hacer los exámenes de julio.

Aun no se a que proyecto seré asignado, pero mi interés recae principalmente en el trabajo con clusteres, cómputo paralelo y computación numérica.

Posted by dsuarez Posted in: física, informática, trabajo No Comments » October 2006