Abstract:
RESUMO: Nos últimos anos, é notória a evolução das arquiteturas manycores. Essas arquiteturas se
caracterizam por possuírem dezenas de núcleos de processamento integrados em um único
circuito que executam tarefas de maneira concorrente. As arquiteturas serão subutilizadas caso não sejam adotadas ferramentas que ofereçam
recursos que simplifiquem o desenvolvimento de aplicações. Assim sendo, este trabalho
descreve o desenvolvimento de um conjunto de ferramentas de compilação para as ar-quiteturas manycore METAL (ManycorE PlaTform Adapted to OpenCL) e ArachNoC
(Arachnid NoC ). As duas plataformas são manycore com múltiplos nós de processamento
conectados por uma rede em chip (NoC - Network on Chip) com topologia em malha
2D. Possuem oito nós de processamento multicores mais um nó mestre dotado de um
único núcleo de processamento. Enquanto METAL possui uma arquitetura adaptada ao
modelo de programação OpenCL (Open Computing Language), ArachNoC confere suporte
à programação paralela por meio da inserção das instruções de sincronização. Para o desenvolvimento do conjunto de ferramentas propostas, o framework OpenCL é
adotado como modelo de programação. A adoção de OpenCL se justifica pelo 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. O framework LLVM (Low Level
Virtual Machine) foi utilizado para criação do conjunto de ferramentas. O objetivo é disponibilizar um conjunto de ferramentas de compilação para as plataformas
citadas, bem como, contribuir no desenvolvimento de técnicas de geração de códigos
para arquiteturas manycores, e oferecer recursos que facilitam o desenvolvimento de tais
arquiteturas. Para validação e avaliação das ferramentas propostas, foram realizadas comparações com o
compilador GCC (GNU Compiler Collection). Os resultados mostram que as ferramentas
criadas possuem tempo de compilação e execução superiores ao GCC. ABSTRACT: In recent years, the evolution of manycores architectures is well known. These architectures
are characterized by having dozens of processing cores integrated in a single circuit that
perform tasks concurrently. The architectures will be underutilized if tools are not used that offer features that
simplify the development of applications. Therefore, this work describes the development
of a compilation toolkit for the manycore METAL (ManycorE PlaTform Adapted to
OpenCL) and Arachnid NoC architectures. The two platforms are multicore with multiple
processing nodes connected by a 2D mesh topology (NoC - Network on Chip). They
have eight multicore processing nodes plus a master node with a single processing core.
While METAL has an architecture adapted to the OpenCL programming model (Open
Computing Language), ArachNoC configures parallel programming support by inserting
the synchronization instructions. For the development of the proposed toolkit, the OpenCL framework is adopted as a
programming model. The adoption of OpenCL is justified by the fact that this framework
has become, today, the main alternative for programming systems with multiple processing
cores. The LLVM (Low Level Virtual Machine) framework was used to create the toolkit. The goal is to provide a set of compilation tools for the mentioned platforms, as well as to
contribute to the development of coding techniques for manycores architectures, and to
provide features that facilitate the development of such architectures. For the validation and evaluation of the proposed tools, comparisons were made with the
GCC compiler (GNU Compiler Collection). The results show that the tools created have
more compile time and execution than GCC.