Matlab x Python

586 views
Skip to first unread message

Lucas Emanoel

unread,
Apr 23, 2013, 12:27:11 PM4/23/13
to hacker...@googlegroups.com
Resumo: Estamos usando python para cálculos financeiros, mas python é bom para isso ou matlab seria melhor? Alguém tem alguma experiencia com algum deles?

- Lucas Emanoel

Victor Scattone

unread,
Apr 23, 2013, 12:42:36 PM4/23/13
to Garoa Hacker Clube
Não tenho experiência alguma, mas um dia esbarrei com isso no fórum do crunchbang. Talvez seja útil




Victor Fischer Scattone | Victor.SO


2013/4/23 Lucas Emanoel <luca...@outlook.com>
Resumo: Estamos usando python para cálculos financeiros, mas python é bom para isso ou matlab seria melhor? Alguém tem alguma experiencia com algum deles?

- Lucas Emanoel

--
.--. .- .-. .- .--. --- ... - .- .-. . ... -.-. .-. . ...- .- .--. .- .-. .- .... .- -.-. -.- . .-. ... .--. .- -.-. . ... .--. .- - --. --- --- --. .-.. . --. .-. --- ..- .--. ... -.. --- - -.-. --- --
Regras da Lista: http://garoa.net.br/wiki/Lista:LeiaAntesDeClicarNoSend
Para mais informações sobre o Garoa Hacker Clube acesse http://garoa.net.br
Maiores opções sobre o Google Groups, visite: http://groups.google.com/group/hackerspacesp
.--. .- .-. .- -- .- .. ... .. -. ..-. --- .-. -- .- . ... .- -.-. . ... ... . --- .-- .. -.- ..
Epoch 0 <=> Fundação: 1298244863 s ~ 2.408064*10^52 tP (tempos de Planck)
 
 
 

anderson.marco

unread,
Apr 23, 2013, 12:56:10 PM4/23/13
to hacker...@googlegroups.com
O matlab tem apenas mais funções ligadas a matematica, como a transformado de fourier. Um codigo em matlab tende a ficar mais dificil de dar manutenção quando fica maior. A menos que você precise usar centenas de formulas matematicas diferentes o python é melhor. O matlab eh como uma metralhadora o python eh como um fuzil de assalto.

anderson.marco

unread,
Apr 23, 2013, 12:57:59 PM4/23/13
to hacker...@googlegroups.com
Eu geralmente uso o scilab, um clone do matlab, quando quero investigar qual função matematica eh melhor para resolver meu problema, por exemplo usar fourier ou wavelets. Uma vez decidido implemento a função escolhida no meu codigo python.

Aylons Hazzud

unread,
Apr 23, 2013, 6:37:20 PM4/23/13
to hacker...@googlegroups.com
Está usando o Scipy? Eu tenho usado, e é tudo de bom. 

A melhor parte de usar Python em vez de Matlab (além de set software livre, e não te deixar preso a ninguém) é que é possível integrar facilmente com funcionalidades mais gerais de programação. Não precisa testar o algoritmo em matlab e depois portar para dar mais músculos ao seu projeto:

Quer fazer uma interface web para seus cálculos? Tem biblioteca pronta em Python!
Quer pegar os dados automaticamente da web? Tem biblioteca pronta em Python!
Quer processar ou guardar dados que vieram em um formato esquisito que ninguém usa? Bem, talvez não esteja pronto em Python, mas certamente é bem mais fácil fazer em Python que em Matlab.

Com Matlab, qualquer uma dessas tarefas significaria ter ou que portar o seu programa para uma linguagem mais típica ou fazer um malabarismo que eu não gosto nem de ver (além de ter que instalar o matlab em todo o computador que vai usar, o que é bem mais complicado que o Python e limita a colaboração).

A desvantagem é que não tem tanta coisa pronta no Scipy quanto no Matlab, mas, inclusive, eu curto aprender implementando as funções. O number-crunching, que é o mais importante e difícil de fazer direito, já está lá implementado e bem testado. O resto é perfurmaria.

Oda

unread,
Apr 23, 2013, 11:06:41 PM4/23/13
to hacker...@googlegroups.com
da uma olhada no sage tb.

mais diretamente sobre a sua pergunta, pessoalmente, eu uso bastante o
scilab, um pouco o scipy, mas tenho que dar o braco a torcer: matlab
eh muito bom mesmo.

vale uma ressalva: se vc esta fazendo um robotrader ou outra coisa
onde a performance importa, considera fortemente fortran, c e c++,
nessa ordem.

abs!
--
Oda
------------------------------------------------------
If you don't have time to do it right, where
are you going to find the time to do it over?
------------------------------------------------------


2013/4/23 Aylons Hazzud <ayl...@gmail.com>:

Luciano Ramalho

unread,
Apr 23, 2013, 11:54:48 PM4/23/13
to hacker...@googlegroups.com
2013/4/23 anderson.marco <anderso...@gmail.com>:
> O matlab eh como uma metralhadora
> o python eh como um fuzil de assalto.

Adorei e anotei. Uma analogia politicamente incorreta.

[ ]s
Luciano
Luciano Ramalho / OFICINAS TURING
Twitter: @ramalhoorg

Autor e professor dos cursos:

* Objetos Pythonicos --> http://turing.com.br/oopy
* Python para quem sabe Python --> http://turing.com.br/ppqsp

Luciano Ramalho

unread,
Apr 23, 2013, 11:56:42 PM4/23/13
to hacker...@googlegroups.com
2013/4/23 Lucas Emanoel <luca...@outlook.com>:
> Resumo: Estamos usando python para cálculos financeiros, mas python é bom
> para isso ou matlab seria melhor? Alguém tem alguma experiencia com algum
> deles?

