What is the reason for writing parallel programs? Why do programmers write parallel programs instead of giving them the ability to automatically convert from serial to parallel?
Because the technology to extract paralellism automatically from sequential programs is still woeful... yes, some compilers/languages do take a stab at the problem, but for really demanding applications it still pays off to do the job manually.