||Fundamental theoretical issues in designing parallel algorithms and architectures. Shared memory models of parallel computation. Parallel algorithms for linear algebra, sorting, Fourier Transform, recurrence evaluation, and graph problems. Interconnection network based models. Algorithm design techniques for networks like hypercubes, shuffle-exchanges, trees, meshes and butterfly networks. Systolic arrays and techniques for generating them. Relationships among networks and with shared memory models. Message routing. Cost of implementing shared memory and network based models in VLSI technology. Scalability issues.