Aurelio Rodríguez

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Aurelio Rodríguez aurelio@cesga.es"

Transcripción

1 Aurelio Rodríguez

2 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés. Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

3 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

4 Agenda Intel MPI: (1 hora) Tuning: automático, pinning y binding y variables de entorno. Ejemplos. Intel Trace Analyzer and Collector: (1 hora) Introducción Collector: Uso, Instrumentación a nivel de usuario. Ejemplos. Analyzer: Introducción, GUI, CLI y conceptos. Ejemplos. Benchmarks: (3 horas) Casos de usuario? Rendimiento compiladores, MKL y MPI. Benchmarks sintéticos y aplicaciones.

5 Documentación Actualizada Última versión de la documentación en: https://oc.cesga.es/public.php?service=files&t=03888d31fc9363a06320aad01c2f2c6e

6 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés. Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

7 Administración: Instalación Registro de la licencia: Ver documento adjunto (DO_Registro_intel.pdf) Requisitos previos: paquetes de desarrollo gnu (especialmente gcc-c++) Oracle JDK Descarga de productos: completa + de 3GB Se recomienda el uso del online installer siempre que se tenga acceso a internet en el servidor de instalación. Intel Cluster Studio 2013_sp1 for Linux Intel C++ Composer XE for Linux Intel Fortran Composer XE for Linux Intel MPI Library Intel Trace Analyzer and Collector l_ccompxe_online_2013_sp sh l_ccompxe_online_2013_sp sh l_mpi_p_ tgz (install.sh) l_itac_p_ tgz (install.sh)

