1. A programming language system for a parallel computing architecture, the programming language system implemented by a parallel computing program stored in memory in a system having parallel processors, the system comprising: a host processor; a graphics processing unit (GPU) coupled to the host processor; a memory coupled to at least one of the host processor and the GPU, the parallel computing program being stored in the memory to allocate threads between the host processor and the GPU and wherein the programming language includes an API to allow an application to make calls using the API to allocate execution of the threads between the host processor and the GPU.