And it's not ready for prime time yet. This was an early experiment on Epiphany as a side project from the main effort. There is a lot left to improve, but the intention is to place this on GitHub at some point and it won't just be for Epiphany. We would like to delay this as long as possible after witnessing what happened with Kokkos -- they released an unfinished product on the DOE in a panic to have some semblance of code portability between their next Xeon Phi and Power/GPU supercomputers. The end result was that many things are completely missing or unrefined and to properly fix it would break codes.
I don't think we want to begin implementing 'high order functions' but rather enable expressions to be written that compile to efficient code. But I'll keep it in mind. It's not a library though it might be considered a header-only library. It actually can't be pre-compiled and shipped as a proprietary package, so it must be open source if anyone will use it.
The memory layout accessors vary between architectures and platforms. It's a single like of code appearing in an application header that defines memory layout and has a certain complexity to it. Each platform will have defaults, but it's a memory-layout-first approach to parallel computing. The parallel kernel code will remain the same and the expression templates handle the rest. Each platform may have specific optimizations baked into the layout description.Statistics: Posted by jar — Fri May 05, 2017 5:15 am
]]>