Como Matlab e Python se comparam no quesito "acesso a bancos de dados"?

[ ]s
Luciano



>
> - Lucas Emanoel
>
> --
> .--. .- .-. .- .--. --- ... - .- .-. . ... -.-. .-. . ...- .- .--. .- .-. .-
> .... .- -.-. -.- . .-. ... .--. .- -.-. . ... .--. .- - --. --- --- --. .-..
> . --. .-. --- ..- .--. ... -.. --- - -.-. --- --
> Regras da Lista: http://garoa.net.br/wiki/Lista:LeiaAntesDeClicarNoSend
> Para mais informações sobre o Garoa Hacker Clube acesse http://garoa.net.br
> Maiores opções sobre o Google Groups, visite:
> http://groups.google.com/group/hackerspacesp
> .--. .- .-. .- -- .- .. ... .. -. ..-. --- .-. -- .- . ... .- -.-. . ... ...
> . --- .-- .. -.- ..
> Epoch 0 <=> Fundação: 1298244863 s ~ 2.408064*10^52 tP (tempos de Planck)
>
>
>



--

Joao Oda

unread,
Apr 23, 2013, 3:13:43 PM4/23/13
to hacker...@googlegroups.com
Depende de várias coisas as quais devem ser analisadas levando em consideração sua definição de bom.(Essa é uma reposta que vale para diversas perguntas semelhantes a sua)

O matlab possui vários toolboxes(você tem que adquiri-los a parte) que podem agilizar certas coisas, dentre eles o toolboxes de finanças http://www.mathworks.com/help/finance/index.html e de instrumentos financeiros.

Eu acho bem provável que Python possua bibliotecas com coisas semelhantes, mas desconheço, ainda não pesquisei.

Uma comparação simplória de performance.

O esquema do matlab é evitar utilizar iterações(loops) e modelar seu problema na forma de matrizes e realizar operações matriciais.

Eu poderia discursar mais, mas estou sem tempo agora. Fica p/ uma outra hora.

Abs,

João Oda



Eric Omine

unread,
Apr 23, 2013, 1:20:34 PM4/23/13
to hacker...@googlegroups.com
Python tem FFT na ponta da língua, você pode usar uma dessas duas:
numpy.fft - http://docs.scipy.org/doc/numpy/reference/routines.fft.html
scipy.fftpack - http://docs.scipy.org/doc/scipy/reference/fftpack.html

A não ser que você queira usar Simulink com algoritmo de controle
bastante específico, eu recomendaria o Python. Scripting de baixa
complexidade é fácil nos dois, mas qualquer coisa mais complicada que
isso a sintaxe do Python é mil vezes mais simples. E fora isso, acho
que você ganha em performance:
http://dpinte.wordpress.com/2010/03/16/numpymkl-vs-matlab-performance/
Se você precisa fazer uma simulação milhões de vezes para tirar
médias, isso faz uma diferença brutal.

Joao Oda

unread,
Apr 24, 2013, 2:33:34 AM4/24/13
to hacker...@googlegroups.com
A discussão expandiu um pouco e entrou em computação cientifica e de fato existe uma intersecção entre cálculos utilizados em finanças e computação cientifica. Mas cálculos financeiros podem ser coisas simples também, como o controle financeiro de uma lojinha. 

Que tipo de cálculos você precisa realizar? 

Outras coisas que influenciem também são seus recursos de tempo(desenvolvimento e execução), financeiro e humanos para desenvolver o seu projeto.

Acho que na época(uns 10 anos atrás) em que estudei um pouco  de python o scypy e numpy não eram tão disseminados. Agora eu estou reaprendendo python e pretendo estudar o scypy e numpy. Neste caso seria um projeto envolvendo computação cientifica e visão computacional. Mas eu fico bastante tentando a estudar c++ e QT, pois queria fazer analises em tempo real também. 

No mercado, levando em consideração o que mencionei no segundo e terceiro paragrafo utilizei o MatLab, simulink e juntamente com uma serie de toolboxes.

Se você escrever um script puro na linguagem M(linguagem do MatLab) você não fica preso ao MatLab, você pode utilizar o GNU Octave para interpreta-lo sem problemas, porem a performance é menor. Mas o MatLab dever ser visto principalmente como um ambiente computação lembrando também que se trata também de  um produto fornecido fornecido pela Mathworks. 

Respondendo a pergunta do Ramalho com relação ao acesso a BDs, no caso do MatLab para BDs relacionais você adquire o Data Base ToolBox Não sei como fica no caso de banco de dados NoSQL típicos como Mongo. Eu salvava as estrutura de dados em arquivos .mat e utilizava uma nomenclatura especial para estes arquivos, que permitia realizar umas "buscas". 

Outra hora escrevo mais, vou dormir agora, boa noite.


Lucas Emanoel

unread,
Apr 24, 2013, 7:36:50 AM4/24/13
to hacker...@googlegroups.com
Amanhã eu participarei de uma reunião com um pessoal da opencadd (que eu não sei exatamente qual a ligação deles com a mathworks) onde eles farão uma demonstração do mathlab, mas tenho certeza que eles não responderão minhas perguntas.

Os cáculos são variados... No momento estamos calculando o risco de ações/fundos baseado no histórico daquela ação/fundo. O numpy serviu muito bem até agora, mas meus superiores me pediram para ver a viabilidade de usarmos matlab por ter desempenho melhor e todo o resto.

- Lucas Emanoel



Date: Wed, 24 Apr 2013 03:33:34 -0300
Subject: Re: [GaroaHC] Matlab x Python
From: oda...@gmail.com
To: hacker...@googlegroups.com

