Controlled-source electromagnetic (CSEM) surveying becomes a widespread method for oil and gaz exploration, which requires fast and efficient software for inverting large-scale EM datasets. In this context, one often needs to solve sparse systems of linear equations with a large number of sparse right-hand sides, each corresponding to a given transmitter position. Sparse direct solvers are very attractive for these problems, especially when combined with low-rank approximations which significantly reduce the complexity and the cost of the factorization. In the case of thousands of right-hand sides, the time spent in the sparse triangular solve tends to dominate the total simulation time and here we propose several approaches to reduce it. A significant reduction is demonstrated for marine CSEM application by utilizing the sparsity of the right-hand sides (RHS) and of the solutions that results from the geometry of the problem. Large gains are achieved by restricting computations at the forward substitution stage to exploit the fact that the RHS matrix might have empty rows (vertical sparsity) and/or empty blocks of columns within a non-empty row (horizontal sparsity). We also adapt the parallel algorithms that were designed for the factorization to solve-oriented algorithms and describe performance optimizations particularly relevant for the very large numbers of right-hand sides of the CSEM application. We show that both the operation count and the elapsed time for the solution phase can be significantly reduced. The total time of CSEM simulation can be divided by approximately a factor of 3 on all the matrices from our set (from 3 to 30 million unknowns, and from 4 to 12 thousands RHSs).
Exploitation efficace du creux dans les solveurs directs sur des problèmes d'électromagnétisme 3D à source contrôléeRésumé : L'électromagnétisme à source controlée (CSEM) est une méthode de plus en plus utilisée pour l'exploration du gaz et du pétrole. L'inversion des données électromagnétiques nécessite souvent la résolution de systèmes d'équations linéaires avec un grand nombre de seconds membres creux, chacun correspondant à la position d'une source/d'un émetteur dans l'application. Les solveurs creux directs sont très attrayants pour ce type de problèmes, surtout lorsqu'ils sont combinés avec des approximations de rang faible qui réduisent la complexité et le coût de la factorisation. Comme il peut y avoir des milliers de seconds membres, le coût de la phase de résolution devient alors prédominant. Dans cet article, nous montrons qu'il est possible d'exploiter la géométrie du problème et la structure creuse qui apparaît à la fois dans les seconds membres et dans la matrice des solutions et que cela peut avoir un impact important sur les performances des phases de résolutions triangulaires. Pour cela, nous organisons les calculs de manière à minimiser le nombre d'opérations, tout en traitant les seconds membres par blocs qui tiennent en mémoire et qui visent à conserver au mieux le parallélisme lors de la phae de résolution....