Titulo: Procura de Códigos Convolucionais Baseado no Critério da Distância de Hamming entre Símbolos - Busca Paralela

Nome dos autores: Getúlio A. de Deus Júnior, Jaime Portugheis, Luciano de Oliveira Costa e Hélio José da Silva Júnior.

Unidade Acadêmica onde o trabalho foi desenvolvido: Escola de Engenharia Elétrica e de Computação (EEEC).

E-mail (do autor principal): getulio@eee.ufg.br

Palavras-Chave: Computação Paralela, Códigos Convolucionais, Receptores FFH-CDMA, Capacidade de Canal.

 

Introdução:

 

Na maioria das vezes, a busca por sistemas paralelos se dá pela necessidade de se ter sistemas que suportem uma alta demanda de processamento, mantido um desempenho satisfatório na maior parte do tempo. Os sistemas paralelos podem atender necessidades de processamento diferenciadas, bem como processar várias tarefas independentes, sendo a quantidade de tarefas processadas uma medida de desempenho do sistema, ou podem dedicar-se a processar uma única tarefa distribuída entre os vários processadores, que em síntese é a definição de processamento paralelo [1].

 

Este artigo propõe a busca de códigos convolucionais utilizando sistemas paralelos, visto que o esforço computacional para tal tarefa pode ser muito alto.

 

Material e Método (Metodologia):

 

Agrupamento de Computadores: Existem diversas aplicações típicas de mainframes adequadas a rodar em máquinas mais fracamente acopladas do que em máquinas com acesso não uniforme à memória. A maioria dessas aplicações deve ter o maior grau de disponibilidade possível, requerendo, portanto, algum mecanismo para implementação de tolerância de falhas. Tais aplicações, somadas à similaridade que os nós de um sistema multiprocessador apresentam com os computadores de mesa e à emergência das redes locais comutadas com largura de faixa alta, sugerem que futuramente as máquinas para processamento pesado utilizarão agrupamento (do inglês: cluster) de máquinas individuas. Um agrupamento, nada mais é que a utilização de dois ou mais computadores em conjunto para uma determinada finalidade [2].

 

Tipos de Agrupamentos: Basicamente duas categorias de agrupamento: os de alta

disponibilidade (do inglês: High Availability (HA)) e os de alto desempenho de computação (do inglês: High Peformance Computing (HPC)). O agrupamento de alta

disponibilidade tem por finalidade manter um determinado serviço de forma segura o maior tempo possível. Para cumprir com o objetivo, agrupamento de computadores utilizam equipamentos agregados de forma conjunta. O agrupamento de alto desempenho de computação visa fornecer um alto desempenho de processamento, sendo uma alternativa a supercomputadores comerciais de alto custo [2].

 

Vantagens da utilização de agrupamentos: Dentre as inúmeras vantagens em se utilizar agrupamento de computadores, pode-se destacar: alto desempenho; escalabilidade; tolerância a falhas; baixo custo; independência de fornecedores [2].

 

Desvantagens da utilização de agrupamentos: Uma das desvantagens do agrupamento é o fato de o custo de administração de um sistema composto por N máquinas ser equivalente ao da administração de N máquinas independentes. Outra desvantagem dos agrupamentos é o fato de eles serem em geral conectados usando-se o barramento de entrada/saída de um computador, enquanto os multiprocessadores são ligados ao barramento de memória. Uma última fragilidade dos agrupamentos é a divisão da memória [1].

 

Resultados e Discussão:

 

Agrupamento de Computadores Construído: Foram utilizados cinco computadores pessoais com processadores Duron, com memória principal de 128Mb. Foram criadas duas partições no disco rígido, uma de 1,5 GB, usando sistema de arquivo ext3 para instalação do sistema operacional, outra de 300Mb para utilização como área de troca (do inglês: swap). A máquina designada como nó principal recebeu o nome de homer, e as demais máquinas: marge, bart, lisa e maggie. O sistema operacional Linux, em sua distribuição Slackware, versão 9.1, foi instalado em todas as Máquinas [3]. Os pacotes escolhidos foram apenas os necessários para funcionamento do sistema em rede, principais ferramentas e bibliotecas. A interface gráfica foi instalada juntamente com o compilador apropriado. Os serviços de rede SSH (do inglês: Secure Shell) e NFS (do inglês: Network File System) foram configurados. Os computadores foram conectados por rede Ethernet e protocolo TCP/IP. O conjunto de bibliotecas utilizado para passagem de mensagens foi o MPICH (do inglês: Message-Passing Interface Chamaleon) [4]. A linguagem de programação utilizada para implementar o programa paralelo foi o C/C++.

 

