TAU: Tuning & Analysis Utilities

Documentos relacionados
Instalación de TAU. (Tuning and Analysis Utilities) Programación Distribuida y Paralela. Departamento del LSI. Universidad de Granada

Descarga, instalación y uso de herramientas:

Trabajo final de Ingeniería

1. El entorno de desarrollo Eclipse

KNime. KoNstanz Information MinEr. KNime - Introducción. KNime - Introducción. Partes de la Herramienta. Editor Window. Repositorio de Nodos

Manual avanzado Access 2010

Instalación de Eclipse Galileo y depuradores compatibles con OpenMPI y OpenMP

INSTITUTO GEOFISICO DEL PERÚ CENTRO NACIONAL DE DATOS GEOFISICOS - CDNG

Instalación de OpenMPI

DROID, versión Tutoriales de instalación y uso de programas de preservación digital. Instalación para Windows 7

Arquitecturas GPU v. 2013

INTRODUCCIÓN A JAVA. Índice

Tema 1. Introducción a JAVA

Identificación del curso. NOMBRE DE LA UNIDAD: Grafimática de Textos

INSTALACIÓN DE MySQL SERVER EN WINDOWS

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

Sesión 8. Visualización

Ar lips Development E nvironment versión 1.0.0

Instituto Schneider Electric de Formación

Instalación 07/07/2010. Sesión sobre SQL Server. Gestión de Datos

RODRIGO TAPIA SANTIS com) has a. non-transferable license to use this Student Guide

Cluster Beowulf/MPI en Debian

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

Muestra de solicitud para una propuesta de un conjunto de aplicaciones de Gestión de Procesos de Negocio KIT DE HERRAMIENTAS DEL COMPRADOR DE BPMS

MANUAL DE INSTALACIÓN DEL LECTOR DE TARJETAS

PROYECTO i-lab MANUAL DE USUARIO DEL LABORATORIO DE LA SALLE

Programación 2 Curso Guía de desarrollo C/C++ con Eclipse

INTRODUCCIÓN A PHP. Javier Enciso

GMF Gestor de incidencias

Guía Rápida de Puesta en Marcha de MailStore

FME Desktop. Data in Motion

Microsoft SQL Server Conceptos.

Breve introducción a LAMMPS. Javier A. Wachter Ch. javier.wachter@gmail.com

Instalación del Software Magaya

XV Conferencia Colombiana de Usuarios Esri Bogotá, Agosto de 2013

DESARROLLO DE APLICACIONES ACCESIBLES

1. El entorno de desarrollo Eclipse

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es)

La Herramienta Redmine para la Administración de Proyectos

Concurso en Ingeniería de Control

Cómo usar este libro Capítulo 1. Nociones básicas Capítulo 2. Primera sesión de trabajo... 2

Grupo de Computación de Altas Prestaciones GCAPULL, Univers. GCAPULL, Universidad de La Laguna, Tenerife

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

(Integrated Development Environment) Herramienta de soporte para el desarrollo de sotfware: Editor (escribir y editar programas); un

Desarrollo de Aplicaciones ios

PVM Parallel Virtual Machine. Autor: Alejandro Gutiérrez Muñoz

Proxy.Net/J2EE. Interoperabilidad de los servicios telemáticos de la Administración Pública de la CAC. Página 1 de 17. Rev.

MIGRACIÓN DE BASE DE DATOS SQL 2000 A SQL 2008R2 DEL SISGALENPLUS DOCUMENTACIÓN DEL SISTEMA DE GESTIÓN HOSPITALARIA

Acerca de esté Catálogo

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

INDICE 2. UNA PRIMERA INSTALACIÓN 4 3. INSTALACIÓN DE PUESTOS ADICIONALES 7 4. DESINSTALACIÓN DE UN PUESTO MÉTODO

Sistemas Operativos Windows 2000

PVFS (Parallel Virtual File System)

Práctica PBX OBJETIVOS: INTRODUCCIÓN:

IBM SPSS Statistics para Mac OS Instrucciones de instalación (Licencia de sede)

Tema 2: Programación de PLCs

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación

Eclipse. Eclipse es un armazón (workbench) sobre el que se pueden montar herramientas de (JDT, CDT, PDT, ).

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente

PROGRAMA DEL CURSO. SEGURIDAD EN EQUIPOS INFORMATICOS MF0486_3 90 horas MEDIO-AVANZADO DURACION:

