JHU 600.420 Parallel Programming