System Architectures and Programming Models