Berserkr: a Beowulf Cluster Emulator for Teaching Parallel Programming