2 research outputs found
Local DNA sequence alignment in a cluster of workstations : algorithms and tools
Distributed Shared Memory systems allow the use of the shared memory programming paradigm in distributed architectures where no physically shared memory exist. Scope consistent software DSMs provide a relaxed memory model that reduces the coherence overhead by ensuring consistency only at synchronization operations, on a per-lock basis. Much of the work in DSM systems is validated by benchmarks and there are only a few examples of real parallel applications running on DSM systems. Sequence comparison is a basic operation in DNA sequencing projects, and most of sequence comparison methods used are based on heuristics, that are faster but do not produce optimal alignments. Recently, many organisms had their DNA entirely sequenced, and this reality presents the need for comparing long DNA sequences, which is a challenging task due to its high demands for computational power and memory. In this article, we present and evaluate a parallelization strategy for implementing a sequence alignment algorithm for long sequences. This strategy was implemented in JIAJIA, a scope consistent software DSM system. Our results on an eight-machine cluster presented good speedups, showing that our parallelization strategy and programming support were appropriate
Alocação de tarefas paralelas comunicantes em ambientes distribuídos heterogêneos
Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2006.Sistemas distribuídos têm sido cada vez mais utilizados na resolução de problemas
que demandam grande quantidade de tempo de processamento, por permitirem
a utilização simultânea de vários recursos computacionais. Diversas máquinas
com arquiteturas distribuídas foram propostas ao longo dos anos. Entre essas
arquiteturas, estão os clusters de computadores, que são sistemas distribuídos
formados por estações de trabalho interligadas e que podem atingir um bom
desempenho a um custo relativamente baixo.
Entretanto, para que a utilização de tais sistemas seja proveitosa, é necessário
que a utilização dos recursos disponíveis seja feita de maneira a permitir a otimização
de algum critério. A alocação de tarefas em um sistema distribuído visa
determinar como serão utilizados os processadores do sistema de modo a otimizar
um critério, que grande parte das vezes é o tempo de execução de uma aplicação.
Diversas abordagens já foram propostas para o problema de alocação de tarefas,
que é um problema NP-Completo, incluindo algoritmos heurísticos e estratégias
específicas para determinadas aplicações.
Uma aplicação para qual existem diversas implementações em sistemas distribuídos
é a comparação de seqüências biológicas, uma operação básica da biologia
computacional que visa determinar o grau de similaridade entre seqüências. Os
algoritmos ótimos existentes possuem complexidade de tempo e espaço de O(n2),
sendo baseados na técnica de programação dinâmica e apresentando dependências
de dados do tipo wavefront. O alto custo desses algoritmos justifica a utilização
de sistemas distribuídos na resolução do problema, sendo que a maioria das implementações
distribuídas busca utilizar todos os processadores disponíveis no
sistema distribuído, de modo a minimizar a tempo de execução.
A presente dissertação propõe um framework de alocação de tarefas de aplicações
de comparação de seqüências biológicas baseadas em programação dinâmica,
além de quatro estratégias de alocação de tarefas. O framework e as estratégias
de alocação foram implementados em um cluster de 10 máquinas. Os resultados
mostram que, para seqüências relativamente pequenas, a utilização de todos
os processadores disponíveis não é a opção mais vantajosa. Por isso mesmo, a
utilização de políticas de alocação que levem em consideração o tamanho das
seqüências e as características das máquinas disponíveis pode permitir a redução
no tempo de execução da aplicação. ____________________________________________________________________________________________ ABSTRACTDistributed systems have been widely used in the resolution of problems that
demand a large amount of processing time, because they allow the simultaneous
utilization of many computational resources. Many machines with a distributed
architecture have been proposed during the years. Among these are computer
clusters, which are distributed systems composed of interconnected workstations
and that may achieve a good performance at a relatively low cost.
However, in order to take advantage of distributed systems, the available resources
must be used in such a way that some criteria can be optimized. Task
allocation in distributed systems aims at determine how the processors available
in the system are going to be used, so that a criteria, which in many cases is the
execution time of an application, is optimized. Many approaches have been proposed
to the task allocation problem, which is NP-Complete, including heuristic
algorithms and application specific strategies.
There are many proposed distributed implementations of the biological sequence
comparison application, which is a basic operation in computational biology
that determines the similarity degree between sequences. The optimal algorithms
available have time and space complexities in O(n2) , are based in the
dynamic programming technique and present data dependencies that follow the
wavefront pattern. The high costs of these algorithms justifies the utilization of
distributed systems. Most of the known distributed implementations try to use all
available processors in the system, so that the execution time can be minimized.
The present document proposes a framework for task allocation for biological
sequence comparison applications based on dynamic programming, as well
as four task allocation strategies. The framework and the strategies have been
implemented in a 10 machine cluster. The results show that, when the sequences
are relatively small, using all available processors is not the best decision. For
this reason, the utilization of task allocation policies that take into account the
sequences size and the machines characteristics may cause the execution time of
the application to be reduced