terça-feira, 7 de agosto de 2012


Programas gráficos mais fáceis com linguagem livre

Linguagem de código aberto facilita escrever programas gráficos
Gráficos abertos
Engenheiros do MIT, nos Estados Unidos, criaram uma nova linguagem de programação otimizada para a criação de algoritmos para processamento de imagens.
O código resultante não apenas é mais claro, facilitando a manutenção e a reutilização, como também resulta em um executável mais rápido.
A nova linguagem, chamada Halide, tenta imitar ao máximo a linguagem convencional, para facilitar a programação, a revisão e a correção do código.
Isto significa que suas funções automatizam a otimização de código necessária quando o programa é feito em outras linguagens. Na média, essa otimização automatizada resulta em programas significativamente mais rápidos.
A maior vantagem, porém, é que a nova linguagem para programação gráfica não apenas é gratuita, como é de código aberto.

Otimização de código
O teste da nova linguagem não poderia ser feito de outra forma: os criadores da Halide reescreveram vários algoritmos de processamento de imagens que já foram extensivamente otimizados por programadores experientes.
O código escrito em Halide é cerca de 30% maior - em termos de linhas de código - mas apresentou ganhos em velocidade de processamento que variaram de duas a seis vezes em relação ao algoritmo original. Em um caso específico, o código em Halide gerou um executável 70 vezes mais rápido.
Uma das maiores vantagens da nova linguagem é que ela cuida automaticamente de paralelizar o processamento para cada plataforma - um processador multicore de um PC ou o processador de um smartphone, por exemplo.
Agenda de processamento
O programa em Halide tem duas seções: uma para os algoritmos, e outra para o "agendamento" do processamento.
Essa agenda pode especificar o tamanho e o formato dos blocos da imagem que cada núcleo precisa processar em cada etapa, além das dependências de dados - por exemplo, os passos executados em um determinado núcleo precisarão acessar os resultados do processamento realizado em outro núcleo.
Uma vez estabelecida a agenda, o compilador cuida do resto. Se for necessário exportar o programa para uma plataforma diferente, basta refazer a agenda, sem precisar mexer no algoritmo.
Jonathan Ragan-Kelley e Andrew Adams, os criadores do Halide, já disponibilizaram o código da nova linguagem no endereço http://halide-lang.org.

Nenhum comentário:

Postar um comentário