1. A system for compiling or runtime executing a fork-join data parallel program with function calls, comprising: a single-instruction-multiple-thread (SIMT) processor including a pipeline control unit; a partitioner implemented in software operable to partition any thread groups of said SIMT processor into a master group and at least one worker group prior to said compiling or said runtime executing of said fork-join data parallel program; and a thread designator implemented in software associated with said partitioner and operable to designate any one thread from said master group for execution as master thread and all threads in said at least one worker group for execution as worker threads prior to said compiling or said runtime executing of said fork-join data parallel program; wherein: said master thread of said master group operates during a sequential phase of said fork-join data parallel program running on said SIMT processor; said worker threads of said at least one worker group operate during a parallel phase of said fork-join data parallel program running on said SIMT processor; said master thread waiting until said parallel phase is complete; and other threads of said master group remaining idle during said fork-join data parallel program; and said system is operable to configure shared memory of said SIMT processor to identify a current task.