Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Como aumentar o desempenho de 
sua aplicação com
2
Agenda
● Apresentação
●
Introdução
●
HPC e Aplicações
● Python /Compiladores
●
Profiler
●
Caching
● Multicore – ManyCore...
3
Apresentação
● O que é HPC
TOP 500
4
CEPID ­ CCES
● Center for Computational Engineering & Sciences
● Desenvolvimento e Aplicação de Técnicas de
modelagem co...
5
CCES – Aplicações
● Data Cyberstructure
● High-Performance and Data-Intensive Computing
● Quantum and Classical Molecula...
6
Moore's Law
O número de transistores em um denso
circuito integrado tem dobrado
aproximadamente a cada dois anos
Gordon ...
7
Free Lunch is Over
8
Python
● Linguagem de programação de alto nível
● Interpretada
● Imperativa
● Orientada a objetos
● Funcional
● De tipag...
9
Desempenho
● O Python não é lento
● Os interpretadores Python existentes são lentos
● Cpython por exemplo
10
Melhorando o Desempenho
● Solução → outros Interpretadores
● PyPy – Jython – IronPython
● Exemplo PyPy → http://pypy.or...
11
PyPy Performance
● Comparando com CPython
http://speed.pypy.org/
12
Profilers
● Profile e cProfile → APIs para coletar e analizar
estatisticamente como o Python consome recursos
do proces...
13
Profilers (cont.)
● Pstats → Maior flexibilidade para seus próprios relatórios
14
Profilers(cont.)
● VMProf
É simples python -m vmprof
● Parecido com Intel Vtune
● Captura informações sobre seu código ...
15
Caching
● Arrays devem ter acesso sequencial
● Evitar saltos como listas se possível
● Utilize bibliotecas que são otim...
16
Multicore ­ ManyCore
● Multicore –> Processadores com Poucos Núcleos
ManyCores → Centenas de Núcleos
Ex. GPUs
17
Threading
18
Multiprocessing
19
MPI4PY
20
NumPy
● Potente N-dimensional objeto de array
● Funções de Broadcast
● Ferramentas para itegrar C/C++ e Fortran
● Vária...
21
NumPy Exemplo
22
PyCUDA
● Permite acessar as GPUs (Nvidia) através do
Python permitindo acelerar o código
23
Anaconda / NumbaPro
● Anaconda é um pacote free para Python para
procesamento em larga escala, análise de dados e
compu...
24
NumbaPro Exemplos
CPU GPU
25
Perguntas
Upcoming SlideShare
Loading in …5
×

Palestra hpc python

281 views

Published on

High Performance Computing with Python

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Palestra hpc python

  1. 1. Como aumentar o desempenho de  sua aplicação com
  2. 2. 2 Agenda ● Apresentação ● Introdução ● HPC e Aplicações ● Python /Compiladores ● Profiler ● Caching ● Multicore – ManyCore ● Threading / Multiprocess ● MPI4Py ● NumPy ● PyCUDA ● Anaconda / NumbaPro ● Perguntas
  3. 3. 3 Apresentação ● O que é HPC TOP 500
  4. 4. 4 CEPID ­ CCES ● Center for Computational Engineering & Sciences ● Desenvolvimento e Aplicação de Técnicas de modelagem computacionais avançadas ● Interação com a Indústria ● Promover a Educação e Difusão de Conhecimento
  5. 5. 5 CCES – Aplicações ● Data Cyberstructure ● High-Performance and Data-Intensive Computing ● Quantum and Classical Molecular Simulations in Biophisical Chemistry / Applied Physics ● Computational Quantum Chemistry ● Computational Mechanical Engineering ● Bioinformatics and Computational Biology ● Computational Geophysics
  6. 6. 6 Moore's Law O número de transistores em um denso circuito integrado tem dobrado aproximadamente a cada dois anos Gordon E. Moore (1965)
  7. 7. 7 Free Lunch is Over
  8. 8. 8 Python ● Linguagem de programação de alto nível ● Interpretada ● Imperativa ● Orientada a objetos ● Funcional ● De tipagem dinâmica e forte ● Portável
  9. 9. 9 Desempenho ● O Python não é lento ● Os interpretadores Python existentes são lentos ● Cpython por exemplo
  10. 10. 10 Melhorando o Desempenho ● Solução → outros Interpretadores ● PyPy – Jython – IronPython ● Exemplo PyPy → http://pypy.org/
  11. 11. 11 PyPy Performance ● Comparando com CPython http://speed.pypy.org/
  12. 12. 12 Profilers ● Profile e cProfile → APIs para coletar e analizar estatisticamente como o Python consome recursos do processador
  13. 13. 13 Profilers (cont.) ● Pstats → Maior flexibilidade para seus próprios relatórios
  14. 14. 14 Profilers(cont.) ● VMProf É simples python -m vmprof ● Parecido com Intel Vtune ● Captura informações sobre seu código sobre pequenas execuções podendo ser configurado dentro da API. ● Trabalha em cima da C Stack
  15. 15. 15 Caching ● Arrays devem ter acesso sequencial ● Evitar saltos como listas se possível ● Utilize bibliotecas que são otimizadas while i < n x += array[i] i += 1
  16. 16. 16 Multicore ­ ManyCore ● Multicore –> Processadores com Poucos Núcleos ManyCores → Centenas de Núcleos Ex. GPUs
  17. 17. 17 Threading
  18. 18. 18 Multiprocessing
  19. 19. 19 MPI4PY
  20. 20. 20 NumPy ● Potente N-dimensional objeto de array ● Funções de Broadcast ● Ferramentas para itegrar C/C++ e Fortran ● Várias funções matemáticas prontas acelerando o processamento e desenvolvimento NumPy é um pacote fundamental para computação científica com Python.
  21. 21. 21 NumPy Exemplo
  22. 22. 22 PyCUDA ● Permite acessar as GPUs (Nvidia) através do Python permitindo acelerar o código
  23. 23. 23 Anaconda / NumbaPro ● Anaconda é um pacote free para Python para procesamento em larga escala, análise de dados e computação científica ● NumbaPro é um versão do Numba que auxilia os desenvolvedores a acelerar suas aplicações
  24. 24. 24 NumbaPro Exemplos CPU GPU
  25. 25. 25 Perguntas

×