Towards Optimized Vector Instructions for High-Performance Functional Programming
Loading...
Date
2020-09-24
Authors
Akter, Mamtaj
Journal Title
Journal ISSN
Volume Title
Publisher
University of Oregon
Abstract
The Basic Linear Algebra Subprograms or BLAS provide the foundation
for much of the software used in scientific computing. To date, BLAS has been
implemented in C, Fortran, and directly in assembly. These languages allow the
implementations to be well optimized by hand ensuring when a BLAS routine is
called that it is as fast a possible.
Functional programming languages, and in particular Haskell, do not allow
the fine-grained control over memory, and their high-level features make it hard
to optimize a single function to the level of C or assembly. However, Haskell
has an advantage when optimizing combinations of container-based operations.
Because of this we explore both implementing BLAS in Haskell and comparing the
Glasgow Haskell Compiler’s ability to optimize scientific programs to that of a C
compiler.
Description
Keywords
Basic Linear Algebra Subprograms, Functional Programming, High-Performance Computing, Optimization, Scientific Computing, Vector Instructions