Describir: Algorithms and Architectures for Parallel Processing