Exploiting Task-Level Parallelism Automatically Using pTask
Sum Huynh, Tarek S. Abdelrahman · 2002
Existing systems supporting task-level parallelism often involve the process of task synchronization and/or task creation. Task synchronization requires specification of dependencies or dataflow constraints among tasks, or data usage information of tasks. This thesis describes a system called pTask which automatically detects and exploits tasklevel parallelism in sequential array-based C programs. The system is composed of two components: a compile-time analysis module and a run-time system. The input to the compile-time module is a sequential C program in which the programmer annotates procedures to be asynchronously invoked as tasks. The output is a parallel program containing constructs for the creation and coordination of parallel tasks. pTask utilizes current compile technology to statically extract data usage information of tasks, and uses this information at run-time to dynamically detect and enforce data dependencies among tasks in order to exploit parallelism. A prototype of pTask has been implemented on a KSR1 multiprocessor. Experimental results show the system to be efficient and effective for many applications.