SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Uma Jornada
   ´
 Alem das
  Estrelas

                                     ´
                       Uma Jornada Alem das Estrelas: Quando Dr.
Sumrio

       ¸˜
Introducao
                       Spock Conheceu o Python e o Design de alto
Computacao
cient´fica
     ı
          ¸˜
                                        n´vel
                                         ı
Desempenho


Design de Alto
N´vel
 ı
Princpio de Pareto
Programao Orientada                          Eduardo S. Pereira
a Objetos
PYTHON com
FORTRAN
                       email: pereira.somoza@gmail.com/duducosmo@das.inpe.br
Multiprocessing
Dando Carga para as
                                    blog:http://gravywave.blogspot.com/
Baterias
Simulando o Universo
                                            twitter: duducosmos
na Web


Fim


                                          21/outubro/2010

                                                            ´
                                              Uma Jornada Alem das Estrelas
Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao             1          ¸˜
                           Introducao
Computacao¸˜
cient´fica
     ı
Desempenho


Design de Alto
                       2   Design de Alto N´vel
                                           ı
N´vel
 ı
Princpio de Pareto
Programao Orientada
a Objetos
                       3   Fim
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                ´
                                                  Uma Jornada Alem das Estrelas
¸˜
                       O que Computacao Cient´fica?
                                             ı

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
                              ¸˜
                       Computacao Cient´fica sobre...
                                       ı
cient´fica
     ı
Desempenho
                                                    ´
                           Construo de modelos matematicos;
Design de Alto
N´vel
 ı                                             ´                ¸˜      ´
                           Desenvolvimento de tecnicas para solucoes numericas;
Princpio de Pareto
Programao Orientada
a Objetos
                           Analisar e resolver problemas cient´ficos;
                                                              ı
PYTHON com
FORTRAN                    ...usando computador.
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
¸˜
                       O que Computacao Cient´fica?
                                             ı

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
                              ¸˜
                       Computacao Cient´fica sobre...
                                       ı
cient´fica
     ı
Desempenho
                                                    ´
                           Construo de modelos matematicos;
Design de Alto
N´vel
 ı                                             ´                ¸˜      ´
                           Desenvolvimento de tecnicas para solucoes numericas;
Princpio de Pareto
Programao Orientada
a Objetos
                           Analisar e resolver problemas cient´ficos;
                                                              ı
PYTHON com
FORTRAN                    ...usando computador.
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
¸˜
                       O que Computacao Cient´fica?
                                             ı

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
                              ¸˜
                       Computacao Cient´fica sobre...
                                       ı
cient´fica
     ı
Desempenho
                                                    ´
                           Construo de modelos matematicos;
Design de Alto
N´vel
 ı                                             ´                ¸˜      ´
                           Desenvolvimento de tecnicas para solucoes numericas;
Princpio de Pareto
Programao Orientada
a Objetos
                           Analisar e resolver problemas cient´ficos;
                                                              ı
PYTHON com
FORTRAN                    ...usando computador.
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
¸˜
                       O que Computacao Cient´fica?
                                             ı

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
                              ¸˜
                       Computacao Cient´fica sobre...
                                       ı
cient´fica
     ı
Desempenho
                                                    ´
                           Construo de modelos matematicos;
Design de Alto
N´vel
 ı                                             ´                ¸˜      ´
                           Desenvolvimento de tecnicas para solucoes numericas;
Princpio de Pareto
Programao Orientada
a Objetos
                           Analisar e resolver problemas cient´ficos;
                                                              ı
PYTHON com
FORTRAN                    ...usando computador.
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
¸˜
                       Comparacao de desempenho

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
                       http://www.scipy.org/PerformancePython/
Desempenho


Design de Alto                           ¸˜
                           Uma comparacao entre NumPy, Pyrex, Psyco, Fortran (77
N´vel
 ı
Princpio de Pareto
                                                              ¸˜
                           and 90) e C++ para resolver a equacao de Laplace. Artigo
Programao Orientada
a Objetos                  originalmente escrito por Prabhu Ramachandran.
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
¸˜
                       Comparacao de desempenho

Uma Jornada
   ´
 Alem das
  Estrelas
                       http://www.scipy.org/PerformancePython/
Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho


Design de Alto
N´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 Alem das Estrelas
Running Time

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao             Regra do 80 - 20
Computacao¸˜
cient´fica
     ı
Desempenho
                                   ´                              ´
                           20% do codigo consome 80% do tempo de calculo;
Design de Alto             Maquinas cada vez mais potentes, em termo de poder de
N´vel
 ı
Princpio de Pareto          ´
                           calculo;
Programao Orientada
a Objetos
PYTHON com
                                                    ˜
                           Dificuldade de encontrar mao de obra especializada;
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
                           O QUE FAZER?
Simulando o Universo
na Web


Fim




                                                                ´
                                                  Uma Jornada Alem das Estrelas
Running Time

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao             Regra do 80 - 20
Computacao¸˜
cient´fica
     ı
Desempenho
                                   ´                              ´
                           20% do codigo consome 80% do tempo de calculo;
Design de Alto             Maquinas cada vez mais potentes, em termo de poder de
N´vel
 ı
Princpio de Pareto          ´
                           calculo;
Programao Orientada
a Objetos
PYTHON com
                                                    ˜
                           Dificuldade de encontrar mao de obra especializada;
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
                           O QUE FAZER?
Simulando o Universo
na Web


Fim




                                                                ´
                                                  Uma Jornada Alem das Estrelas
Running Time

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao             Regra do 80 - 20
Computacao¸˜
cient´fica
     ı
Desempenho
                                   ´                              ´
                           20% do codigo consome 80% do tempo de calculo;
Design de Alto             Maquinas cada vez mais potentes, em termo de poder de
N´vel
 ı
Princpio de Pareto          ´
                           calculo;
Programao Orientada
a Objetos
PYTHON com
                                                    ˜
                           Dificuldade de encontrar mao de obra especializada;
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
                           O QUE FAZER?
Simulando o Universo
na Web


Fim




                                                                ´
                                                  Uma Jornada Alem das Estrelas
Running Time

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao             Regra do 80 - 20
Computacao¸˜
cient´fica
     ı
Desempenho
                                   ´                              ´
                           20% do codigo consome 80% do tempo de calculo;
Design de Alto             Maquinas cada vez mais potentes, em termo de poder de
N´vel
 ı
Princpio de Pareto          ´
                           calculo;
Programao Orientada
a Objetos
PYTHON com
                                                    ˜
                           Dificuldade de encontrar mao de obra especializada;
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
                           O QUE FAZER?
Simulando o Universo
na Web


Fim




                                                                ´
                                                  Uma Jornada Alem das Estrelas
Planejando antes de programar

Uma Jornada
   ´
 Alem das
  Estrelas


                                ´
                       Gerando codigo esqueleto a partir do diagrama de classes
Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho


Design de Alto
N´vel
 ı
Princpio de Pareto
Programao Orientada
a Objetos
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
Baterias               Figura: cosmo.dia, an example of class diagram for the basic
Simulando o Universo
na Web                 characteristics of a cosmological model.
Fim




                                                                     ´
                                                       Uma Jornada Alem das Estrelas
Planejando antes de programar

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho
                                ´
                       Gerando codigo esqueleto a partir do diagrama de classes
Design de Alto
N´vel
 ı
Princpio de Pareto
                           comando dia2code cosmo.dia -t Python
Programao Orientada
a Objetos
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
Planejando antes de programar

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao             class cosmo :
Computacao
cient´fica
     ı
          ¸˜
                           ””” C l a s s cosmo
Desempenho
                           ”””
Design de Alto
N´vel
 ı
                           # Attributes :