Alberto Fabiano

unread,
Apr 24, 2013, 7:40:23 AM4/24/13
to Garoa Hacker Clube
Fortran? Não não faça isto em tempos que os usuários tradicionais
dele, os físicos, tem cada vez mais migrado para C++, como referência,
no LHC (da Suíça não o de Campinas) há um forte estímulo para se usar
C++ com o framework ROOT. Aliás, o cara nem consegue integrar-se com
certas pesquisas se ele não utilizar esta combinação, visto que não só
uma questão de estímulo; é padrão. E este framework tem sido muito
utilizado agora no mercado financeiro.

[&]s++;


2013/4/24 Oda <o...@member.fsf.org>:
--
Alberto Fabiano C. de Medeiros
||| alb...@computer.org
-.. .- -. -.- .- -.--.. .. -.-. --. .. ... -
“Security is an illusion. Paranoia is our profession."-- Strategic Air command.
-. .. ... - -- .. -. ...- . -. - .. - .-
"The best way to predict the future is to invent it." --Alan Kay
-.. .- -. -.- .- -.--.. .. -.-. --. .. ... -
"Chance favors the prepared mind." --Louis Pasteur
-. . -.. .. -.-. -- .... . ..-. ..- - ..- .-.-
"The world is full of fascinating problems waiting to be solved"
--Eric S.Raymond

Alberto Fabiano

unread,
Apr 24, 2013, 7:51:54 AM4/24/13
to Garoa Hacker Clube
João Oda, você é parente do Edu Oda? :-)

Com C++, performance sendo fundamental, não se esqueça de usar o
Lapack ou o Atlas. No passado, as ferramentas da Intel como o IPP e o
MKL já foram bem populares, mas estas tem sido substituídas por
alternativas F/LOSS; as vezes mais complexas, mas enfim, são F/LOSS.

[&]s++;



2013/4/24 Joao Oda <oda...@gmail.com>:

Albert Vonpupp

unread,
Apr 24, 2013, 8:30:19 AM4/24/13
to hacker...@googlegroups.com
Lucas,

De uma olhada nisso:

Tal vez seja do seu interesse. Pessoalmente também estou interessado nessa área, pena que os segredos corporativos estão muito bem reservados...

Python tem SciPy, NumPy, Pandas que acho que inclusive podem superar ao Matlab (opinião pessoal)

Abs.

On Tuesday, April 23, 2013 1:27:11 PM UTC-3, Lucas Emanoel wrote:

Alex Porto

unread,
Apr 24, 2013, 8:46:38 AM4/24/13
to hacker...@googlegroups.com

Lucas,

A opencadd é representante da Mathworks (e de outras empresas) no Brasil. Se vcs conprarem o matlab, a venda e suporte serao feitos por eles. E eles vao fazer de tudo pra te convencer que o Matlab é infinitamente melhor, mais rapido e confiavel que Python, apesar de diversas evidencias em contrario.

E tenho certeza que eles serao os unicos a tentar te convencer disso.

Use Python. Mesmo que o matlab tenha vantagens em alguns poucos aspectos, isso eh pequeno perto das desvantagens que ele traz. A Mathworks tem um sistema de licenciamento extremamente agressivo, onde cada pacote eh vendido separadamente, com custos bem altos.  Eles fazem isso pq dominaram o mercado, mas hj todo mundo esta buscando alternativas aos sistemas deles. Eu sugiro nem comecar a usar.

Se precisar otimizar algo, integre com C (matlab tb faz isso).

Alex

Enviado do meu Professor Corujinha

Aylons Hazzud

unread,
Apr 24, 2013, 8:57:30 AM4/24/13
to hacker...@googlegroups.com
Se a preocupação é desempenho, então sem dúvida o melhor é Python.

Eu já fiz SDR em Python (usando GnuRadio, cujos pacotes são otimizados e feitos em C++) e Matlab, e posso dizer que Python é incrivelmente superior neste aspecto.

Joao Oda

unread,
Apr 24, 2013, 10:27:49 AM4/24/13
to hacker...@googlegroups.com
Eu não sou parente próximo do Edu Oda, distante talvez. Eu vi que tem outro Oda nessa lista, seria ele o Edu Oda?

Voltando ao tópico, se Python lhe serviu muito bem até agora e você vai continuar utilizando o mesmo modelo de risco.

Tomando como hipótese(fracas) que você realiza cálculos com series temporais de cotações diárias(neste caso não é tão pesado) e que você atua somente no mercado brasileiro.

É bem provável que o custo de migração, aquisição da licença  e treinamento para o MatLab seja mais alto, que o custo de aquirir um hardware mais potente.

Se você sair programando em MatLab utilizando 'for comuns' e mecanismo típicos que você esta acostumado em linguagens iterativas a chance de seu código ficar relativamente lento é alta.

Se você tem a sua disposição uma máquina com muitos cores ou um cluster para simulações e você conseguir desmembrar a lógica de seus cálculos em blocos sem relação de causalidade, você pode tirar proveito de funções do toolbox de computação paralela. Um recurso interessante que tem até influência na sintax é o parfor, que é um for onde as iterações podem ser realizadas independentemente uma das outras, o MatLab se vira para distribui-las. 

Seria interessante se tivesse algo semelhante ao parfor em python, alguém sabe se tem?

Se você utilizar uma sublinguagem da linguagem M existem ferramentas(adquirindo mais um toolbox ...) para traduzir seus script em código compilado nativo, esta é uma forma de ganhar desempenho.

E o recurso mais extremo, este eu nunca cheguei a usar, é utilizar as ferramentas(advinha, + 1 toolbox) de integração com gpus. Seria o equivalente a programar em CUDA.