8 Administración: Instalación Directorios: /apps/intel bin : comandos principales composerxe : link a composer_xe_2013_sp1 composer_xe_2013_sp1 : Contiene links a la ultima release de la versión composer_xe_2013_sp : Ultima versión impi : Directorio con las versiones de impi include : link a composerxe/include ipp : link a composerxe/ipp ( itac : directorio de versiones del Trace analyzer and Collector lib : link a composerxe/lib (librerías de los compiladores) man : link a composerxe/man (man pages) mkl : link a composerxe/mkl (Intel MKL) mpirt : link a composerxe/mpirt (Intel MPI runtime) tbb : link a composerxe/tbb (Threads building blocks)

9 Administración: Entorno Variables de entorno: source /apps/intel/composerxe/bin/compilervars.sh (configura compiladores, debugger, mkl, ipp y tbb) source /apps/intel/impi/ /bin64/mpivars.sh (configura impi) source /apps/intel/itac/ /bin/itacvars.sh (configura itac) Todas recogidas en el script /apps/intel/env.sh

10 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés (si utilizan modules, se incluirá la información para su configuración). Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

11 Compiladores: Intel C++ Rendimiento tanto en serie como paralelo para procesadores Intel. Introduce facilidades para la vectorización y la programación paralela para simplificar el desarrollo de aplicaciones con alto rendimiento. Destacan entre estas características el soporte de nuevas funcionalidades de OpenMP 4.0 y la posibilidad de autoparalelización. Mantiene compatibilidad con los compiladores más usados. Documentación completa:

12 Compiladores: Intel C++

13 Compiladores: Intel C++ INT: Intel Compiler 14.0: C/C++: -xavx -ipo -O3 -no_prec-div -static -parallel -opt-prefecth -auto-p32 GCC 4.8.1: C: -m64 -Ofast -ffast-math -flto -march=native -mfpmath=sse -funroll-all-loops -static -ftreeparallelize-loops=16 C++: m64 -Ofast -ffast-math -flto -march=native -mfpmath=sse -funroll-all-loops FP Speed: Intel Compiler 14.0: C/C++: -xavx -ipo -O3 -no_prec-div -static -parallel -opt-prefecth -ansy-alias GCC 4.8.1: C: -m64 -Ofast -ffast-math -flto -march=native -mfpmath=sse -funroll-all-loops -static -ftreeparallelize-loops=16 C++: m64 -Ofast -ffast-math -flto -march=native -mfpmath=sse -funroll-all-loops

14 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés (si utilizan modules, se incluirá la información para su configuración). Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

15 Compiladores: Intel C++ Uso básico: Comandos: icc para C, y icpc para C++ Opciones -O compatibles con gcc pero no idénticos -O2 es el nivel de optimización por defecto (en gcc es -O0) -O* no implica los mismos conjuntos de opciones para gcc que para Intel pero los conceptos son similares: -O0 : para depuración -O2 : por defecto -O3 : optimizaciones avanzadas icc help, icpc -help proporciona la lista extensa de opciones man icc man icpc Preprocessing Semantic parsing Optimization Code generation Linking

16 Compiladores: Intel C++ Ejemplos: Compilar matrix.c sin optimización y con -O1 y comparar resultados Ejecutar y comparar tiempos. /apps/intel/composerxe/samples/en_us/c++/optimize Compilar int_sin.c con -O0 y -O1 Ejecutar y comparar resultados.

17 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés (si utilizan modules, se incluirá la información para su configuración). Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

18 Compiladores: Intel C++ Disable optimization -O0 Optimize for speed (no code size increase) -O1 Optimize for speed (default) -O2 High-level optimizer, including prefetch, unroll -O3 Create symbols for debugging -g Inter-procedural optimization Profile guided optimization (muli-step build) Optimize for speed across the entire program **warning: -fast def n changes over time OpenMP support Automatic parallelization -ipo -prof-gen -prof-use -fast (-ipo -O3 -no-prec-div -static -xhost) -openmp -parallel

19 Compiladores: Intel C++ y optimizaciones HLO High-Level Optimizer (HLO): Opciones de Compilación: -O2 y -O3 Optimizaciones a nivel de lazo/bucle: Loop unrolling Cache blocking Prefetching Análisis de dependencias agresivo: Determina si es seguro o no reordenar o paralelizar ciertas ordenes Substitución de escalares: Su objetivo es reducir referencias a memoria con referencias a registros

20 Compiladores: Intel C++ y optimizaciones HLO Ejemplos: Compilar matrix.c con -O[2 3] sin vectorización y comparar resultados Ejecutar y comparar tiempos. /apps/intel/composerxe/samples/en_us/c++/optimize Compilar int_sin.c con -O2 y -O3 sin vectorización Ejecutar y comparar resultados.

21 Compiladores: Intel C++ y optimizaciones HLO Ver man page: man icc -O3: Performs O2 optimizations and enables more aggressive loop transformations such as Fusion, Block- Unroll-and-Jam, and collapsing IF statements. This option may set other options. This is determined by the compiler, depending on which operating system and architecture you are using. The options that are set may change from release to release. When O3 is used with options -ax or -x (Linux OS) or with options /Qax or /Qx (Windows OS), the compiler performs more aggressive data dependency analysis than for O2, which may result in longer compilation times. The O3 optimizations may not cause higher performance unless loop and memory access transformations take place. The optimizations may slow down code in some cases compared to O2 optimizations. The O3 option is recommended for applications that have loops that heavily use floating-point calculations and process large data sets.

22 Compiladores: Intel C++ y optimizaciones IPO Interprocedural optimization (IPO): Análisis topológico de la aplicación -ip : Sólo para el fichero fuente actual. -ipo : Optimizaciones a través de todos o varios ficheros Enabled optimizations: Procedure inlining (reduced function call overhead) Procedure reordering Interprocedural dead code elimination and constant propagation Enhances optimization when used in combination with other compiler features Especialmente código con muchas funciones pequeñas se beneficia de IPO

23 Compiladores: Intel C++ y optimizaciones IPO Interprocedural optimization (IPO): Análisis topológico de la aplicación Es un proceso en 2 pasos: Paso 1 Compilar: icc -c -ipo main.c func1.c func2.c Objeto temporal Paso 2 linkar: icc -ipo main.o func1.o func2.o Ejecutable

24 Compiladores: Intel C++ y optimizaciones IPO Ejemplos: Compilar matrix.c con -ipo y comparar resultados con sólo la opción -O3 Alguna mejora? Compilar pi.c y la función externa fx.c sin -ipo y con -ipo Ejecutar y comparar tiempos.

25 Compiladores: Intel C++ y optimizaciones PGO Profile-Guide Optimizations (PGO) Hasta ahora sólo hemos realizado análisis estáticos del código, muchas cuestiones abiertas: Es frecuente que x > y? Cual es el tamaño de un contador concreto, es muy grande el bucle o tenemos pocas iteracciones? Que código se usa y con que frecuencia?

26 Compiladores: Intel C++ y optimizaciones PGO Profile-Guide Optimizations (PGO) La idea es usar información en tiempo de ejecución para guiar la optimización final. Enhancements with PGO: More accurate branch prediction Basic block movement to improve instruction cache behavior Better decision of functions to inline (help IPO) Can optimize function ordering Switch-statement optimization Better vectorization decisions

27 Compiladores: Intel C++ y optimizaciones PGO Profile-Guide Optimizations (PGO): Proceso de 3 pasos 1 Compilar y linkar añadiendo instrumentación: icc -prof_gen prog.c 2 Ejecutamos el programa instrumentado:./prog (conjunto de datos típico) Profile dinámico: dyn 3 Compilaemos y linkamos con la info obtenida: icc -prof_use prog.c Unión de todos los ficheros.dyn en pgopti.dpi y linkado del programa optimizado

28 Compiladores: Intel C++ y optimizaciones PGO Ejemplos: Compilar matrix.c con las opción -prof-gen Ejecutar pgen_matrix.exe (alguna idea por qué es tan lento?) Compilar usando -prof-use y optimización Alguna mejora?

29 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés (si utilizan modules, se incluirá la información para su configuración). Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

30 OpenMP: Conceptos OpenMP es una colección de directivas, librerías y variables de entorno para programas en Fortran, C y C++ Es actualmente el estándar para programación de sistemas de memoria compartida y sistemas de memoria compartida físicamente distribuida Página oficial OpenMP: OpenMP consta básicamente de tres elementos: Control de paralelismo directiva parallel directivas de reparto de trabajo (ej, directiva do) Control de datos y comunicaciones variables privadas y compartidas Sincronización Para coordinar el acceso a los datos (barreras, secciones críticas...)

31 OpenMP: Conceptos OpenMP utiliza el modelo de ejecución paralela fork-join: Un programa comienza su ejecución con un proceso único (thread maestro) Cuando se encuentra la primera construcción paralela crea un conjunto de threads, cada uno con su identificador (el thread maestro tiene identificador 0) Una forma de indicar el número de threads que se van a crear es a través de la variable de entorno OMP_NUM_THREADS Los threads creados por el thread maestro van a ejecutar todos la misma copia de código. Cuando termina la región paralela sólo el thread maestro continua la ejecución

32 OpenMP: Conceptos La paralelización del código se suele hacer de forma incremental, empezando por la paralelización de los bloques computacionalmente más costosos Normalmente se emplea para la paralelización de lazos: Se busca los lazos computacionalmente más costosos Se reparten sus iteraciones entre los threads void main() { int i; double suma[1000]; for(i=0;i++;i<1000) calcular_suma(suma[i]); } void main() { int i; double suma[1000]; #pragma omp parallel for for(i=0;i++;i<1000) calcular_suma(suma[i]); }

33 OpenMP: Conceptos Los diferentes threads se comunican a través de variables compartidas La compartición de datos puede llevar a un mal comportamiento del programa debido al acceso simultáneo desde diferentes threads Para evitarlo se utilizan directivas de sincronización (protegen los datos de conflictos) Las sincronizaciones son costosas hay que tratar de evitarlas

34 OpenMP: Conceptos Modelo de memoria: El compilador de OpenMP debe expandir las zonas de memoria creadas por un compilador secuencial para almacenar los datos Cada thread tendrá su propio stack. Se utiliza este espacio para almacenar los argumentos y variables locales de los procedimientos invocados por ese thread El stack privado de cada thread se utilizará también para almacenar las variables privadas El tamaño por defecto del stack de cada thread depende de la implementación, pero es configurable con la variable de entorno OMP_STACKSIZE Heap Stack thread 1 Stack thread 0 Datos Estáticos Código objeto

35 OpenMP: Estándares OpenMP-1 OpenMP-1.0 Fortran: 1997 OpenMP-1.0 C/C++: 1998 OpenMP-1.1 Fortran: OpenMP-3 OpenMP-3.0 Fortran y C/C++: 2008 OpenMP-3.1 Fortran y C/C++: OpenMP OpenMP-4 OpenMP-2.0 Fortran: 2000 OpenMP-2.0 C/C++: 2002 OpenMP-2.5 Fortran y C/C++: 2005 OpenMP-4.0: Especificaciones en Julio de 2013

36 Compiladores: Intel C++ y soporte OpenMP Comienza el soporte de OpenMP 4.0 (vectorización y soporte coprocesadores: target y simd) (sección 4.2.1) Incluye librerías OpenMP compatibles con el soporte OpenMP de GCC (compatibilidad a nivel de objeto).

37 Compiladores: Intel C++ y soporte OpenMP Opciones en compilación: -openmp : Se genera código multihilo basado en las directivas -openmp-report [= n ] : nivel de diagnóstico 0 : No diagnostico 1 : bucles/regiones/secciones paralelizadas (por defecto) 2 : (1) + construcciones y directivas (MASTER/SINGLE/CRITICAL/ORDERED/ATOMIC) -openmp-simd -no-openmp-simd : Uso o no de directivas Single Instruction Multiple Data (SIMD) -openmp-stubs : compilación de programas openmp en modo secuencial -openmp-task=model : Modelo de tareas OpenMP intel : pragmas tipo #pragma intel_omp_taskq omp : OpenMP API 3.0 (por defecto) -openmp-threadprivate=type legacy : Sin compatibilidad con otros compiladores (por defecto) compat : compatibilidad con compiladores GNU Uso de funciones de runtime: #include <omp.h>

38 Compiladores: Intel C++ y soporte OpenMP Thread Affinity / Binding (http://software.intel.com/en-us/node/459494) Variable de entorno KMP_AFFINITY KMP_AFFINITY=[<modifier>,...]<type>[,<permute>][,<offset>] Argumento Valor por defecto Descripción modifier noverbose respect granularity=core Opcional. Valores posibles: granularity=<fine, thread, core>,norespect,noverbose,nowarnings,proclist={<proclist>},respect,verbose,warnings type ninguno Modelo de afinidad a usar: compact, disabled, explicit, none, scatter permute 0 Opcional. Entero positivo. No válido para type : explicit, none, o disabled offset 0 Opcional. Entero positivo. No válido para type : explicit, none, o disabled

39 Compiladores: Intel C++ y soporte OpenMP Tipos de afinidad (único argumento obligatorio): type = none (por defecto) No se usa afinidad. Se usará la interface OpenMP thread affinity para determinar la topología del nodo. Si se especifica KMP_AFFINITY=verbose,none se obtiene un mapa del nodo. type = compact Los threads son colocados lo más próximos posible. type = disabled La interface de afinidad se desactiva completamente. Incluso funciones de bajo nivel como kmp_set_affinity y kmp_get_affinity se comportarán como si el SO no tuviese soporte. type = explicit Lista de IDs de proc. El modificador proclist es obligatorio. Este modificador especifica la lista de IDs de procesadores (SO) que se van a usar. También puede usar la variable de entorno GOMP_CPU_AFFINITY para este fin (compatibilidad GCC). type = scatter Distribuye los threads lo maximo posible entre los procesadores del sistema. Lo opuesto de compact.

40 Compiladores: Intel C++ y soporte OpenMP Del manual GCC: GOMP_CPU_AFFINITY: Bind threads to specific CPUs Description: Binds threads to specific CPUs. The variable should contain a space-separated or comma-separated list of CPUs. This list may contain different kinds of entries: either single CPU numbers in any order, a range of CPUs (M-N) or a range with some stride (M-N:S). CPU numbers are zero based. For example, GOMP_CPU_AFFINITY=" :2" will bind the initial thread to CPU 0, the second to CPU 3, the third to CPU 1, the fourth to CPU 2, the fifth to CPU 4, the sixth through tenth to CPUs 6, 8, 10, 12, and 14 respectively and then start assigning back from the beginning of the list. GOMP_CPU_AFFINITY=0 binds all threads to CPU 0. GOMP_CPU_AFFINITY=<proc_list> es un alias para KMP_AFFINITY=granularity=fine,proclist=[<proc_list>],explicit

41 Compiladores: Intel C++ y soporte OpenMP modifier = granularity core fine/thread Por defecto. Cada thread es asignado a un core y puede moverse en los contextos de threads de ese core. Cada thread es asignado a único contexto. Solo para type compact o scatter permute : Nivel del árbol de topología más significativo offset : desplazamiento con el que empiezo la colocación respect : mantiene la mascara de afinidad del hilo que inicializa

42 Compiladores: Intel C++ y soporte OpenMP Topologia en los nodos del cluster UCA: Frontales: 2 packages x 8 cores/pkg x 2 threads/core (16 total cores) Nodos: 2 packages x 8 cores/pkg x 1 threads/core (16 total cores) Nodo Package 0 c0 c1 c2 c3 c4 c5 c6 c7 Package 1 c0 c1 c2 c3 c4 c5 c6 c7 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 SO: 0,16 1,17 2,18 3,19 4,20 5,21 6,22 7,23 8,24 9,25 10,26 11,27 12,28 13,29 14,30 15,31

43 Compiladores: Intel C++ y soporte OpenMP OMP_NUM_THREADS=4 KMP_AFFINITY=granularity=fine,compact Nodo Package 0 c0 c1 c2 c3 c4 c5 c6 c7 Package 1 c0 c1 c2 c3 c4 c5 c6 c7 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 SO: 0,16 1,17 2,18 3,19 4,20 5,21 6,22 7,23 8,24 9,25 10,26 11,27 12,28 13,29 14,30 15,31

44 Compiladores: Intel C++ y soporte OpenMP OMP_NUM_THREADS=4 KMP_AFFINITY=granularity=fine,compact,1,0 Nodo Package 0 c0 c1 c2 c3 c4 c5 c6 c7 Package 1 c0 c1 c2 c3 c4 c5 c6 c7 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 SO: 0,16 1,17 2,18 3,19 4,20 5,21 6,22 7,23 8,24 9,25 10,26 11,27 12,28 13,29 14,30 15,31

45 Compiladores: Intel C++ y soporte OpenMP OMP_NUM_THREADS=4 GOMP_CPU_AFFINITY=1,3,12-15:2 Nodo Package 0 c0 c1 c2 c3 c4 c5 c6 c7 Package 1 c0 c1 c2 c3 c4 c5 c6 c7 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1t0,t1 SO: 0,16 1,17 2,18 3,19 4,20 5,21 6,22 7,23 8,24 9,25 10,26 11,27 12,28 13,29 14,30 15,31

46 Compiladores: Intel C++ y soporte OpenMP Ejemplo: /apps/intel/composer_xe_2013_sp /samples/en_us/c++/openmp_samples/openmp_sample.c Compilarlo con icc -openmp -std=c99 y ejecutar con varios hilos. Que ocurre cuando usamos afinidad? Probar distintas combinaciones...

47 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés (si utilizan modules, se incluirá la información para su configuración). Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

48 Compiladores: Compatibilidad y portabilidad de Intel C++ Soporte completo de C++ ISO/IEC 14882:1998 (C++ 98) C ISO/IEC 9899:1990 (ANSI C o C89, C90) C99: restricted pointers (restrict keyword). variable-length Arrays flexible array members complex number support (_Complex keyword) hexadecimal floating-point constants compound literals designated initializers mixed declarations and code macros with a variable number of arguments inline functions (inline keyword) boolean type (_Bool keyword) C++ 11:

49 Compiladores: Compatibilidad y portabilidad de Intel C++ Compatibilidad e interoperatividad con GCC Alta compatibilidad: compatibilidad a nivel binario entre objetos. Es posible compilar usando ambos compiladores. Uso de extensiones GNU (soportadas un gran nº de ellas) Opción de linkado -cxxlib : uso del runtime y headers de GCC (por defecto para C++).

50 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés (si utilizan modules, se incluirá la información para su configuración). Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

51 Compiladores: Vectorización con Intel C++ SIMD Single Instruction Multiple Data Modo escalar: una instrucción produce un resultado Modo SIMD : una instrucción SSE o AVX produce varios resultados

52 Compiladores: Vectorización con Intel C++ SIMD Single Instruction Multiple Data Necesario un soporte especifico del hardware Intel SSE Tamaño de vector: 128bit Tipos de datos: 8,16,32,64 bit integers 32, 64bit floats Longitud del vector: 2,4,8,16 Ej: Xi, Yi bit 32 int / float Intel AVX Tamaño de vector: 256bit Tipos de datos: 32, 64 bit floats Longitud del vector: 4, 8, 16 Ej: Xi, Yi 32 bit int o float Aparece 2011

53 Compiladores: Vectorización con Intel C++ SIMD Single Instruction Multiple Data Extensiones especificas:

54 Compiladores: Vectorización con Intel C++ Opciones del compilador: -x<extension> Optimizaciones específicas para procesadores Intel El compilador intentara usar el conjunto de instrucciones hasta la extension especifica -m<extension> No hay chequeo de procesador. No incluye optimizaciones especificas (valido para todos los procesadores que soporten la extension) -msse2 se activa con -O2 o superior -ax<extension> Codigo multiple: una linea de base junto versiones mas optimizadas La linea base por defecto es -msse2 La linea base se modifica con las opciones anteriores -axavx,sse4.2 codigo optimizado para avx, sse4.2 y sse2 (lineabase por defecto) -xhost Se usara el juego de instrucciones superior soportado por el procesador donde se compila -no-vec Deshabilita la vectorización de manera global

55 Compiladores: Vectorización con Intel C++ Directivas: #pragma vector always Fuerza el uso de la vectorización sobre el bucle saltándose las indicaciones del compilador :problemas de alineamiento, stride (separación entre elementos a ser vectorizados) no único Aun asi el compilador tiene que poder reconocer la transformación necesaria. #pragma vector always assert abortara la compilación si hay algún problema con la vectorización #pragma ivdep Ignorar dependencias de datos no probadas #pragma novector Inhabilita la vectorización de un bucle individual

56 Compiladores: Vectorización con Intel C++

57 Compiladores: Vectorización con Intel C++ Por qué no vectoriza mi bucle? -vec-report<n> n=0: sin información (por defecto) n=1: info sobre bucles vectorizados n=2: info sobre bucles vectorizados y la razón de los no vectorizados. n=3: Añade información de dependencias n=4: reporta solo bucles no vectorizados n=5: reporta solo bucles no vectorizados y su información de dependencia -opt_report_phase hpo (High Performance Optimizer) proporciona información adicional para la vectorización

58 Compiladores: Vectorización con Intel C++ Ejemplos: Compilar matrix.c con -O[2 3], -xhost y -fast obteniendo un informe de la vectorización Ejecutar y comparar tiempos. Vectorizan todos los bucles? Posibilidad de mejora? Tutorial: /apps/intel/composer_xe_2013_sp /samples/en_us/c+ +/vec_samples

59 Compiladores: Vectorización con Intel C++ La vectorización depende de: No haya dependencia de datos en las iteraciones de los bucles Esquemas de datos regulares y predecibles para todos los operadores Cuidado con los juegos con punteros, evitar accesos indirectos Longitudes de vector suficientemente grandes Datos alineados

60 Compiladores: Autoparalelizacion con Intel C++ -parallel El compilador automaticamente convierte porciones de codigo serie en su codigo equivalente multihilo El auto-paralelizador analiza el flujo de datos en los bucles y genera codigo multihilo para aquellos bucles que pueden ejecutarse de manera eficiente y segura en paralelo. -par-report (0: no info, 3 nivel maximo de diagnostico) Genera informes acerca de secciones del programa que podrian ser paralelizadas por el compilador

61 Compiladores: Autoparalelizacion con Intel C++ Ejemplos: Compilar matrix.c con -parallel -par-report2 y combinatorias de otras opciones Examinar el informe, posibles mejoras?

62 Compiladores: Autoparalelizacion con Intel C++ Autoparalelizacion guiada (Guided Automatic Parallelism GAP) Opcion del compilador: -guide (-guide -guide-vec -guide-par -guide-data-trans ) Con esta opcion el compilador no compila, analiza el codigo para dar consejo sobre vectorizacion (-guide-vec), paralelizacion (-guide-par ), o ambas ( -guide ). Tambien, GAP puede hacer sugerencias sobre como reordenar las estructuras de datos para obtener un acceso mas optimo ( -guide-data-trans ).

63 Compiladores: Autoparalelizacion con Intel C++ TUTORIAL sobre GAP /apps/intel/composer_xe_2013_sp /samples/en_us/c++/guided_auto_parallel.tar.gz

64 Agenda Administración: (1 horas) Instalación: Procedimiento, actualización y detalles de interés Configuración entorno: Variables de entorno de interés (si utilizan modules, se incluirá la información para su configuración). Compiladores: (4 horas) Intel C++ Compiler XE 14.0 Introducción Ejemplos básicos de compilación Opciones avanzadas: Ejemplos optimizaciones: HLO, IPO y PGO Ejemplos soporte OpenMP Ejemplos compatibilidad y portabilidad Ejemplos paralelización y vectorización automática Intel Fortran Compiler XE 14.0 Introducción y ejemplos básicos ejecución.

65 Compiladores: Intel Fortran Rendimiento tanto en serie como paralelo para procesadores Intel. Introduce facilidades en compilación para la vectorización, la programación paralela y soporte de estándares para simplificar el desarrollo de aplicaciones Fortran con alto rendimiento. Destacan entre estas características el soporte de Fortran 2003, Fortran 2008 y nuevas funcionalidades de OpenMP 4.0 y la posibilidad de autoparalelización. Documentación completa:

66 Compiladores: Intel Fortran

67 Compiladores: Intel Fortran

68 Compiladores: Intel Fortran Uso básico: Comandos: ifort para todos los estándares de Fortran soportados. Opciones de optimización similares al compilador de C++ ifort help proporciona la lista extensa de opciones man ifort Aspectos de la línea de comandos: -fpscomp Compatibilidad con Microsoft Fortran Power Station -fpscomp filesfromcmd La línea de comandos debe incluir los nombres de las unidades a las que no se ha especificado nombre de fichero.

69 Compiladores: Intel Fortran Ejemplos: /apps/intel/composerxe/samples/en_us/fortran Tutorial: Coarray Fortran: programacion paralela usando un modelo single program multiple data (SPMD) soportando tanto memoria compartida como distribuida en un metodo unico.

70 Compiladores Opciones aritmética coma flotante: -fp-model name Mejora de consistencia evitando ciertas optimizaciones. fast=[1 2] : Permite optimizaciones agresivas con ligero coste de precisión y consistencia (por defecto fast=1). precise : Sólo permite optimizaciones seguras. double/extended/source : tipo de los resultados intermedios. Implica precise a no ser que se especifique otra cosa. Double y extended no está disponible en Fortran. except : Fuerza excepciones. strict : precise+except Se recomienda -fp-model precise fp-model source para la mayoría de las situaciones con problemas de consistencia y reproductibidad -ftz[-] Se fijan a 0 los denormals (underflows). Activa por defecto excepto con -O0

71 Compiladores Opciones aritmética coma flotante: -fimf-precision:name Precisión de las funciones de la librería matemática. Por defecto se deja a la heurística del compilador. Posibles valores: high, medium y low. En general mayor precisión, peor rendimiento. -fimf-arch-consistency=true Asegura resultados consistentes entre los procesadores de la misma arquitectura. Por defecto es false. -[no-]prec-div Mejora o reduce [no-] la precisión de las divisiones. En general leve impacto en rendimiento. -[no-]prec-sqrt Mejora o reduce [no-] la precisión de las raíces cuadradas. En general leve impacto en rendimiento.

72 Compiladores Opciones aritmética coma flotante: Ejercicio: Probar las versiones optimizadas con -fp-model precise fp-model source

73 Compiladores Profiling a nivel de función y bucle: Similar a gprof. Opciones compilador: -profile-functions Inserta instrumentación en la entrada y salida de las funciones para recoger los ciclos consumidos. -profile-loops=<inner outer all> Además inserta instrumentación en los bucles donde sea capaz según el tipo Estas opciones generan ficheros de texto (.dump) y XML (.xml). Visualizador para los ficheros XML: java -jar /apps/intel/composer_xe_2013_sp /bin/loopprofileviewer.jar <xml datafile>

74 Compiladores Profiling a nivel de función y bucle: Ejercicios: icc -profile-functions -o prof-matrix matrix.c icc -O1 -profile-functions -o prof-matrix matrix.c icc -O1 -profile-loops=all -o prof-matrix matrix.c

75 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

76 Compiladores: Intel Debugger Intel Debugger (IDB) Depurador completo con las siguientes características: Soporta C++ y Fortran Código máquina y valores de registros Depuración de aplicaciones multihilo Análisis de compartición de datos entre hilos detectando accesos idénticos. breakpoint inteligente para parar la ejecución a la vez en los diferentes hilos. Vista de registros de vectores (SSE) con formatos y opciones de edición para la depuración de aplicaciones paralelas SIMD. Vistas especializadas en OpenMP para análisis de estado de aplicación. Disponible GUI Documentación completa:

77 Compiladores: Intel Debugger Opciones de depuración en los compiladores: -g, -debug, -debug full, -debug all Producen información de depuración compatible con los depuradores habituales. Desactiva -O2 y hace -O0 el defecto a no ser que se especifique la opción de optimización. -debug none No se genera información de depuración (por defecto) -debug minimal Genera sólo nºs de línea pero no símbolos -debug inline-debug-info Preparación del ejecutable Símbolos asociados a funciones inlined son asociadas con la función llamada. Por defecto con la opción -O2 -debug extended Produce información adicional útil para código optimizado -[no-]sox Incluye la versión del compilador y opciones usadas en el fichero objeto y el ejecutable -traceback Proporciona el traceback sobre los distintos fuentes con errores severos en tiempo de ejecución.

78 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

79 Compiladores: Intel Debugger Interfaz gráfico de usuario (GUI) Comando: idb Es necesario el entorno JAVA Soporta Multihilo

80 Compiladores: Intel Debugger Interfaz de Eclipse Integrado con Eclipse + CDT La integración soporta Eclipse 3.7. Para la depuración con fortran es necesario instalar el plugin Photran. Uso: Iniciar Eclipse Crear o abrir un workspace. (ej makefile project ) Selecionar Help Install New Software Junto al campo Work with click en el botón Add y aparece el diálogo Add Site Click en el botón local y seleccionar el directorio apropiado que contiene la integración: /apps/intel/eclipse_support/cdt8.0/eclipse Click OK Asegurarse que no está selecionado Group items by category Seleccionar la integración de IDB y click en Next Seguir instrucciones y reiniciar Eclipse cuando se indique.

81 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Comando: idbc Opciones disponibles: idbc help Modos: -idb : compatible DBX -gdb : compatible GDB

82 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Modo GDB (por defecto): (idb) help Obtener ayuda sobre los comandos disponibles (idb) break main breakpoint en la entrada del programa principal. (idb) run Ejecuta la aplicación hasta el siguiente breakpoint. (idb) info breakpoints Lista de breakpoint existentes (idb) delete breakpoint <breakpoint id> Borra el breakpoint con el correspondiente id

83 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Modo IDB (-idb): (idb) help Obtener ayuda sobre los comandos disponibles (mucho más completa en este modo) (idb) stop in main breakpoint en la entrada del programa principal. (idb) stop in 20 breakpoint en la línea 20 (idb) stop variable i changed breakpoint cuando la variable i cambia de valor (idb) run Ejecuta la aplicación hasta el siguiente breakpoint. (idb) status Lista de breakpoint existentes (idb) delete <breakpoint id> Borra el breakpoint con el correspondiente id

84 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Explorar comandos más elaborados Como paro el programa cuando una variable cuando toma cierto valor? break if Puedo modificar variables internas cuando ocurre un evento determinado? when en modo idb

85 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

86 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Depuración de programas multihilo. El debugger detecta automáticamente un programa OpenMP y activa su soporte (idb) set $threadlevel="native" (idb) set $threadlevel="openmp" Info OpenMP Acceso a datos compartidos Acceso simultaneo a una expresión idb info thread idb info task idb info barrier idb info taskwait idb info lock idb info team idb info openmp thread tree idb sharing on idb sharing stop on/off idb sharing event expand idb sharing filter idb reentrancy specifier

87 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Depuración de programas OpenMP Usemos varios ejemplos

88 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Depuración de programas MPI Opciones -idb,-idba,-gdb,-gdba de mpirun Variables: MPIEXEC_DEBUG=1 IDB_PARALLEL_SHELL=/bin/sh Uso del comando focus para especificar sobre que proceso/s operamos. Problemas con la agregación de mensajes: $parallel_aggregatordelay (por defecto 3000 miliseg) Desincronización de los procesos: usar until (GDB) o cont to (IDB) especificando un lugar común. No se localizan las fuentes: -idbopt -I O usar use

89 Compiladores: Intel Debugger Interfaz de línea de comandos (CLI) Depuración de programas MPI Ejercicio compilar cpi.c y depurar su ejecución. Uso de focus.

90 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

91 Intel MKL Intel Math Kernel Library (MKL) Librería matemática altamente optimizada con rutinas multihilo. Incluye: BLAS (level 1, 2, and 3) and LAPACK linear algebra routines, offering vector, vector-matrix, and matrix-matrix operations. The PARDISO* direct sparse solver, an iterative sparse solver, and supporting sparse BLAS (level 1, 2, and 3) routines for solving sparse systems of equations. ScaLAPACK distributed processing linear algebra routines for Linux* and Windows* operating systems, as well as the Basic Linear Algebra Communications Subprograms (BLACS) and the Parallel Basic Linear Algebra Subprograms (PBLAS). Fast Fourier transform (FFT) functions in one, two, or three dimensions with support for mixed radices (not limited to sizes that are powers of 2), as well as distributed versions of these functions provided for use on clusters of the Linux* and Windows* operating systems. Vector Math Library (VML) routines for optimized mathematical operations on vectors. Vector Statistical Library (VSL) routines, which offer high-performance vectorized random number generators (RNG) for several probability distributions, convolution and correlation routines, and summary statistics functions. Data Fitting Library, which provides capabilities for spline-based approximation of functions, derivatives and integrals of functions, and search. Extended Eigensolver, a shared memory programming (SMP) version of an eigensolver based on the Feast Eigenvalue Solver.

92 Intel MKL Intel Math Kernel Library (MKL) Última versión: 11.1 Soporta varios compiladores: Intel/PGI/GNU. Probado con varios mas Uso con Java, python... Adaptada a las últimas novedades en procesadores. Antes de empezar: Plataforma: procesador Problema matemático: dominio de funciones Lenguaje de programación Uso de arrays muy extensos (> ) : tipo del entero (ILP64/LP64) Multihilo: si/no? con compilador de intel o otro? Modelo de linkado: estático o dinámico MPI: funciones de cluster (ScaLAPACK, Cluster FFT)

93 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

94 Intel MKL: Linkado Con los compiladores de intel, uso muy sencillo: -mkl o -mkl=parallel Estandar multihilo (OpenMP) -mkl=sequential Versión secuencial -mkl=cluster link con la versión cluster (no multihilo) con Intel MPI Guía de linkado: Herramienta de línea de comandos: mkl_link_tool mkl_link_tool -interactive

95 Intel MKL: Linkado Interfaces: Directorio mkl/interfaces blas95/lapack95 : incluidas directamente en la mkl para los compiladores de intel fftw3xc, fftw3xf : incluidas directamente en la mkl para los compiladores de intel fftw2xc, fftw2xf: necesario compilar fftw2x_cdft: necesario compilar fftw3x_cdft: necesario compilar

96 Intel MKL: Linkado Interfaces: Explorar compilación para otros compiladores, versión de MPI En cada uno de de los directorios de las interfaces hay un makefile preparado. La ejecución de make visualiza las opciones disponibles. Ejemplo: mkl/interfaces/fftw2x_cdft $ make libintel64 interface=lp64 PRECISION=MKL_DOUBLE compiler=gnu mpi=mpich2 INSTALL_DIR=~/mkl

97 Intel MKL: Linkado Trucos para el linkado: Podemos usar comandos del linker: como GROUP para referenciar grupos de librerías como un fichero único: libmkl.a: GROUP (libmkl_intel_lp64.a libmkl_intel_thread.a libmkl_core.a) libmklfftw.a: GROUP (libfftw3x_cdft.a libmkl_cdft_core.a libmkl_intel_lp64.a libmkl_sequential.a libmkl_core.a) libmkl-gnu.a: GROUP (libmkl_gf_lp64.a libmkl_gnu_thread.a libmkl_core.a) libmkl-gnu-sequential.a: GROUP (libmkl_gf_lp64.a libmkl_sequential.a libmkl_core.a) libmkl-sequential.a: GROUP (libmkl_intel_lp64.a libmkl_sequential.a libmkl_core.a)

98 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

99 Intel MKL: Ejemplos Tutorial: /apps/intel/composerxe/samples/en-us/mkl/tutorials.zip Usar: #include "mkl.h" malloc especializado: mkl_malloc Función especializada: cblas_dgemm Compilar y linkar el código: opción -mkl del compilador Medir tiempos y comparar con la versión no MKL Ejecutar con varios threads usando las funciones: omp_set_num_threads(), mkl_set_num_threads(), mkl_domain_set_num_threads()

100 Intel MKL: Ejemplos Control de hilos por variables de entorno: OMP_NUM_THREADS : Sobre toda la aplicación OpenMP MKL_NUM_THREADS : Sólo para las funciones MKL MKL_DYNAMIC : cambio dinámico del nº de threads hasta el máximo especificado (activada por defecto) MKL_DOMAIN_NUM_THREADS : control específico sobre un dominio de funciones MKL: export MKL_DOMAIN_NUM_THREADS="MKL_DOMAIN_ALL=1, MKL_DOMAIN_BLAS=4

101 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

102 Intel MKL: Uso ScaLAPACK Uso de la versión cluster: Compiladores Intel + Intel MPI mpiicc -mkl=cluster Versión secuencial de la librería. Uso híbrido: -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_blacs_intelmpi_lp64 -lpthread -lm Compilar siempre con la opción -openmp

103 Intel MKL: Uso ScaLAPACK Probar ejemplos adicionales.

104 Agenda Intel Debugger: (2 horas) Introducción Uso a través de la GUI/eclipse/CLI Ejemplos de uso en aplicaciones paralelas: multihilo (OpenMP) y MPI Intel Math Kernel Library: (2 horas) Introducción Linkado Ejemplos de rendimiento Uso ScaLAPACK Intel MPI: (1 hora) Introducción Referencia de comandos: compilador, ejecución, gestión de procesos, información del procesador. Ejemplos.

105 Intel MPI Intel MPI Librería de paso de mensajes multi-fabric. Implementa MPI-2.2 para plataformas Intel. Permite la actualización de los procesadores y redes de interconexión sin necesidad de cambios en el software. Se distribuye en 2 kits: Intel MPI Library Runtime Environment (RTO): Incluye todas las herramientas necesarias para la ejecución de programas has (Multipurpose Daemon* (MPD), Hydra* y utilidades adicionales, librerías dinámicas y documentación). Intel MPI Library Development Kit (SDK): RTO + las herramientas de compilación (comandos de compilación como mpiicc, ficheros de cabecera, librerías estáticas y librerías de depuración, trazas y testeo de código)

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

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse Programación 2 Curso 2013 2014 Introducción Guía de desarrollo C/C++ con Eclipse Eclipse 1 es un entorno de programación que permite el desarrollo de aplicaciones en diferentes lenguajes. Consta de un

Más detalles

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

Instalación de Eclipse Galileo y depuradores compatibles con OpenMPI y OpenMP Instalación de Eclipse Galileo y depuradores compatibles con OpenMPI y OpenMP Programación Distribuida y Paralela Universidad de Granada Departamento del LSI Por: Daniel Guerrero Martínez Sergio Rodríguez

Más detalles

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

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Objetivos Integrar un toolchain basado en PTXdist sobre un IDE gráfico basado en Eclipse. Creación y compilación de un pequeño proyecto.

Más detalles

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

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Objetivos Integrar un toolchain basado en PTXdist sobre un IDE gráfico basado en Eclipse. Creación y compilación de un pequeño proyecto.

Más detalles

Cómputo en paralelo con OpenMP 1

Cómputo en paralelo con OpenMP 1 Cómputo en paralelo con OpenMP 1 Miguel Vargas-Félix miguelvargas@cimat.mx http://www.cimat.mx/~miguelvargas CIMAT, September 2, 2015 1/34 Velocidad de los procesadores de escritorio Recientemente, la

Más detalles

Cómo hacer módulos y librerías para ejecutarse a bordo del NAO. Mauricio Josafat García Vázquez

Cómo hacer módulos y librerías para ejecutarse a bordo del NAO. Mauricio Josafat García Vázquez Cómo hacer módulos y librerías para ejecutarse a bordo del NAO Mauricio Josafat García Vázquez Abril 2011 Índice general 1. Como hacer módulos y librerías para ejecutarse a bordo del NAO 2 1.1. Términos

Más detalles

Universidad de Guadalajara

Universidad de Guadalajara Universidad de Guadalajara Centro Universitario de Ciencias Económico-Administrativas Maestría en Tecnologías de Información Ante-proyecto de Tésis Selection of a lightweight virtualization framework to

Más detalles

Agustiniano Ciudad Salitre School Computer Science Support Guide - 2015 Second grade First term

Agustiniano Ciudad Salitre School Computer Science Support Guide - 2015 Second grade First term Agustiniano Ciudad Salitre School Computer Science Support Guide - 2015 Second grade First term UNIDAD TEMATICA: INTERFAZ DE WINDOWS LOGRO: Reconoce la interfaz de Windows para ubicar y acceder a los programas,

Más detalles

BlackBerry Messenger SDK

BlackBerry Messenger SDK BlackBerry Messenger SDK Versión: 1.2 Guía de introducción Publicado: 2011-10-11 SWD-1391821-1011103456-005 Contenido 1 Requisitos del sistema... 2 2 Dependencias de versión de BlackBerry Messenger...

Más detalles

Entorno de desarrollo Instalación y configuración

Entorno de desarrollo Instalación y configuración Entorno de desarrollo Instalación y configuración GExCALL Formación http://gexcall.unex.es/formacion El plugin ADT (Android Development Tools) extiende al IDE Eclipse. Te permite crear y depurar aplicaciones

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Entorno de programación de Sistemas Operativos.

Entorno de programación de Sistemas Operativos. Entorno de programación de Sistemas Operativos. La programación de aplicaciones sobre sistemas operativos supone conocer y usar las bibliotecas con las llamadas al sistema operativo. Para hacer una aplicación

Más detalles

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Versión 3.0 02/12/2010 2 3 1 Control de versiones VERSIÓN AUTOR FECHA CAMBIO 1.0 SAIG, S.L. 22/03/2007

Más detalles

Descarga, instalación y uso de herramientas:

Descarga, instalación y uso de herramientas: Descarga, instalación y uso de herramientas: Eclipse: Instalación de Eclipse (Más información en http://www.eclipse.org/) 1. Copiar, descomprimir e instalar si es necesario la última versión de Eclipse

Más detalles

TEMA 2. Agenda. Fundamentos de JAVA

TEMA 2. Agenda. Fundamentos de JAVA TEMA 2 Fundamentos de JAVA V1.3 Manuel Pereira González Agenda Introducción Historia de Java Características Principales Hello World Tipos Operadores Control de Flujo E/S básica Atributos y Métodos Resumen

Más detalles

Tutorial. Configuración del entorno de programación Code::Blocks.

Tutorial. Configuración del entorno de programación Code::Blocks. Tutorial Configuración del entorno de programación Code::Blocks. Code::Blocks es un entorno de desarrollo multiplataforma para programación en C/C++. Se encuentra bajo una licencia GNU, lo cual lo hace

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche Práctica 0 (Repaso) Estándar de programación y Diagramas de flujo.:::1 Sesión:::. a. Estándar de normalización En este apartado se sugieren una serie de normas que ayudarán a que el código sea más fácil

Más detalles

Fundamentos de programación I. - Anexo de Software -

Fundamentos de programación I. - Anexo de Software - Fundamentos de programación I - - 1. Introducción 1.1. Introducción a Dev-C++ y DJGPP 1.1.1. Qué es Dev-C++? Dev-C++ es un Entorno Integrado de Desarrollo (Integrated Development Environment, IDE) capaz

Más detalles

Cookbook Creando un Proyecto Android (ADT-Eclipse)

Cookbook Creando un Proyecto Android (ADT-Eclipse) Cookbook Creando un Proyecto Android (ADT-Eclipse) ALONSO PARRA CESAR VIELMA FREDDY RONDON JOSE MARQUEZ Alienx9889 * cesarvielma * spantons * joseangel2212 * * @gmail.com Universidad de Los Andes Escuela

Más detalles

Introducción al laboratorio de Programación I

Introducción al laboratorio de Programación I Introducción al laboratorio de Programación I Manuel Montenegro montenegro@fdi.ucm.es es Despacho B12 Compilación Es el proceso de transformación de un programa escrito en un lenguaje de alto nivel (en

Más detalles

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

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net Marcos de Desarrollo Diseño e implementación de aplicaciones Web con.net Prácticas de laboratorio (.NET) Planificación de clases prácticas 1. Introducción al entorno de trabajo 2. Ejemplos C# 3. Ejemplos

Más detalles

Intel XeonPhi Workshop

Intel XeonPhi Workshop Intel XeonPhi Workshop Elena Núñez-González Unidad Informática Científica - CIEMAT Madrid, 11 de Febrero de 2015 Evento Lugar, Fecha Índice Introducción MIC Intel Xeon Phi Arquitectura Intel Xeon Phi Entorno

Más detalles

Introducción. Instalación de Apache Tomcat PASO 1: PASO 2: PASO 3: PASO 4:

Introducción. Instalación de Apache Tomcat PASO 1: PASO 2: PASO 3: PASO 4: Introducción El presente documento es una guía rápida de instalación de alguna herramienta particular. De seguro existen otras formas de realizar el proceso de instalación, pero esta es la que mejor le

Más detalles

Pruebas de Compatibilidad de Aplicaciones con SQL Server 2008

Pruebas de Compatibilidad de Aplicaciones con SQL Server 2008 Pruebas de Compatibilidad de Aplicaciones con SQL Server 2008 Instrucciones Generales El objetivo de esta iniciativa es determinar si sus aplicaciones ejecutan apropiadamente en SQL Server 2008 y apoyar

Más detalles

LABORATORIO DE CONTROL POR COMPUTADOR 4º - INGENIERIA DE TELECOMUNICACION

LABORATORIO DE CONTROL POR COMPUTADOR 4º - INGENIERIA DE TELECOMUNICACION PRACTICA 1. LABVIEW. TARJETA OBJETIVOS Que el alumno se familiarice con el entorno de trabajo: Por un lado con las conexiones posibles entre el sistema y computador, y por otro lado, con el entorno del

Más detalles

Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y

Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y Apéndice A Bloques DLL Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y programarlo en lenguaje C, compilarlo dentro de un archivo DLL usando el Microsoft C/C++ o el

Más detalles

Instalación de IBM SPSS Modeler 14.2 Batch para Windows

Instalación de IBM SPSS Modeler 14.2 Batch para Windows Instalación de IBM SPSS Modeler 14.2 Batch para Windows Las siguientes instrucciones deben utilizarse para instalar IBM SPSS Modeler Batch versión 14.2. IBM SPSS Modeler Batch ofrece todas las capacidades

Más detalles

gvsig_des_2.x_d: Curso de desarrolladores de gvsig Desktop v 2.x Maven en gvsig Maven en gvsig Novedades de desarrollo en gvsig 2.

gvsig_des_2.x_d: Curso de desarrolladores de gvsig Desktop v 2.x Maven en gvsig Maven en gvsig Novedades de desarrollo en gvsig 2. Novedades de desarrollo en gvsig 2.0 http://www.gvsig.gva.es http://www.gvsig.org César Ordiñana Arquitecto Software gvsig DiSiD Technologies S.L. cordinyana@gvsig.org gvsig. Geographic Information System

Más detalles

VIJEO DESIGNER RUNTIME PC

VIJEO DESIGNER RUNTIME PC VIJEO DESIGNER RUNTIME PC INSTALACION HISTORICO DE TENDENCIAS HISTORICO DE ALARMAS WEB CLIENTE GRABACIÓN EN BASE DE DATOS INSTALACION No olvidéis que para los PCs Schneider hay que adquirir la Ref VJDSNRTMPC

Más detalles

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Lenguaje C. Tipos de Datos Simples y Estructuras de Control Lenguaje C Tipos de Datos Simples y Estructuras de Control Lenguaje C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje

Más detalles

Clase Práctica Nº 1 ED 2015

Clase Práctica Nº 1 ED 2015 Clase Práctica Nº 1 ED 2015 Introducción La creación de una solución de software tiene varias etapas, por ejemplo: Diseño Implementación Testeo Y para cada etapa existen herramientas que nos ayudan. Introducción

Más detalles

IBM XL Fortran para AIX, V13.1, ofrece compatibilidad con la arquitectura de procesadores POWER7

IBM XL Fortran para AIX, V13.1, ofrece compatibilidad con la arquitectura de procesadores POWER7 con fecha 13 de abril de 2010 IBM XL Fortran para AIX, V13.1, ofrece compatibilidad con la arquitectura de procesadores POWER7 Tabla de contenidos 1 Visión general 2 Descripción 2 Requisitos previos principales

Más detalles

COMO CREAR UN PROYECTO EN DSK6713

COMO CREAR UN PROYECTO EN DSK6713 COMO CREAR UN PROYECTO EN DSK6713 Autor: Gonzalo Sad A continuación se detallan los pasos a seguir para realizar un proyecto de propósito general en la placa de desarrollo DSK6713, el cual servirá de base

Más detalles

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid Anexo IV Configuración del Entorno de Desarrollo Guía de puntos de interés de la Ciudad de Madrid 1. Índice Anexo IV Configuración del Entorno de Desarrollo... 1 1. Índice... 2 2. Entorno de Desarrollo...

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Resumen Lenguaje Java

Resumen Lenguaje Java Resumen Lenguaje Java Comentarios Elementos del Lenguaje De una sola línea // comentario De varias líneas /* Este es un comentario de varias líneas */ Comentarios para Javadoc /** * The Example class */

Más detalles

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Creating your Single Sign-On Account for the PowerSchool Parent Portal

Creating your Single Sign-On Account for the PowerSchool Parent Portal Creating your Single Sign-On Account for the PowerSchool Parent Portal Welcome to the Parent Single Sign-On. What does that mean? Parent Single Sign-On offers a number of benefits, including access to

Más detalles

Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Autor: Jorge A. Díez Pomares Laboratorio de C.A.D.

Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Autor: Jorge A. Díez Pomares Laboratorio de C.A.D. Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Laboratorio de C.A.D. UMH 1 1.1. INTRODUCCIÓN 1.2. SOFTWARE NECESARIO 1.3. CONFIGURACIÓN DEL PROYECTO EN VS2010

Más detalles

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

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación ) Clase:003 1 Unidad I Introducción a la programación de Dispositivos Móviles (Continuación ) 2 Entornos de Desarrollo Virtualizaciones. Agenda IDE s. Y Lenguajes de Programación. 3 Virtualización Que es

Más detalles

Sesión 3: PL 2b: Sistema para la adquisición de señales analógicas.

Sesión 3: PL 2b: Sistema para la adquisición de señales analógicas. Sesión 3: PL 2b: Sistema para la adquisición de señales analógicas. 1 Objetivo... 3 Signal Logging Basics... 3 Configure File Scope (xpc) Blocks... 3 File Scope Usage... 4 Create File Scopes Using xpc

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Instalación de R. www.r-project.org/

Instalación de R. www.r-project.org/ Instalación de R Página principal de R (si se pone en Google R, es la página asociada con The R Project for Statistical Computing ): www.r-project.org/ En la columna izquierda seleccionamos Download, Packages

Más detalles

Documentación complementaria para las prácticas de LabView

Documentación complementaria para las prácticas de LabView Documentación complementaria para las prácticas de LabView Asignatura de Sistemas de Percepción (DTE) Curso 2007 2008 1. Instrumentación virtual Un instrumento virtual simula el panel frontal y el funcionamiento

Más detalles

Seguimiento en aplicaciones Web con Microsoft ASP.NET

Seguimiento en aplicaciones Web con Microsoft ASP.NET Seguimiento en aplicaciones Web con Microsoft ASP.NET Índice Introducción 1 Lección: descripción del seguimiento 2 Lección: depuración remota 18 Seguimiento en aplicaciones Web con Microsoft ASP.NET 1

Más detalles

Indice de Documentación

Indice de Documentación Indice de Documentación Redes inalámbricas, 802.11b, en GNU/Linux Luis Rial, luisrial@iies.es v0.2, 27 Enero 2003 Hacer funcionar una tarjeta de red inalámbrica es una tarea muy sencilla si SuSE nos proporciona

Más detalles

Oracle Express 10g. Marta Zorrilla Universidad de Cantabria

Oracle Express 10g. Marta Zorrilla Universidad de Cantabria Oracle Express 10g Marta Zorrilla Universidad de Cantabria Características With Oracle Database XE, you use an intuitive browser-based interface to: Administer the database Create tables, views, and other

Más detalles

PROGRAMA DE CURSO. Horas Docencia Horas de Trabajo Horas de Cátedra Docentes 6 10 1,5 1.5 7

PROGRAMA DE CURSO. Horas Docencia Horas de Trabajo Horas de Cátedra Docentes 6 10 1,5 1.5 7 PROGRAMA DE CURSO Código Nombre CC5320 Programación Consciente de la Arquitectura Nombre en Inglés Awareness of architecture in programming SCT Unidades Horas Docencia Horas de Trabajo Horas de Cátedra

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Lección: Lenguaje de Programación JULIA

Lección: Lenguaje de Programación JULIA Lección: Lenguaje de Programación JULIA ICI3140 Métodos Numéricos Profesor : Dr. Héctor Allende-Cid e-mail : hector.allende@ucv.cl JULIA Julia is a highlevel, high-performance dynamic programming language

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Modelo de aplicaciones CUDA

Modelo de aplicaciones CUDA Modelo de aplicaciones CUDA Utilización de GPGPUs: las placas gráficas se utilizan en el contexto de una CPU: host (CPU) + uno o varios device o GPUs Procesadores masivamente paralelos equipados con muchas

Más detalles

Tema: Introducción a Java y Netbeans

Tema: Introducción a Java y Netbeans 1 Tema: Introducción a Java y Netbeans Objetivo Especifico Conocer el uso básico del JDK para la compilación y ejecución de código java desde la linea de comando Conocer el entorno de desarrollo NetBeans

Más detalles

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Informática I Código 2547100 Semestre 2014-2 Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Programming tools Editor de texto (gedit, kate, vim, wordpad, etc):

Más detalles

pdi-tools: Mecanismo de interposición dinámica de código

pdi-tools: Mecanismo de interposición dinámica de código pdi-tools: Mecanismo de interposición dinámica de código Descripción del proyecto Gerardo García Peña Jesús Labarta Judit Giménez Copyright 2004, 2005 Gerardo García Peña pdi-tools: Mecanismo de interposición

Más detalles

II. DISEÑO DEL SISTEMA. Introducción Instalación por red Arranque por red

II. DISEÑO DEL SISTEMA. Introducción Instalación por red Arranque por red II. DISEÑO DEL SISTEMA Introducción Instalación por red Arranque por red Qué es un cluster? Cluster de memoria Distribuida Nuestro Diseño Login SERVER PXE, NFS,TFTP, DHCP Internet DISKS NODOS DE COMPUTO

Más detalles

CAPITULO 7. MS SQL Server Express Edition

CAPITULO 7. MS SQL Server Express Edition CAPITULO 7 MS SQL Server Express Edition 7.1 Requerimientos Previos El proceso de instalación de Microsoft SQL Server 2008 no es complejo y es de gran importancia tener en cuenta que se está realizando

Más detalles

ADAPTACIÓN DE REAL TIME WORKSHOP AL SISTEMA OPERATIVO LINUX

ADAPTACIÓN DE REAL TIME WORKSHOP AL SISTEMA OPERATIVO LINUX ADAPTACIÓN DE REAL TIME WORKSHOP AL SISTEMA OPERATIVO LINUX Autor: Tomás Murillo, Fernando. Director: Muñoz Frías, José Daniel. Coordinador: Contreras Bárcena, David Entidad Colaboradora: ICAI Universidad

Más detalles

Creación de interfaces de

Creación de interfaces de Creación de interfaces de usuario con MATLAB Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear interfaces de usuario

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

OSCILLATION 512 (LM 3R)

OSCILLATION 512 (LM 3R) Application Note The following application note allows to locate the LM series devices (LM3E, LM3R, LM4 and LM5) within network and check its connection information: Name, MAC, dynamic IP address and static

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

1 Procedimiento de instalación general en español de Conecta Disney

1 Procedimiento de instalación general en español de Conecta Disney 1 2 1 Procedimiento de instalación general en español de Conecta Disney 1. El usuario realiza la instalación estándar por Internet de Conecta Disney. El sistema muestra el primer panel de Conecta Disney.

Más detalles

Redes de altas prestaciones

Redes de altas prestaciones Redes de altas prestaciones Tema 6 - Configuración de Routers Curso 2010 Indice Componentes de un Router Interfaz de línea de comando (CLI) Inicio y configuración de un Router Imágenes del Sistema Operativo

Más detalles

International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand. Loros (Parrots)

International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand. Loros (Parrots) Loros (Parrots) A Yanee le entusiasman los pájaros. Después de leer el artículo IP over Avian Carriers (IPoAC) ha estado dedicando mucho tiempo a amaestrar a una bandada de loros inteligentes para llevar

Más detalles

mari_clau_18@hotmail.com Java es el lenguaje de programación que

mari_clau_18@hotmail.com Java es el lenguaje de programación que PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Dra. Maricela Bravo mari_clau_18@hotmail.com JUSTIFICACIÓN Java es el lenguaje de programación que más impacto ha tenido en los últimos años, especialmente en

Más detalles

Programación distribuida con ADA95 bajo GNU/Linux (I)

Programación distribuida con ADA95 bajo GNU/Linux (I) Programación distribuida con ADA95 bajo GNU/Linux (I) Alvaro López Ortega alvaro@godsmaze.org 1. Introducción a GNAT-Glade En primer lugar hay que aclarar que el nombre de esta librería puede confundir

Más detalles

1.1. Instalación del entorno de desarrollo

1.1. Instalación del entorno de desarrollo 1.1. Instalación del entorno de desarrollo Para el desarrollo de las aplicaciones vamos a poder utilizar un potente y moderno entorno de desarrollo. Al igual que Android, todas las herramientas están basadas

Más detalles

2.- Estructuras de Sistemas Operativos

2.- Estructuras de Sistemas Operativos 2.- Estructuras de Sistemas Operativos Describir los servicios que el SO proporciona a los usuarios, procesos y otros sistemas Estudiar las maneras de estrcturar un SO Explicar como se instala un SO, como

Más detalles

ITK BORLAND C ++ BUILDER VTK. Como Compilar Proyectos con C++ Borland Builder, ITK y VTK. olguna@cimat.mx L. en M. Oscar Gutiérrez Luna

ITK BORLAND C ++ BUILDER VTK. Como Compilar Proyectos con C++ Borland Builder, ITK y VTK. olguna@cimat.mx L. en M. Oscar Gutiérrez Luna Como Compilar Proyectos con C++ Borland Builder, ITK y VTK olguna@cimat.mx L. en M. Oscar Gutiérrez Luna 1 CONTENIDO 2 3 CARACTER ÍSTICAS DEL SISTEMA En este apartado se detallan las características del

Más detalles

:Arquitecturas Paralela basada en clusters.

:Arquitecturas Paralela basada en clusters. Computación de altas prestaciones: Arquitecturas basadas en clusters Sesión n 1 :Arquitecturas Paralela basada en clusters. Jose Luis Bosque 1 Introducción Computación de altas prestaciones: resolver problemas

Más detalles

Vamos a Multiplicar Al estilo maya!

Vamos a Multiplicar Al estilo maya! Vamos a Multiplicar Al estilo maya! Resumen de la actividad Esta lección le permite a los estudiantes realizar multiplicación al estilo maya como una actividad de seguimiento a la herramienta interactiva

Más detalles

Hard Disk Drive Duplicator Dock USB 3.0 to SATA HDD Duplicator. StarTech ID: SATDOCK22RU3

Hard Disk Drive Duplicator Dock USB 3.0 to SATA HDD Duplicator. StarTech ID: SATDOCK22RU3 Hard Disk Drive Duplicator Dock USB 3.0 to SATA HDD Duplicator StarTech ID: SATDOCK22RU3 The SATDOCK22RU3 USB 3.0 to SATA Hard Drive Duplicator Dock can be used as a standalone SATA hard drive duplicator,

Más detalles

Instalación De ANDROID STUDIO

Instalación De ANDROID STUDIO Área y Sub-área: Informatica/Computacion Educador: _Luis Orozco Ciclo Escolar: 2015 Grado: 5to Secciones: A,B,C y D Instalación De ANDROID STUDIO Paso 1. Descarga e instalación de Java. Si aún no tienes

Más detalles

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA SERGIO NESMACHNOW Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY CONTENIDO Introducción: arquitecturas

Más detalles

MONTAR GVSIG 1.9 EN ECLIPSE DESDE EL REPOSITORIO SVN. Eduardo Cristóbal (eduardo_gvsig@hotmail.com)

MONTAR GVSIG 1.9 EN ECLIPSE DESDE EL REPOSITORIO SVN. Eduardo Cristóbal (eduardo_gvsig@hotmail.com) MONTAR GVSIG 1.9 EN ECLIPSE DESDE EL REPOSITORIO SVN Eduardo Cristóbal (eduardo_gvsig@hotmail.com) INSTALACIÓN DE GVSIG 1.9 EN ECLIPSE. 1.1 Introducción A la hora de desarrollar la extensión lo primero

Más detalles

Procesos y Threads en Windows (Xp y Server 2003)

Procesos y Threads en Windows (Xp y Server 2003) Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Procesos y Threads en Windows (Xp y Server 2003) EPROCESS Executive Process (bloque de control) Es la representación de un

Más detalles

Instrucciones de instalación de IBM SPSS Modeler Server 14.2 para Windows

Instrucciones de instalación de IBM SPSS Modeler Server 14.2 para Windows Instrucciones de instalación de IBM SPSS Modeler Server 14.2 para Windows Se puede instalar y configurar IBM SPSS Modeler Server para que se ejecute en modo de análisis distribuido junto con una o varias

Más detalles

DISPOSITIVO DE CONTROL PARA REDES DE DISTRIBUCIÓN ELÉCTRICA RESUMEN DEL PROYECTO

DISPOSITIVO DE CONTROL PARA REDES DE DISTRIBUCIÓN ELÉCTRICA RESUMEN DEL PROYECTO I DISPOSITIVO DE CONTROL PARA REDES DE DISTRIBUCIÓN ELÉCTRICA Autor: Juárez Montojo, Javier. Director: Rodríguez Mondéjar, José Antonio. Entidad Colaboradora: ICAI-Universidad Pontificia Comillas RESUMEN

Más detalles

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador. ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador

Más detalles

Cómo comprar en la tienda en línea de UDP y cómo inscribirse a los módulos UDP

Cómo comprar en la tienda en línea de UDP y cómo inscribirse a los módulos UDP Cómo comprar en la tienda en línea de UDP y cómo inscribirse a los módulos UDP Sistema de registro y pago Este sistema está dividido en dos etapas diferentes*. Por favor, haga clic en la liga de la etapa

Más detalles

Lenguaje de Programación: Go

Lenguaje de Programación: Go Centro de Investigación y de Estudios Avanzados del I.P.N 9 de Noviembre de 2011 Go Es un lenguaje de programación de propósito general que es promovido por: Rob Pike, Robert Griesemer, Ken Thompson, Russ

Más detalles

Cómputo en paralelo con MPI

Cómputo en paralelo con MPI Cómputo en paralelo con MPI Miguel Vargas-Félix miguelvargas@cimat.mx CIMAT, October 9, 2015 1/35 Clusters Beowulf Master node External network Slave nodes Network switch Características: Tecnología estandar

Más detalles

Actualización a Oracle Solaris 11.2

Actualización a Oracle Solaris 11.2 Actualización a Oracle Solaris 11.2 Julio de 2014 Referencia: E53735 En este artículo, se detallan los pasos necesarios para actualizar el sistema Oracle Solaris 11 11/11 u 11.1 a Oracle Solaris 11.2 mediante

Más detalles

ETS APPs 26.10.2012 MATELEC 2012. Nuevas Funciones para ETS. Madrid. Casto Cañavate KNX Association International

ETS APPs 26.10.2012 MATELEC 2012. Nuevas Funciones para ETS. Madrid. Casto Cañavate KNX Association International ETS APPs Nuevas Funciones para ETS 26.10.2012 MATELEC 2012 Madrid Casto Cañavate KNX Association International KNX Association International Page No. 2 Introducción Diversidad de Proyectos Viviendas Oficinas

Más detalles

Guía de Inicio Rápido de Servoy Admin

Guía de Inicio Rápido de Servoy Admin Guía de Inicio Rápido del Servidor de Servoy 1 Guía de Inicio Rápido de Servoy Admin 1. Introducción al Application Server... 2 2. Instalación... 3 3. Actualización... 5 4. Inicio... 6 5. Configuración...

Más detalles

Documentación Instalación NOD32 Server y Clientes

Documentación Instalación NOD32 Server y Clientes Documentación Instalación NOD32 Server y Clientes En esta documentación se indicará detalladamente la manera de instalar el antivirus NOD32 de forma distribuida desde un servidor de dominio a todos los

Más detalles

Introducción a PYTHON. Cesar Husillos & Víctor Terrón. Abril de 2014

Introducción a PYTHON. Cesar Husillos & Víctor Terrón. Abril de 2014 Introducción a PYTHON Cesar Husillos & Víctor Terrón IAA-CSIC Abril de 2014 Cesar Husillos & Víctor Terrón (IAA-CSIC) Módulos Abril de 2014 1 / 59 Índice 1 Overview 2 Organización 3 Reutilización 4 Cómo

Más detalles

Práctica 0 Introducción a la programación en C

Práctica 0 Introducción a la programación en C DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES OBJETIVO Grado en Ingeniería de Computadores COMPUTACIÓN DE ALTAS PRESTACIONES Práctica 0 Introducción a la programación en C Se pretende

Más detalles

Manual de NetBeans y XAMPP

Manual de NetBeans y XAMPP Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación

Más detalles

ezeenet Software 1.7 Nota de Aplicación Creando, construyendo y depurando aplicaciones ezeenet en AVR Studio

ezeenet Software 1.7 Nota de Aplicación Creando, construyendo y depurando aplicaciones ezeenet en AVR Studio ezeenet Software 1.7 Nota de Aplicación Creando, construyendo y depurando aplicaciones Resumen del documento Este documento ofrece una breve introducción al proceso de crear, construir y depurar proyectos

Más detalles

V.- V.-El El manejo de de las las Interrupciones

V.- V.-El El manejo de de las las Interrupciones Las Las V.- V.-El El manejo de de las las Conceptos Conceptos BásicosB Básicos Modos Modos de de Manejo Manejo Ejemplos Ejemplos de de aplicación aplicación Las Las El manejo de las en el 8051 Las interrupciones

Más detalles

INTERPOLACIÓN DE FUNCIONES BASADA EN LA TRANSFORMADA DE FOURIER

INTERPOLACIÓN DE FUNCIONES BASADA EN LA TRANSFORMADA DE FOURIER INTERPOLACIÓN DE FUNCIONES BASADA EN LA TRANSFORMADA DE FOURIER GONZALO LUZARDO M. JUNIO 2009 1. Introducción La interpolación es un método usado para conocer, de un modo aproximado, los valores que toma

Más detalles

Arquitecturas GPU v. 2013

Arquitecturas GPU v. 2013 v. 2013 Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image,

Más detalles