Guía de instalación y configuración de IBM SPSS Modeler Social Network Analysis 16

Ethernet IP INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez ETHERNET/IP 1.

TEMARIO CURSO ACCESS 2007 AVANZADO

Práctica Nº 4 Entorno de Programación

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS:

Monitoreo de red. Inventario de hardware y software. Monitoreo actividad del usuario. Soporte a usuarios. Protección contra fuga de datos.

Pasos para instalar XUbuntu LTS bajo VirtualBox INDICE

Cómo aprovechar la potencia de la analítica avanzada con IBM Netezza

Identificar problemas y proponer soluciones integrando las tecnologías emergentes en Internet.

Cristian Blanco

CAPÍTULO 3 VISUAL BASIC

El entorno Vision - E Laboratory

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Productividad de Negocio

Introducción al lenguaje Java

INSTRUCTIVO DE INSTALACION ATOM 2.0.1

Antivirus PC (motor BitDefender) Manual de Usuario

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

MONTAR GVSIG 1.9 EN ECLIPSE DESDE EL REPOSITORIO SVN. Eduardo Cristóbal

Programación Avanzada Ingeniería Civil en Computación

Capitulo 1: Plataforma Android

Instalación de XEN Información de XEN Qué es XEN? Componentes de XEN:... 2

LABORATORIO 8. Gestión del Rendimiento en el SMBD SQL Server.

Cómputo con técnicas avanzadas de WORD, EXCEL y POWERPOINT

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Documentación automática con Doxygen

Guía de instalación de ArcGIS Explorer Desktop

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25.

CURSO INTENSIVO DE INTRODUCCIÓN A LA PROGRAMACIÓN EN ANDROID

Novedades en Crystal Reports XI

Modelización y Balanceo de la Carga Computacional en la Simulación Paralela de la Dispersión Atmosférica de Contaminantes

Electrónica: Configuración en Mozilla Firefox

Ingeniería de Software. Pruebas

JD-Eclipse. Manual de usuario

Sistema de Gestión de Proyectos Estratégicos.

IBM SPSS Statistics para Mac OS Instrucciones de instalación (Usuario individual)


Transcripción:

TAU: Tuning & Analysis Utilities Herramientas de desarrollo de aplicaciones paralelas: Debugging y análisis del rendimiento Diego R. Martínez Centro de Investigación en Tecnoloxías da Información Dpto. Electrónica y Computación

Índice 1 TAU Toolkit 2 Instalación 3 Instrumentación 4 Profiling 5 Trazas 6 Más... CESGA Computational Science Summer School 2011

Índice 1 TAU Toolkit 2 Instalación 3 Instrumentación 4 Profiling 5 Trazas 6 Más... CESGA Computational Science Summer School 2011

TAU Tuning & Analysis Utilities http://www.cs.uoregon.edu/research/tau Toolkit para análisis de rendimiento de progamas paralelos Profiling y trazas Fortran, C, C++, Java y Python Desarrollado por: - University of Oregon - Research Centre Julich - Los Alamos National Laboratory CESGA Computational Science Summer School 2011 1/25

Características Integración con otras herramientas PAPI Dyninst Formato de trazas - Vampir, Paraver, Jumpshot CESGA Computational Science Summer School 2011 2/25

Características Instrumentación Grupos de profiling Permiten organizar y controlar la instrumentación Tipos soportados Automática - Program Database Toolkit (PDT) Manual - API de instrumentación de TAU Dinámica - Intrumenta directamente el ejecutable - Interposición de librería MPI CESGA Computational Science Summer School 2011 3/25

Características Herramientas de visualización ParaProf Profiles Jumpshot Trazas CESGA Computational Science Summer School 2011 4/25

Índice 1 TAU Toolkit 2 Instalación 3 Instrumentación 4 Profiling 5 Trazas 6 Más... CESGA Computational Science Summer School 2011

Instalación básica me@ft$./configure me@ft$ make install $ more README INSTALL $./configure -help $./configure -fullhelp CESGA Computational Science Summer School 2011 5/25

Opciones de instalación./configure Opciones generales -help -prefix=<dir> directorio de instalación -tag=<etiqueta> identificación de la instalación CESGA Computational Science Summer School 2011 6/25

