Faster Coroutine Pipelines episode artwork

EPISODE · Dec 12, 2017 · 18 MIN

Faster Coroutine Pipelines

from International Conference on Functional Programming 2017

Mike Spivey, University of Oxford, UK, gives the first presentation in the second panel, Functional Programming Techniques, in the ICFP 2017 conference. Coroutine pipelines provide an attractive structuring mechanism for complex programs that process streams of data, with the advantage over lazy streams that both ends of a pipeline may interact with the I-O system, as may processes in the middle. Two popular Haskell libraries, Pipes and Conduit, support such pipelines. In both libraries, pipelines are implemented in a direct style by combining a free monad of communication events with an interpreter for (pseudo-)parallel composition that interleaves the events of its argument processes. These implementations both suffer from a slow-down when processes are deeply nested in sequence or in parallel. We propose an alternative implementation of pipelines based on continuations that does not suffer from this slow-down. What is more, the implementation is significantly faster on small, communication-intensive examples even where they do not suffer from the slow-down, and faster even than comparable programs based on lazy streams. The continuation-based implementation may be derived from the direct-style implementation by algebraic reasoning.

Episode metadata supplied by the publisher feed · Published Dec 12, 2017

Embed this episode

NOW PLAYING

Faster Coroutine Pipelines

0:00 18:58

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

No similar episodes found.

No similar podcasts found.

Frequently Asked Questions

How long is this episode of International Conference on Functional Programming 2017?

This episode is 18 minutes long.

When was this International Conference on Functional Programming 2017 episode published?

This episode was published on December 12, 2017.

Can I download this International Conference on Functional Programming 2017 episode?

Yes. Use the download control on the episode player to save the publisher-provided media file.
URL copied to clipboard!