SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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
● Threading / Multiprocess
●
MPI4Py
●
NumPy
●
PyCUDA
● Anaconda / NumbaPro
● Perguntas
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 computacionais avançadas
● Interação com a Indústria
● Promover a Educação e Difusão de Conhecimento
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
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
Free Lunch is Over
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
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.org/
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 processador
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 sobre
pequenas execuções podendo ser configurado
dentro da API.
● Trabalha em cima da C Stack
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
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árias funções matemáticas prontas acelerando o processamento e
desenvolvimento
NumPy é um pacote fundamental para computação científica com Python.
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
computação científica
● NumbaPro é um versão do Numba que auxilia os
desenvolvedores a acelerar suas aplicações
24
NumbaPro Exemplos
CPU GPU
25
Perguntas

Más contenido relacionado

Similar a Palestra hpc python

Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serproRicardo Katz
 
Aula 02 - Análise de Dados - Introdução ao Python.pdf
Aula 02 - Análise de Dados - Introdução ao Python.pdfAula 02 - Análise de Dados - Introdução ao Python.pdf
Aula 02 - Análise de Dados - Introdução ao Python.pdfAcauan Ribeiro
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Intel Software Brasil
 
Linux e zephyr conversando no mesmo SoC
Linux e zephyr conversando no mesmo SoCLinux e zephyr conversando no mesmo SoC
Linux e zephyr conversando no mesmo SoCEmbarcados
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON SANTOS
 
Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Rudá Moura
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Paulo Vital
 
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadoresTiago
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladoresFabio Souza
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Luciano Palma
 
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...Fulvio Mascara
 

Similar a Palestra hpc python (20)

Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serpro
 
Aula 02 - Análise de Dados - Introdução ao Python.pdf
Aula 02 - Análise de Dados - Introdução ao Python.pdfAula 02 - Análise de Dados - Introdução ao Python.pdf
Aula 02 - Análise de Dados - Introdução ao Python.pdf
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Eripi2018 p4 tutorial
Eripi2018 p4 tutorialEripi2018 p4 tutorial
Eripi2018 p4 tutorial
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
 
Linux e zephyr conversando no mesmo SoC
Linux e zephyr conversando no mesmo SoCLinux e zephyr conversando no mesmo SoC
Linux e zephyr conversando no mesmo SoC
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Hpc, ciência e o cotidiano
Hpc, ciência e o cotidianoHpc, ciência e o cotidiano
Hpc, ciência e o cotidiano
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?
 
Sistemas Supervisórios
Sistemas SupervisóriosSistemas Supervisórios
Sistemas Supervisórios
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
 
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
 
Risc e cisc
Risc e ciscRisc e cisc
Risc e cisc
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadores
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...TDCSP2019  - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
 
OpenIoT
OpenIoT OpenIoT
OpenIoT
 

Palestra hpc python