SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Sacando el maximo de tus
Apps con IA

Marcelo Lorenzati
ASDC - Argentina Software Design Center
Agenda

Breve historia, evolución y el rol de Intel en la tecnología
Información, recursos y contactos
Optimizaciones, consejos y buenas prácticas de desarrollo
Herramientas
Preguntas
Historia

Intel: Empresa fabricante de semiconductores creada en 1968, creadora del primer
procesador (4004)
Evolución

Evolución de los procesadores Intel, desde miles a billones de transistores en un
solo chip, en 42 años.
http://www.intel.com/content/www/us/en/history/history-intel-chips-timeline-poster.html
Evolución

http://www.intel.com/support/galileo/index.htm
Evolución

Evolución de los equipos con Intel Inside hacia la movilidad
Contribución al software abierto

https://01.org/projects
Contacto con los desarrolladores

Zona para desarrolladores Intel®
http://software.intel.com/es-es/
Foro de Preguntas del Hackaton
http://software.intel.com/es-es/node/472278
Optimizaciones, conceptos generales

1. Primero claridad antes que eficiencia
2. Estas pensando en optimizar? Espera!
3. Piensa en paralelismo
1. En los datos
2. En las tareas
3. En las instrucciones (acá te ayuda el
compilador y el micro)
4. Aprovecha herramientas y librerías
Concurrencia y paralelismo

Dos tareas en un procesador
de doble núcleo vs uno de
núcleo único.

Múltiples tareas en un
procesador de doble núcleo

Se usa paralelismo no solo para performance, sino como un método se separar dominios de un
problema.
Concurrencia y paralelismo

Sincronización de datos
entre tareas y procesos

Cuando no se usa paralelismo? Cuando el costo de implementar es mayor que el beneficio de provee.
Cual es ese costo? La sincronización y protección de los datos compartidos
http://software.intel.com/sites/default/files/m/d/4/1/d/8/Gillespie-0053-AAD_Gustafson-Amdahl_v1__2_.rh.final.pdf
0-15m

15-30m

30-45m

45-60m

0-15

15-30

30-45

45-60

Paralelismo en datos

1h de video
Paralelismo en tareas

Lógica

Física

Música

Hilo principal – Orquestador
y parte visual
Optimizaciones, HTML5
• Webworkers
var worker = new Worker('task.js');
worker.postMessage(); //Ejecuta el worker por separado

• Animaciones CSS3 / HTML5 (la mayoría aceleradas por HW)
<style>
div
{
width:100px;
transition:width 2s;
}
div:hover
{
width:300px;
}
</style>

• Librerias:
–
–

jquery, jqueryUi, bootstrap (client side scripting)
cocos2D-HTML5, CraftyJs (gaming)

