TY - JOUR AU - Krasnov, Mikhail M. AU - Feodoritova, Olga B. PY - 2022/12/30 Y2 - 2024/03/29 TI - Functional Programming Libraries for Graphics Accelerators JF - Supercomputing Frontiers and Innovations JA - superfri VL - 9 IS - 4 SE - Articles DO - 10.14529/jsfi220403 UR - https://superfri.org/index.php/superfri/article/view/465 SP - 28-37 AB - <p>Modern graphics accelerators (GPUs) can significantly speed up the execution of numerical tasks. However, porting programs to graphics accelerators is not an easy task, sometimes requiring their almost complete rewriting. CUDA graphics accelerators, thanks to the technology developed by NVIDIA, allow you to have a single source code for both conventional processors (CPUs) and graphics accelerators (CUDA). However, parallelization on shared memory is done differently and still must be specified explicitly. The use of the functional programming library developed by the authors makes it possible to hide the use of one or another parallelization mechanism on shared memory inside the library and make the user source code independent of the computing device used (CPU or CUDA). Functional programming is based on the modern mathematical theory, namely the Category Theory, in which the notions of Functors and Monads are widely used. Our work intensively utilizes these notions and extends them to grid expressions used in solving numerical problems.</p> ER -