Princpio de Pareto         self . omegam = 0.27 # ( r e a l )
Programao Orientada
a Objetos                  self . omegab = 0.04 # ( r e a l )
PYTHON com
FORTRAN                    self . omegal = 0.73 # ( r e a l )
Multiprocessing
Dando Carga para as
                           self .h = 0.73 # ( r e a l )
Baterias
Simulando o Universo
na Web


Fim




                                                               ´
                                                 Uma Jornada Alem das Estrelas
Planejando antes de programar

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                     def age ( self , z ):
       ¸˜
Introducao                     ””” f u n c t i o n age
Computacao¸˜
cient´fica
     ı
Desempenho
                                self :
Design de Alto
N´vel
 ı                              z : real
Princpio de Pareto
Programao Orientada
a Objetos
PYTHON com
                                returns real
FORTRAN
                                ”””
Multiprocessing
Dando Carga para as             return None # s h o u l d r a i s e
Baterias
Simulando o Universo                         # NotImplementedError ( )
na Web


Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
Planejando antes de programar

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                     def ascale ( self , z ):
       ¸˜
Introducao                     ””” f u n c t i o n a s c a l e
Computacao¸˜
cient´fica
     ı
Desempenho
                                 self :
Design de Alto
N´vel
 ı                               z : real
Princpio de Pareto
Programao Orientada
a Objetos
PYTHON com
                                 returns real
FORTRAN
                                 ”””
Multiprocessing
Dando Carga para as              return None # s h o u l d r a i s e
Baterias
Simulando o Universo                          # NotImplementedError ( )
na Web


Fim




                                                                     ´
                                                       Uma Jornada Alem das Estrelas
Planejando antes de programar

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                     def rhom ( self , z ):
       ¸˜
Introducao                     ””” f u n c t i o n rhom
Computacao¸˜
cient´fica
     ı
Desempenho
                                self :
Design de Alto
N´vel
 ı                              z : real
Princpio de Pareto
Programao Orientada
a Objetos
PYTHON com
                                returns
FORTRAN
                                ”””
Multiprocessing
Dando Carga para as             return None # s h o u l d r a i s e
Baterias
Simulando o Universo                        # NotImplementedError ( )
na Web


Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
Planejando antes de programar

Uma Jornada
   ´
 Alem das
  Estrelas                 def __init__ ( self , omegam = 0.27 ,
                                               omegab = 0.24 ,
Sumrio                                         omegal = 0.73 , h = 0.73):
       ¸˜
Introducao                     ””” f u n c t i o n i n i t
Computacao¸˜
cient´fica
     ı
Desempenho
                               self :
Design de Alto
N´vel
 ı                             omegam : r e a l
Princpio de Pareto
Programao Orientada
                               omegab : r e a l
a Objetos
PYTHON com
                               omegal : r e a l
FORTRAN
                               h: real
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo           returns
na Web
                               ”””
Fim
                               return None # s h o u l d r a i s e
                                           # NotImplementedError ( )


                                                                ´
                                                  Uma Jornada Alem das Estrelas
Quando um velho bruxo aprende ofidioglossia

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                 O FORTRAN - FORmula TRANslator- ainda vive.
       ¸˜
Introducao
Computacao¸˜
                           comum escutar que python lento por ser interpretado, logo no
cient´fica
     ı
Desempenho
                           uso...
Design de Alto
N´vel
 ı
                           Para solucionar esse problema, usa-se uma linguagem
Princpio de Pareto         compilada somente na parte critica;
Programao Orientada
a Objetos
PYTHON com                 Faz-se uma funo ou subrotina em Fortran;
FORTRAN
Multiprocessing
Dando Carga para as
                           Compilar e encapsular usando f2py - Integrada com numpy;
Baterias
Simulando o Universo
na Web
                           O import ocorre normalmente;
Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
Quando um velho bruxo aprende ofidioglossia

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                 O FORTRAN - FORmula TRANslator- ainda vive.
       ¸˜
Introducao
Computacao¸˜
                           comum escutar que python lento por ser interpretado, logo no
cient´fica
     ı
Desempenho
                           uso...
Design de Alto
N´vel
 ı
                           Para solucionar esse problema, usa-se uma linguagem
Princpio de Pareto         compilada somente na parte critica;
Programao Orientada
a Objetos
PYTHON com                 Faz-se uma funo ou subrotina em Fortran;
FORTRAN
Multiprocessing
Dando Carga para as
                           Compilar e encapsular usando f2py - Integrada com numpy;
Baterias
Simulando o Universo
na Web
                           O import ocorre normalmente;
Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
Quando um velho bruxo aprende ofidioglossia

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                 O FORTRAN - FORmula TRANslator- ainda vive.
       ¸˜
Introducao
Computacao¸˜
                           comum escutar que python lento por ser interpretado, logo no
cient´fica
     ı
Desempenho
                           uso...
Design de Alto
N´vel
 ı
                           Para solucionar esse problema, usa-se uma linguagem
Princpio de Pareto         compilada somente na parte critica;
Programao Orientada
a Objetos
PYTHON com                 Faz-se uma funo ou subrotina em Fortran;
FORTRAN
Multiprocessing
Dando Carga para as
                           Compilar e encapsular usando f2py - Integrada com numpy;
Baterias
Simulando o Universo
na Web
                           O import ocorre normalmente;
Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
Quando um velho bruxo aprende ofidioglossia

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                 O FORTRAN - FORmula TRANslator- ainda vive.
       ¸˜
Introducao
Computacao¸˜
                           comum escutar que python lento por ser interpretado, logo no
cient´fica
     ı
Desempenho
                           uso...
Design de Alto
N´vel
 ı
                           Para solucionar esse problema, usa-se uma linguagem
Princpio de Pareto         compilada somente na parte critica;
Programao Orientada
a Objetos
PYTHON com                 Faz-se uma funo ou subrotina em Fortran;
FORTRAN
Multiprocessing
Dando Carga para as
                           Compilar e encapsular usando f2py - Integrada com numpy;
Baterias
Simulando o Universo
na Web
                           O import ocorre normalmente;
Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
Quando um velho bruxo aprende ofidioglossia

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                 O FORTRAN - FORmula TRANslator- ainda vive.
       ¸˜
Introducao
Computacao¸˜
                           comum escutar que python lento por ser interpretado, logo no
cient´fica
     ı
Desempenho
                           uso...
Design de Alto
N´vel
 ı
                           Para solucionar esse problema, usa-se uma linguagem
Princpio de Pareto         compilada somente na parte critica;
Programao Orientada
a Objetos
PYTHON com                 Faz-se uma funo ou subrotina em Fortran;
FORTRAN
Multiprocessing
Dando Carga para as
                           Compilar e encapsular usando f2py - Integrada com numpy;
Baterias
Simulando o Universo
na Web
                           O import ocorre normalmente;
Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
oi

Uma Jornada
   ´
 Alem das
  Estrelas


                        C FILE hiword .f
Sumrio
                               subroutine hiword (a ,b)
       ¸˜
Introducao
Computacao¸˜
                               real*8 a ,b
cient´fica
     ı
Desempenho
                        cf2py intent(in) a
Design de Alto          cf2py intent(out) b
N´vel
 ı                             b = a*a
Princpio de Pareto
Programao Orientada            write(6 ,*) ’b = ’,b , ’, a = ’,a
a Objetos
PYTHON com                     return
FORTRAN
Multiprocessing                end
Dando Carga para as
Baterias
Simulando o Universo
na Web
                        $ f2py -c hiword.f -m hiword
Fim




                                                                     ´
                                                       Uma Jornada Alem das Estrelas
oi

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio                  import hiword
       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı                  print hiword . __doc__
Desempenho
                        #>> T h i s module ’ h i w o r d ’ i s
Design de Alto
N´vel
 ı                      #>> a u t o −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 ) .
Princpio de Pareto
Programao Orientada
                        #>>F u n c t i o n s :
