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
Próximos SlideShares
Carregando em…5
×

Palestra hpc python

274 visualizações

Publicada em

High Performance Computing with Python

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×