Trabalho de Conclusão de Curso
Um estudo sobre o desenvolvimento de aplicações com criação dinâmica de processos em MPI
Autor
Lorenzon, Arthur Francisco
Institución
Resumen
The MPI standard is widely used in the development of parallel programs for distributed memory environments. It is divided into two standards: MPI-1 and MPI-2. The first is characterized by creating processes statically at the start of execution of the application, while in the second the creation of a process takes place dynamically, ie at runtime. However, processes create dynamically generates an extra cost to implement, when compared with static setting. This paper makes a study on the development of applications with dynamic creation of processes, which aims to investigate the impact of this overhead in MPI-2 applications and how it can be bypassed through the use of efficient programming techniques and advanced features provided by the MPI. For this, applications have been implemented with MPI-1 and MPI-2, under two problems (Game of Life and Skyline Matrix Solver) of the suite Cowichan Problems. Our first analysis performed on the Game of Life, it was possible to find the overhead of the dynamic creation of processes in applications with regular workload and whose computation time is similar in both cases. The second analysis performed on the Skyline Matrix Solver possible to analyze the impact of process creation at runtime in applications that have irregular workload and different computation time between processes. Our results show that for applications with regular workload and with little computing time (similar to the Game of Life), at best, the inclusion of dynamic creation of processes impacted by just 0, 2% in the total time of application. For applications with irregular work load considerably useful and time of computation (similar to Skyline Matrix Solver), we show that it is possible to succeed with the creation of dynamic processes, wherein at best, with the implementation of MPI-2 was 6% more efficient than the MPI-1 implementation version. O MPI é o padrão amplamente utilizado no desenvolvimento de programas paralelos para ambientes de memória distribuída. Ele é dividido em duas normas: MPI-1 e MPI-2. A primeira caracteriza-se por criar processos estaticamente, no início da execução da aplicação, enquanto que na segunda, a criação de processos ocorre de forma dinâmica, ou seja, em tempo de execução. Entretanto, criar processos dinamicamente gera um custo extra para a aplicação, quando comparado com a criação estática. Este trabalho realiza um estudo sobre o desenvolvimento de aplicações com criação dinâmica de processos, que objetiva investigar o impacto deste sobre-custo em aplicações MPI-2 e como ele pode ser contornado através do uso de técnicas de programação eficientes e características avançadas fornecidas pelo próprio MPI. Para isto, foram implementadas aplicações em MPI-1 e MPI-2, sob dois problemas (Jogo da Vida e Skyline Matrix Solver) da suíte Cowichan Problems. Nossa primeira análise, realizada sobre o Jogo da Vida, foi possível encontrar o custo extra da criação dinâmica de processos em aplicações com carga regular de trabalho e cujo tempo de computação é similar entre os processos. Já a segunda análise efetuada sobre o Skyline Matrix Solver possibilitou analisar o impacto da criação de processos em tempo de execução nas aplicações que possuem carga de trabalho irregular e tempo de computação diferente entre os processos. Nossos resultados mostram que para aplicações com carga de trabalho regular e com pouco tempo útil de computação (similares ao Jogo da Vida), no melhor dos casos, a inserção da criação dinâmica de processos impactou em apenas 0, 2% no tempo total da aplicação. Já para aplicações com carga de trabalho irregular e com tempo consideravelmente útil de computação (similares ao Skyline Matrix Solver), mostramos que é possível obter ganho com a criação dinâmica de processos, em que no melhor dos casos, a implementação com MPI-2 foi 6% mais eficiente que a implementação MPI-1.