a Objetos
PYTHON com
                        #>> b = h i w o r d ( a )
FORTRAN
                        hiword . hiword (5)
Multiprocessing
Dando Carga para as     #>> b =25.000000000000000 , a = 5 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Baterias
Simulando o Universo    # >>25.0
na Web


Fim




                                                                    ´
                                                      Uma Jornada Alem das Estrelas
´
                       Maquinas Multicore

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho                    ¸˜      ´
                       otimizacao de calculos
Design de Alto
N´vel
 ı                                                          ¸˜      ´
                       O uso de multiprocessing para otimizacao de calculos em
Princpio de Pareto
Programao Orientada
                         ´
                       maquinas multicore.
a Objetos
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                 ´
                                                   Uma Jornada Alem das Estrelas
´
                       Maquinas Multicore

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho                    ¸˜      ´
                       otimizacao de calculos
Design de Alto                                           xf
N´vel
 ı
Princpio de Pareto
                                            f (x) =           g(x, k)dk,              (1)
Programao Orientada
                                                       a(x)
a Objetos
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                    ´
                                                      Uma Jornada Alem das Estrelas
´
                       Maquinas Multicore

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho                    ¸˜      ´
                       otimizacao de calculos
Design de Alto
N´vel
 ı
                           g(x, k) nao e separavel;
                                    ˜ ´       ´
Princpio de Pareto
Programao Orientada        [x0 , x f ]
a Objetos
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                                                    ´
                                                      Uma Jornada Alem das Estrelas
´
                       Maquinas Multicore

Uma Jornada
   ´
 Alem das
  Estrelas
                              ¸˜      ´
                       otimizacao de calculos
Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho


Design de Alto
N´vel
 ı
Princpio de Pareto
Programao Orientada
a Objetos
PYTHON com
                       Figura: ppvector, a Python module for construction of parallel scientific
FORTRAN
Multiprocessing
                       code in a multi-core machine.
Dando Carga para as
Baterias
Simulando o Universo
na Web
                       https:
Fim
                       //duducosmos@github.com/duducosmos/ppvector.git


                                                                      ´
                                                        Uma Jornada Alem das Estrelas
´
                       Maquinas Multicore

Uma Jornada
   ´
 Alem das
  Estrelas
                       import m u l t i p r o c e s s i n g as mpg
Sumrio                 from p p v e c t o r import p p v e c t o r
       ¸˜
Introducao             from s c i p y . i n t e g r a t e import romberg
Computacao¸˜
cient´fica
     ı
Desempenho
                       np=10000;         zmax = 2 0 . 0 ;       d e l t a z =zmax / np
Design de Alto
N´vel
 ı
                       g= mpg . A r r a y ( ’ d ’ , [ 0 f o r i i n range ( np ) ] )
Princpio de Pareto     #o d i n d i c a precisao sdupla
                       z= mpg . A r r a y ( ’ d ’ , [ zmax− i ∗ d e l t a z f o r i i n range ( np ) ] )
Programao Orientada
a Objetos
PYTHON com
FORTRAN                # Defini−se a funcao que i r a c a l c u l a r os pontos do
Multiprocessing
Dando Carga para as
                       # v e t o r I n t e em p a r a l e l o
Baterias
Simulando o Universo
                       #k e o ponto do v e t o r onde se i n i c i a o c a l c u l o
na Web
                       #E e o tamanho do s u b i n t e r v a l o do v e t o r a se r calculado
Fim
                       #n e o numero do processo



                                                                           ´
                                                             Uma Jornada Alem das Estrelas
´
                       Maquinas Multicore

Uma Jornada
   ´
 Alem das
  Estrelas

                        def f ( x ) :
Sumrio
                            r e t u r n x ∗∗ 2.0
       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
                        def f u n ( k , E , n ) :
Desempenho

                            p r i n t ’ Esse e o processo : ’ , n
Design de Alto
N´vel
 ı                          k2=k+E
                            g [ k : k2 ] = ( romberg ( f , z [ i ] , 2 0 . 0 ) 
Princpio de Pareto
Programao Orientada
a Objetos
PYTHON com
                                                  f o r i i n range ( k , k2 + 1 ) )
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web
                       C1= p p v e c t o r ( np , f u n ) #Cria−se uma i n s t a c i a
Fim
                       C1 . runProcess ( ) # Ativa o metodo que c a l c u l a em p a r a l e l o .




                                                                           ´
                                                             Uma Jornada Alem das Estrelas
Pacotes essenciais

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio
                       Numpy, Scipy, Matplotlib, Scientific Python, MayaVi
       ¸˜
Introducao                                       ´
                           Numpy : Trabalhar com algebra matricial;
Computacao¸˜
cient´fica
     ı
Desempenho
                                             ´                ¸˜          ¸˜       ¸˜
                           Scipy : diversos metodos de integracao, Otimizacao, Solucao
Design de Alto
                                    ¸˜
                           de Equacoes Diferencias;
N´vel
 ı
Princpio de Pareto                              ´
                           Matplotlib : Gerar Graficos 2D e 3D simples;
Programao Orientada
a Objetos
PYTHON com
                           Scientific Python: Permite trabalhar com vetores de forca e
                                                                                 ¸
FORTRAN
Multiprocessing
                                     ¸˜                         ´
                           programacao em Paralelo usando metodo BSP - Evita
Dando Carga para as
Baterias                   DeadLock;
Simulando o Universo
na Web
                                      ´
                           MayaVi : Graficos 3D sofisticados.
Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
Pacotes essenciais

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio
                       Numpy, Scipy, Matplotlib, Scientific Python, MayaVi
       ¸˜
Introducao                                       ´
                           Numpy : Trabalhar com algebra matricial;
Computacao¸˜
cient´fica
     ı
Desempenho
                                             ´                ¸˜          ¸˜       ¸˜
                           Scipy : diversos metodos de integracao, Otimizacao, Solucao
Design de Alto
                                    ¸˜
                           de Equacoes Diferencias;
N´vel
 ı
Princpio de Pareto                              ´
                           Matplotlib : Gerar Graficos 2D e 3D simples;
Programao Orientada
a Objetos
PYTHON com
                           Scientific Python: Permite trabalhar com vetores de forca e
                                                                                 ¸
FORTRAN
Multiprocessing
                                     ¸˜                         ´
                           programacao em Paralelo usando metodo BSP - Evita
Dando Carga para as
Baterias                   DeadLock;
Simulando o Universo
na Web
                                      ´
                           MayaVi : Graficos 3D sofisticados.
Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
Pacotes essenciais

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio
                       Numpy, Scipy, Matplotlib, Scientific Python, MayaVi
       ¸˜
Introducao                                       ´
                           Numpy : Trabalhar com algebra matricial;
Computacao¸˜
cient´fica
     ı
Desempenho
                                             ´                ¸˜          ¸˜       ¸˜
                           Scipy : diversos metodos de integracao, Otimizacao, Solucao
Design de Alto
                                    ¸˜
                           de Equacoes Diferencias;
N´vel
 ı
Princpio de Pareto                              ´
                           Matplotlib : Gerar Graficos 2D e 3D simples;
Programao Orientada
a Objetos
PYTHON com
                           Scientific Python: Permite trabalhar com vetores de forca e
                                                                                 ¸
FORTRAN
Multiprocessing
                                     ¸˜                         ´
                           programacao em Paralelo usando metodo BSP - Evita
Dando Carga para as
Baterias                   DeadLock;
Simulando o Universo
na Web
                                      ´
                           MayaVi : Graficos 3D sofisticados.
Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
Pacotes essenciais

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio
                       Numpy, Scipy, Matplotlib, Scientific Python, MayaVi
       ¸˜
Introducao                                       ´
                           Numpy : Trabalhar com algebra matricial;
Computacao¸˜
cient´fica
     ı