Aylons, o que você quer dizer com SDR?




Eric Omine

unread,
Apr 24, 2013, 10:55:36 AM4/24/13
to hacker...@googlegroups.com
O Numpy faz operações muito rápidas com arrays, acho que isso não
conta como diferencial para o Matlab.

Aylons Hazzud

unread,
Apr 24, 2013, 10:56:04 AM4/24/13
to hacker...@googlegroups.com

anderson.marco

unread,
Apr 24, 2013, 11:11:14 AM4/24/13
to hacker...@googlegroups.com
Existem libs python que integram ele com OpenCL, o OpenCL é uma "versão aberta" do cuda.

Em 24 de abril de 2013 11:27, Joao Oda <oda...@gmail.com> escreveu:

Alberto Fabiano

unread,
Apr 24, 2013, 12:28:03 PM4/24/13
to Garoa Hacker Clube
Essencialmente, Pyhon não tem desempenho melhor que C até por questão
de call stack, normalmente C é de 3 a 10 vezes mais rápido do que
Python.

O que acontece é que há alguns módulos, como você bem comentou, que
estão em C e muito bem otimizados em Python, isto é outra história!


2013/4/24 Aylons Hazzud <ayl...@gmail.com>:

g3ol4d0

unread,
Apr 24, 2013, 12:42:24 PM4/24/13
to hacker...@googlegroups.com

Pergunta : No caso de quem faz uma olimpiada de programação ou coisa que o valha , onde a velocidade do programa conta bastante na nota final, 

tem como o Python ganhar do C / C++ ? 



att

geolado | g3ol4d0

@geolado

g3o...@gmail.com / hotmail.com

Att

geolado | g3ol4d0

Ulisses Montenegro

unread,
Apr 24, 2013, 1:07:54 PM4/24/13
to hacker...@googlegroups.com
IMHO. velocidade nunca deve ser o critério primário para escolha de uma plataforma, mas pode ser um critério de exclusão quando devidamente apoiado por benchmarks que comprovam que uma determinada linguagem/framework é incapaz de alcançar os requisitos de performance de um sistema.

Just my $0.02.


2013/4/24 g3ol4d0 <g3o...@gmail.com>



--
“If debugging is the process of removing software bugs, then programming must be the process of putting them in.” - Edsger Dijkstra

Leonardo Santagada

unread,
Apr 24, 2013, 1:17:41 PM4/24/13
to hacker...@googlegroups.com

2013/4/24 Alberto Fabiano <alb...@computer.org>

Fortran? Não não faça isto em tempos que os usuários tradicionais
dele, os físicos, tem cada vez mais migrado para C++, como referência,
no LHC (da Suíça não o de Campinas) há um forte estímulo para se usar
C++ com o framework ROOT. Aliás, o cara nem consegue integrar-se com
certas pesquisas se ele não utilizar esta combinação, visto que não só
uma questão de estímulo; é padrão. E este framework tem sido muito
utilizado agora no mercado financeiro.

E root tem suporte a python :) os caras da suiça estão até fazendo um código para rodar o root no pypy.

Essa coisa de usar fortran para daytrader também é estranha, tem gente fazendo bot com python também, eu canso de ver proposta de emprego para nova iorque de python financeiro. Eu louco pra ir morar lá, mas trabalhar com sistema financeiro nem F*dendo.

--

Leonardo Santagada

Leonardo Santagada

unread,
Apr 24, 2013, 1:19:29 PM4/24/13
to hacker...@googlegroups.com

2013/4/24 g3ol4d0 <g3o...@gmail.com>

Pergunta : No caso de quem faz uma olimpiada de programação ou coisa que o valha , onde a velocidade do programa conta bastante na nota final, 

tem como o Python ganhar do C / C++ ? 


no ICPC a velocidade do programa não conta em nada... só que o programa tem um tempo máximo para rodar. Que eu saiba estavam pensando em relaxar os tempos para linguagens dinamicas... mas faz tempo que eu não posso competir.


--

Leonardo Santagada

Oda

unread,
Apr 24, 2013, 2:00:40 PM4/24/13
to hacker...@googlegroups.com
Embora isso seja triste, existem situacoes em que performance *deve*
ser o fator determinante.

Por exemplo, se vc quer fazer previsoes, seu modelo tem que rodar em
tempo menor que o da chegada do momento para o qual a previsao eh
feita (essas afirmacoes sao sempre obviamente divertidas!).

Dada a sua limitacao de hardware, entao a escolha da linguagem eh
fundamental para se rodar o modelo em 1 mes e nao em 1 ano e isso eh
decisivo na utilidade do resultado.

No contexto do Lucas (nao sei se esse eh o caso dele), empresas pagam
fortunas para colocar suas maquinas onde rodam seus robotraders dentro
da bmf&bovespa para ganhar alguns milisegundos na latencia, imagina
dizer que seu algoritmo roda 10 vezes mais lento por causa da escolha
da linguagem.

Quanto a Fortran ou C++, essa eh uma discussao sem fim, mas eh
verdade, Fortran tem realmente perdido. O triste eh que isso acontece
mais pela noobice das pessoas do que pelos fatos. E note que quem vos
fala prefere o C++!! Mas tenho que ficar quietinho cada vez que alguem
do meu departamento implementa o mesmo algoritmo em Fortran e tem
tempos melhores (ou, na pior das hipoteses, iguais, se o programa em
C++ estiver super otimizado). Pois eh, matematicos tb sao tradicionais
e talvez mais xiitas usuarios de fortran.

