Re: [LAU] multiJACK patch management: the first glimmerings of success

From: Alexandre DENIS <contact@email-addr-hidden>
Date: Wed Apr 06 2016 - 01:26:32 EEST

On Tue, 5 Apr 2016 22:27:46 +0200
Jörn Nettingsmeier <nettings@email-addr-hidden> wrote:

> I have never used a graph as complex as Jonathan's, but I don't see
> how adding virtual machine and networking overhead could improve
> throughput when JACK2 should already parallelize everything that can
> be parallelized... Wouldn't the time be better spent to analyze
> JACK2's scheduling behaviour and catch bugs if there are any?

Hi,

Jack2 cannot parallelize processing if the graph is a pipeline: since
every stage depends on the data from previous stage, they must be run
in sequence.

However, a pipeline may be parallelized if you trade parallelism
against latency. You can run each stage in parallel if they process
data from different periods. Jack2 doesn't do that by itself since it
would introduce uncontrolled latency.

When you run multiple jackd and link them with netjack, you introduce
latency in the pipeline, which explains why you can have more
parallelism. However, it looks completely overkill to me and
introduces lots of overhead.

I think it should be doable to write a simple client that connects as
two unrelated clients to jack, and feeds its outputs with its inputs
with one period of delay. It will make jack2 run the client connected
to its inputs and to its outputs in parallel, since jackd doesn't see
it as a dependency; but the latency of one period is unavoidable, since
we cannot predict whether jackd will invoke first the callback for the
inputs or for the output (or maybe at the same time on different
cores). Such a client should be no more than a few hundred lines of
code.

-a.

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user

Received on Wed Apr 6 04:15:01 2016

This archive was generated by hypermail 2.1.8 : Wed Apr 06 2016 - 04:15:01 EEST