  The Black-Scholes option pricing problem is one of the widely used financial
benchmarks. We explore the possibility of developing a high-performance
portable code using the SYCL (Data Parallel C++) programming language. We start
from a C++ code parallelized with OpenMP and show optimization techniques that
are beneficial on modern Intel Xeon CPUs. Then, we port the code to SYCL and
consider important optimization aspects on CPUs and GPUs (device-friendly
memory access patterns, relevant data management, employing vector data types).
We show that the developed SYCL code is only 10% inferior to the optimized C++
code when running on CPUs while achieving reasonable performance on Intel GPUs.
We hope that our experience of developing and optimizing the code on SYCL can
be useful to other researchers who plan to port their high-performance C++
codes to SYCL to get all the benefits of single-source programming.