http://html5test.com/
http://www.html5rocks.com/en/tutorials/speed/html5/
http://www.html5rocks.com/en/tutorials/canvas/performance/
Optimización C/C++ - Librerías
Librerias de soporte de C++
Boost (http://www.boost.org/)
Frameworks de desarrollo de aplicaciones:
Qt (http://qt-project.org/)
GTK (http://www.gtk.org/)
WxWidgets (http:// www.wxwidgets.org/)
Webserver embebido
Mongoose (https://code.google.com/p/mongoose/)
Procesamiento de imágenes
OpenCV (http:// opencv.org)
Persistencia local
sqlite3 (http://www.sqlite.org/)
Imágenes 3D
Ogre (http://www.ogre3d.org)
Optimización C/C++ - Compilación y enlazado
Algunos parámetros de compilación: en GCC (GNU C Compiler) o en ICC( Intel C Compiler)
-O0 sin optimización
-O1 Optimizaciones escalares (por defecto)
-O2 Vectorización, transformación de bucles, inlining
-O3 La mas agresiva, se debe probar
incluye cache blocking, loop fusion, loop interchange
Optimización inter procedimiento: Analisis entre funciones sus fuentes
gcc –flto , icc -ipo
• Funciones inline
• Análisis de alineación
• Desambiguación
• Propagación de constantes
• Disposición y transformación de datos
Optimización C/C++ - Compilación y enlazado
Uso de librerías optimizadas
Gcc –lm
• Math (libm) ( acos, atan, ceil, log, pow, sin, etc)
• Math Kernel Library (MKL)
–
–
–
–

Vectores y matrices
Algebra lineal
FFT
Librería estadística (números aleatorios)

Manejo de punto flotante
• En gcc esta apagado por defecto, se habilita con –ffast-math
• En icc se habilita con –fp-model (fast / precise / strict)
SIMD: Single Instruction, Multiple Data
• Vector mode

• Scalar mode

– with AVX (or SSE) instructions
– one instruction can produce multiple
results

– one instruction produces
one result
– E.g. addss, (addsd)

– E.g. addps, (addpd)
SSE

X

X

x7

x6

x5

Y

x1

x0

y7

y6

y5

y3

y4

y2

y1

y0

=

=
X+Y

x2

+

+
Y

x3

x4

X+Y

x7+y7 x6+y6 x5+y5 x4+y4 x3+y3 x2+y2 x1+y1 x0+y0
Herramientas de optimización C/C++
Intel® Parallel Studio XE
Fase

Herramienta

Función

Beneficio

Intel®
Parallel
Advisor
for C++
Windows

Asistente de diseño con hilos

Codificación
y depuración

Intel®
Composer
XE

Compiladores de C/C++ y Fortran
con librerías optimizadas
• Intel® Integrated Performance
Primitives
• Intel® Math Kernel Library
• Intel® Threading Building Blocks
• Intel@ Cilk™ Plus

• Permite alcanzar el rendimiento y
escalabilidad deseada aprovechando
beneficios multi-núcleo

Verificación

Intel®
Inspector
XE

Análisis dinámico de memoria e
hilos para mejorar la calidad del
código
Análisis estático de código para
mejorar la calidad y confianza

• Incrementa la productividad, calidad y baja
costos.
• Encuentra defectos en memoria, hilos y
bugs antes de que sucedan.

Tune

Intel®
VTune™
Amplifier
XE

Generado de perfil para
optimización de aplicación y
escalabilidad

• Elimina conjeturas, salva tiempo y hace
fácil encontrar cuellos de botella del código

Diseño

• Simplifica, desmistifica y acelera el
diseño de aplicaciones con multihilo

http://software.intel.com/en-us/articles/intel-software-evaluation-center/
Intel® Parallel Advisor – Overview
Design Phase

Discover, Analyze, Check, Add Parallelism
Analyzes the executing serial program as developers work
through the methodology
Survey Target

Focuses effort where it will pay off and targets coarse-grain parallelism

Annotate Sources

Inserts annotations to sources to describe parallel experiments

Check Suitability

Evaluates performance impact and implication of the parallel experiments

Check Correctness

Finds and resolves conflicts before parallelism is applied. Reduces
debugging problems by defining safe and solid paths to parallelism

Models Intel® Threading Building Blocks, Intel® Cilk™
Plus, Microsoft*PPL, Windows* Threads, OpenMP*

20
Intel Composer XE - Overview
Compilers, Performance Libraries, Debugging Tools
• Leading Performance Optimizing Compilers

•
•
•
•
•

Intel® C++
Composer XE 2011
Intel® C++ Compiler XE 12.1
Intel® Threading Building Blocks
Intel® Cilk™ Plus
Intel® Math Kernel Library
Intel® Integrated Performance
Primitives

Intel® Fortran
Composer XE 2011

•
•
•

Intel® Fortran Compiler XE 12.1
Intel® Math Kernel Library
Intel® Integrated Performance
Primitives

- Intel C++ and Fortran Compilers
- Intel® Integrated Performance Primitives, Intel® Math
Kernel Library libraries
- Profile-Guided Optimization (PGO)
- Interprocedural Optimization (IPO)
- Guided-auto parallelism (GAP)
- High-Performance Parallel Optimizer (HPO)
- SIMD Pragma
- C++ Array Notations

• Standard Support
- OpenMP*
- C++0x
- Support for key parts of the latest Fortran and C++
standards, Visual Studio* 2010 Shell for Visual Fortran*

• Compatibility – Mix and Match
- Binary and source compatible with
Microsoft* Visual Studio* C++ and GCC*

Windows*, Linux*, Mac OS*
32-bit & 64-bit multicore processor support
Intel® AVX support

Supported Environments
Microsoft Visual Studio* 2005, 2008, 2010 Eclipse CDT and Mac XCode*

10/7/2013
Intel® Inspector XE - Dynamic Analysis
Detects memory and threading errors
• Memory errors
•
•
•
•
•

Invalid Memory Accesses
Memory Leaks
Uninitialized Memory Accesses
Improper usage of Memory API(s)
Resource Leaks (Windows only)

• Threading Errors
• Data Races
• Deadlock/Lock Hierarchy Violation
• Cross Stack Memory Accesses

 No special compiles
(dynamic binary instrumentation)
Analyze DLLs (source optional)


 Runs threaded
 32 and 64-bit OSs

(e.g., Windows 7, RHEL 6)

 Easy user interface
Intel® VTune™ Amplifier XE
Performance Profiler
Where is my application…
Spending Time?

Wasting Time?

Waiting Too Long?

• Focus tuning on functions
taking time
• See call stacks
• See time on source

• See cache misses on your
source
• See functions sorted by
# of cache misses

• See locks by wait time
• Red/Green for CPU
utilization during wait

• Windows & Linux
• Low overhead
• No special recompiles
Advanced Profiling For Scalable Multicore Performance
Optimizaciones, conceptos avanzados

Manual de optimizaciones
http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architecturesoptimization-manual.html
Consejos
• >60% de las classmates son dual boot
– Piensa en multiplataforma

• No siempre habrá conectividad constante de internet
– Modos offline, persistencia, etc.

• Tamaño de pantalla de 10.1”
– Diseña iconos y fuentes grandes
– No sobrecargues las pantallas con detalles, sepáralas

• Piensa en la batería
– Optimizar el procesamiento
– Usa sólo lo necesario
Presentación y
Links
Preguntas?

Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners

Más contenido relacionado

Similar a Sacando el maximo de tus Apps con IA

Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryynelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de softwareMarilupe
 
Ingen de software
Ingen de softwareIngen de software
Ingen de softwareerikapoh
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software142918
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxLuis Fernando Aguas Bucheli
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Andrés Iturralde
 
Laboratorio 1 arquitectura de computadores
Laboratorio 1 arquitectura de computadoresLaboratorio 1 arquitectura de computadores
Laboratorio 1 arquitectura de computadoresjhonleal06
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasTensor
 
Arquitecturas RICS-CISC
Arquitecturas RICS-CISC Arquitecturas RICS-CISC
Arquitecturas RICS-CISC Edwin Belduma
 
Dotnet2019 Asp .Net Core Good Practices 2019
Dotnet2019 Asp .Net Core Good Practices 2019Dotnet2019 Asp .Net Core Good Practices 2019
Dotnet2019 Asp .Net Core Good Practices 2019Carlos Landeras Martínez
 
DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...
DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...
DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...Plain Concepts
 
Formato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizajeFormato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizajeewinmauricio
 

Similar a Sacando el maximo de tus Apps con IA (20)

Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Clase 11
Clase 11Clase 11
Clase 11
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
 
Laboratorio 1 arquitectura de computadores
Laboratorio 1 arquitectura de computadoresLaboratorio 1 arquitectura de computadores
Laboratorio 1 arquitectura de computadores
 
Arquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadasArquitecturas de computadores_avanzadas
Arquitecturas de computadores_avanzadas
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
 
Arquitecturas RICS-CISC
Arquitecturas RICS-CISC Arquitecturas RICS-CISC
Arquitecturas RICS-CISC
 
Vuelven los "Pelochos"
Vuelven los "Pelochos"Vuelven los "Pelochos"
Vuelven los "Pelochos"
 
Dotnet2019 Asp .Net Core Good Practices 2019
Dotnet2019 Asp .Net Core Good Practices 2019Dotnet2019 Asp .Net Core Good Practices 2019
Dotnet2019 Asp .Net Core Good Practices 2019
 
DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...
DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...
DotNet 2019 | Carlos Landeras y Luis Ruiz Pavón - Asp.Net Core Good Practices...
 
Formato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizajeFormato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizaje
 

Sacando el maximo de tus Apps con IA

  • 1. Sacando el maximo de tus Apps con IA Marcelo Lorenzati ASDC - Argentina Software Design Center
  • 2. Agenda Breve historia, evolución y el rol de Intel en la tecnología Información, recursos y contactos Optimizaciones, consejos y buenas prácticas de desarrollo Herramientas Preguntas
  • 3. Historia Intel: Empresa fabricante de semiconductores creada en 1968, creadora del primer procesador (4004)
  • 4. Evolución Evolución de los procesadores Intel, desde miles a billones de transistores en un solo chip, en 42 años. http://www.intel.com/content/www/us/en/history/history-intel-chips-timeline-poster.html
  • 6. Evolución Evolución de los equipos con Intel Inside hacia la movilidad
  • 7. Contribución al software abierto https://01.org/projects
  • 8. Contacto con los desarrolladores Zona para desarrolladores Intel® http://software.intel.com/es-es/ Foro de Preguntas del Hackaton http://software.intel.com/es-es/node/472278
  • 9. Optimizaciones, conceptos generales 1. Primero claridad antes que eficiencia 2. Estas pensando en optimizar? Espera! 3. Piensa en paralelismo 1. En los datos 2. En las tareas 3. En las instrucciones (acá te ayuda el compilador y el micro) 4. Aprovecha herramientas y librerías
  • 10. Concurrencia y paralelismo Dos tareas en un procesador de doble núcleo vs uno de núcleo único. Múltiples tareas en un procesador de doble núcleo Se usa paralelismo no solo para performance, sino como un método se separar dominios de un problema.
  • 11. Concurrencia y paralelismo Sincronización de datos entre tareas y procesos Cuando no se usa paralelismo? Cuando el costo de implementar es mayor que el beneficio de provee. Cual es ese costo? La sincronización y protección de los datos compartidos http://software.intel.com/sites/default/files/m/d/4/1/d/8/Gillespie-0053-AAD_Gustafson-Amdahl_v1__2_.rh.final.pdf
  • 13. Paralelismo en tareas Lógica Física Música Hilo principal – Orquestador y parte visual
  • 14. Optimizaciones, HTML5 • Webworkers var worker = new Worker('task.js'); worker.postMessage(); //Ejecuta el worker por separado • Animaciones CSS3 / HTML5 (la mayoría aceleradas por HW) <style> div { width:100px; transition:width 2s; } div:hover { width:300px; } </style> • Librerias: – – jquery, jqueryUi, bootstrap (client side scripting) cocos2D-HTML5, CraftyJs (gaming) http://html5test.com/ http://www.html5rocks.com/en/tutorials/speed/html5/ http://www.html5rocks.com/en/tutorials/canvas/performance/
  • 15. Optimización C/C++ - Librerías Librerias de soporte de C++ Boost (http://www.boost.org/) Frameworks de desarrollo de aplicaciones: Qt (http://qt-project.org/) GTK (http://www.gtk.org/) WxWidgets (http:// www.wxwidgets.org/) Webserver embebido Mongoose (https://code.google.com/p/mongoose/) Procesamiento de imágenes OpenCV (http:// opencv.org) Persistencia local sqlite3 (http://www.sqlite.org/) Imágenes 3D Ogre (http://www.ogre3d.org)
  • 16. Optimización C/C++ - Compilación y enlazado Algunos parámetros de compilación: en GCC (GNU C Compiler) o en ICC( Intel C Compiler) -O0 sin optimización -O1 Optimizaciones escalares (por defecto) -O2 Vectorización, transformación de bucles, inlining -O3 La mas agresiva, se debe probar incluye cache blocking, loop fusion, loop interchange Optimización inter procedimiento: Analisis entre funciones sus fuentes gcc –flto , icc -ipo • Funciones inline • Análisis de alineación • Desambiguación • Propagación de constantes • Disposición y transformación de datos
  • 17. Optimización C/C++ - Compilación y enlazado Uso de librerías optimizadas Gcc –lm • Math (libm) ( acos, atan, ceil, log, pow, sin, etc) • Math Kernel Library (MKL) – – – – Vectores y matrices Algebra lineal FFT Librería estadística (números aleatorios) Manejo de punto flotante • En gcc esta apagado por defecto, se habilita con –ffast-math • En icc se habilita con –fp-model (fast / precise / strict)
  • 18. SIMD: Single Instruction, Multiple Data • Vector mode • Scalar mode – with AVX (or SSE) instructions – one instruction can produce multiple results – one instruction produces one result – E.g. addss, (addsd) – E.g. addps, (addpd) SSE X X x7 x6 x5 Y x1 x0 y7 y6 y5 y3 y4 y2 y1 y0 = = X+Y x2 + + Y x3 x4 X+Y x7+y7 x6+y6 x5+y5 x4+y4 x3+y3 x2+y2 x1+y1 x0+y0
  • 19. Herramientas de optimización C/C++ Intel® Parallel Studio XE Fase Herramienta Función Beneficio Intel® Parallel Advisor for C++ Windows Asistente de diseño con hilos Codificación y depuración Intel® Composer XE Compiladores de C/C++ y Fortran con librerías optimizadas • Intel® Integrated Performance Primitives • Intel® Math Kernel Library • Intel® Threading Building Blocks • Intel@ Cilk™ Plus • Permite alcanzar el rendimiento y escalabilidad deseada aprovechando beneficios multi-núcleo Verificación Intel® Inspector XE Análisis dinámico de memoria e hilos para mejorar la calidad del código Análisis estático de código para mejorar la calidad y confianza • Incrementa la productividad, calidad y baja costos. • Encuentra defectos en memoria, hilos y bugs antes de que sucedan. Tune Intel® VTune™ Amplifier XE Generado de perfil para optimización de aplicación y escalabilidad • Elimina conjeturas, salva tiempo y hace fácil encontrar cuellos de botella del código Diseño • Simplifica, desmistifica y acelera el diseño de aplicaciones con multihilo http://software.intel.com/en-us/articles/intel-software-evaluation-center/
  • 20. Intel® Parallel Advisor – Overview Design Phase Discover, Analyze, Check, Add Parallelism Analyzes the executing serial program as developers work through the methodology Survey Target Focuses effort where it will pay off and targets coarse-grain parallelism Annotate Sources Inserts annotations to sources to describe parallel experiments Check Suitability Evaluates performance impact and implication of the parallel experiments Check Correctness Finds and resolves conflicts before parallelism is applied. Reduces debugging problems by defining safe and solid paths to parallelism Models Intel® Threading Building Blocks, Intel® Cilk™ Plus, Microsoft*PPL, Windows* Threads, OpenMP* 20
  • 21. Intel Composer XE - Overview Compilers, Performance Libraries, Debugging Tools • Leading Performance Optimizing Compilers • • • • • Intel® C++ Composer XE 2011 Intel® C++ Compiler XE 12.1 Intel® Threading Building Blocks Intel® Cilk™ Plus Intel® Math Kernel Library Intel® Integrated Performance Primitives Intel® Fortran Composer XE 2011 • • • Intel® Fortran Compiler XE 12.1 Intel® Math Kernel Library Intel® Integrated Performance Primitives - Intel C++ and Fortran Compilers - Intel® Integrated Performance Primitives, Intel® Math Kernel Library libraries - Profile-Guided Optimization (PGO) - Interprocedural Optimization (IPO) - Guided-auto parallelism (GAP) - High-Performance Parallel Optimizer (HPO) - SIMD Pragma - C++ Array Notations • Standard Support - OpenMP* - C++0x - Support for key parts of the latest Fortran and C++ standards, Visual Studio* 2010 Shell for Visual Fortran* • Compatibility – Mix and Match - Binary and source compatible with Microsoft* Visual Studio* C++ and GCC* Windows*, Linux*, Mac OS* 32-bit & 64-bit multicore processor support Intel® AVX support Supported Environments Microsoft Visual Studio* 2005, 2008, 2010 Eclipse CDT and Mac XCode* 10/7/2013
  • 22. Intel® Inspector XE - Dynamic Analysis Detects memory and threading errors • Memory errors • • • • • Invalid Memory Accesses Memory Leaks Uninitialized Memory Accesses Improper usage of Memory API(s) Resource Leaks (Windows only) • Threading Errors • Data Races • Deadlock/Lock Hierarchy Violation • Cross Stack Memory Accesses  No special compiles (dynamic binary instrumentation) Analyze DLLs (source optional)   Runs threaded  32 and 64-bit OSs (e.g., Windows 7, RHEL 6)  Easy user interface
  • 23. Intel® VTune™ Amplifier XE Performance Profiler Where is my application… Spending Time? Wasting Time? Waiting Too Long? • Focus tuning on functions taking time • See call stacks • See time on source • See cache misses on your source • See functions sorted by # of cache misses • See locks by wait time • Red/Green for CPU utilization during wait • Windows & Linux • Low overhead • No special recompiles Advanced Profiling For Scalable Multicore Performance
  • 24. Optimizaciones, conceptos avanzados Manual de optimizaciones http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architecturesoptimization-manual.html
  • 25. Consejos • >60% de las classmates son dual boot – Piensa en multiplataforma • No siempre habrá conectividad constante de internet – Modos offline, persistencia, etc. • Tamaño de pantalla de 10.1” – Diseña iconos y fuentes grandes – No sobrecargues las pantallas con detalles, sepáralas • Piensa en la batería – Optimizar el procesamiento – Usa sólo lo necesario
  • 26. Presentación y Links Preguntas? Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners