Effective Load Balancing Using Data Driven Threads in GCC
Stream programming restricts parallel processing that can be performed by applying a series of kernel functions to elements in a stream by compilers. It achieves this by decomposing the program into tasks and identifying the flow of data between them. Existing system provides an extension to OpenMP 3.0 in GCC compiler for enabling stream processing. But the system fails to support proper load balancing. Proposed system tries to overcome this limitation by making use of data driven scheduling by means of data flow threads implemented in the compiler.