|
|
# Cross-Device Execution
|
|
|
|
|
|
Normal heterogeneous parallel processing system consists of two or more devices with individual architectures co-operating together for faster processing. In such an environment, placement of operations across these devices is heavily influenced by the data dependencies across operations. Hence, the cross-device execution is restricted to operator-at-a-time processing where first all the data for processing are first copied to the target device and finally the execution is carried out. In this method, the execution is faster as there is no wait time for data arrival. However, in the downside, the execution cannot be moved further until the results are materialized by the device. Hence, to provide faster response time across devices, we use iterative execution model.
|
|
|
|
|
|
## Iterative Execution
|
|
|
|
|
|
In iterative execution, a chunk of input is processed in one operation and then the output is forwarded to another operation. After this, the next chunk is processed by the former operation. This is shown to be effective for modern CPUs, due to their hardware benefits of fitting data within the cache (e.g. MonetDB). Extending this approach, the devices can also perform this chunked or iterative execution of a given SQL operation by performing a chunk of data across devices.
|
|
|
|
|
|
### Challenges in Cross-Device Iterative Processing
|
|
|
|