Opciones de instalación./configure Opciones de compiladores -cc=<comp> compilador de C -cxx=<comp> compilador de C++ -fortran=<comp> compilador de fortran90 CESGA Computational Science Summer School 2011 6/25

Opciones de instalación./configure Opciones de instrumentación -pdt=<dir> instrumentación automática de códigos C, C++ y Fortran90 (PDT) -papi=<dir> API de acceso a los contadores hardware (PAPI) CESGA Computational Science Summer School 2011 6/25

Opciones de instalación./configure Librerías paralelas -openmp OpenMP -pthread pthreads -mpiinc=<dir> includes MPI -mpilib=<dir> librerías MPI CESGA Computational Science Summer School 2011 6/25

Múltiples configuraciones me@ft$./installtau [opciones] Crea todas las configuraciones posibles compatibles con las opciones proporcionadas $./installtau -help CESGA Computational Science Summer School 2011 7/25

Interfaz gráfica Java me@ft$./tau_setup CESGA Computational Science Summer School 2011 8/25

Índice 1 TAU Toolkit 2 Instalación 3 Instrumentación 4 Profiling 5 Trazas 6 Más... CESGA Computational Science Summer School 2011

Instrumentación Dos métodos Manual - Control completo - Más costoso - Más propenso a errores Automáticamente - Dinámica - MPI wrapper library - TAU compiler CESGA Computational Science Summer School 2011 9/25

Instrumentación automática DynInstAPI http://www.dyninst.org/ tau_run Pre-carga de librería Realiza un profile de las llamadas a funciones MPI, I/O, memoria,... Script tau_exec $ tau_exec -io./a.out TAU compiler Instrumentación automática de todas las funciones Utiliza los parsers proporcionados por PDT - Program Database Toolkit CESGA Computational Science Summer School 2011 10/25

Instrumentación automática DynInstAPI http://www.dyninst.org/ tau_run Pre-carga de librería Realiza un profile de las llamadas a funciones MPI, I/O, memoria,... Script tau_exec $ tau_exec -io./a.out TAU compiler Instrumentación automática de todas las funciones Utiliza los parsers proporcionados por PDT - Program Database Toolkit CESGA Computational Science Summer School 2011 10/25

Instrumentación automática DynInstAPI http://www.dyninst.org/ tau_run Pre-carga de librería Realiza un profile de las llamadas a funciones MPI, I/O, memoria,... Script tau_exec $ tau_exec -io./a.out TAU compiler Instrumentación automática de todas las funciones Utiliza los parsers proporcionados por PDT - Program Database Toolkit CESGA Computational Science Summer School 2011 10/25

TAU Compiler me@ft$ tau_compiler.sh --help me@ft$ tau_compiler.sh <tau_compiler_options> \ <compiler> <compiler_options> app.c CESGA Computational Science Summer School 2011 11/25

TAU Compiler TAU Makefile me@ft$ tau_cc.sh -tau_makefile=<tau Makefile> \ -tau_options=<opciones> app.c tau_cc.sh, tau_cxx.sh y tau_f90.sh Variables de entorno - TAU_MAKEFILE - TAU_OPTIONS Makefiles? - $TAU_DIR/[arquitectura]/lib CESGA Computational Science Summer School 2011 12/25

Índice 1 TAU Toolkit 2 Instalación 3 Instrumentación 4 Profiling 5 Trazas 6 Más... CESGA Computational Science Summer School 2011

TAU Profiling Aplicación instrumentada Variable TAU_PROFILE (activada por defecto) $ export TAU_PROFILE=1 Variable de entorno PROFILEDIR - Directorio donde se guardan los resultados del profile Monitorización de los parámetros/métricas correspondientes - Tiempo inclusivo/exclusivo de cada función -... CESGA Computational Science Summer School 2011 13/25

TAU Profiling Call-path TAU_CALLPATH Crea un call-path Profundidad definida por TAU_CALLPATH_DEPTH - Por defecto es 2 CESGA Computational Science Summer School 2011 14/25

Profiling Selectivo TAU_THROTTLE Eliminamos las funciones - número elevado de llamadas - tiempo inclusivo por llamada pequeño Comportamiento por defecto: - Elimina funciones que se llaman 100.000 veces siendo cada llamada menor de 10µs Control mediante variables de entorno TAU_THROTTLE TAU_THROTTLE_NUMCALLS TAU_THROTTLE_PERCALL CESGA Computational Science Summer School 2011 15/25

