Skip to main content

Showing 1–6 of 6 results for author: Sinkarovs, A

.
  1. arXiv:2505.08906  [pdf

    cs.PL cs.DC cs.PF

    Comparing Parallel Functional Array Languages: Programming and Performance

    Authors: David van Balen, Tiziano De Matteis, Clemens Grelck, Troels Henriksen, Aaron W. Hsu, Gabriele K. Keller, Thomas Koopman, Trevor L. McDonell, Cosmin Oancea, Sven-Bodo Scholz, Artjoms Sinkarovs, Tom Smeding, Phil Trinder, Ivo Gabe de Wolff, Alexandros Nikolaos Ziogas

    Abstract: Parallel functional array languages are an emerging class of programming languages that promise to combine low-effort parallel programming with good performance and performance portability. We systematically compare the designs and implementations of five different functional array languages: Accelerate, APL, DaCe, Futhark, and SaC. We demonstrate the expressiveness of functional array programming… ▽ More

    Submitted 13 May, 2025; originally announced May 2025.

  2. arXiv:2501.05867  [pdf, other

    cs.PL cs.LG cs.LO

    Neural Network Verification is a Programming Language Challenge

    Authors: Lucas C. Cordeiro, Matthew L. Daggitt, Julien Girard-Satabin, Omri Isac, Taylor T. Johnson, Guy Katz, Ekaterina Komendantskaya, Augustin Lemesle, Edoardo Manino, Artjoms Šinkarovs, Haoze Wu

    Abstract: Neural network verification is a new and rapidly developing field of research. So far, the main priority has been establishing efficient verification algorithms and tools, while proper support from the programming language perspective has been considered secondary or unimportant. Yet, there is mounting evidence that insights from the programming language community may make a difference in the futu… ▽ More

    Submitted 30 January, 2025; v1 submitted 10 January, 2025; originally announced January 2025.

    Comments: Accepted at ESOP 2025, European Symposium on Programming Languages

    Journal ref: ESOP 2025

  3. arXiv:2406.10405  [pdf, other

    cs.PL

    Correctness is Demanding, Performance is Frustrating

    Authors: Artjoms Sinkarovs, Thomas Koopman, Sven-Bodo Scholz

    Abstract: In this paper we demonstrate a technique for developing high performance applications with strong correctness guarantees. We use a theorem prover to derive a high-level specification of the application that includes correctness invariants of our choice. After that, within the same theorem prover, we implement an extraction of the specified application into a high-performance language of our choice… ▽ More

    Submitted 14 June, 2024; originally announced June 2024.

  4. arXiv:2105.10819  [pdf, ps, other

    cs.PL

    Choosing is Losing: How to combine the benefits of shallow and deep embeddings through reflection

    Authors: Artjoms Šinkarovs, Jesper Cockx

    Abstract: Dependently-typed host languages empower users to verify a wide range of properties of embedded languages and programs written in them. Designers of such embedded languages are faced with a difficult choice between using a shallow or a deep embedding. The former is easier to use because the entire infrastructure of the host langauge is immediately available. Meanwhile, the latter gives full access… ▽ More

    Submitted 22 May, 2021; originally announced May 2021.

  5. Array Languages Make Neural Networks Fast

    Authors: Artjoms Šinkarovs, Hans-Nikolai Vießmann, Sven-Bodo Scholz

    Abstract: Modern machine learning frameworks are complex: they are typically organised in multiple layers each of which is written in a different language and they depend on a number of external libraries, but at their core they mainly consist of tensor operations. As array-oriented languages provide perfect abstractions to implement tensor operations, we consider a minimalistic machine learning framework t… ▽ More

    Submitted 11 December, 2019; originally announced December 2019.

  6. arXiv:1710.03832  [pdf, ps, other

    cs.PL

    A Lambda Calculus for Transfinite Arrays: Unifying Arrays and Streams

    Authors: Artjoms Sinkarovs, Sven-Bodo Scholz

    Abstract: Array programming languages allow for concise and generic formulations of numerical algorithms, thereby providing a huge potential for program optimisation such as fusion, parallelisation, etc. One of the restrictions that these languages typically have is that the number of elements in every array has to be finite. This means that implementing streaming algorithms in such languages requires new t… ▽ More

    Submitted 10 October, 2017; originally announced October 2017.