Resumo. Apresentamos a implementação paralela, em memória compartilhada, do precondicionador BILUk para matrizes BCSR, através do OpenMP, utilizando a técnica de escalonamento por níveis na construção numérica e na aplicação.Palavras-chave. paralelismo em memória compartilhada, solver triangular, precondicionadores, núcleos de cálculos intensivos, escalonamento por níveis, matrizes esparsas em bloco
IntroduçãoDiscutimos a construção e a aplicação de um precondicionador ILU (fatoração LU incompleta) por blocos, com preenchimento por níveis (BILUk) [5] e com paralelismo de memória compartilhada, utilizando o OpenMP. Baseamo-nos na técnica de escalonamento por níveis (level scheduling) [3], focando na sua implementação em CPU e MIC (Many Integrated Core Architecture) da Intel, cujo nome comercialé Xeon Phi, em particular nesse trabalho testamos o KNC (Knights Corner). Nosso contexto de interesseé a simulação da explotação de petróleo, onde um sistema de equações diferenciais parciais não-linearesé discretizado, dando origem a um sistema de equações algébricas não-lineares, queé resolvido por um método de Newton. Em cada passo desse método, temos que tratar sistemas lineares de grande porte, com matrizes esparsas tendo pequenos blocos densos relativos a cada nó da malha de discretização, através de métodos iterativos de Krylov. Nesse caso, podem ser resolvidos centenas de sistemas lineares que manterão as mesmas esparsidade e estrutura da matriz original, apesar de sofrerem alterações em suas entradas numéricas. Nosso objetivoé apresentar um método que leve em conta essas características e, por isso, possa se concentrar na paralelização da fatoração numérica e da aplicação do precondicionador. Além dessa breve introdução, essa contribuição apresenta, em sua segunda seção, a técnica utilizada para a paralelização do algoritmo; enquanto que na seção 3 mostramos detalhes da implementação do BILUk. A seção 4 trata do solver triangular, a rotina que aplica o precondicionador em cada iteração do solver linear. As seções 5 e 6 apresentam os 1