Desempenho
                                             ´                ¸˜          ¸˜       ¸˜
                           Scipy : diversos metodos de integracao, Otimizacao, Solucao
Design de Alto
                                    ¸˜
                           de Equacoes Diferencias;
N´vel
 ı
Princpio de Pareto                              ´
                           Matplotlib : Gerar Graficos 2D e 3D simples;
Programao Orientada
a Objetos
PYTHON com
                           Scientific Python: Permite trabalhar com vetores de forca e
                                                                                 ¸
FORTRAN
Multiprocessing
                                     ¸˜                         ´
                           programacao em Paralelo usando metodo BSP - Evita
Dando Carga para as
Baterias                   DeadLock;
Simulando o Universo
na Web
                                      ´
                           MayaVi : Graficos 3D sofisticados.
Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
Pacotes essenciais

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio
                       Numpy, Scipy, Matplotlib, Scientific Python, MayaVi
       ¸˜
Introducao                                       ´
                           Numpy : Trabalhar com algebra matricial;
Computacao¸˜
cient´fica
     ı
Desempenho
                                             ´                ¸˜          ¸˜       ¸˜
                           Scipy : diversos metodos de integracao, Otimizacao, Solucao
Design de Alto
                                    ¸˜
                           de Equacoes Diferencias;
N´vel
 ı
Princpio de Pareto                              ´
                           Matplotlib : Gerar Graficos 2D e 3D simples;
Programao Orientada
a Objetos
PYTHON com
                           Scientific Python: Permite trabalhar com vetores de forca e
                                                                                 ¸
FORTRAN
Multiprocessing
                                     ¸˜                         ´
                           programacao em Paralelo usando metodo BSP - Evita
Dando Carga para as
Baterias                   DeadLock;
Simulando o Universo
na Web
                                      ´
                           MayaVi : Graficos 3D sofisticados.
Fim




                                                                  ´
                                                    Uma Jornada Alem das Estrelas
Escrevendo Matrizes no Banco de Dados -Usando
                       DAL Web2Py
Uma Jornada
   ´
 Alem das
  Estrelas
                       #Usando o DAL do web2py :
Sumrio                 from gluon import DAL
       ¸˜
Introducao             from numpy import a r r a y
Computacao
cient´fica
     ı
          ¸˜
                       from c S t r i n g I O import S t r i n g I O
Desempenho
                       import s c i p y . i o as i o
Design de Alto
N´vel
 ı
Princpio de Pareto     db=DAL( ’ s q l i t e : / / temporaio . db ’ )
                       db . d e f i n e t a b l e ( ’ dados ’ , 
Programao Orientada
a Objetos


                                                    F i e l d ( ’ Parametro ’ ) , 
PYTHON com
FORTRAN
Multiprocessing
Dando Carga para as
                                                    Field ( ’ Matriz ’ ) )
Baterias
Simulando o Universo
na Web
                       x= a r r a y ( [ [ 1 , 2 , 3 ] , [ 5 , 6 , 7 ] , [ 8 , 9 , 0 ] ] )
Fim
                       output=StringIO ( )



                                                                                    ´
                                                                      Uma Jornada Alem das Estrelas
Escrevendo Matrizes no Banco de Dados -Usando
                       DAL Web2Py
Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio
                       # Incerindo matriz e i d e n t i f i c a d o r
       ¸˜
Introducao
                       # da mesma no banco de dados .
Computacao¸˜
cient´fica
     ı
Desempenho             i o . mmwrite ( o u t p u t , x , 
Design de Alto                        comment= ’ i s s o e um t e s t e ’ , 
N´vel
 ı
Princpio de Pareto
                                      f i e l d = ’ real ’ )
Programao Orientada
a Objetos
                       db . dados . i n s e r t ( Parametro= ’ P r i m e i r a ’ , 
PYTHON com
FORTRAN
                                                  Matriz=output . getvalue ( ) )
Multiprocessing
Dando Carga para as
Baterias
                       db . commit ( )
Simulando o Universo
na Web
                       o u t p u t . c l o s e ( ) #Limpa o b u f f e r
Fim




                                                                            ´
                                                              Uma Jornada Alem das Estrelas
Escrevendo Matrizes no Banco de Dados -Usando
                       DAL Web2Py
Uma Jornada
   ´
 Alem das
  Estrelas
                       #Usando o DAL do web2py :
                       from gluon import DAL
Sumrio
                       from numpy import a r r a y
       ¸˜
Introducao
Computacao¸˜
                       from c S t r i n g I O import S t r i n g I O
cient´fica
     ı
Desempenho
                       import s c i p y . i o as i o
Design de Alto
N´vel
 ı
Princpio de Pareto
                       # Selecionando matriz de um banco de dados .
Programao Orientada    MM = db ( db . dados . Parametro== ’ P r i m e i r a ’ ) . s e l e c t ( ) [ 0 ]
a Objetos
PYTHON com
FORTRAN
Multiprocessing        T3=MM. M a t r i z
Dando Carga para as
Baterias
Simulando o Universo
na Web                 I n p u t = S t r i n g I O ( T3 )
Fim                    X4= i o . mmread ( I n p u t )
                       I n p u t . c l o s e ( ) #Limpa o B u f f e r



                                                                           ´
                                                             Uma Jornada Alem das Estrelas
Graviton Perturbation

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho


Design de Alto
N´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 Alem das Estrelas
FIM

Uma Jornada
   ´
 Alem das
  Estrelas



Sumrio

       ¸˜
Introducao
Computacao¸˜
cient´fica
     ı
Desempenho             Grato
Design de Alto
N´vel
 ı
Princpio de Pareto
Programao Orientada
a Objetos
PYTHON com
                       MUITO OBRIGADO
FORTRAN
Multiprocessing
Dando Carga para as
Baterias
Simulando o Universo
na Web


Fim




                                              ´
                                Uma Jornada Alem das Estrelas

Mais conteúdo relacionado

Destaque (7)

Do Cosmos a Terra: Usando Python para desvendar os mistérios do Universo.
Do Cosmos a Terra: Usando Python para desvendar os mistérios do Universo.Do Cosmos a Terra: Usando Python para desvendar os mistérios do Universo.
Do Cosmos a Terra: Usando Python para desvendar os mistérios do Universo.
 
O sistema solar
O sistema solarO sistema solar
O sistema solar
 
Slides tdc 2010
Slides tdc 2010Slides tdc 2010
Slides tdc 2010
 
Introducao python 2010
Introducao python 2010Introducao python 2010
Introducao python 2010
 
Iwcca2011
Iwcca2011Iwcca2011
Iwcca2011
 
Tutorial Rodando Python no C#
Tutorial Rodando Python no C#Tutorial Rodando Python no C#
Tutorial Rodando Python no C#
 
Buracos negros
Buracos negrosBuracos negros
Buracos negros
 

Semelhante a Uma jornada além das estrelas

Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2Pacc UAB
 
Matemática em Gráficos: A Mágica da Geração Procedural
Matemática em Gráficos: A Mágica da Geração ProceduralMatemática em Gráficos: A Mágica da Geração Procedural
Matemática em Gráficos: A Mágica da Geração ProceduralAdriano Gil
 
Open Hardware & Arduino
Open Hardware & ArduinoOpen Hardware & Arduino
Open Hardware & Arduinoelliando dias
 
Algoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas PúblicasAlgoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas PúblicasNathalia Sautchuk Patricio
 
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxAlessandro Binhara
 

Semelhante a Uma jornada além das estrelas (9)

Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2
 
Pensamento Computacional - V Semana Digital Ananindeua-PA
Pensamento Computacional - V Semana Digital Ananindeua-PAPensamento Computacional - V Semana Digital Ananindeua-PA
Pensamento Computacional - V Semana Digital Ananindeua-PA
 
