Paralell programming: an introduction