Parallel Computing Terms

I bumped into this excellent article by Susan Morgan, where she explains various terms associated with parallel programming. This article explains the common parallel and multi-threading concepts, and the differences between the hardware and software aspects of parallel processing. It briefly describes the hardware architectures that make parallel processing possible, and presents several popular parallel programming models.