Abstract:
RESUMO: Multiprocessadores são arquiteturas com mais de um núcleo de processamento que exploram
o paralelismo para fornecer maior desempenho. Eles têm sido pesquisados e implementados
na construção de computadores de alto desempenho (em inglês, HPC - High Perfomance
Computers).
Com muitos núcleos de processamento, a comunicação entre os mesmos é fator crucial
para obtenção de alto desempenho. É com base nela que são determinadas a velocidade
de processamento, o consumo de energia, o espaço em chip e a escalabilidade. A fim de
reduzir a latência na comunicação e aproximar processadores e memórias, pesquisadores
têm investido na conexão das unidades de processamento por meio de redes em chip (em
inglês, NoC), os chamados MP-SoCs (Multiprocessor Systems-on-Chip).
Este trabalho apresenta um MP-SoC com um sistema de comunicação e sincronização
entre processos que tem por base o padrão de paralelismo Fork-Join. Tal arquitetura,
chamada ArachNoc, é composta por nós multicore de processamento. Esses nós possuem
oito núcleos de processamento cuja microarquitetura é baseada na ISA MIPS, e conferem
suporte à programação paralela por meio da inserção das instruções de sincronização.
Para a validação e avaliação de desempenho do sistema proposto, foram desenvolvidas
aplicações paralelas. Para a produção destas aplicações foram utilizadas a linguagem C de
programação e a biblioteca OpenCL, e para gerar os códigos binários foram desenvolvidos
dois compiladores cruzados (do inglês, cross-compiler ): um compilador GNU GCC to
ArachNoc e outro LLVM to ArachNoc.
O benchmark desenvolvido conta com aplicações dos mais diversos níveis de avaliação
de desempenho, desde aplicações para apenas validar o sistema em chip, até aplicações
para exaurí-lo, isto é, extrair o desempenho máximo do sistema. Algumas delas são:
Multiplicação de Matrizes (com diferentes formas de paralelismo), Dijkstra, Algoritmos
Genéticos Simples e Algoritmos para processamento de imagens, como o Filtro Laplaciano.
Os resultados mostraram que ArachNoC é capaz de executar eficientemente aplicações
MIMD e SIMD(OpenCL). Além disso, alguns resultados provaram a flexibilidade do
sistema para executar aplicações diferentes ao mesmo tempo, com três diferentes modelos
de programação paralela. ABSTRACT: Multiprocessors are architectures with more than one processing core that exploit paral-lelism to provide higher performance. They have been researched and implemented in the
construction of high-performance computers (HPC).
With many processing cores, the communication between them is crucial to obtain high
performance. That is the base to determine the processing speed, the power consumption,
the space in chip and the scalability. In order to reduce the communication latency and
approach processors and memories, researchers have invested in the connection of the
processing units throught networks on chip (NoC), so-called MP-SoCs (Multiprocessor
Systems-on-Chip).
This paper presents a MP-SoC with a system of communication and synchronization
between processes that have as base the Fork-Join parallel pattern. This architecture,
so-called ArachNoc, is made up by multicore processing nodes. That nodes have eight
processing cores whose microarchitecture is based on the MIPS’s ISA, and garantee support
to parallel programming by the insertion of synchronization instructions.
For the validation and performance evaluation of the proposed system were developed
parallel applications. For the production of these applications were used the C programming
language and the OpenCL library, and to generate the binary codes were developed two
cross-compilers: one compiler GNU GCC to ArachNoc and other LLVM to ArachNoc.
The benchmark developed have applications for differents levels of performance evaluation,
from applications to just validate the system on chip, until applications to doplete it, this
is, take out the system maximum performance. Some of them are: Matrix Multiplication
(with differents ways to parallelize), Dijkstra, Genetic Algorithms and Algorithms to image
processing, like the laplacian filter. The results show that ArachNoC can eficiently run
MIMD and SIMD(OpenCL) applications. Besides that, some results asset the system
flexibility to execute different applications at the same time, with three different parallel
programming models.