37
Logo Ferramentas Computacionais para Pesquisadores VII Simpósio de Análise Numérica e Otimização Abel Soares Siqueira Universidade Federal do Paraná 24 de Fevereiro de 2015 Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores 24 de Fevereiro de 2015 1 / 24

Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Ferramentas Computacionais

para PesquisadoresVII Simpósio de Análise Numérica e

Otimização

Abel Soares SiqueiraUniversidade Federal do Paraná

24 de Fevereiro de 2015

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 1 / 24

Page 2: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Resumo

Aprenda outras linguagens: Python ou Ruby; Shell; Makefile.

Conheça a linguagem Julia

Escolha um editor e um ambiente de desenvolvimento.

perprof-py: Uma ferramenta para gerar perfis de desempenho.

git: Uma ferramenta para controle de versão.

GitHub para colocar o seu código;

Travis CI para testá-lo automaticamente;

Coveralls.io para saber o que está sendo testado.

Software Carpentry.

Pacotes TikZ e PgfPlots do LATEX: para fazer gráficos.Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 2 / 24

Page 3: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Linguagens

Fortran C

MatLab

Velocidade

Praticidade

Fazer um site Parsear texto Criar interfaces gráficas

Criar apps Automatizar testes

Python Ruby Perl PHP Java Javascript

C++ Shell Objective C C# Assembly SQL

R Makefile HTML Markdown

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 3 / 24

Page 4: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Linguagens

Fortran C

MatLab

Velocidade

Praticidade

Fazer um site Parsear texto Criar interfaces gráficas

Criar apps Automatizar testes

Python Ruby Perl PHP Java Javascript

C++ Shell Objective C C# Assembly SQL

R Makefile HTML Markdown

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 3 / 24

Page 5: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Linguagens

Fortran C

MatLab

Velocidade

Praticidade

Fazer um site Parsear texto Criar interfaces gráficas

Criar apps Automatizar testes

Python Ruby Perl PHP Java Javascript

C++ Shell Objective C C# Assembly SQL

R Makefile HTML Markdown

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 3 / 24

Page 6: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Linguagens

Fortran C

MatLab

Velocidade

Praticidade

Fazer um site Parsear texto Criar interfaces gráficas

Criar apps Automatizar testes

Python Ruby Perl PHP Java Javascript

C++ Shell Objective C C# Assembly SQL

R Makefile HTML Markdown

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 3 / 24

Page 7: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Julia

“... a high-level, high-performance dynamic programming

language for technical computing, with syntax that is familiar to

users of other technical computing environments. ”

Usa C e Fortran no código;

Substitui o MatLab;

Compatibilidade com C e Fortran;

Velocidade.

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 4 / 24

Page 8: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

JuliaOpt

Interfaces para alguns algoritmos conhecidos:

IPOPT, CPLEX, KNITRO, COIN Cbc e Clp,

entre outros.

Linguagens de modelagem JuMP e Convex.

Implementações de softwares tradicionais de

otimização puramente em Julia.

Implementações mais robustas usando códigos

de baixo nível.

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 5 / 24

Page 9: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

CUTEst.jl

Três interfaces

Interface igual a do CUTEst.

CUTEst.cfn(st, nvar, ncon, x, f, c, libname)

Interface intermediária.

(f,c) = CUTEst.jl_cfn(nvar, ncon, x, libname)

Interface para Julia.

(f,c) = objcons(nlp, x)

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 6 / 24

Page 10: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Editores e IDEs

Vim (Vi)

Emacs

Atom

Sublime text

Eclipse

Sharelatex e/ou Writelatex

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 7 / 24

Page 11: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Perprof-py

Uma ferramenta que gera perfis de desempenho (Performance

Profile).

Roda no terminal e funciona no GNU/Linux, no OSX e no

Windows.

Usa dados do usuário, então não está preso à nenhuma

linguagem.

Implementado em Python 3, usa MatplotLib para gráficos em

PNG, ou TikZ/Pgfplots para PDFs.

Muitas opções.Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 8 / 24

Page 12: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Perprof-py

---

algname: Alpha

success: converged

free_format: True

---

