Unified Parallel C (UPC) is an extension of the C programming language designed for high performance computing on large-scale parallel machines, including those with a common global address space (SMP and NUMA) and those with distributed memory (clusters).