Matemática em Gráficos: A Mágica da Geração Procedural
Matemática em Gráficos: A Mágica da Geração ProceduralMatemática em Gráficos: A Mágica da Geração Procedural
Matemática em Gráficos: A Mágica da Geração Procedural
 
Open Hardware & Arduino
Open Hardware & ArduinoOpen Hardware & Arduino
Open Hardware & Arduino
 
Algoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas PúblicasAlgoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas Públicas
 
Computacao Invisivel
Computacao InvisivelComputacao Invisivel
Computacao Invisivel
 
Computação Ubíqua
Computação UbíquaComputação Ubíqua
Computação Ubíqua
 
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
 
4
44
4
 

Mais de Eduardo S. Pereira

Lista de Exercícios de Probabilidade e Estatística do Segundo Bimestre
Lista de Exercícios de Probabilidade e Estatística do Segundo BimestreLista de Exercícios de Probabilidade e Estatística do Segundo Bimestre
Lista de Exercícios de Probabilidade e Estatística do Segundo BimestreEduardo S. Pereira
 
Aula 10 Probabilidade e Estatística
Aula 10 Probabilidade e EstatísticaAula 10 Probabilidade e Estatística
Aula 10 Probabilidade e EstatísticaEduardo S. Pereira
 
Aula de Probabilidade e Estatítisca Revisão
Aula de Probabilidade e Estatítisca RevisãoAula de Probabilidade e Estatítisca Revisão
Aula de Probabilidade e Estatítisca RevisãoEduardo S. Pereira
 
Atividade prática Probabilidade e Estatística
Atividade prática Probabilidade e EstatísticaAtividade prática Probabilidade e Estatística
Atividade prática Probabilidade e EstatísticaEduardo S. Pereira
 
Probabilidade e Estatítica Lista de Exercícios 1
Probabilidade e Estatítica Lista de Exercícios 1Probabilidade e Estatítica Lista de Exercícios 1
Probabilidade e Estatítica Lista de Exercícios 1Eduardo S. Pereira
 
Probabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de FrequênciaProbabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de FrequênciaEduardo S. Pereira
 
Probabilidade e Estatística Boxplot
Probabilidade e Estatística BoxplotProbabilidade e Estatística Boxplot
Probabilidade e Estatística BoxplotEduardo S. Pereira
 
Primeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de DadosPrimeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de DadosEduardo S. Pereira
 
Aula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de DadosAula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de DadosEduardo S. Pereira
 

Mais de Eduardo S. Pereira (20)

Lista de Exercícios de Probabilidade e Estatística do Segundo Bimestre
Lista de Exercícios de Probabilidade e Estatística do Segundo BimestreLista de Exercícios de Probabilidade e Estatística do Segundo Bimestre
Lista de Exercícios de Probabilidade e Estatística do Segundo Bimestre
 
Aula 10 Probabilidade e Estatística
Aula 10 Probabilidade e EstatísticaAula 10 Probabilidade e Estatística
Aula 10 Probabilidade e Estatística
 
Aula de Probabilidade e Estatítisca Revisão
Aula de Probabilidade e Estatítisca RevisãoAula de Probabilidade e Estatítisca Revisão
Aula de Probabilidade e Estatítisca Revisão
 
Atividade prática Probabilidade e Estatística
Atividade prática Probabilidade e EstatísticaAtividade prática Probabilidade e Estatística
Atividade prática Probabilidade e Estatística
 
Probabilidade e Estatítica Lista de Exercícios 1
Probabilidade e Estatítica Lista de Exercícios 1Probabilidade e Estatítica Lista de Exercícios 1
Probabilidade e Estatítica Lista de Exercícios 1
 
Probabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de FrequênciaProbabilidade e Estatística Tabelas de Frequência
Probabilidade e Estatística Tabelas de Frequência
 
Probabilidade e Estatística Boxplot
Probabilidade e Estatística BoxplotProbabilidade e Estatística Boxplot
Probabilidade e Estatística Boxplot
 
Aula 11 Modelagem de Dados
Aula 11 Modelagem de DadosAula 11 Modelagem de Dados
Aula 11 Modelagem de Dados
 
Aula 10 Modelagem de Dados
Aula 10 Modelagem de DadosAula 10 Modelagem de Dados
Aula 10 Modelagem de Dados
 
Aula 9 Modelagem de Dados
Aula 9 Modelagem de DadosAula 9 Modelagem de Dados
Aula 9 Modelagem de Dados
 
Aula 7 Modelagem de Dados
Aula 7 Modelagem de DadosAula 7 Modelagem de Dados
Aula 7 Modelagem de Dados
 
Aula 8 Modelagem de Dados
Aula 8 Modelagem de DadosAula 8 Modelagem de Dados
Aula 8 Modelagem de Dados
 
Primeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de DadosPrimeira Lista de Exercícios de Modelagem de Dados
Primeira Lista de Exercícios de Modelagem de Dados
 
Aula 06 Modelagem de Dados
Aula 06 Modelagem de DadosAula 06 Modelagem de Dados
Aula 06 Modelagem de Dados
 
Aula05
Aula05Aula05
Aula05
 
Aula04
Aula04Aula04
Aula04
 
Aula03
Aula03Aula03
Aula03
 
Aula02
Aula02Aula02
Aula02
 
Aula01
Aula01Aula01
Aula01
 
Aula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de DadosAula 7 - Algoritmos e Estrutura de Dados
Aula 7 - Algoritmos e Estrutura de Dados
 

