Processors with multiple cores and multiprocessors. Interconnection networks. Possibilities for scaling and composition. Speculative Multithreaded architecture. Caches and virtual memory. Hardware transactional memory. SSD mass memories. Storage systems. General purpose multiprocessor systems. High-performance systems. High availability systems. Stream Processors. Heterogeneous multiprocessors. Programming multiprocessor systems with shared memory.