dezembro 31, 2013

Feliz 2014

Aos oito leitores do blog, os votos de um feliz 2014! Que seus melhores sonhos se realizem neste ano que começa daqui a pouco. Muito trabalho, muitos resultados, muitas felicidades!

Saudações!

dezembro 15, 2013

Algumas Impressões: SBE 2013

Estive nesta semana participando mais uma vez do Encontro Brasileiro de Econometria, EBE 2013, realizado mais uma vez em Foz do Iguaçu. Alguns comentários:

1) De uma forma geral, o encontro me pareceu esvaziado. Não tanto pelos professores, já que os que sempre costumam participar estavam por lá, além de outros que aparecem esporadicamente. O encontro pareceu esvaziado, sim, pela aparente ausência de pessoas circulando pelas salas. Não sei como se comportou o número total de inscrições para ANPEC/SBE este ano, mas tinha, visualmente falando, menos gente que em 2011, por exemplo.

2) Poucas novidades nas sessões de macroeconomia que participei. Alguns fazendo experimentos com modelos DSGE, mas sem nenhuma inovação (mais sobre isto a seguir); muitos modelos semi-estruturais, o que foi interessante, já que não vi muitos modelos VAR; muitas sessões voltadas para macro de curto-prazo e política monetária, pouca coisa sobre crescimento.

3) Sobre os trabalhos com modelos DSGE: ainda sofremos com o drama de ter um software que faz muita coisa para o pesquisador, sem obrigar uma reflexão um pouco mais profunda sobre o que está sendo modelado/estimado. Já fiz piada sobre isto, mas depois de tanto tempo acho que está na hora da academia subir um pouco o nível das discussões. Não dá para escrever modelos e não entender as consequências das hipóteses adotadas e sair tirando conclusões apressadas; não dá para colocar um modelo para estimar sem pensar nos dados, nas priors, nos coeficientes estimados; não dá para continuar pegando um modelo pronto, de economia fechada, estimado para os Estados Unidos, e achar natural aplica-lo para o Brasil. Como não vivo em sala de aula, não sei se o problema está nos professores (chegam para a turma e dizem "tem um pacote que faz tudo para vocês, olhem lá"), não sei se o problema está com os alunos ("Oba, achei estes códigos na internet, coloco dados para o Brasil e está pronta a minha tese/dissertação"). Sei que existe um problema que deve ser enfrentado.

4) O encontro sempre tem o seu lado ridículo, por óbvio: professor participando de sunga e camiseta da recepção de abertura junto das piscinas do hotel; professores famosos na última noite enrolando a língua no bar do hotel; professores que se odeiam durante o dia andando abraçados. O que não faz uma mesa de bar!!!

5) O grande tema entre os professores foi a divulgação dos resultados da avaliação trienal da CAPES sobre os cursos de pós-graduação. Muito choro e ranger de dentes, boa parte deles com razão. A impressão que tive é que algumas avaliações estão muito mal colocadas. Se estou certo, ainda falta divulgar uma abertura maior de números e critérios que justificaram as escolhas, mas o choro pareceu justo.

6) Não consegui nenhuma informação sobre onde será o próximo encontro. Algum dos meus quatro leitores restantes sabe algo a respeito? Acho que notícias sobre futuros encontros não se espalharam por causa da mudança de secretaria na ANPEC e na SBE neste ano, combinado com a repetição da locação do encontro deste ano.

7) Melhor seminário? José Alexandre Scheinkman, sem dúvida.

8) O que faltou? Nomes de peso vindos de fora. Os mais antigos lembravam que, em anos anteriores, tivemos pesquisadores que, anos mais tarde, vieram a ganhar o Nobel. Nestes últimos encontros, bons pesquisadores, mas nenhum com o peso dos que vieram tempo atrás.

9) Pelo terceiro ano seguido, não fui para a mesa de conjuntura. Pelo terceiro ano seguido, não me arrependo: cerveja bem gelada com amigos no bar valeu mais a pena.

É isto. Se der tudo certo, ano que vem volto com impressões sobre o encontro de 2014.

Saudações!

outubro 27, 2013