Uma jornada além das estrelas

  • 1. Uma Jornada ´ Alem das Estrelas ´ Uma Jornada Alem das Estrelas: Quando Dr. Sumrio ¸˜ Introducao Spock Conheceu o Python e o Design de alto Computacao cient´fica ı ¸˜ n´vel ı Desempenho Design de Alto N´vel ı Princpio de Pareto Programao Orientada Eduardo S. Pereira a Objetos PYTHON com FORTRAN email: pereira.somoza@gmail.com/duducosmo@das.inpe.br Multiprocessing Dando Carga para as blog:http://gravywave.blogspot.com/ Baterias Simulando o Universo twitter: duducosmos na Web Fim 21/outubro/2010 ´ Uma Jornada Alem das Estrelas
  • 2. Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao 1 ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho Design de Alto 2 Design de Alto N´vel ı N´vel ı Princpio de Pareto Programao Orientada a Objetos 3 Fim PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 3. ¸˜ O que Computacao Cient´fica? ı Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ ¸˜ Computacao Cient´fica sobre... ı cient´fica ı Desempenho ´ Construo de modelos matematicos; Design de Alto N´vel ı ´ ¸˜ ´ Desenvolvimento de tecnicas para solucoes numericas; Princpio de Pareto Programao Orientada a Objetos Analisar e resolver problemas cient´ficos; ı PYTHON com FORTRAN ...usando computador. Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 4. ¸˜ O que Computacao Cient´fica? ı Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ ¸˜ Computacao Cient´fica sobre... ı cient´fica ı Desempenho ´ Construo de modelos matematicos; Design de Alto N´vel ı ´ ¸˜ ´ Desenvolvimento de tecnicas para solucoes numericas; Princpio de Pareto Programao Orientada a Objetos Analisar e resolver problemas cient´ficos; ı PYTHON com FORTRAN ...usando computador. Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 5. ¸˜ O que Computacao Cient´fica? ı Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ ¸˜ Computacao Cient´fica sobre... ı cient´fica ı Desempenho ´ Construo de modelos matematicos; Design de Alto N´vel ı ´ ¸˜ ´ Desenvolvimento de tecnicas para solucoes numericas; Princpio de Pareto Programao Orientada a Objetos Analisar e resolver problemas cient´ficos; ı PYTHON com FORTRAN ...usando computador. Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 6. ¸˜ O que Computacao Cient´fica? ı Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ ¸˜ Computacao Cient´fica sobre... ı cient´fica ı Desempenho ´ Construo de modelos matematicos; Design de Alto N´vel ı ´ ¸˜ ´ Desenvolvimento de tecnicas para solucoes numericas; Princpio de Pareto Programao Orientada a Objetos Analisar e resolver problemas cient´ficos; ı PYTHON com FORTRAN ...usando computador. Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 7. ¸˜ Comparacao de desempenho Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı http://www.scipy.org/PerformancePython/ Desempenho Design de Alto ¸˜ Uma comparacao entre NumPy, Pyrex, Psyco, Fortran (77 N´vel ı Princpio de Pareto ¸˜ and 90) e C++ para resolver a equacao de Laplace. Artigo Programao Orientada a Objetos originalmente escrito por Prabhu Ramachandran. PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 8. ¸˜ Comparacao de desempenho Uma Jornada ´ Alem das Estrelas http://www.scipy.org/PerformancePython/ Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho Design de Alto N´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 Alem das Estrelas
  • 9. Running Time Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Regra do 80 - 20 Computacao¸˜ cient´fica ı Desempenho ´ ´ 20% do codigo consome 80% do tempo de calculo; Design de Alto Maquinas cada vez mais potentes, em termo de poder de N´vel ı Princpio de Pareto ´ calculo; Programao Orientada a Objetos PYTHON com ˜ Dificuldade de encontrar mao de obra especializada; FORTRAN Multiprocessing Dando Carga para as Baterias O QUE FAZER? Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 10. Running Time Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Regra do 80 - 20 Computacao¸˜ cient´fica ı Desempenho ´ ´ 20% do codigo consome 80% do tempo de calculo; Design de Alto Maquinas cada vez mais potentes, em termo de poder de N´vel ı Princpio de Pareto ´ calculo; Programao Orientada a Objetos PYTHON com ˜ Dificuldade de encontrar mao de obra especializada; FORTRAN Multiprocessing Dando Carga para as Baterias O QUE FAZER? Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 11. Running Time Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Regra do 80 - 20 Computacao¸˜ cient´fica ı Desempenho ´ ´ 20% do codigo consome 80% do tempo de calculo; Design de Alto Maquinas cada vez mais potentes, em termo de poder de N´vel ı Princpio de Pareto ´ calculo; Programao Orientada a Objetos PYTHON com ˜ Dificuldade de encontrar mao de obra especializada; FORTRAN Multiprocessing Dando Carga para as Baterias O QUE FAZER? Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 12. Running Time Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Regra do 80 - 20 Computacao¸˜ cient´fica ı Desempenho ´ ´ 20% do codigo consome 80% do tempo de calculo; Design de Alto Maquinas cada vez mais potentes, em termo de poder de N´vel ı Princpio de Pareto ´ calculo; Programao Orientada a Objetos PYTHON com ˜ Dificuldade de encontrar mao de obra especializada; FORTRAN Multiprocessing Dando Carga para as Baterias O QUE FAZER? Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 13. Planejando antes de programar Uma Jornada ´ Alem das Estrelas ´ Gerando codigo esqueleto a partir do diagrama de classes Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho Design de Alto N´vel ı Princpio de Pareto Programao Orientada a Objetos PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Figura: cosmo.dia, an example of class diagram for the basic Simulando o Universo na Web characteristics of a cosmological model. Fim ´ Uma Jornada Alem das Estrelas
  • 14. Planejando antes de programar Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho ´ Gerando codigo esqueleto a partir do diagrama de classes Design de Alto N´vel ı Princpio de Pareto comando dia2code cosmo.dia -t Python Programao Orientada a Objetos PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 15. Planejando antes de programar Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao class cosmo : Computacao cient´fica ı ¸˜ ””” C l a s s cosmo Desempenho ””” Design de Alto N´vel ı # Attributes : Princpio de Pareto self . omegam = 0.27 # ( r e a l ) Programao Orientada a Objetos self . omegab = 0.04 # ( r e a l ) PYTHON com FORTRAN self . omegal = 0.73 # ( r e a l ) Multiprocessing Dando Carga para as self .h = 0.73 # ( r e a l ) Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 16. Planejando antes de programar Uma Jornada ´ Alem das Estrelas Sumrio def age ( self , z ): ¸˜ Introducao ””” f u n c t i o n age Computacao¸˜ cient´fica ı Desempenho self : Design de Alto N´vel ı z : real Princpio de Pareto Programao Orientada a Objetos PYTHON com returns real FORTRAN ””” Multiprocessing Dando Carga para as return None # s h o u l d r a i s e Baterias Simulando o Universo # NotImplementedError ( ) na Web Fim ´ Uma Jornada Alem das Estrelas
  • 17. Planejando antes de programar Uma Jornada ´ Alem das Estrelas Sumrio def ascale ( self , z ): ¸˜ Introducao ””” f u n c t i o n a s c a l e Computacao¸˜ cient´fica ı Desempenho self : Design de Alto N´vel ı z : real Princpio de Pareto Programao Orientada a Objetos PYTHON com returns real FORTRAN ””” Multiprocessing Dando Carga para as return None # s h o u l d r a i s e Baterias Simulando o Universo # NotImplementedError ( ) na Web Fim ´ Uma Jornada Alem das Estrelas
  • 18. Planejando antes de programar Uma Jornada ´ Alem das Estrelas Sumrio def rhom ( self , z ): ¸˜ Introducao ””” f u n c t i o n rhom Computacao¸˜ cient´fica ı Desempenho self : Design de Alto N´vel ı z : real Princpio de Pareto Programao Orientada a Objetos PYTHON com returns FORTRAN ””” Multiprocessing Dando Carga para as return None # s h o u l d r a i s e Baterias Simulando o Universo # NotImplementedError ( ) na Web Fim ´ Uma Jornada Alem das Estrelas
  • 19. Planejando antes de programar Uma Jornada ´ Alem das Estrelas def __init__ ( self , omegam = 0.27 , omegab = 0.24 , Sumrio omegal = 0.73 , h = 0.73): ¸˜ Introducao ””” f u n c t i o n i n i t Computacao¸˜ cient´fica ı Desempenho self : Design de Alto N´vel ı omegam : r e a l Princpio de Pareto Programao Orientada omegab : r e a l a Objetos PYTHON com omegal : r e a l FORTRAN h: real Multiprocessing Dando Carga para as Baterias Simulando o Universo returns na Web ””” Fim return None # s h o u l d r a i s e # NotImplementedError ( ) ´ Uma Jornada Alem das Estrelas
  • 20. Quando um velho bruxo aprende ofidioglossia Uma Jornada ´ Alem das Estrelas Sumrio O FORTRAN - FORmula TRANslator- ainda vive. ¸˜ Introducao Computacao¸˜ comum escutar que python lento por ser interpretado, logo no cient´fica ı Desempenho uso... Design de Alto N´vel ı Para solucionar esse problema, usa-se uma linguagem Princpio de Pareto compilada somente na parte critica; Programao Orientada a Objetos PYTHON com Faz-se uma funo ou subrotina em Fortran; FORTRAN Multiprocessing Dando Carga para as Compilar e encapsular usando f2py - Integrada com numpy; Baterias Simulando o Universo na Web O import ocorre normalmente; Fim ´ Uma Jornada Alem das Estrelas
  • 21. Quando um velho bruxo aprende ofidioglossia Uma Jornada ´ Alem das Estrelas Sumrio O FORTRAN - FORmula TRANslator- ainda vive. ¸˜ Introducao Computacao¸˜ comum escutar que python lento por ser interpretado, logo no cient´fica ı Desempenho uso... Design de Alto N´vel ı Para solucionar esse problema, usa-se uma linguagem Princpio de Pareto compilada somente na parte critica; Programao Orientada a Objetos PYTHON com Faz-se uma funo ou subrotina em Fortran; FORTRAN Multiprocessing Dando Carga para as Compilar e encapsular usando f2py - Integrada com numpy; Baterias Simulando o Universo na Web O import ocorre normalmente; Fim ´ Uma Jornada Alem das Estrelas
  • 22. Quando um velho bruxo aprende ofidioglossia Uma Jornada ´ Alem das Estrelas Sumrio O FORTRAN - FORmula TRANslator- ainda vive. ¸˜ Introducao Computacao¸˜ comum escutar que python lento por ser interpretado, logo no cient´fica ı Desempenho uso... Design de Alto N´vel ı Para solucionar esse problema, usa-se uma linguagem Princpio de Pareto compilada somente na parte critica; Programao Orientada a Objetos PYTHON com Faz-se uma funo ou subrotina em Fortran; FORTRAN Multiprocessing Dando Carga para as Compilar e encapsular usando f2py - Integrada com numpy; Baterias Simulando o Universo na Web O import ocorre normalmente; Fim ´ Uma Jornada Alem das Estrelas
  • 23. Quando um velho bruxo aprende ofidioglossia Uma Jornada ´ Alem das Estrelas Sumrio O FORTRAN - FORmula TRANslator- ainda vive. ¸˜ Introducao Computacao¸˜ comum escutar que python lento por ser interpretado, logo no cient´fica ı Desempenho uso... Design de Alto N´vel ı Para solucionar esse problema, usa-se uma linguagem Princpio de Pareto compilada somente na parte critica; Programao Orientada a Objetos PYTHON com Faz-se uma funo ou subrotina em Fortran; FORTRAN Multiprocessing Dando Carga para as Compilar e encapsular usando f2py - Integrada com numpy; Baterias Simulando o Universo na Web O import ocorre normalmente; Fim ´ Uma Jornada Alem das Estrelas
  • 24. Quando um velho bruxo aprende ofidioglossia Uma Jornada ´ Alem das Estrelas Sumrio O FORTRAN - FORmula TRANslator- ainda vive. ¸˜ Introducao Computacao¸˜ comum escutar que python lento por ser interpretado, logo no cient´fica ı Desempenho uso... Design de Alto N´vel ı Para solucionar esse problema, usa-se uma linguagem Princpio de Pareto compilada somente na parte critica; Programao Orientada a Objetos PYTHON com Faz-se uma funo ou subrotina em Fortran; FORTRAN Multiprocessing Dando Carga para as Compilar e encapsular usando f2py - Integrada com numpy; Baterias Simulando o Universo na Web O import ocorre normalmente; Fim ´ Uma Jornada Alem das Estrelas
  • 25. oi Uma Jornada ´ Alem das Estrelas C FILE hiword .f Sumrio subroutine hiword (a ,b) ¸˜ Introducao Computacao¸˜ real*8 a ,b cient´fica ı Desempenho cf2py intent(in) a Design de Alto cf2py intent(out) b N´vel ı b = a*a Princpio de Pareto Programao Orientada write(6 ,*) ’b = ’,b , ’, a = ’,a a Objetos PYTHON com return FORTRAN Multiprocessing end Dando Carga para as Baterias Simulando o Universo na Web $ f2py -c hiword.f -m hiword Fim ´ Uma Jornada Alem das Estrelas
  • 26. oi Uma Jornada ´ Alem das Estrelas Sumrio import hiword ¸˜ Introducao Computacao¸˜ cient´fica ı print hiword . __doc__ Desempenho #>> T h i s module ’ h i w o r d ’ i s Design de Alto N´vel ı #>> a u t o −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 ) . Princpio de Pareto Programao Orientada #>>F u n c t i o n s : a Objetos PYTHON com #>> b = h i w o r d ( a ) FORTRAN hiword . hiword (5) Multiprocessing Dando Carga para as #>> b =25.000000000000000 , a = 5 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Baterias Simulando o Universo # >>25.0 na Web Fim ´ Uma Jornada Alem das Estrelas
  • 27. ´ Maquinas Multicore Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho ¸˜ ´ otimizacao de calculos Design de Alto N´vel ı ¸˜ ´ O uso de multiprocessing para otimizacao de calculos em Princpio de Pareto Programao Orientada ´ maquinas multicore. a Objetos PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 28. ´ Maquinas Multicore Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho ¸˜ ´ otimizacao de calculos Design de Alto xf N´vel ı Princpio de Pareto f (x) = g(x, k)dk, (1) Programao Orientada a(x) a Objetos PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 29. ´ Maquinas Multicore Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho ¸˜ ´ otimizacao de calculos Design de Alto N´vel ı g(x, k) nao e separavel; ˜ ´ ´ Princpio de Pareto Programao Orientada [x0 , x f ] a Objetos PYTHON com FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas
  • 30. ´ Maquinas Multicore Uma Jornada ´ Alem das Estrelas ¸˜ ´ otimizacao de calculos Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho Design de Alto N´vel ı Princpio de Pareto Programao Orientada a Objetos PYTHON com Figura: ppvector, a Python module for construction of parallel scientific FORTRAN Multiprocessing code in a multi-core machine. Dando Carga para as Baterias Simulando o Universo na Web https: Fim //duducosmos@github.com/duducosmos/ppvector.git ´ Uma Jornada Alem das Estrelas
  • 31. ´ Maquinas Multicore Uma Jornada ´ Alem das Estrelas import m u l t i p r o c e s s i n g as mpg Sumrio from p p v e c t o r import p p v e c t o r ¸˜ Introducao from s c i p y . i n t e g r a t e import romberg Computacao¸˜ cient´fica ı Desempenho np=10000; zmax = 2 0 . 0 ; d e l t a z =zmax / np Design de Alto N´vel ı g= mpg . A r r a y ( ’ d ’ , [ 0 f o r i i n range ( np ) ] ) Princpio de Pareto #o d i n d i c a precisao sdupla z= mpg . A r r a y ( ’ d ’ , [ zmax− i ∗ d e l t a z f o r i i n range ( np ) ] ) Programao Orientada a Objetos PYTHON com FORTRAN # Defini−se a funcao que i r a c a l c u l a r os pontos do Multiprocessing Dando Carga para as # v e t o r I n t e em p a r a l e l o Baterias Simulando o Universo #k e o ponto do v e t o r onde se i n i c i a o c a l c u l o na Web #E e o tamanho do s u b i n t e r v a l o do v e t o r a se r calculado Fim #n e o numero do processo ´ Uma Jornada Alem das Estrelas
  • 32. ´ Maquinas Multicore Uma Jornada ´ Alem das Estrelas def f ( x ) : Sumrio r e t u r n x ∗∗ 2.0 ¸˜ Introducao Computacao¸˜ cient´fica ı def f u n ( k , E , n ) : Desempenho p r i n t ’ Esse e o processo : ’ , n Design de Alto N´vel ı k2=k+E g [ k : k2 ] = ( romberg ( f , z [ i ] , 2 0 . 0 ) Princpio de Pareto Programao Orientada a Objetos PYTHON com f o r i i n range ( k , k2 + 1 ) ) FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web C1= p p v e c t o r ( np , f u n ) #Cria−se uma i n s t a c i a Fim C1 . runProcess ( ) # Ativa o metodo que c a l c u l a em p a r a l e l o . ´ Uma Jornada Alem das Estrelas
  • 33. Pacotes essenciais Uma Jornada ´ Alem das Estrelas Sumrio Numpy, Scipy, Matplotlib, Scientific Python, MayaVi ¸˜ Introducao ´ Numpy : Trabalhar com algebra matricial; Computacao¸˜ cient´fica ı Desempenho ´ ¸˜ ¸˜ ¸˜ Scipy : diversos metodos de integracao, Otimizacao, Solucao Design de Alto ¸˜ de Equacoes Diferencias; N´vel ı Princpio de Pareto ´ Matplotlib : Gerar Graficos 2D e 3D simples; Programao Orientada a Objetos PYTHON com Scientific Python: Permite trabalhar com vetores de forca e ¸ FORTRAN Multiprocessing ¸˜ ´ programacao em Paralelo usando metodo BSP - Evita Dando Carga para as Baterias DeadLock; Simulando o Universo na Web ´ MayaVi : Graficos 3D sofisticados. Fim ´ Uma Jornada Alem das Estrelas
  • 34. Pacotes essenciais Uma Jornada ´ Alem das Estrelas Sumrio Numpy, Scipy, Matplotlib, Scientific Python, MayaVi ¸˜ Introducao ´ Numpy : Trabalhar com algebra matricial; Computacao¸˜ cient´fica ı Desempenho ´ ¸˜ ¸˜ ¸˜ Scipy : diversos metodos de integracao, Otimizacao, Solucao Design de Alto ¸˜ de Equacoes Diferencias; N´vel ı Princpio de Pareto ´ Matplotlib : Gerar Graficos 2D e 3D simples; Programao Orientada a Objetos PYTHON com Scientific Python: Permite trabalhar com vetores de forca e ¸ FORTRAN Multiprocessing ¸˜ ´ programacao em Paralelo usando metodo BSP - Evita Dando Carga para as Baterias DeadLock; Simulando o Universo na Web ´ MayaVi : Graficos 3D sofisticados. Fim ´ Uma Jornada Alem das Estrelas
  • 35. Pacotes essenciais Uma Jornada ´ Alem das Estrelas Sumrio Numpy, Scipy, Matplotlib, Scientific Python, MayaVi ¸˜ Introducao ´ Numpy : Trabalhar com algebra matricial; Computacao¸˜ cient´fica ı Desempenho ´ ¸˜ ¸˜ ¸˜ Scipy : diversos metodos de integracao, Otimizacao, Solucao Design de Alto ¸˜ de Equacoes Diferencias; N´vel ı Princpio de Pareto ´ Matplotlib : Gerar Graficos 2D e 3D simples; Programao Orientada a Objetos PYTHON com Scientific Python: Permite trabalhar com vetores de forca e ¸ FORTRAN Multiprocessing ¸˜ ´ programacao em Paralelo usando metodo BSP - Evita Dando Carga para as Baterias DeadLock; Simulando o Universo na Web ´ MayaVi : Graficos 3D sofisticados. Fim ´ Uma Jornada Alem das Estrelas
  • 36. Pacotes essenciais Uma Jornada ´ Alem das Estrelas Sumrio Numpy, Scipy, Matplotlib, Scientific Python, MayaVi ¸˜ Introducao ´ Numpy : Trabalhar com algebra matricial; Computacao¸˜ cient´fica ı Desempenho ´ ¸˜ ¸˜ ¸˜ Scipy : diversos metodos de integracao, Otimizacao, Solucao Design de Alto ¸˜ de Equacoes Diferencias; N´vel ı Princpio de Pareto ´ Matplotlib : Gerar Graficos 2D e 3D simples; Programao Orientada a Objetos PYTHON com Scientific Python: Permite trabalhar com vetores de forca e ¸ FORTRAN Multiprocessing ¸˜ ´ programacao em Paralelo usando metodo BSP - Evita Dando Carga para as Baterias DeadLock; Simulando o Universo na Web ´ MayaVi : Graficos 3D sofisticados. Fim ´ Uma Jornada Alem das Estrelas
  • 37. Pacotes essenciais Uma Jornada ´ Alem das Estrelas Sumrio Numpy, Scipy, Matplotlib, Scientific Python, MayaVi ¸˜ Introducao ´ Numpy : Trabalhar com algebra matricial; Computacao¸˜ cient´fica ı Desempenho ´ ¸˜ ¸˜ ¸˜ Scipy : diversos metodos de integracao, Otimizacao, Solucao Design de Alto ¸˜ de Equacoes Diferencias; N´vel ı Princpio de Pareto ´ Matplotlib : Gerar Graficos 2D e 3D simples; Programao Orientada a Objetos PYTHON com Scientific Python: Permite trabalhar com vetores de forca e ¸ FORTRAN Multiprocessing ¸˜ ´ programacao em Paralelo usando metodo BSP - Evita Dando Carga para as Baterias DeadLock; Simulando o Universo na Web ´ MayaVi : Graficos 3D sofisticados. Fim ´ Uma Jornada Alem das Estrelas
  • 38. Escrevendo Matrizes no Banco de Dados -Usando DAL Web2Py Uma Jornada ´ Alem das Estrelas #Usando o DAL do web2py : Sumrio from gluon import DAL ¸˜ Introducao from numpy import a r r a y Computacao cient´fica ı ¸˜ from c S t r i n g I O import S t r i n g I O Desempenho import s c i p y . i o as i o Design de Alto N´vel ı Princpio de Pareto db=DAL( ’ s q l i t e : / / temporaio . db ’ ) db . d e f i n e t a b l e ( ’ dados ’ , Programao Orientada a Objetos F i e l d ( ’ Parametro ’ ) , PYTHON com FORTRAN Multiprocessing Dando Carga para as Field ( ’ Matriz ’ ) ) Baterias Simulando o Universo na Web x= a r r a y ( [ [ 1 , 2 , 3 ] , [ 5 , 6 , 7 ] , [ 8 , 9 , 0 ] ] ) Fim output=StringIO ( ) ´ Uma Jornada Alem das Estrelas
  • 39. Escrevendo Matrizes no Banco de Dados -Usando DAL Web2Py Uma Jornada ´ Alem das Estrelas Sumrio # Incerindo matriz e i d e n t i f i c a d o r ¸˜ Introducao # da mesma no banco de dados . Computacao¸˜ cient´fica ı Desempenho i o . mmwrite ( o u t p u t , x , Design de Alto comment= ’ i s s o e um t e s t e ’ , N´vel ı Princpio de Pareto f i e l d = ’ real ’ ) Programao Orientada a Objetos db . dados . i n s e r t ( Parametro= ’ P r i m e i r a ’ , PYTHON com FORTRAN Matriz=output . getvalue ( ) ) Multiprocessing Dando Carga para as Baterias db . commit ( ) Simulando o Universo na Web o u t p u t . c l o s e ( ) #Limpa o b u f f e r Fim ´ Uma Jornada Alem das Estrelas
  • 40. Escrevendo Matrizes no Banco de Dados -Usando DAL Web2Py Uma Jornada ´ Alem das Estrelas #Usando o DAL do web2py : from gluon import DAL Sumrio from numpy import a r r a y ¸˜ Introducao Computacao¸˜ from c S t r i n g I O import S t r i n g I O cient´fica ı Desempenho import s c i p y . i o as i o Design de Alto N´vel ı Princpio de Pareto # Selecionando matriz de um banco de dados . Programao Orientada MM = db ( db . dados . Parametro== ’ P r i m e i r a ’ ) . s e l e c t ( ) [ 0 ] a Objetos PYTHON com FORTRAN Multiprocessing T3=MM. M a t r i z Dando Carga para as Baterias Simulando o Universo na Web I n p u t = S t r i n g I O ( T3 ) Fim X4= i o . mmread ( I n p u t ) I n p u t . c l o s e ( ) #Limpa o B u f f e r ´ Uma Jornada Alem das Estrelas
  • 41. Graviton Perturbation Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho Design de Alto N´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 Alem das Estrelas
  • 42. FIM Uma Jornada ´ Alem das Estrelas Sumrio ¸˜ Introducao Computacao¸˜ cient´fica ı Desempenho Grato Design de Alto N´vel ı Princpio de Pareto Programao Orientada a Objetos PYTHON com MUITO OBRIGADO FORTRAN Multiprocessing Dando Carga para as Baterias Simulando o Universo na Web Fim ´ Uma Jornada Alem das Estrelas