| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 2.9 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
O processamento de fluxos de dados (mais conhecido pela sua designação algo-saxónica
Stream processing) reflete um paradigma de computação em paralelo, cujos conceitos
possibilitam a implementação de soluções que funcionam sobre grandes quantidades
de dados que são produzidos em alta frequência e que têm de ser processados rapida-
mente. Este paradigma é essencial para implementação de sistemas de monitorização,
nomeadamente na bolsa, na saúde e na prevenção de fraude. Para suportar este modelo
de computação em paralelo é necessário hardware com elevada capacidade de proces-
samento paralelo, como por exemplo, computadores com muitos núcleos, ou clusters de
computadores ou de GPUs. No entanto, a utilização destas plataformas para processa-
mento de fluxos de dados levanta alguns problemas, como a latência da transmissão de
dados entre os nós de um cluster, ou ausência de sincronização global em GPUs (o que
implica transferências de controlo entre o GPU e o CPU).
Uma outra plataforma hardware para computação em paralelo é o co-processador
Intel Xeon Phi, desenvolvido pela Intel, e baseado na arquitetura MIC. O Intel Xeon Phi
é capaz de executar código x86, o que possibilitou que alguns sistemas de processamento
de fluxos de dados, como o Intel Threading Building Blocks Flow Graph, fossem portados
para execução no co-processador. No entanto, não existe nenhuma proposta que tire
partido das características de um nó heterogéneo CPU(s)/Xeon Phi, no seu todo.
Nesse contexto, o objetivo desta dissertação é propor um sistema com a capacidade de
executar um grafo de processamento de fluxos de dados em nós heterogéneos CPU(s)/Xeon
Phi. Para tal, propõe-se a extensão da biblioteca Intel TBB FG, de forma a suportar esse
novo tipo de ambientes com um impacto mínimo no seu modelo de programação. A pro-
posta foi avaliada através da comparação de processamento de fluxo utilizando só o CPU
com a utilização CPU/Xeon Phi, para medir os ganhos esperados. Nessas comparações fo-
ram detectadas situações, onde a segunda alternativa tinha grandes benefícios (speedups)
sobre a outra.
Stream processing, also known as data-flow processing, is a parallel computing paradigm, whose concepts enable the implementation of solutions that handle large volumes of data generated at high rates and, thus, must be swiftly processed. This paradigm is widely used in the implementation of monitoring systems, namely in the stock market, health and fraud detection. The deployment of a stream processing system requires massively parallel hardware, such as clusters or graphics processing units (GPUs). However, the use of these platforms (for processing data flows) raises several issues such as the latency of intra-node communication in clusters, to the lack of global synchronization in GPUs (which implies control transfers between the GPU and the host). The Intel Xeon Phi is a many-core processor based on Intel’s Many Integrated Core (MIC) architecture and, thus, able to run x86 binary code. This property spawned the porting of some stream processing libraries to Intel Xeon Ph, such as Intel’s Threading Building Blocks Flow Graph. However, there is no solution able to harness the individual characteristics and combined computing power CPUs and Intel Xeon Phi co-processors of hybrid CPU(s)/Intel Xeon Phi nodes. In this context, the goal of this thesis is to propose a stream processing system capable of running on hybrid CPU(s)/Intel Xeon Phi nodes. For that purpose, we extended Intel’s Threading Building Blocks Flow Graph library with the ability to run on this hybrid environment, with minimal impact on the library’s programming model. Our proposal was evaluated from a performance perspective by comparison with stream processing on a conventional shared-memory multicore system. The results show significant performance boosts, specially when task granularity and work load increases.
Stream processing, also known as data-flow processing, is a parallel computing paradigm, whose concepts enable the implementation of solutions that handle large volumes of data generated at high rates and, thus, must be swiftly processed. This paradigm is widely used in the implementation of monitoring systems, namely in the stock market, health and fraud detection. The deployment of a stream processing system requires massively parallel hardware, such as clusters or graphics processing units (GPUs). However, the use of these platforms (for processing data flows) raises several issues such as the latency of intra-node communication in clusters, to the lack of global synchronization in GPUs (which implies control transfers between the GPU and the host). The Intel Xeon Phi is a many-core processor based on Intel’s Many Integrated Core (MIC) architecture and, thus, able to run x86 binary code. This property spawned the porting of some stream processing libraries to Intel Xeon Ph, such as Intel’s Threading Building Blocks Flow Graph. However, there is no solution able to harness the individual characteristics and combined computing power CPUs and Intel Xeon Phi co-processors of hybrid CPU(s)/Intel Xeon Phi nodes. In this context, the goal of this thesis is to propose a stream processing system capable of running on hybrid CPU(s)/Intel Xeon Phi nodes. For that purpose, we extended Intel’s Threading Building Blocks Flow Graph library with the ability to run on this hybrid environment, with minimal impact on the library’s programming model. Our proposal was evaluated from a performance perspective by comparison with stream processing on a conventional shared-memory multicore system. The results show significant performance boosts, specially when task granularity and work load increases.
Descrição
Palavras-chave
Computação em Paralelo Intel®Xeon Phi TBB Processamento de Fluxo de Dados
