Um Compilador OpenCL Off-Line Para Arquiteturas Multi-core Embarcadas
Compilador. OpenCL. LLVM. programação paralela. multi-processamento
Nos últimos anos, é notório a evolução dos sistemas multi-core, many-core e multiprocessado. Estes sistema se caracterizam por possuírem múltiplos núcleos de processamento que executam tarefas de maneira concorrente. Dadas as conhecidas dificuldades associadas programação paralela, tais sistemas serão subutilizados caso não sejam adotadas ferramentas que ofereçam recursos que simplifiquem o desenvolvimento de aplicações. Partindo desta premissa, este trabalho propõe o desenvolvimento de um conjunto de ferramentas de compilação, simulação e otimização de código para uma nova arquitetura de processador multi-core. Para o desenvolvimento das ferramentas propostas o framework OpenCL será adotado como modelo de programação. A adoção de OpenCL se justifica pelo ao fato de tal framework ter se tornado nos dias atuais, a principal alternativa para programação de sistemas dotados de múltiplos núcleos de processamento. Além de OpenCL, a infra-instrutura LLVM será utilizada para criação de um compilador. Ao final do trabalho espera-se contribuir o desenvolvimento de técnica de geração de código OpenCL otimizados para a execução em arquiteturas multi-core. Espera-se também oferecer recursos que facilitam o desenvolvimento de tais arquiteturas.