Desenvolvimento de uma versão paralela do software McMaille - Invernizzi, Leonardo Machado (My University, 2018)
Muitas propriedades dos sólidos podem ser compreendidas através da estrutura cristalina desses materiais. A estrutura cristalina relaciona-se à organização dos átomos que constituem o sólido, sendo que esta pode ser identificada através do uso da técnica de difração de raio X. Diversos softwares foram desenvolvidos para a identificação das estruturas cristalinas a partir de dados obtidos através de técnicas de difração de raio X. Dentre estes, destaca-se o McMaille, que é um programa desenvolvido na linguagem de programação FORTRAN, e que utiliza os métodos de Monte Carlo e Grid Search para a classificação da estrutura cristalina. No caso de estruturas cristalinas complexas, o McMaille apresenta um alto custo computacional, devido ao grande número de combinações a serem testadas. Desta forma, neste trabalho foi desenvolvida uma versão paralela do software McMaille, sendo que essa foi desenvolvida para ser executada em computadores com múltiplos processadores e com memória compartilhada, utilizando a biblioteca OpenMP. Inicialmente, foi realizada uma conversão do software McMaille de FORTRAN para a linguagem C utilizando o conversor f2c, sendo verificado que a conversão não introduziu erros no programa. Em seguida, foi realizado um perfilamento do código utilizando o programa gprof, identificando que a função calcul1 possui o maior custo computacional do programa. Foram realizadas otimizações nesta função, que resultaram em um ganho de desempenho de até aproximadamente 32%. Após, foi realizada a paralelização dos métodos de Monte Carlo e Grid Search. Foi verificado que a paralelização não inseriu erros no programa e verificou-se uma diminuição no tempo de execução, atingindo em casos mais complexos um speedup de 2,34 e uma eficiência de 58% (sic).
Keywords: Software - Desenvolvimento