Hetero Streams Library is a library that provides a streaming abstraction for mapping user-defined tasks to heterogeneous platforms. It provides the plumbing needed to support remote memory management, data movement, remote invocation, and synchronization.
While the initial implementations support execution only on Intel® Xeon® and leveraged-boot Intel® Xeon Phi™ cards over PCIe, the goal of the library is to support a full spectrum of heterogeneous systems, including those that are comprised of clustered mixes of CPUs and coprocessors. Execution may be local or remote. The library's architecture has been designed to offer abstractions that enable portability across different systems with different numbers and kinds of resources, with minimal changes that affect only the portions of the code that bind those abstractions to particular sets of physical resources.