algorithms for parallel processing 3180296