Profiling Selectivo TAU_THROTTLE Ejemplo $ export TAU_THROTTLE=1 $ export TAU_THROTTLE_NUMCALLS=2000000 $ export TAU_THROTTLE_PERCALL=5 CESGA Computational Science Summer School 2011 15/25

Profiling Selectivo PDT Órdenes de profiling Fichero con las órdenes - Define las zonas de la aplicación a considerar - Permite introducir código $ export TAU_OPTIONS= -opttauselectfile=<file> CESGA Computational Science Summer School 2011 16/25

Profiling Selectivo PDT 1 # Lista negra de funciones 2 # Todas las que comienza con foo_ y un único argumento 3 # de tipo int * 4 BEGIN_EXCLUDE_LIST 5 6 void foo_#(int *) C 7 8 END_EXCLUDE_LIST 9 10 # Lista negra de ficheros 11 # Todos los ficheros con extension so 12 BEGIN_FILE_EXCLUDE_LIST 13 14 *.so 15 16 END_FILE_EXCLUDE_LIST CESGA Computational Science Summer School 2011 17/25

Profiling Selectivo PDT 1 BEGIN_INSTRUMENT_SECTION 2 3 # instrumenta todos los lazos externos de esta función 4 loops file="loop_test.c" routine="multiply" 5 6 file="foo.c" line=9 code="printf(\"i=d: \", i);" 7 8 exit routine="int foo()" code="printf(\"in foo\");" 9 entry routine="int foo()" code="printf(\"out foo\");" 10 11 END_INSTRUMENT_SECTION CESGA Computational Science Summer School 2011 18/25

Contadores hardware PAPI Acceso simultáneo a multiples contadores Limitado por la compatibilidad y disponibilidad - papi_avail y papi_event_chooser Selecionar los contadores mediante TAU_METRICS - Opción mpirun: -e VAR=valor COUNTER1=GET_TIME_OF_DAY COUNTER2=PAPI_L1_DCM COUNTER3=PAPI_FP_INS... CESGA Computational Science Summer School 2011 19/25

Visualización pprof Organiza y muestra un profile generado por TAU Texto CESGA Computational Science Summer School 2011 20/25

Visualización ParaProf Herramienta de análisis proporcionada por TAU Entorno gráfico (Java) Texto y gráficas Opciones --pack <file> Empaqueta los datos en un fichero (no GUI) $ paraprof -pack app.ppk CESGA Computational Science Summer School 2011 20/25

Visualización ParaProf CESGA Computational Science Summer School 2011 20/25

Índice 1 TAU Toolkit 2 Instalación 3 Instrumentación 4 Profiling 5 Trazas 6 Más... CESGA Computational Science Summer School 2011

Trazas Ejecución TAU_TRACE $ export TAU_TRACE=1 Variable de entorno TRACEDIR - Directorio donde se guardan los resultados de la traza Se genera una traza por cada proceso Combinación de trazas individuales en una traza única - tau_treemerge.pl CESGA Computational Science Summer School 2011 21/25

Trazas Exportando a otros formatos Comandos tau2otf Open Trace Format tau2vtf Vampir Trace Format tau2slog2 SLOG2 format (Jumpshot) CESGA Computational Science Summer School 2011 22/25

Visualización JumpShot Combinar los ficheros... - tau_treemerge.pl... y exportar - tau2slog2 $ tau2slog2 tau.trc tau.edf -o tau.slog2 CESGA Computational Science Summer School 2011 23/25

Visualización JumpShot CESGA Computational Science Summer School 2011 23/25

Índice 1 TAU Toolkit 2 Instalación 3 Instrumentación 4 Profiling 5 Trazas 6 Más... CESGA Computational Science Summer School 2011

PerfExplorer y PerfDMF PerfDMF Base de datos especialmente diseñada para profiles de aplicaciones paralelas PerfExplorer Utiliza una base de datos PerfDMF para explorar el rendimiento de aplicaciones paralelas - Ejecuciones con diferentes configuraciones - Data mining y knowledge discovery - Clustering, resúmenes, asociaciones, regresiones, correlaciones,... CESGA Computational Science Summer School 2011 24/25

Más... JAVA Python Pluging PTP para eclipse - Parallel Tool Platforms Memory tracking CESGA Computational Science Summer School 2011 25/25