Inclua nessa briga os dois algoritmos de otimizacao bem importantes: o
algencan e o ipopt, que sao fortran e c++, respectivamente. Mas essa
eh uma briga mais curiosa ainda, pq inclui o velho debate de qual
linha eh melhor: lagrangeano aumentado ou pontos interiores.

A proposito, tenho um primo chamado Joao, mas certamente nao eh o
mesmo! Existem no minimo duas familias Oda de origem distinta (ja
morei em um predio que tinha outra familia Oda disjunta da minha), mas
como nao sou muito proximo nem de uma nem de outra, pode ate ser que
sejamos parentes. Joao, de que cidade vc eh?

--
Oda
------------------------------------------------------
If you don't have time to do it right, where
are you going to find the time to do it over?
------------------------------------------------------


2013/4/24 Ulisses Montenegro <ulisses.m...@gmail.com>:

Antonio Neto

unread,
Apr 24, 2013, 1:37:53 PM4/24/13
to hacker...@googlegroups.com
Para análise de dados existe o Pandas[1].

O principal desenvolvedor dessa biblioteca, Wes MacKinney, tem um background em análise de dados financeiros e, pesquisando 'financial' no blog dele[2], dá pra ter uma ideia de algumas ferramentas para análise de dados financeiros em Python. Nesse vídeo [3] ele fala um pouco da experiência dele com análise de dados usando Python e do livro dele sobre o assunto [4]. O livro tem um capítulo dedicado a análise de dados financeiros. Existem outros vídeos mais técnicos e mais longos também sobre Panda, se alguém tiver interesse em se aprofundar é fácil de encontrar no youtube.

Alguém comentou sobre aplicações em visão computacional, nesse caso pode ser interessante dar uma olhada no wrapper oficial do Opencv[5] para Python que é integrado com NumPy. Recentemente o Fernando Masanori postou na lista python-brasil uma aplicação[6] bem interessante usando Python+OpenCv que calcula a pulsação pela webcam em tempo real usando técnicas de visão computacional.

Com relação a GPU uma das conferencias importantes na área é a GTC[7]. O legal é que é possível pesquisar por palestras e ver alguns vídeos, posters, slides... Embora não seja uma conferencia sobre Python tem algumas aplicações utilizando bibliotecas como NumbaPro e PyCuda.

Abraços,

Antonio




--

Eric Omine

unread,
Apr 24, 2013, 4:57:09 PM4/24/13
to hacker...@googlegroups.com
Se você precisar performance, performance mesmo, tipo esses caras da
JP Morgan, pode passar para VHDL com FPGA:
http://www.computerworlduk.com/news/it-business/3290494/jp-morgan-supercomputer-offers-risk-analysis-in-near-real-time/

Mas aí você pode facilitar sua vida usando MyHDL em Python para gerar
VHDL, haha! :)
http://www.myhdl.org/doku.php

(Nesse caso dou um crédito para o Matlab que tem soluções
proprietárias de DSP com o Simulink para trabalhar com FPGAs. Só que
aí você vai depender de treinamento em software altamente bugado!)

Alberto Fabiano

unread,
Apr 24, 2013, 5:50:27 PM4/24/13
to Garoa Hacker Clube
Eric,

Já trabalhei com FPGA, e já tentei utilizar o MyHDL. Você também já
trabalhou com ele?



2013/4/24 Eric Omine <eric....@gmail.com>:
> --
> .--. .- .-. .- .--. --- ... - .- .-. . ... -.-. .-. . ...- .- .--. .- .-. .- .... .- -.-. -.- . .-. ... .--. .- -.-. . ... .--. .- - --. --- --- --. .-.. . --. .-. --- ..- .--. ... -.. --- - -.-. --- --
> Regras da Lista: http://garoa.net.br/wiki/Lista:LeiaAntesDeClicarNoSend
> Para mais informações sobre o Garoa Hacker Clube acesse http://garoa.net.br
> Maiores opções sobre o Google Groups, visite: http://groups.google.com/group/hackerspacesp
> .--. .- .-. .- -- .- .. ... .. -. ..-. --- .-. -- .- . ... .- -.-. . ... ... . --- .-- .. -.- ..
> Epoch 0 <=> Fundação: 1298244863 s ~ 2.408064*10^52 tP (tempos de Planck)
>
>
>



Eric Omine

unread,
Apr 24, 2013, 8:04:01 PM4/24/13
to hacker...@googlegroups.com
Não, trabalhei só com VHDL mesmo e foi por pouco tempo. Mencionei o
MyHDL mas mais a título de curiosidade, porque acho legal. Como foi
sua experiência com o MyHDL, você acha que o Python ajuda?

Eu não sei até que ponto é mais prático usar o MyHDL, VHDL não é tão
absurdamente complicado se você pegar a ideia do paralelismo.

Rodrigo Rodrigues da Silva

unread,
Apr 24, 2013, 9:28:01 PM4/24/13
to Garoa Hacker Clube
Matlab = vendor lock-in + obsolescencia programada, como todo sw proprietario. Para funcoes esquisitas, use sage, pari-gp e gnu octave. Para o resto, python na veia.

Sent from my mobile



Alberto Fabiano

unread,
Apr 24, 2013, 10:58:15 PM4/24/13
to Garoa Hacker Clube
Eric,

No MyHDL é um projeto muito estranho, pois no fundo conhecer algo de
VHDL ou Verilog é fundamental, onde você acaba usando Python, mas com
uma mente menos pythônica, pois o que você está programando é
pseudo-Python e pseudo-HDL, na sintaxe de Python.

Enfim, qual a vantagem? Não consegui enxergar, mas pode ter sido miopia minha.

Mas não é algo que eu recomendaria para um amigo.

