quarta-feira, 31 de outubro de 2012

Resumo: Existem três formas principais de se fazer uso de unidades de vetorização nos processadores atuais: (i) pela programação em código de montagem, (ii) através da programação de funções intrínsecas em linguagens de alto nível ou (iii) usar um compilador que traduz automaticamente as operações escalares em vetoriais. Seja através da programação em linguagem de montagem ou usando funções intrínsecas, o programador deve possuir o controle completo dos detalhes da sua implementação, que geralmente é específica para uma arquitetura. Por isso a perseguição da alta performance, nestes casos, pode incorrer em baixa produtividade e portabilidade do código. Esta trabalho apresenta uma análise de vetorização automática usando o compilador GCC, com o objetivo de analisar quais códigos de programas em C/C++ podem ser vetorizados automaticamente e quais necessitam de esforços para adicionar instruções intrísecas no código para alcançar os benefícios da vetorização.



sexta-feira, 26 de outubro de 2012

In this presentation I will show a set of important topics about Software Engineering Empirical Studies that can be useful for increasing quality on your thesis and monographs in general. You can read this presentation and to think about how to do a good experimentation by apply its objectives, validation methods, questions, answers expected, define metrics and measuring it.  I will exhibit how the researchers selected the data for avoid case studies in a biased way using a GQM methodology to sort the study in a simpler view as well.


The full presentation can be seen here!

sexta-feira, 19 de outubro de 2012

Resumo: Através do paradigma de Programação Orientada a Aspectos (POA) é possível alcançar a modularização e o reuso de código para tratar os interesses transversais dos sistemas, onde diversos estudos ensejam uma integração dos mecanismos de tratamento de exceção com esse objetivo. Entretanto, estudos recentes destacam que ao promover essa integração, o paradigma pode aumentar a propensão a defeitos nos sistemas, porque (i) a construção do código para o tratamento de exceção pode ser feita de forma não intencional pelos aspectos, (ii) a falta de consistência entre os aspectos e os componentes pode resultar em implementações incorretas, além de (iii) existirem evidências que as exceções não são capturadas quando os aspectos atuam como manipuladores de exceções. Este trabalho propõe uma plataforma de geração automática de casos de testes que implementarão inspetores de defeitos orientados a aspectos, cuja integração entre os aspectos e componentes será feita no nível de metamodelos, o que resultará em uma maior consistência na criação dos aspectos com o objetivo de contornar essas barreiras.

Resumo: O produto de matrizes é um tema profundamente pesquisado, pois sugere uma maior facilidade na comparação de performance de programas com a utilização da álgebra linear e algumas métricas para esse fim. Neste trabalho são apresentadas 4 estratégias de implementação: (i) multiplicação normal de matrizes, (ii) multiplicação utilizando blocos, (iii) implementação do algoritmo de Strassen e (iv) utilização da biblioteca ATLAS. O objetivo do estudo é comparar a eficiência entre os algoritmos diante das barreiras advindas da convenção de código e estratégias de acesso à memória cache.

Artigo completo pode ser visto aqui

Resumo: O problema dos “números complicados” é definido por um subconjunto dos números de 1 a 1.000 que devem ser escritos usando expressões aritméticas. Ao final, deverão ser exibidos os 10 números mais complicados, onde o grau de complicação é dado pela quantidade de vezes em que os números são utilizados em uma expressão. O trabalho apresenta uma proposta de solução baseada na técnica de programação dinâmica e tabelas de dispersão.

Resumo: O problema do “circulo cortado” pode ser divido em dois desafios principais, quando os números de 1 a n são ordenados em forma circular. O primeiro é encontrar dois números (a e b) no círculo, de forma que se uma linha for desenhada ligando esses números, cortando o círculo, a soma dos números de um lado do círculo é igual à soma dos números do outro lado. O segundo, é executar todas as combinações possíveis que satisfaçam as condições do primeiro desafio para todos os círculos de tamanho 2 até 2 milhões. O presente trabalho apresenta três propostas de solução: (i) algoritmo híbrido baseado nas técnicas de programação dinâmica e força bruta, (ii) programação linear combinada com a técnica de força bruta e (iii) estratégia de busca mínima e máxima para otimização das soluções anteriores e assim vencer os dois principais desafios do problema.


Resumo: O problema "Palácio dos Espelhos"deseja encontrar uma solução algorítmica para calcular as possibilidades de caminhos que um raio de luz pode percorrer de acordo com um número variado de k reflexões em n placas de vidros. O estudo realizou diversas simulações e apresenta uma abordagem que utiliza o cálculo de seqüências de polinômios.

Inscreva-se

Creative Commons 3.0. Tecnologia do Blogger.

Teste a Velocidade da Internet

Siga-me

Curta