1) Early parallel architectures included the mainframe approach using a crossbar interconnect and the minicomputer approach using a shared bus. (2) Modern architectures have converged on a distributed memory model connected by a general-purpose network. (3) Programming models have also converged but hardware organizations remain flexible to support different approaches like message passing, shared memory, data parallel and systolic.