Towards Optimized Vector Instructions for High-Performance Functional Programming

Loading...
Thumbnail Image

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

Citation