10 FOLDTR converged 4.597780e+01 +0.000000e+00 +6.828550e-07 +0.000000e+00

DIXCHLNV short 1.328150e+01 +9.864680e+14 +1.009790e-13 +5.572540e+08

BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Problema Saída Tempo f Fact. Otim.

Opcionais

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 9 / 24

Page 13: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Perprof-py

perprof-py *.table --tikz -o abc

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 10 / 24

Page 14: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Perprof-py

perprof-py *.table --semilog --tikz -o abc-semilog

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 10 / 24

Page 15: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Perprof-py

perprof-py *.table --semilog --tikz --black-and-white -o abc-bw

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 10 / 24

Page 16: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Perprof-py

perprof-py *.table --semilog --tikz --tau 100 -o abc-100

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 10 / 24

Page 17: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Perprof-py

perprof-py *.table --semilog --tikz --subset hs.subset -o abc-hs

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 10 / 24

Page 18: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Git

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 11 / 24

Page 19: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Git

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 12 / 24

Page 20: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Código aberto usando Git

GitHub

Bitbucket

Gitorious

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 13 / 24

Page 21: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Git remoto - GitHub

Você

Remoto

Notebook

Fork

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 14 / 24

Page 22: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

GitHub

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 15 / 24

Page 23: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Github

Travis CI

Testes automatizados que começam quando você sobe o

trabalho pro GitHub.

Coveralls.io

De acordo com seus testes, ele verifica qual porcentagem do seu

trabalho (em linhas úteis) está sendo verificada.

GitHub Pages

Armazenamento de páginas estáticas, no formato

http://usuario.github.io.

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 16 / 24

Page 24: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Uma organização sem fins lucrativos cujos membros ensinam

softwares para pesquisadores.

Faz workshops no mundo todo; fornece material de ensino de

acesso aberto; e tem o programa de treinamento para

instrutores.

Principais assuntos: Shell, Python, R, Git, GitHub, SQL.

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 17 / 24

Page 25: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Existe um custo administrativo, mais o custo de transporte e

acomodação.

No Brasil, o instrutor é o Raniere Silva.

http://www.catarse.me/pt/programacaocientifica.

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 18 / 24

Page 26: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

LATEX: TikZ e PgfPlots

PGF (Portable Graphics Format) é uma camada básica, com

comandos básicos.

TikZ (TikZ ist kein Zeichenprogramm - TikZ não é um

programa para desenhar). Uma camada frontend com comandos

facilitando o desenho utilizando PGF.

PgfPlots Faz gráficos de alta qualidade usando o TikZ. O

usuário passa informações de eixo, e funções/dados.

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 19 / 24

Page 27: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

TikZ

O

A

B

CD

N1

N2

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 20 / 24

Page 28: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

TikZ

x

y

f(x) = sin x

f(x) = x

f(x) = 0.05ex

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 21 / 24

Page 29: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

TikZ

a b

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 22 / 24

Page 30: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

PgfPlots

0 0.2 0.4 0.6 0.8 1

−1

−0.5

0

0.5

1

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24

Page 31: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

PgfPlots

02

4−1

0

1

0

1

2

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24

Page 32: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

PgfPlots

−50

50

10

20−5

0

5

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24

Page 33: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

PgfPlots

Ω

ck

ck

fk

x1

x2

xk

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24

Page 34: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

PgfPlots

f

h

xk

f < fk

h > hk

f < fk

h < hk

f > fk

h > hk

f > fk

h < hk

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24

Page 35: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

PgfPlots

0

20

40

60 0

20

40

60

90

100

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24

Page 36: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

PgfPlots

0

20

40

60 0

20

40

60

90

100

95

100

105

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24

Page 37: Ferramentas Computacionais para Pesquisadoresabelsiqueira.github.io/blog/assets/2015-02-25-vii-simposio.pdf · BURKEHAN stationary 4.816060e-04 -3.437210e-08 +1.010450e+00 +2.464910e-03

Logo

Obrigado

Esta obra está licenciada com uma Licença Creative Commons

Atribuição-CompartilhaIgual 4.0 Internacional.

Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 24 / 24