Universidade Federal do Rio Grande do Norte Centro de Tecnologia Programa de Pós-Graduação em Engenharia Elétrica e UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE de Computação Implementação Paralela Escalável e Eficiente do Algoritmo Simplex Padrão em Arquitetura Multicore Demétrios A. M. Coutinho Orientador: Prof. Dr. Samuel Xavier de Souza Coorientador: Prof. Dr. Jorge Dantas de Melo Dissertação de Mestrado apresentada ao Programa de Pós-Graduação em Engenha- ria Elétrica da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Mestre em Ciências. Número de ordem PPgEE: M417 Natal, RN, Janeiro de 2014 UFRN / Biblioteca Central Zila Mamede. Catalogação da Publicação na Fonte Coutinho, Demétrios A. M. Implementação paralela escalável e eficiente do algoritmo simplex padrão em arquitetura multicore / Demétrios A. M. Coutinho. – Natal, RN, 2014. 98 f. : il.. Orientador: Prof. Dr. Samuel Xavier de Souza. Coorientador: Prof. Dr. Jorge Dantas de Melo. Dissertação (Mestrado) – Universidade Federal do Rio Grande do Norte. Centro de Tecnologia. Programa de Pós-Graduação em Engenharia Elétrica e de Computação. 1. Simplex – Dissertação. 2. CPLEX – Dissertação. 3. Eficiência paralela – Dissertação. 4. Escalabilidade paralela – Dissertação. 5. Programação linear – Dissertação. I. Souza, Samuel Xavier de. II. Melo, Jorge Dantas de. III. Universidade Federal do Rio Grande do Norte. III. Título. RN/UF/BCZM CDU 519.852 A Deus e aos meus pais. Agradecimentos Agradeço a Deus, pelo seu Amor incondicional na minha história, por ter me concedido a oportunidade de conhecer pessoas que me ajudaram de forma direta ou indireta a concluir mais uma etapa na minha vida. AosmeuspaisWilderCésarCoutinhoeJosianeMagalhães,porsempremeapoiarem, por sempre estarem do meu lado, por sempre acreditarem em mim, e principalmente agradeço por todo esforço realizado para que tivesse a base moral e emocional adequada para vencer os desafios da vida. Agradeço, especialmente, a Ayla Márcia, por todo seu carinho e zelo por mim, por ser tão paciente e compreensiva comigo, pelas correções ortográficas desse texto e o respaldo necessário para a conclusão desta jornada. Ao meu orientador Samuel Souza, excelente profissional, pelo seu voto de confiança, por ter gasto várias horas auxiliando-me nesse trabalho, sem sua ajuda este trabalho não teria sido possível. Ao meu coorientador Jorge Melo, por ter me acompanhado nessa jornada e pelos ensinamentos que me foram concedidos. Ao Prof. Daniel Aloise por ter me ajudado com a versão acadêmica do CPLEX(cid:13)R e por suas orientações na área de otimização. Ao Prof. Luiz Affonso, por ter me concedido um espaço no laboratório do LII. À Viviane Medeiros, por sempre ter me ajudado na parte burocrática, nunca negando um pedido de socorro. Ao meu colega de trabalho e de dissertação, Diego Cirilo, por ter esclarecido vários pontos da norma da ABNT, por ter me socorrido em vários problemas do Latex, por todas as madrugadas que passamos escrevendo os nossos textos. À Direção do IFRN câmpus Pau dos Ferros, nas pessoas de Antônia Francimar da Silva e Amélia Cristina Reis e Silva, por todo apoio e auxílio concedido para concluir esse trabalho. À CAPES e CNPq pelo apoio financeiro. “Feliz aquele que se compraz no serviço do Senhor e medita sua lei dia e noite. Ele é como a árvore plantada na margem das águas correntes: dá fruto na época própria, sua folhagem não murchará jamais. Tudo o que empreende, prospera. (Bíblia Sagrada, Salmos 1, 2-3) Resumo Este trabalho apresenta uma implementação paralela escalável e eficiente do algoritmo Simplex padrão em arquitetura de processadores multicore para resolver problemas de programação linear de grande escala. Apresenta-se um esquema geral explicando como foi paralelizado cada passo do algoritmo simplex padrão, apontando pontos importantes da implementação paralela. Foram realizadas análises de desempenho através da comparação dos tempos sequenciais utilizando o Simplex tableau e Simplex do CPLEX(cid:13)R da IBM. Os experimentos foram realizados em uma máquina de memória compartilhada com 24 núcleos. A análise de escalabilidade foi feita com problemas de diferentes dimensões, encontrando evidências de que a implementação paralela proposta do algoritmo simplex padrão tem melhor eficiência paralela para problemas com mais variáveis do que restrições. Na comparação com CPLEX(cid:13)R, o algoritmo proposto paralelo obteve uma eficiência de até 16 vezes maior. Palavras-chaves: Simplex, CPLEX(cid:13)R, Eficiência Paralela, Escalabilidade Paralela, Pro- gramação Linear.
Description: