ferramentas computacionais para...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
Logo
Perprof-py
perprof-py *.table --tikz -o abc
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 10 / 24
Logo
Perprof-py
perprof-py *.table --semilog --tikz -o abc-semilog
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 10 / 24
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
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
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
Logo
Git
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 11 / 24
Logo
Git
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 12 / 24
Logo
Código aberto usando Git
GitHub
Bitbucket
Gitorious
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 13 / 24
Logo
Git remoto - GitHub
Você
Remoto
Notebook
Fork
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 14 / 24
Logo
GitHub
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 15 / 24
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
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
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
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
Logo
TikZ
O
A
B
CD
N1
N2
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 20 / 24
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
Logo
TikZ
a b
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 22 / 24
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
Logo
PgfPlots
02
4−1
0
1
0
1
2
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24
Logo
PgfPlots
−50
50
10
20−5
0
5
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24
Logo
PgfPlots
Ω
ck
ck
fk
x1
x2
xk
Abel Soares Siqueira Ferramentas Computacionais para Pesquisadores24 de Fevereiro de 2015 23 / 24
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
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
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
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