Suporte à computação paralela e distribuída em Java: distribuição e execução de trabalho


Autoria(s): Barciela, Daniel Duarte Ribeiro
Contribuinte(s)

Ferreira, Luís Lino

Maia, Cláudio

Data(s)

03/06/2014

03/06/2014

2012

Resumo

Nos últimos anos começaram a ser vulgares os computadores dotados de multiprocessadores e multi-cores. De modo a aproveitar eficientemente as novas características desse hardware começaram a surgir ferramentas para facilitar o desenvolvimento de software paralelo, através de linguagens e frameworks, adaptadas a diferentes linguagens. Com a grande difusão de redes de alta velocidade, tal como Gigabit Ethernet e a última geração de redes Wi-Fi, abre-se a oportunidade de, além de paralelizar o processamento entre processadores e cores, poder em simultâneo paralelizá-lo entre máquinas diferentes. Ao modelo que permite paralelizar processamento localmente e em simultâneo distribuí-lo para máquinas que também têm capacidade de o paralelizar, chamou-se “modelo paralelo distribuído”. Nesta dissertação foram analisadas técnicas e ferramentas utilizadas para fazer programação paralela e o trabalho que está feito dentro da área de programação paralela e distribuída. Tendo estes dois factores em consideração foi proposta uma framework que tenta aplicar a simplicidade da programação paralela ao conceito paralelo distribuído. A proposta baseia-se na disponibilização de uma framework em Java com uma interface de programação simples, de fácil aprendizagem e legibilidade que, de forma transparente, é capaz de paralelizar e distribuir o processamento. Apesar de simples, existiu um esforço para a tornar configurável de forma a adaptar-se ao máximo de situações possível. Nesta dissertação serão exploradas especialmente as questões relativas à execução e distribuição de trabalho, e a forma como o código é enviado de forma automática pela rede, para outros nós cooperantes, evitando assim a instalação manual das aplicações em todos os nós da rede. Para confirmar a validade deste conceito e das ideias defendidas nesta dissertação foi implementada esta framework à qual se chamou DPF4j (Distributed Parallel Framework for JAVA) e foram feitos testes e retiradas métricas para verificar a existência de ganhos de performance em relação às soluções já existentes.

In the last years, multiprocessor and multi-core computers have become common in the computer industry. In order to take advantage of these new features, several tools including programming languages and frameworks have appeared to ease the parallelization of the applications’ workload. With the rise of high-speed networks such as Gigabit networks and the latest generation of Wi-Fi, there is now the opportunity, in addition of parallelizing the processing between processors, to be able to simultaneously parallelize workloads between different machines, that is to distribute the workload. The concept of parallel processing considering local execution and simultaneous distribution to other machines that also can parallelize workloads is called "distributed parallel concept". This thesis analyzed the techniques and tools used to make parallel programming, the work that is done within the area of parallel and distributed programming, and proposed a framework that tries to apply the simplicity of the parallel programming to the distributed parallel concept. The proposal is based on providing a Java framework with a simple API that is easy to learn and easy to read, which seamlessly will be able to parallelize and distribute the application workload. Although simple, there was an effort to make it configurable in order to adapt it to the maximum possible situations. This thesis will address issues related to the execution and distribution of work, and the way that the code is automatically transferred between machines without the need of manual installation in the several networked nodes. To validate this concept and the ideas exposed in this thesis, it was implemented a framework which was called DPF4j (Distributed Parallel Framework for JAVA) and tests were made to withdrawn metrics to check for performance gains compared to the existing solutions.

Identificador

http://hdl.handle.net/10400.22/4456

Idioma(s)

por

Publicador

Instituto Politécnico do Porto. Instituto Superior de Engenharia do Porto

Direitos

openAccess

Tipo

masterThesis