This paper presents an overview of parallel algorithms and their implementations forsolving large sparse linear systems which arise in scientific and engineering applications. Preconditioners constitute the most important ingredient in solving such systems. As will be seen, the most common preconditioners used for sparse linear systems adapt domain decomposition concepts to the more general framework of "distributed sparse linear systems". Variants of Schwarz procedures and Schur complement techniques will be discussed. We will also report on our own experience in the parallel implementation of a fairly complex simulation of solid-liquid flows.