Standards like OpenMP, OpenACC will stay and compile to different architectures.

https://www.openacc.org/get-started

Also Parallel STL for C++17, C++20

# Alpaka

Alpaka is still documented as  unstable.

# Kokkos

Kokkos has the positive of an OpenMP backend. It might be enough to survive NVidia's monopolistic practices and seems stable.
 - Last commit 6 months ago? Bad...
 - Performance of big libraries like autodiff,  BLAS or Tensorflow?

# SYCL

SYCL is a Khronos standard and it has the backing of Intel. It should generate good code (see TBB). And Intel is working to incorporate it Clang.

Slight negative: depends on OpenCL, not a priority inside Nvidia for a long time. That may have changed. also Khronos seems over bureaucratic.

# Others (that CMS will never consider)


- Radical option: Julia https://juliaacademy.com/p/parallel-computing

Parallelism  defined in the language from 0.2. Tested in Tensorflow, SIMD, GPU...



- Swift: see swift tensorflow.

- Rust
   . check Rust SIMD and
   . and Weld (link to paper from Wld (NumPy, Rust and LLVM)


C++/Root never made an impact outside CERN, which helps to grow and gain traction. I would choose a pair language/library which shows promise outside CMS/Atlas.

raul
 


On 24/09/2019 14:18, David Colling wrote:
[log in to unmask]">Does anybody have experience of different portability libraries? CMS is looking to have one code base that can run across CPU, different GPUs, <accelerator xyz>.

So we (although sadly not UK CMS - yet) are looking at:


o Kokkos
o Alpaka
o SYCL

and I wandered if anybody had any experience of any of these?

Best,
david

########################################################################

To unsubscribe from the TB-SUPPORT list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=TB-SUPPORT&A=1




To unsubscribe from the TB-SUPPORT list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=TB-SUPPORT&A=1