E das pessoas que sei que já experimentaram, a minha tem sido a
opinião mais favorável até o momento.

Tem que ter um certo nível de persistência para se evoluir com ele, ao
menos na versão no qual usei em 2011.


2013/4/24 Eric Omine <eric....@gmail.com>:

Alberto Fabiano

unread,
Apr 25, 2013, 11:34:37 AM4/25/13
to Garoa Hacker Clube
Oda,

Para processamento matemático, o Fortran assim como algumas linguagens
funcionais feito o Ocaml e o Haskell, agora o Scala, tem vantagem
indiscutível sobre C++ quanto a performance. Onde em C++ tem que se
tomar um grande cuidado com otimização e elas ajudam com que qualquer
código meia-boca, mas conceitualmente correto, tenham desempenho
excelente.

Aliás, tempos atrás, o Ocaml era considerado a linguagem de melhor
performance, superando Fortran e C, onde C++ ficava em 4º lugar em
alguns benchmarks, mas era muito adotado apenas na França. A questão é
que há uma série de fatores que tem que se levar em consideração na
hora de se escolher a linguagem, como bem o Ulisses comentou.

Por um amplo suporte, no meio acadêmico, Fortran acaba sendo uma
linguagem muito natural de se empregar. Mas em alguns centros de
pesquisa, C++ virou praticamente regra, assim como Python tem ganhado
grande preferência quando há necessidade de muita experimentação,
entre outros fatores. E em alguns centros de pesquisa na França, Ocaml
é a primeira linguagem, apesar das preferências por C++, Python, assim
como Scala, que por razões que desconheço, tem conquistado grande
grande espaço por lá segundo conversa que tive com dois pesquisadores
que atuam lá.

Sobre o LHC, segundo o gente finíssima físico e programador Marcelo
Zimbres que é especialista em ROOT, C++ é a linguagem oficial. Em
2011, ele comentou que lá havia um grande esforço quanto o uso de
Python, mas é o CINT quem domina o pedaço. E quem usa o pyROOT acaba
usando o que há de melhor no Python, do CINT e do pyROOT.



2013/4/24 Oda <o...@member.fsf.org>:

Leonardo Santagada

unread,
Apr 25, 2013, 12:29:49 PM4/25/13
to hacker...@googlegroups.com

2013/4/24 Alberto Fabiano <alb...@computer.org>

No MyHDL é um projeto muito estranho, pois no fundo conhecer algo de
VHDL ou Verilog é fundamental, onde você acaba usando Python, mas com
uma mente menos pythônica, pois o que você está programando é
pseudo-Python e pseudo-HDL, na sintaxe de Python.

Enfim, qual a vantagem? Não consegui enxergar, mas pode ter sido miopia minha.

Eu nunca fiz nada de verdade em VHDL e Verilog, mas verilog parecia mais moderna e sensata na sintaxe/semantica da ultima vez que olhei para as duas e fiz algum demo.

MyHDL acho que é a mesma ideia, ter uma sintaxe e semantica mais simples, embora não dá para comparar ela com python porque em uma HDL sempre as coisas vão acontecer em paralelo e alinguagem é mais descritiva e menos imperativa.



--

Leonardo Santagada

Alberto Fabiano

unread,
Apr 25, 2013, 12:49:59 PM4/25/13
to Garoa Hacker Clube
2013/4/25 Leonardo Santagada <sant...@gmail.com>:
Pois é, e aí começam as distorções. O MyHDL tem o objetivo de
facilitar a lógica, porém não trás o mesmo mindset, potencial e
flexibilidade de Python. Então, qual é a vantagem real? Para mim, o
MyHDL acaba cometendo o mesmo pecado que o RPython, ele cria uma
ilusão desnecessária, que também existe no PyMite. Onde este conjunto
acaba criando a fala ilusão que é possível criar um soft SoC em FPGA
com arquitetura de 8 bits, depois programá-lo, isto tudo em Python.
Mas isto já é discussão para outra thread...

Leonardo Santagada

unread,
Apr 25, 2013, 1:23:34 PM4/25/13
to hacker...@googlegroups.com

2013/4/25 Alberto Fabiano <alb...@computer.org>

Pois é, e aí começam as distorções. O MyHDL tem o objetivo de
facilitar a lógica, porém não trás o mesmo mindset, potencial e
flexibilidade de Python. Então, qual é a vantagem real?

MyHDL é uma hdl rodando no meio de python, voce pode gerar código dinamicamente, usar python para várias outras coisas como testes e é uma sintaxe mais moderna e expressiva... eu acho interessante.
 
Para mim, o
MyHDL acaba cometendo o mesmo pecado que o RPython, ele cria uma
ilusão desnecessária,

RPython tem escrito em todos os lugares "RPython is not Python" e que não é para criar programas genericos. RPython é uma baita linguagem para escrever interpretadores e nisso ela é provavelmente a melhor linguagem pra isso (existem poucas hoje, tinha o cola e a LLVM é algo parecido mas não igual).
 
que também existe no PyMite. Onde este conjunto
acaba criando a fala ilusão que é possível criar um soft SoC em FPGA
com arquitetura de 8 bits, depois programá-lo, isto tudo em Python.
Mas isto já é discussão para outra thread...

O Pymite eu concordo, é mais um das desenas de subsets/similares sem sentido de python... talvez divertido de usar mas de python não tem nada. Coloco junto todas as lingugagens que tentam rodar python no javascript como pyjamas e brython.


--

Leonardo Santagada

Wellington

unread,
Apr 27, 2013, 8:44:05 PM4/27/13
to hacker...@googlegroups.com
Caros,