Algoritmo Paralelizado para a Busca dos Códigos k'/5: A metodologia utilizada para a paralelização reflete diretamente no número máximo de conexões procuradas na última camada do algoritmo original (versão serial) [5, 7]. A função Procura_CC() precisou sofrer uma modificação para possibilitar tal distribuição [6]. Esta modificação consiste basicamente na criação de dois parâmetros de entrada para a função, que determinam os valores iniciais e finais para a nova faixa de busca que cada nó do agrupamento irá buscar. Assim, para que a nova faixa de busca do algoritmo partisse do parâmetro correspondente ao valor inicial até o parâmetro correspondente ao valor final. Uma outra modificação, porém de menor importância, foi a possibilidade da função Procura_CC(limite_inf, limite_sup) retornar o número de vizinhos encontrados em sua busca [6].

 

Resultados Obtidos: A métrica escolhida para realizar a comparação entre a busca

serializada e a busca paralelizada foi o tempo de execução das aplicações,  considerando os mesmos equipamentos [6]. A busca serializada foi realizada em uma das máquinas do agrupamento (nó principal). Para a classe de códigos convolucionais de taxa k'/5, apenas os códigos com taxa 4/5 foram considerados neste trabalho, pois o tempo de execução para a busca de códigos com taxas 2/5 e 3/5 foram respectivamente, 3 e 12 minutos, não justificando o uso de sistemas paralelos. Após a execução das aplicações, primeiramente a serializada e depois a paralelizada, obtivemos o tempo de execução de cada aplicação, conforme mostrado na tabela I. O tempo de execução de cada implementação foi obtido através do comando time do Linux.

 

Tabela I: Tempo de execução obtidos para cada aplicação na busca do codificador convolucional (5, 4, 2).

 

Aplicação

Tempo de execução

Serializada

19:19'56''866 milésimos

Paralela

5:15'28''709 milésimos

 

Os códigos convolucionais encontrados pelos nós marge, bart, lisa e maggie, respectivamente, foram 540:1661:7322:2224:6350, 544:1660:7321:2222:6351, 550:1660:7321:2222:6346 e 554:1660:7321:2222:6344, com d_Hamm = 3 (critério principal do algoritmo de busca). A soma do número de códigos procurados pelos nós é igual ao número de códigos procurados pela aplicação serializada (1.048.576 códigos). A soma do número de códigos válidos encontrados pelos nós é igual ao número de códigos válidos encontrados pela aplicação serializada (923.521 códigos). Para um tamanho de bloco igual a 5 seções de treliça, o número de vizinhos para os códigos convolucionais encontrados por todos os nós foram 128 vizinhos. [6]. Entretanto, para um tamanho de bloco igual a 50 seções de treliça, o número de vizinhos para os códigos convolucionais encontrados pelos nós marge, bart, lisa e maggie, respectivamente, foram 5.754, 5.024, 7.444 e 4.954 vizinhos (melhor código, coincidente com o algoritmo serial).

 

Conclusão:

Seja o índice temporal µ, dado por µ = t_p/t_s, onde t_p é o tempo, em segundos, gasto pela execução paralela e t_s é o tempo gasto pela execução serial. Ao final deste trabalho pôde-se perceber bem as vantagens de se utilizar sistemas paralelos para busca de códigos convolucionais, visto que, para percorrer todas as conexões na última camada de um codificador de taxa k'/5, utilizando sistemas paralelos, obtivemos um índice temporal µ = 0,272 em relação ao sistema serial.

 

Referências Bibliográficas:

 

[1] D. A. Patterson e J. L. Hennessy. Organização e Projeto de Computadores. LTC, Rio de Janeiro, Brasil, 2000.

[2] M. J. Pitanga Alves. Construindo Supercomputadores com Linux. BRASPORT, Rio de Janeiro, Brasil, 2002.

[3] Slackware versão 9.1: http://www.slackware.com/.

[4] Message Passing Interface Chamaleon: http://www-unix.mcs.anl.gov/mpi/mpich/.

[5] G. A. de Deus Júnior, Sistemas FFH-CDMA Codificados, Tese de Doutoramento, Universidade Estadual de Campinas, 2002.

[6] H. J. da Silva Júnior e L. de O. Costa, Busca de Códigos Convolucionais Utilizando Computação Paralela, Projeto Final de Curso, Universidade Federal de Goiás, 2003.

[7] G. A. de Deus Júnior e J. Portugheis. Procura de Códigos Convolucionais Baseado no Critério da Distância de Hamming entre Símbolos - Busca Serial. XXI Simpósio Brasileiro de Telecomunicações, CD-ROM, 06-10 de Setembro, Belém-PA.

 

Fonte de financiamento: não houve.