Describir: Parallel programming: techniques and applications