Nunca escrevi nesta lista, mas apenas para ilustrar o custo computacional mencionado anteriormente pelo Oda (Eduardo Oda) repasso uma mensagem de um outro grupo que participo.

[ ]s
Wellington.


Prezados,

segue meu trabalho sobre problemas de simulação em Finanças em GPU.

Material:

Slides apresentação
Dissertação


Resumo:

É muito comum modelar problemas em finanças com processos estocásticos, dada a incerteza de suas variáveis de análise. Além disso, problemas reais nesse domínio são, em geral, de grande custo computacional, o que sugere a utilização de plataformas de alto desempenho (HPC) em sua implementação. As novas gerações de arquitetura de hardware gráfico (GPU) possibilitam a programação de propósito geral enquanto mantêm alta banda de memória e grande poder computacional. Assim, esse tipo de arquitetura vem se mostrando como uma excelente alternativa em HPC.
Com isso, a proposta principal desse trabalho é estudar o ferramental matemático e computacional necessário para modelagem estocástica em finanças com a utilização de GPUs como plataforma de aceleração. Para isso, apresentamos a GPU como uma plataforma de computação de propósito geral. Em seguida, analisamos uma variedade de geradores de números aleatórios, tanto em arquitetura sequencial quanto paralela. Além disso, apresentamos os conceitos fundamentais de Cálculo Estocástico e de método de Monte Carlo para simulação estocástica em finanças.
Ao final, apresentamos dois estudos de casos de problemas em finanças: Stops Ótimos e Cálculo de Risco de Mercado. No primeiro caso, resolvemos o problema de otimização de obtenção do ganho ótimo em uma estratégia de negociação de ações de Stop Gain. A solução proposta é escalável e de paralelização inerente em GPU. Para o segundo caso, propomos um algoritmo paralelo para cálculo de risco de mercado, bem como técnicas para melhorar a solução obtida. Nos nossos experimentos, houve uma melhora de 4 vezes na qualidade da simulação estocástica e uma aceleração de mais de 50 vezes.



Att.

--
Thársis T. P. Souza
linkedin.com/in/tharsissouza



