Uma Jornada Alem das Estrelas

42
Uma Jornada Al´ em das Estrelas Sumrio Introduc ¸˜ ao Computac ¸˜ ao cient´ ıfica Desempenho Design de Alto ıvel Princpio de Pareto Programao Orientada a Objetos PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim Uma Jornada Al´ em das Estrelas: Quando Dr. Spock Conheceu o Python e o Design de alto ıvel Eduardo S. Pereira email: [email protected]/[email protected] blog:http://gravywave.blogspot.com/ twitter: duducosmos 21/outubro/2010 Uma Jornada Al ´ em das Estrelas

description

Minha apresentacao no Python Brasi[7]

Transcript of Uma Jornada Alem das Estrelas

Page 1: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Uma Jornada Alem das Estrelas: Quando Dr.Spock Conheceu o Python e o Design de alto

nıvel

Eduardo S. Pereiraemail: [email protected]/[email protected]

blog:http://gravywave.blogspot.com/twitter: duducosmos

21/outubro/2010

Uma Jornada Alem das Estrelas

Page 2: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

1 Introducao

2 Design de Alto Nıvel

3 Fim

Uma Jornada Alem das Estrelas

Page 3: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

O que Computacao Cientıfica?

Computacao Cientıfica sobre...

Construo de modelos matematicos;

Desenvolvimento de tecnicas para solucoes numericas;

Analisar e resolver problemas cientıficos;

...usando computador.

Uma Jornada Alem das Estrelas

Page 4: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

O que Computacao Cientıfica?

Computacao Cientıfica sobre...

Construo de modelos matematicos;

Desenvolvimento de tecnicas para solucoes numericas;

Analisar e resolver problemas cientıficos;

...usando computador.

Uma Jornada Alem das Estrelas

Page 5: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

O que Computacao Cientıfica?

Computacao Cientıfica sobre...

Construo de modelos matematicos;

Desenvolvimento de tecnicas para solucoes numericas;

Analisar e resolver problemas cientıficos;

...usando computador.

Uma Jornada Alem das Estrelas

Page 6: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

O que Computacao Cientıfica?

Computacao Cientıfica sobre...

Construo de modelos matematicos;

Desenvolvimento de tecnicas para solucoes numericas;

Analisar e resolver problemas cientıficos;

...usando computador.

Uma Jornada Alem das Estrelas

Page 7: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Comparacao de desempenho

http://www.scipy.org/PerformancePython/

Uma comparacao entre NumPy, Pyrex, Psyco, Fortran (77and 90) e C++ para resolver a equacao de Laplace. Artigooriginalmente escrito por Prabhu Ramachandran.

Uma Jornada Alem das Estrelas

Page 8: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Comparacao de desempenho

http://www.scipy.org/PerformancePython/

Uma Jornada Alem das Estrelas

Page 9: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Running Time

Regra do 80 - 20

20% do codigo consome 80% do tempo de calculo;

Maquinas cada vez mais potentes, em termo de poder decalculo;

Dificuldade de encontrar mao de obra especializada;

O QUE FAZER?

Uma Jornada Alem das Estrelas

Page 10: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Running Time

Regra do 80 - 20

20% do codigo consome 80% do tempo de calculo;

Maquinas cada vez mais potentes, em termo de poder decalculo;

Dificuldade de encontrar mao de obra especializada;

O QUE FAZER?

Uma Jornada Alem das Estrelas

Page 11: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Running Time

Regra do 80 - 20

20% do codigo consome 80% do tempo de calculo;

Maquinas cada vez mais potentes, em termo de poder decalculo;

Dificuldade de encontrar mao de obra especializada;

O QUE FAZER?

Uma Jornada Alem das Estrelas

Page 12: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Running Time

Regra do 80 - 20

20% do codigo consome 80% do tempo de calculo;

Maquinas cada vez mais potentes, em termo de poder decalculo;

Dificuldade de encontrar mao de obra especializada;

O QUE FAZER?

Uma Jornada Alem das Estrelas

Page 13: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Planejando antes de programar

Gerando codigo esqueleto a partir do diagrama de classes