Dica: CUDA no Matlab (and it's free!!!)

Depois da dica para o uso de OpenCL no Matlab, vai aqui uma dica para quem prefere usar a linguagem da Nvidia para programação em placas de vídeo. Os mais espertos e avançados vão se antecipar, dizendo que as versões mais recentes do "Parallel Computing Toolbox" do Matlab já fazem a ponte entre a interface gráfica do Matlab e a computação no GPU. O objetivo deste post é descrever uma solução disponível para quem não tem o toolbox, ou prefere colocar a mão na massa de forma mais explícita, escrevendo MEX-files para otimizar procedimentos mesmo fora do GPU.

Para usar os recursos em CUDA, é necessário estabelecer uma ponte entre o Matlab e a linguagem básica de programação (C/C++, neste caso) e uma segunda ponte, entre a linguagem de programação e o código em CUDA. O primeiro passo é trivial, com o uso de MEX-files escritos para otimizar funções no Matlab (um bom tutorial aqui). Para o segundo passo, a Nvidia parece ter sumido com um pacote simples que fazia exatamente esta ligação.

Felizmente, ainda existem na internet boas almas que compilam pacotes ainda baseados naqueles pacotes originais da Nvidia. Eu descobri neste link um bom pacote com um excelente tutorial sobre como instalar e rodar um primeiro programa em CUDA dentro do Matlab. O tutorial é muito detalhado em termos do que precisa ser feito, funcionou sem problema algum no meu sistema. Ele vai ainda mais longe, ao ensinar como rodar o seu programa em CUDA no Matlab para avaliação no Visual Profiler da Nvidia, e como configurar uma segunda placa de vídeo exclusiva para fins computacionais no Windows 7.

Um detalhe, que me tomou um pouco de tempo para entender, é que os códigos montados pelo pacote não fazem a ponte entre o Matlab e o código em C. Ou seja, a parte do MEX-file dentro do código em CUDA deve ser escrita pelo usuário. Alguns exemplos estão disponíveis na internet, é fácil encontrar. Essencialmente, o arquivo com o kernel (função em CUDA) deve ser adicionado em um arquivo básico MEX, com o kernel chamado dentro do MEX. O MEX deve descrever os inputs, outputs e demais parâmetros da função em CUDA.

Outro detalhe importante, este fundamental para a otimização dos códigos em CUDA: ao contrário do pacote para OpenCL (grande mérito para os criadores da versão OpenCL!!!), não existe uma função específica que controle a transferência de informação entre o CPU e o GPU. Este controle é fundamental, por exemplo, caso seja necessário executar o mesmo kernel diversas vezes em um loop, por exemplo. A ausência do controle em CUDA do fluxo de informação força, ao longo da execução do loop, que todo o conjunto de informação seja passado entre o GPU e o CPU a cada passo do loop, consumindo tempo precioso de execução.

Para contornar este problema, este tutorial (seção 8) ensina como manter as variáveis dentro da GPU em execuções consecutivas do kernel em um loop, além de outras dicas interessantes sobre a integração Matlab-CUDA. Se eu entendi direito (nunca trabalhei com o "Parallel Computing Toolbox" em CUDA), parece que algum truque também é necessário para manter as informações na GPU no pacote oficial do Matlab.

Mais uma vez #ficaadica

agosto 10, 2013

Divulgação: Semana da Liberdade

Segue abaixo material de divulgação de um evento interessante de estudantes do nordeste, a ser realizado entre os dias 5 e 6 de setembro em Fortaleza. Mais informações aqui.


Parabéns aos organizadores pela iniciativa.

Saudações!

julho 27, 2013

Milonga de um Paper

Prezado estudante,

Troque a palavra "milonga" por "paper" na letra de música abaixo, siga os conselhos e você verá melhoras substanciais no seu trabalho.

Eu ainda peco na Clareza e na Concisão. E você?

Saudações!

Milonga das Sete Cidades

Vítor Ramil

Fiz a milonga em sete cidades
Rigor, Profundidade, Clareza,
Em Concisão, Pureza,
Leveza e Melancolia

Milonga é feita solta no tempo
Jamais milonga solta no espaço
Sete cidades frias são sua morada

Em Clareza
O pampa infinito e exato me fez andar
Em Rigor eu me entreguei
Aos caminhos mais sutis
Em Profundidade
A minha alma eu encontrei
E me vi em mim

Fiz a milonga em sete cidades
Rigor, Profundidade, Clareza
Em Concisão, Pureza,
Leveza e Melancolia

A voz de um milongueiro não morre
Não vai embora em nuvem que passa
Sete cidades frias são sua morada

Concisão tem pátios pequenos
Onde o universo eu vi
Em Pureza fui sonhar
Em Leveza o céu se abriu
Em Melancolia
A minha alma me sorriu
E eu me vi feliz

julho 07, 2013

19th International Conference - Computational Economics and Finance 2013

Estou fazendo as malas para embarcar amanhã para o Canadá, onde se realiza o CEF - 2013, encontro organizado pela Society for Computational Economics. Os encontros de economia computacional têm atraído trabalhos muito interessantes na área de simulação e estimação de estruturas não-lineares. Ano passado, tive a oportunidade de ir no CFE - 2012 (não confunda, CEF é um encontro, CFE é outro...), e o foco foi bem concentrado em estatística/econometria/finanças. Pelo programa, o CEF parece bem mais voltado para a economia, com menos ênfase na teoria estatística/econométrica.

Estarei por lá apresentando a primeira versão de um trabalho a respeito dos impactos de mudanças na volatilidade das taxas de juros reais sobre a economia brasileira. É uma aplicação prática da pesquisa que tenho desenvolvido sobre filtro de partículas. O trabalho ainda é muito preliminar, quando tiver uma versão bem consolidada eu faço maior publicidade por aqui.

Vai ser legal, também, ter a chance de assistir palestras de ex-professores e encontrar colegas do tempo do doutorado.

Saudações!

junho 01, 2013

Dica: Opencl no Matlab

Estava já pensando em formas de resolver um problema, depois de montar a primeira versão de um novo paper, quando esbarrei em um pacotinho muito interessante para o Matlab: o Opencl-toolbox é um conjunto de arquivos que faz uma ponte entre os kernels de Opencl e o Matlab. Parece muito interessante, apesar de ter pouca documentação. Pode não ser o ideal para quem está iniciando na programação, mas ter a possibilidade de combinar com facilidade a interface gráfica do Matlab com os recursos de paralelismo do Opencl é muito tentador.

E o melhor de tudo: ao contrário de outras soluções disponíveis, é gratuito!

#ficaadica

Saudações!

março 29, 2013

Divulgação: III ENBECO

O Cristiano e o Shikida mandaram o material já tem algum tempo, eu que não tive como postar antes. Parabéns, mais uma vez, pela iniciativa, tenho certeza que será tão bom quanto as outras duas edições. Infelizmente, por motivos particulares, não estarei em Vitória. Sentirei falta da melhor de todas as mesas do encontro: aquela que começa logo após o evento encerrar, em algum bar da cidade.


Inscrições para o evento podem ser feitas aqui.

Abraços!

janeiro 09, 2013

O Filtro de Kalman e as Chuvas

Uma discussão no Twitter hoje me fez lembrar do mestrado: o Drunkeynesian reclamava, com razão, de alguns economistas que andam procurando por modelos para projeção de chuvas no Brasil. Talvez a referência dele sobre a (in)utilidade deste tipo de análise seja a mesma que a minha (Nate Silver, "The Signal and the Noise"), mas a conversa me fez lembrar de outro livro, este usado na aula de Econometria III.

Usei o livro de Andrew Harvey como introdução ao Filtro de Kalman e a análise de modelos estruturais que fazem a decomposição de séries não-estacionárias em componentes como tendência, ciclo e sazonalidade. Em um dos exemplos, o autor usava dados pluviométricos do Brasil, mais especificamente de Fortaleza, em frequência anual para captar ciclos não associados com movimentos sazonais da série. O modelo era colocado em formato de espaço de estado ("state-space representation") e a verossimilhança calculada a partir do Filtro de Kalman. Segundo o autor (página 87), a literatura que estudou especificamente esta série de dados costumava atribuir a existência de dois ciclos de periodicidades distintas: um primeiro, mais curto, com períodos de 13 anos; e o segundo com períodos de 26 anos.

Dei sorte, e o site da Amazon me ofereceu a página com a tabela dos dados pluviométricos de Fortaleza

Também lembro que, na época que estudei o Filtro baseado no livro, o software usado para reproduzir os exemplos do livro era o STAMP, que na época tinha uma aparência horrível (duas imagens da tela aqui), executado em uma janela do DOS. Felizmente, ele gerava alguns outputs em formato texto, que podiam ser transportados para o ambiente Windows.

O programa era bem limitado, mas, para quem tiver interesse, vale a leitura! É uma ótima introdução a este tipo de modelagem.