--
....  __o        __o         __o          __o
.. -\<, _`\<,_ _`\<,_ _`\<,_
...(_)/(_) (_)/ (_) (_)/ (_) (_)/ (_)

Leonardo Santagada

unread,
Apr 28, 2013, 2:00:43 PM4/28/13
to hacker...@googlegroups.com
Pycuda e tem uma implementação transparente do numpy para gpu tambem :)

O numpypy um dia tambem vai ter offload transparente para gpu um dia, mas não existe ainda.
--
.--. .- .-. .- .--. --- ... - .- .-. . ... -.-. .-. . ...- .- .--. .- .-. .- .... .- -.-. -.- . .-. ... .--. .- -.-. . ... .--. .- - --. --- --- --. .-.. . --. .-. --- ..- .--. ... -.. --- - -.-. --- --
Regras da Lista: http://garoa.net.br/wiki/Lista:LeiaAntesDeClicarNoSend
Para mais informações sobre o Garoa Hacker Clube acesse http://garoa.net.br
Maiores opções sobre o Google Groups, visite: http://groups.google.com/group/hackerspacesp
.--. .- .-. .- -- .- .. ... .. -. ..-. --- .-. -- .- . ... .- -.-. . ... ... . --- .-- .. -.- ..
Epoch 0 <=> Fundação: 1298244863 s ~ 2.408064*10^52 tP (tempos de Planck)
 
 
 


--

Leonardo Santagada

Marcelo Zimbres

unread,
Apr 28, 2013, 3:39:21 PM4/28/13
to Alberto Fabiano, Garoa Hacker Clube
Oi Alberto abrigado por me copiar nessa thread,

de fato, o projeto do ROOT em c++ começou após as bibliotecas escritas em Fortram terem alcançado seus limites, segundo eles. Após alguns anos o ROOT se tornou um projeto oficial do CERN e c++ a lingua franca em física da altas energias e algumas outras áreas da física. Eu sou muito cético quando dizem que Fortram é mais "rápido" que c++ e atribuo isso ao fato de ter muito código c++ escrito por quem não sabe usar a linguagem corretamente e comentem os erros comuns como excesso de objetos temporários, operadores com overload de forma errada, extrema fragmentação de memória (vetor de vetor é o mais comum) etc.

Pra complementar o que você falou sobre calm, há pouco tempo fiquei surpreso ao saber que boa parte do código c do pacote FFTW é gerado por um programa escrito em calm http://www.fftw.org/faq/section2.html#languages. Se não me engano o FFTW é a biblioteca usada pelo matlab pra transformadas de Fourier.

Sobre o uso de GPU, acho uma decisão bem difícil de ser tomada. Por exemplo, algumas partes do código que eu desenvolvo hoje e dou suporte, estão baseados em código sequencial escrito há 10 - 15 anos atrás algumas vezes. Imagino se eles tivessem decidido paralelizar o código para o hardware daquela época o que eu teria hoje em mãos, não acho que seria coisa boa. Em suma eu acho que paralelização seja pra GPU ou CPU multicore envolve muitas suposições sobre o hardware onde o programa vai ser rodado. Àlem disso todo mundo sabe as dores de cabeça que concorrência causa, ou com dizem "debugging nightmares". Eu prefiro ficar sequencial até que esteja muito claro que não dá mais.

Marcelo



Wellington

unread,
Apr 28, 2013, 5:06:30 PM4/28/13
to hacker...@googlegroups.com
Oi Marcelo e todos os interessado,

"Eu sou muito cético quando dizem que Fortram é mais "rápido" que c++ e atribuo isso ao fato de ter muito código c++ escrito por quem não sabe usar a linguagem corretamente e comentem os erros comuns como excesso de objetos temporários, operadores com overload de forma errada, extrema fragmentação de memória (vetor de vetor é o mais comum) etc." (Marcelo Zimbres)

Em uma disciplina na qual foi monitor surgiram questionamentos e comparações sobre o desempenho das linguagens de programação (no caso da disciplina era a resolução numérica de edps, na qual a previsão do tempo é uma das aplicações mais conhecidas). Fiz uma competição entre os alunos de um problema simples (o cálculo de alguns produtos internos e outras operações elementares, apenas "contas") que era replicado um número n de vezes (n muito grande. tal que o programa demorava pelo menos alguns minutos em execução).

Os resultados foram interessantes ... (nesse exercício o fortran ganhou)

Seria interessante um dia desses elaborar um problema simples e que seja possível programar em diferentes linguagens e comparar o desempenho dos mesmos numa mesma máquina (que previamente saberíamos a configuração) lá no Garoa. E ai o que acham?

Acredito que o resultado dependerá muito do problema proposto, mas se for somente "contas" acredito que será difícil "bater" o fortran, não é por acaso que o modelo de previsão do tempo da maioria dos países utiliza fortran (EUA, Brasil, Alemanhã, França, ...)

[ ]s
Wellington.



Gustavo

unread,
Apr 28, 2013, 7:22:22 PM4/28/13
to hacker...@googlegroups.com
Falando em mercado financeiro e algorítimos, eu gosto muito deste vídeo :


Abraços !


Hilton Fernandes

unread,
Apr 29, 2013, 7:57:37 PM4/29/13
to hacker...@googlegroups.com
Prezados, 

esta discussão Fortran vs. C/C++ é muito interessante. Agradeço a esta lista muito estimulante que a propôs.

Ela aconteceu também no finalzinho dos anos 90. 

Duas coisas interessantes daquele tempo:
  • apesar do código mais enxuto, C perdia de Fortan pelo chamado aliasing. Isto é: vetores em C são ponteiros. Então, o compilador não pode otimizar muita coisa, pois pode estar havendo até mesmo superposição de dois vetores.

    O pessoal do  C99 então propôs uma palavra da linguagem que permitia diferenciar duas regiões da memória, para o compilador otimizar sossegado; 8-)

  • o pessoal que mexe com equações diferenciais descobriu que, através das templates do C++, era possível escrever séries de Taylor em tempo de compilação ! 

    Ou seja: a série de Taylor se tornava uma pura expressão matemática, sem iteração (ou loops), o que permitia muita otimização, pois os desvios dos loops perturbam a otimização do uso das pipelines, base da eficiência dos processadores atuais. 
São pontos interessantes, que devem estar na mente, quando comparamos linguagens de programação. 

Abraços fraternos,
hilton

2013/4/28 Gustavo <gustavo...@gmail.com>

anderson.marco

unread,
Apr 30, 2013, 8:56:01 AM4/30/13
to hacker...@googlegroups.com
Que palavra eh esta?

Eric Omine

unread,
Apr 30, 2013, 9:07:36 AM4/30/13
to hacker...@googlegroups.com
Muito interessante isso da série de Taylor, você tem algum link sobre o assunto?

Procurando rapidamente, só achei esse que me pareceu bom:
http://www.sintef.no/project/eVITAmeeting/2010/Ekstrom-templates.pdf
(é da pessoa que fez isso https://code.google.com/p/libtaylor )

Em 30 de abril de 2013 09:56, anderson.marco
<anderso...@gmail.com> escreveu:

Leandro A. F. Pereira

unread,
Apr 30, 2013, 9:21:01 AM4/30/13
to hacker...@googlegroups.com
2013/4/30 anderson.marco <anderso...@gmail.com>:
> Que palavra eh esta?

restrict.

--
Leandro

/* Alberto Fabiano */

unread,
May 2, 2013, 8:00:55 PM5/2/13
to hacker...@googlegroups.com
Hilton,

Mandou bem! ;-)

Vale lembrar que a C++ TMP (Template Meta-Programação) é considerado
o grande hacking de C++, sendo, inclusive, extremamente utilizado pela
comunidade de programadores do ramo da computação científica, que
aliás, em tempos de C++11 estão usando e abusando de variadic
templates, constexpr, assim como estão explorando muito o paradigma
funcional de C++ (que é muito elegante diga-se de passagem) e cada vez
mais estão desistindo de experimentar outras linguagens (algo que já
ouvi de muita gente) visto o potencial e de sua capacidade otimização.

Há quem ache que TMP é evil, há quem ache que é o grande trunfo de
C++; de verdade prefiro assistir a discussão de camarote.

[ ]s


2013/4/29 Hilton Fernandes <hgfe...@gmail.com>:

Alberto Fabiano

unread,
May 2, 2013, 9:19:25 PM5/2/13
to HackerSPace
Leandro, mil perdões! 

Esqueci de comentar que no LHC de Campinas há também um grande defensor de C++ e profundo conhecedor do C99 e C89! ;-)

Não é só lá onde o pessoal gosta de brincar de tromba-tromba de prótons, e com o bozo de Higgs, que o C++ é defendidos com unhas, dentes e partículas das internals.


--
@AlbertoFabiano

"""
  The best way to predict the future is to invent it ,  Alan Kay

""
/*  0x42 0x69 0x74 0x20 0x46 0x61 0x6e  */

""" 
   “Sonho que se sonha só é apenas um sonho, sonho que sonha juntos já 
começa a ser realidade” , D.Helder Câmara 

""" 



2013/4/30 Leandro A. F. Pereira <lea...@tia.mat.br>
Reply all
Reply to author
Forward
0 new messages