Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Roman Leshchinskiy is active.

Publication


Featured researches published by Roman Leshchinskiy.


workshop on declarative aspects of multicore programming | 2007

Data parallel Haskell: a status report

Manuel M. T. Chakravarty; Roman Leshchinskiy; Simon L. Peyton Jones; Gabriele Keller; Simon Marlow

We describe the design and current status of our effort to implement the programming model of nested data parallelism into the Glasgow Haskell Compiler. We extended the original programming model and its implementation, both of which were first popularised by the NESL language, in terms of expressiveness as well as efficiency. Our current aim is to provide a convenient programming environment for SMP parallelism, and especially multicore architectures. Preliminary benchmarks show that we are, at least for some programs, able to achieve good absolute performance and excellent speedups.


international conference on functional programming | 2007

Stream fusion: from lists to streams to nothing at all

Duncan Coutts; Roman Leshchinskiy; Don Stewart

This paper presents an automatic deforestation system, stream fusion, based on equational transformations, that fuses a wider range of functions than existing short-cut fusion systems. In particular, stream fusion is able to fuse zips, left folds and functions over nested lists, including list comprehensions. A distinguishing feature of the framework is its simplicity: by transforming list functions to expose their structure, intermediate values are eliminated by general purpose compiler optimisations. We have reimplemented the Haskell standard List library on top of our framework, providing stream fusion for Haskell lists. By allowing a wider range of functions to fuse, we see an increase in the number of occurrences of fusion in typical Haskell programs. We present benchmarks documenting time and space improvements.


international conference on functional programming | 2010

Regular, shape-polymorphic, parallel arrays in Haskell

Gabriele Keller; Manuel M. T. Chakravarty; Roman Leshchinskiy; Simon L. Peyton Jones; Ben Lippmeier

We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of our approach are that it (1) is purely functional, (2) supports reuse through shape polymorphism, (3) avoids unnecessary intermediate structures rather than relying on subsequent loop fusion, and (4) supports transparent parallelisation. We show how to embed two forms of shape polymorphism into Haskells type system using type classes and type families. In particular, we discuss the generalisation of regular array transformations to arrays of higher rank, and introduce a type-safe specification of array slices. We discuss the runtime performance of our approach for three standard array algorithms. We achieve absolute performance comparable to handwritten C code. At the same time, our implementation scales well up to 8 processor cores.


international conference on computational science | 2006

Higher order flattening

Roman Leshchinskiy; Manuel M. T. Chakravarty; Gabriele Keller

We extend the flattening transformation, which turns nested into flat data parallelism, to the full higher-order case, including lambda abstractions and data parallel arrays of functions. Our central observation is that flattening needs to transform the closures used to represent functional values. Thus, we use closure conversion before flattening and introduce array closures to represent arrays of functional values.


international conference on functional programming | 2013

Exploiting vector instructions with generalized stream fusio

Geoffrey Mainland; Roman Leshchinskiy; Simon L. Peyton Jones

Stream fusion is a powerful technique for automatically transforming high-level sequence-processing functions into efficient implementations. It has been used to great effect in Haskell libraries for manipulating byte arrays, Unicode text, and unboxed vectors. However, some operations, like vector append, still do not perform well within the standard stream fusion framework. Others, like SIMD computation using the SSE and AVX instructions available on modern x86 chips, do not seem to fit in the framework at all. In this paper we introduce generalized stream fusion, which solves these issues. The key insight is to bundle together multiple stream representations, each tuned for a particular class of stream consumer. We also describe a stream representation suited for efficient computation with SSE instructions. Our ideas are implemented in modified versions of the GHC compiler and vector library. Benchmarks show that high-level Haskell code written using our compiler and libraries can produce code that is faster than both compiler- and hand-vectorized C.


Sigplan Notices | 2013

Vectorisation avoidance

Gabriele Keller; Manuel M. T. Chakravarty; Roman Leshchinskiy; Ben Lippmeier; Simon L. Peyton Jones

Flattening nested parallelism is a vectorising code transform that converts irregular nested parallelism into flat data parallelism. Although the result has good asymptotic performance, flattening thoroughly restructures the code. Many intermediate data structures and traversals are introduced, which may or may not be eliminated by subsequent optimisation. We present a novel program analysis to identify parts of the program where flattening would only introduce overhead, without appropriate gain. We present empirical evidence that avoiding vectorisation in these cases leads to more efficient programs than if we had applied vectorisation and then relied on array fusion to eliminate intermediates from the resulting code.


practical aspects of declarative languages | 2009

Recycle Your Arrays

Roman Leshchinskiy

Purely functional arrays are notoriously difficult to implement and use efficiently due to the absence of destructive updates and the resultant frequent copying. Deforestation frameworks such as stream fusion achieve signficant improvements here but fail for a number of important operations which can nevertheless benefit from elimination of temporaries. To mitigate this problem, we extend stream fusion with support for in-place execution of array operations. This optimisation, which we call recycling , is easy to implement and can significantly reduce array allocation and copying in purely functional array algorithms.


international conference on functional programming | 2012

Work efficient higher-order vectorisation

Ben Lippmeier; Manuel M. T. Chakravarty; Gabriele Keller; Roman Leshchinskiy; Simon L. Peyton Jones

Existing approaches to higher-order vectorisation, also known as flattening nested data parallelism, do not preserve the asymptotic work complexity of the source program. Straightforward examples, such as sparse matrix-vector multiplication, can suffer a severe blow-up in both time and space, which limits the practicality of this method. We discuss why this problem arises, identify the mis-handling of index space transforms as the root cause, and present a solution using a refined representation of nested arrays. We have implemented this solution in Data Parallel Haskell (DPH) and present benchmarks showing that realistic programs, which used to suffer the blow-up, now have the correct asymptotic work complexity. In some cases, the asymptotic complexity of the vectorised program is even better than the original.


Archive | 2009

Instant Generics: Fast and Easy

Manuel M. T. Chakravarty; Gabriel Ditu; Roman Leshchinskiy


foundations of software technology and theoretical computer science | 2008

Harnessing the Multicores: Nested Data Parallelism in Haskell.

Simon L. Peyton Jones; Roman Leshchinskiy; Gabriele Keller; Manuel M. T. Chakravarty

Collaboration


Dive into the Roman Leshchinskiy's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Gabriele Keller

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar

Ben Lippmeier

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar

Don Stewart

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Gabriel Ditu

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar

Gabriele Keller

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge