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.

dezembro 30, 2012

Feliz 2013!!!

Aos meus três leitores que sobraram neste blog moribundo, os votos de um feliz 2013, muitas felicidades, e muitas lutas. Como na letra de Neil Peart:

You can surrender
Without a prayer
But never really pray
Pray without surrender

You can fight
Without ever winning
But never ever win
Without a fight





Mais uma vez, feliz 2013!

dezembro 08, 2012

Grêmio, do Reinício

É por demais forte e simbólico o momento para que não diga nada. Afinal, nasci Olímpico e, a partir de hoje, tenho certeza que meu fim será na melhor Arena que a vida pode oferecer. Não consigo pensar nas circunstâncias ou nas festividades sem meu peito doer e os olhos encherem de água. Mantive-me prudentemente distante das despedidas, talvez faça o mesmo agora, na inauguração: muitos ângulos diferentes, locais estranhos, sons inesperados. Ainda não estou pronto para tal impacto, reconheço.

Obrigado, Azenha! Muito prazer, Humaitá! Parabéns, Grêmio: nova casa, nossa alegria.



novembro 28, 2012

6th CSDA International Conference on Computational and Financial Econometrics: CFE 2012

A caminho de Oviedo para falar sobre filtro de partículas.

O programa da conferência está muito bom, com trabalhos de alto nível em macroeconomia e finanças. Muita coisa de programação em GPU, soluções não-lineares de modelos, além de tutoriais (mini-cursos) com excelentes apresentadores.

Para os observadores mais astutos, notem que muitos dos papers listados entre os abstracts não têm nada a ver com economia. É que ocorre, ao mesmo tempo da CFE-2012, o encontro do grupo de trabalho do European Research Consortium for Informatics and Mathematics (ERCIM) em "computing and statistics", onde a pesquisa importante concentra-se em estatística aplicada e métodos computacionais.

Espero uma grande viagem. Vai ser divertido.

Abraços!

outubro 11, 2012

XII Workshop de Economia PPGE/USP-RP

Como dizem no Twitter: #ficaadica

XII Workshop de Economia PPGE/USP-RP

Obrigado pelo convite da Roseli e do Bruno, e parabéns, desde já, pela organização do evento.

Saudações!

julho 18, 2012

Crianças Entendem a Regra de Timbergen

Blog em ritmo de férias escolares.

Diálogo na madrugada:


— Papai, quero leite...

— Leite, Bia?

— Sim, leite. E quero dormir no seu colo, papai.

— Mas para pegar o leite, eu tenho que me levantar...

— Não levanta, deita, papai... dorme direitinho, Bia não quer leite.

E Bia deita no colo para dormir.

Papai, antes de dormir: "Bia, dois objetivos (leite e colo para dormir), um instrumento (papai), os dois juntos não funcionam... um instrumento (papai), um objetivo (colo para dormir), Timbergen rules! She's got it!"

Saudações!

julho 05, 2012

Novo Paper

A Note on Particle Filters Applied to DSGE Models

Angelo Marsiglia Fasolo


Abstract:

This paper compares the properties of two particle filters – the Bootstrap Filter and the Auxiliary Particle Filter – applied to the computation of the likelihood of artificial data simulated from a basic
DSGE model with nominal and real rigidities. Particle filters are compared in terms of speed, quality of the approximation of the probability density function of data and tracking of state variables. Results show that there is a case for the use of the Auxiliary Particle Filter only when the researcher uses a large number of observable variables and the number of particles used to characterize the likelihood is relatively low. Simulations also show that the largest gains in tracking state variables in the model are found when the number of particles is between 20,000 and 30,000, suggesting a boundary for this number.



Working Paper Series - Banco Central do Brasil - Número 281


Este trabalho começou de forma muito interessante, e até estimulante, já que cada passo exigiu um aprendizado adicional, especialmente sobre paralelismo baseado em GPU. No final, já estava um pouco cheio, não aguentava mais esperar pelos resultados e concluir de uma vez o trabalho, até para partir para algo mais aplicado. Meus agradecimentos especiais para o pessoal da UFRGS, que viu uma apresentação ainda bem preliminar do trabalho, e para o Claudio Shikida, que também recebeu um draft, fez alguns comentários, mas nada que pudesse diretamente ser aplicado para este artigo. No próximo artigo, o nome dele aparece na publicação.

Saudações!

junho 02, 2012

PIB Potencial: Queda?

Um grupo de economistas de qualidade veio a público nos últimos meses falando sobre a taxa de crescimento de longo prazo da economia brasileira. Em algumas análises, uma aparente surpresa com o que seria uma queda do crescimento do produto potencial da economia nestes últimos anos. Alguns exemplos:

1) Armínio Fraga, em "O Estado de São Paulo", 27/05/12: "Agora, depois de alguns anos crescendo a uma taxa de quase 4%, a infraestrutura simplesmente não aguenta mais. (...) É um número que não se consegue medir com precisão, e que depende de várias circunstâncias e elementos. Hoje imagina-se, ou imaginava-se, que ficava em torno de 4%, para alguns um pouco menos."

2)  Samuel Pessôa, em "O Estado de São Paulo", 21/05/12: "Penso que o PIB potencial caiu, isto é, a capacidade de a oferta responder a estímulos da demanda, ou quanto o País pode crescer no longo prazo de forma sustentada. Isso não está mais nos 4,5% do segundo mandato do presidente Lula. Provavelmente está mais próximo de 3,5%. Mas esses números muito ruins no primeiro trimestre são mais um problema de demanda."

3)  Luis Carlos Mendonça de Barros, em "Jornal do Comércio", 04/05/12: "Em outras palavras, a meta de 4,5% para este ano é inviável porque chegamos à barreira do PIB potencial da economia brasileira. O mesmo ocorreu no ano passado e, certamente, vai ocorrer em 2013 e em 2014 se não houver o entendimento de que, nas condições estruturais atuais do Brasil, crescer de 3% a 3,5% ao ano é o nosso limite"

4)  Affonso Celso Pastore, "O Estado de São Paulo", 06/03/12: "[N]otamos que o PIB potencial, que estava andando na faixa dos 4,5%, passou para algo como 4,1% no último trimestre. Infelizmente, está ocorrendo uma redução dessa medida. Nosso crescimento potencial está chegando mais perto dos 4% do que dos 4,5%. Não digo que já esteja em 4%, mas, se o governo não induzir um pouco de melhoria na eficiência da economia, chegará por aí."

Longe de usar este espaço para cravar um número, quero argumentar aqui que o conceito de PIB potencial tem sido usado de uma forma muito "larga", englobando argumentos que não necessariamente refletem o "potencial de crescimento" de uma economia. Para isto, a figura abaixo mostra, na linha verde, a taxa de crescimento da economia brasileira acumulada em 12 meses desde o início da série disponível no site do IBGE. A linha azul mostra a taxa de crescimento em 12 meses das importações mundiais, calculada pelo Netherlands Bureau for Economic Policy Analysis, da Holanda.


Uma das tarefas do economista, em especial do estudante de política monetária, é entender os fatores que permitem que, em um dado período do tempo, as alocações dos agentes em consumo e investimento possam ser feitas sem pressões importantes sobre preços. Crescimento temporário maior do resto do mundo, de uma forma geral, permite maior crescimento da economia doméstica durante este período. As linhas do gráfico sugerem uma forte relação entre a demanda mundial e o crescimento da economia brasileira (de fato, a correlação amostral é de 0.57).

Daí uma certa dúvida que eu tenho em afirmar que o produto potencial apresentou variações importantes em um curto espaço de tempo, como sugerido em algumas das entrevistas citadas acima: a capacidade de oferta da economia, ao meu ver, não se alterou significativamente; a demanda mundial pelo produto nacional, sim. Para ser sincero, problemas como infra-estrutura, educação, estrutura tributária, estes sim determinantes da oferta agregada, são exatamente os mesmos desde o início da amostra. Por outro lado, a demanda mundial, recentemente, está, senão crescendo menos, com certeza mais volátil.

A impressão que tenho é que o "produto potencial" tratado em todas estas entrevistas tem mais a ver com o que o Armínio Fraga, em sua entrevista, define como sendo aquele que "diz respeito ao quão rápido a economia pode andar sem pressionar a inflação. Então é uma definição de muito curto prazo. É um número que não se consegue medir com precisão, e que depende de várias circunstâncias e elementos." Entretanto, mesmo dando o desconto do cálculo "de curto prazo", é difícil olhar para um gráfico como este, pensar nas condições de produção doméstica, e imaginar que exista alguma restrição recente de oferta que tenha reduzido o produto potencial da economia.

Saudações!

maio 13, 2012

Duke: Bons Momentos

Aconteceram, neste domingo, as cerimônias de graduação em Duke. É o final de uma semana bastante movimentada, com diversas atividades relacionadas a despedidas da universidade, de um período especial na vida de quem já passou um tempo em Durham. Procurando informações sobre a cerimônia de entrega de diplomas do Departamento de Economia deste ano (ainda tenho colegas que entraram comigo por lá), encontrei um vídeo de 2010 que é, para mim, particularmente tocante. Se quiserem entender, vão direto para o período a partir de 11:45 minutos de transmissão.

Saudações!

maio 05, 2012

Se o Krugman lesse em Português...

... é bem possível que ele não escrevesse o que escreveu nesta semana. Afinal de contas, ele já teria lido:

1) O post provocador do Drunkeynesian sobre crescimento na América Latina. A seção de comentários também teve um debate muito bom.

2) A continuação do post, ainda pelo Drunkeynesian, sobre a polêmica dos dados argentinos.

3) A primeira nota do Mansueto sobre o crescimento argentino.

4) A segunda nota do Mansueto, com os dados de uma consultoria econômica argentina, sobre o deflator do PIB de lá (parece que tem problemas).

5) O post do Cristiano sobre o índice mais comum para avaliação de valorização cambial: o preço do Big Mac, e como se comporta na Argentina.

6) A análise do Drunkeynesian sobre os dados argentinos da Ecolatina.

Minha contribuição é relembrar um diálogo no MSN com um colega do doutorado.

Saudações!

maio 03, 2012

They're Back: "Headlong Flight"

I learned to fight,

I learned to love,

I learned to feel.

I wish that I could live it all again!

abril 18, 2012

Equilíbrio, Desequilíbrio e Múltiplos Equilíbrios: Noahpinion

Muito boa a seqüência de posts no blog do (recém-)professor Noah Smith, autor do blog Noahpinion. Primeiro, Noah discute idéias sobre "macroeconomia do desequilíbrio", onde sistemas econômicos seriam aproximados por modelos parecidos com os usados em meteorologia. Note que, mesmo fazendo uma crítica severa aos modelos DSGE convencionais, Noah ainda vê como importante o papel dos microfundamentos em modelos econômicos.

No post seguinte, Noah publica um comentário que ele recebeu de Roger Farmer, professor da UCLA e conhecido por seus trabalhos com modelos de múltiplos equilíbrios. Farmer explica um pouco da sua contribuição nestes modelos, onde ele propõe uma "função de crenças" ("belief function") capaz de gerar um descompasso entre as crenças individuais dos agentes e o valor esperado dos estados futuros da economia. Assim, segundo Farmer, torna-se possível conciliar a hipótese de Expectativas Racionais com a existência de múltiplos equilíbrios.

A leitura é uma boa síntese sobre por onde anda a pesquisa na área, e deixa muitas sugestões para quem procura temas para teses e dissertações.

Saudações!

abril 08, 2012

A Figura que Faltou

Para os que assistiram o meu seminário na UFRGS na última quarta-feira (mais uma vez, obrigado ao presentes e aos organizadores), a figura abaixo foi a que faltou na apresentação, por algum motivo foi excluída da versão final:


A figura não deve aparecer na versão final do artigo, mas, como falei, acredito que existe alguma lei dizendo que, se a pessoa apresenta em seminários o filtro de partículas, alguma figura neste formato deve aparecer. A versão acima é a minha versão, e só vou usá-la nos slides mesmo.

Saudações!

UPDATE: pior do que eu esperava - a figura aparecia na versão da apresentação que estava no laptop, mas por algum motivo esta versão não foi copiada para o pen drive. Argh!