1. A system for compiling or runtime executing a fork-join data parallel program with function calls, comprising: a partitioner operable to partition groups into a master group and at least one worker group; and a thread designator associated with said partitioner and operable to designate only 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.