Figura: cosmo.dia, an example of class diagram for the basiccharacteristics of a cosmological model.

Uma Jornada Alem das Estrelas

Page 14: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Planejando antes de programar

Gerando codigo esqueleto a partir do diagrama de classes

comando dia2code cosmo.dia -t Python

Uma Jornada Alem das Estrelas

Page 15: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Planejando antes de programar

class cosmo:””” C l a s s cosmo”””# A t t r i b u t e s :self.omegam = 0.27 # ( r e a l )self.omegab = 0.04 # ( r e a l )self.omegal = 0.73 # ( r e a l )self.h = 0.73 # ( r e a l )

Uma Jornada Alem das Estrelas

Page 16: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Planejando antes de programar

def age(self , z):””” f u n c t i o n age

s e l f :z : r e a l

r e t u r n s r e a l”””return None # s h o u l d r a i s e

# No t I m p l em e n t e dE rr o r ( )

Uma Jornada Alem das Estrelas

Page 17: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Planejando antes de programar

def ascale(self , z):””” f u n c t i o n a s c a l e

s e l f :z : r e a l

r e t u r n s r e a l”””return None # s h o u l d r a i s e

# No t I m p l em e n t e dE rr o r ( )

Uma Jornada Alem das Estrelas

Page 18: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Planejando antes de programar

def rhom(self , z):””” f u n c t i o n rhom

s e l f :z : r e a l

r e t u r n s”””return None # s h o u l d r a i s e

# No t I m p l e me n t e dE rr o r ( )

Uma Jornada Alem das Estrelas

Page 19: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Planejando antes de programar

def __init__(self , omegam = 0.27,\omegab = 0.24,\omegal = 0.73, h = 0.73):

””” f u n c t i o n i n i t

s e l f :omegam : r e a lomegab : r e a lomegal : r e a lh : r e a l

r e t u r n s”””return None # s h o u l d r a i s e

# No t I m p l em e n t e dE rr o r ( )

Uma Jornada Alem das Estrelas

Page 20: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Quando um velho bruxo aprende ofidioglossia

O FORTRAN - FORmula TRANslator- ainda vive.comum escutar que python lento por ser interpretado, logo nouso...

Para solucionar esse problema, usa-se uma linguagemcompilada somente na parte critica;

Faz-se uma funo ou subrotina em Fortran;

Compilar e encapsular usando f2py - Integrada com numpy;

O import ocorre normalmente;

Uma Jornada Alem das Estrelas

Page 21: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Quando um velho bruxo aprende ofidioglossia

O FORTRAN - FORmula TRANslator- ainda vive.comum escutar que python lento por ser interpretado, logo nouso...

Para solucionar esse problema, usa-se uma linguagemcompilada somente na parte critica;

Faz-se uma funo ou subrotina em Fortran;

Compilar e encapsular usando f2py - Integrada com numpy;

O import ocorre normalmente;

Uma Jornada Alem das Estrelas

Page 22: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Quando um velho bruxo aprende ofidioglossia

O FORTRAN - FORmula TRANslator- ainda vive.comum escutar que python lento por ser interpretado, logo nouso...

Para solucionar esse problema, usa-se uma linguagemcompilada somente na parte critica;

Faz-se uma funo ou subrotina em Fortran;

Compilar e encapsular usando f2py - Integrada com numpy;

O import ocorre normalmente;

Uma Jornada Alem das Estrelas

Page 23: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Quando um velho bruxo aprende ofidioglossia

O FORTRAN - FORmula TRANslator- ainda vive.comum escutar que python lento por ser interpretado, logo nouso...

Para solucionar esse problema, usa-se uma linguagemcompilada somente na parte critica;

Faz-se uma funo ou subrotina em Fortran;

Compilar e encapsular usando f2py - Integrada com numpy;

O import ocorre normalmente;

Uma Jornada Alem das Estrelas

Page 24: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Quando um velho bruxo aprende ofidioglossia

O FORTRAN - FORmula TRANslator- ainda vive.comum escutar que python lento por ser interpretado, logo nouso...

Para solucionar esse problema, usa-se uma linguagemcompilada somente na parte critica;

Faz-se uma funo ou subrotina em Fortran;

