Implementação do quicksort co o uso de threads em java
Anderson Abner de Carvalho1, Luciano Brasil Cardoso1, Mário Paulo Alves Hennrichs1
1Departamento de Ciência da Computação – Universidade Federal de Lavras (UFLA) – Lavras – MG – Brasil
{acarvalho,lucianobc,mphennrichs}@comp.ufla.br
Resumo. A programação paralela busca acelerar a resolução de problemas dividindo a computação, permitindo que os recursos disponíveis sejam utilizados ao máximo. Esse trabalho apresenta uma comparação entre soluções seqüenciais e paralelas para um mesmo problema, a ordenação de vetores utilizando o algoritmo QuickSort.
1. Introdução
A evolução no processo de desenvolvimento de software permite gerar sistemas cada vez mais complexos e exigentes. O custo computacional das aplicações tem aumentado cada vez mais, e essas aplicações exigem a resposta em um tempo cada vez menos.
Inicialmente na computação a tecnologia de hardware disponível fornecia apenas um núcleo de processamento, dessa forma a computação era executada de forma seqüencial. Contudo esse modelo já não consegue atender a crescente demanda pelo alto desempenho.
Hoje em dia já temos disponíveis novas tecnologias de processamento que permitem que atividades independentes sejam executadas paralelamente desde que o software esteja preparado para tal. O processo de paralelizar atividades independentes do softwares tem apresentado um bom resultado no ganho de performance.
1.1. Programação paralela
A capacidade de hardware tem crescido muito nesses últimos anos, mas somente esses avanços não são capazes de sanar a necessidade de computação existente. Buscando aproveitar de forma cada vez mais eficiente o hardware disponível em uma máquina a comunidade cientifica tem investido em pesquisas que criam e melhoram modelos de computação paralela.
Segundo Almasi,1994, a computação paralela é definida como: “uma coleção de elementos de processamento que se comunicam e cooperam entre si e com isso