Parallel Computing Architectures and APIs