Compilar e encapsular usando f2py - Integrada com numpy;

O import ocorre normalmente;

Uma Jornada Alem das Estrelas

Page 25: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

oi

C FILE hiword.fsubroutine hiword(a,b)real*8 a,b

cf2py intent(in) acf2py intent(out) b

b = a*awrite(6,*) ’b = ’,b,’, a = ’,areturnend

$ f2py -c hiword.f -m hiword

Uma Jornada Alem das Estrelas

Page 26: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

oi

import hiword

print hiword.__doc__#>> T h i s module ’ h iword ’ i s#>> auto−g e n e r a t e d w i t h f 2 p y ( v e r s i o n : 2 ) .#>>F u n c t i o n s :#>> b = hiword ( a )hiword.hiword(5)#>> b =25.000000000000000 , a = 5.0000000000000000#>>25.0

Uma Jornada Alem das Estrelas

Page 27: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Maquinas Multicore

otimizacao de calculos

O uso de multiprocessing para otimizacao de calculos emmaquinas multicore.

Uma Jornada Alem das Estrelas

Page 28: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Maquinas Multicore

otimizacao de calculos

f (x) =∫ x f

a(x)g(x,k)dk, (1)

Uma Jornada Alem das Estrelas

Page 29: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Maquinas Multicore

otimizacao de calculos

g(x,k) nao e separavel;

[x0,x f ]

Uma Jornada Alem das Estrelas

Page 30: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Maquinas Multicore

otimizacao de calculos

Figura: ppvector, a Python module for construction of parallel scientificcode in a multi-core machine.

https://[email protected]/duducosmos/ppvector.git

Uma Jornada Alem das Estrelas

Page 31: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Maquinas Multicore

import mul t i p rocess ing as mpgfrom ppvector import ppvectorfrom sc ipy . i n t e g r a t e import romberg

np=10000; zmax=20.0; de l t az =zmax / npg= mpg. Array ( ’ d ’ , [ 0 for i in range ( np ) ] )#o d indica precisao sduplaz= mpg. Array ( ’ d ’ , [ zmax−i ∗de l t az for i in range ( np ) ] )#Defini−se a funcao que ira calcu lar os pontos do# vetor In t e em paralelo#k e o ponto do vetor onde se i n i c i a o calculo#E e o tamanho do subin terva lo do vetor a ser calculado#n e o numero do processo

Uma Jornada Alem das Estrelas

Page 32: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Maquinas Multicore

def f ( x ) :return x∗∗2.0

def fun ( k ,E, n ) :pr in t ’ Esse e o processo : ’ , nk2=k+Eg [ k : k2 ] = ( romberg ( f , z [ i ] , 2 0 . 0 ) \

for i in range ( k , k2 +1) )

C1= ppvector ( np , fun ) #Cria−se uma i n s t a c i aC1. runProcess ( ) #Ativa o metodo que calcula em paralelo .

Uma Jornada Alem das Estrelas

Page 33: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Pacotes essenciais

Numpy, Scipy, Matplotlib, Scientific Python, MayaVi

Numpy : Trabalhar com algebra matricial;

Scipy : diversos metodos de integracao, Otimizacao, Solucaode Equacoes Diferencias;

Matplotlib : Gerar Graficos 2D e 3D simples;

Scientific Python: Permite trabalhar com vetores de forca eprogramacao em Paralelo usando metodo BSP - EvitaDeadLock;

MayaVi : Graficos 3D sofisticados.

Uma Jornada Alem das Estrelas

Page 34: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Pacotes essenciais

Numpy, Scipy, Matplotlib, Scientific Python, MayaVi

Numpy : Trabalhar com algebra matricial;

Scipy : diversos metodos de integracao, Otimizacao, Solucaode Equacoes Diferencias;

Matplotlib : Gerar Graficos 2D e 3D simples;

Scientific Python: Permite trabalhar com vetores de forca eprogramacao em Paralelo usando metodo BSP - EvitaDeadLock;

MayaVi : Graficos 3D sofisticados.

Uma Jornada Alem das Estrelas

Page 35: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Pacotes essenciais

Numpy, Scipy, Matplotlib, Scientific Python, MayaVi

Numpy : Trabalhar com algebra matricial;

Scipy : diversos metodos de integracao, Otimizacao, Solucaode Equacoes Diferencias;

Matplotlib : Gerar Graficos 2D e 3D simples;

Scientific Python: Permite trabalhar com vetores de forca eprogramacao em Paralelo usando metodo BSP - EvitaDeadLock;

MayaVi : Graficos 3D sofisticados.

Uma Jornada Alem das Estrelas

Page 36: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Pacotes essenciais

Numpy, Scipy, Matplotlib, Scientific Python, MayaVi

Numpy : Trabalhar com algebra matricial;

Scipy : diversos metodos de integracao, Otimizacao, Solucaode Equacoes Diferencias;

Matplotlib : Gerar Graficos 2D e 3D simples;

Scientific Python: Permite trabalhar com vetores de forca eprogramacao em Paralelo usando metodo BSP - EvitaDeadLock;

MayaVi : Graficos 3D sofisticados.

Uma Jornada Alem das Estrelas

Page 37: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Pacotes essenciais

Numpy, Scipy, Matplotlib, Scientific Python, MayaVi

Numpy : Trabalhar com algebra matricial;

Scipy : diversos metodos de integracao, Otimizacao, Solucaode Equacoes Diferencias;

Matplotlib : Gerar Graficos 2D e 3D simples;

Scientific Python: Permite trabalhar com vetores de forca eprogramacao em Paralelo usando metodo BSP - EvitaDeadLock;

MayaVi : Graficos 3D sofisticados.

Uma Jornada Alem das Estrelas

Page 38: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Escrevendo Matrizes no Banco de Dados -UsandoDAL Web2Py

#Usando o DAL do web2py :from gluon import DALfrom numpy import ar rayfrom cSt r ing IO import St r ing IOimport sc ipy . i o as i o

db=DAL( ’ s q l i t e : / / temporaio . db ’ )db . d e f i n e t a b l e ( ’ dados ’ ,\

F i e l d ( ’ Parametro ’ ) ,\F i e l d ( ’ Mat r i z ’ ) )

x=ar ray ( [ [ 1 , 2 , 3 ] , [ 5 , 6 , 7 ] , [ 8 , 9 , 0 ] ] )ou tput=St r ing IO ( )

Uma Jornada Alem das Estrelas

Page 39: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Escrevendo Matrizes no Banco de Dados -UsandoDAL Web2Py

#Incerindo matriz e i d e n t i f i c a d o r# da mesma no banco de dados .

i o . mmwrite ( output , x ,\comment= ’ i sso e um tes te ’ ,\f i e l d = ’ r e a l ’ )

db . dados . i n s e r t ( Parametro= ’ Pr ime i ra ’ ,\Mat r i z=output . getva lue ( ) )

db . commit ( )output . c lose ( ) #Limpa o bu f f e r

Uma Jornada Alem das Estrelas

Page 40: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Escrevendo Matrizes no Banco de Dados -UsandoDAL Web2Py

#Usando o DAL do web2py :from gluon import DALfrom numpy import ar rayfrom cSt r ing IO import St r ing IOimport sc ipy . i o as i o

#Selecionando matriz de um banco de dados .MM = db ( db . dados . Parametro== ’ Pr ime i ra ’ ) . s e l e c t ( ) [ 0 ]

T3=MM. Mat r i z

Inpu t=St r ing IO ( T3 )X4= i o . mmread( Inpu t )Inpu t . c lose ( ) #Limpa o Buf fer

Uma Jornada Alem das Estrelas

Page 41: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

Graviton Perturbation

Uma Jornada Alem das Estrelas

Page 42: Uma Jornada Alem das Estrelas

Uma JornadaAlem dasEstrelas

Sumrio

IntroducaoComputacaocientıfica

Desempenho

Design de AltoNıvelPrincpio de Pareto

Programao Orientadaa Objetos

PYTHON comFORTRAN

Multiprocessing

Dando Carga para asBaterias

Simulando o Universona Web

Fim

FIM

Grato

MUITO OBRIGADO

Uma Jornada Alem das Estrelas