[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Perfromance problem running multiple copies of Octave on a multicore pro

From: Ian McCallion
Subject: Perfromance problem running multiple copies of Octave on a multicore processor
Date: Mon, 30 Nov 2015 23:39:02 +0000

I have an audio signal processing system that I've parallelised by
dividing up the audio data into several parts, launching a separate
copy of octave to run each part, waiting until all have ended, and
collating the results. I divide the audio into a part for each
"thread" of the processor, so I run 8 on my Core i7 laptop. This
system has worked well using Octave 3.8.2 and earlier for 5 years, but
it has a major performance problem on Octave 4.0.0, taking up to 100
percent longer compared to Octave 3.8.2!!!

I first suspected it was due Octave 4.0.0 using to a different version
of openblas, but I swapped for the older version and nothing changed.
I then tried launching different numbers of copies of Octave.
Surprisingly this changed the performance comparison dramatically as
shown in this table:

Processes     3.8.2           4.0.0          percent improvement
     1            67.8 secs       66.0 secs         3
     2            36.9 secs       36.8 secs         0
     4            21.9 secs       26.2 secs       -20
     8            15.8 secs       31.8 secs      - 100

Essentially, with one active copy of Octave version 4.0.0 is slightly
faster. With two active copies of octave they perform essentially the
same. After that Octave 4.0.0 gets slower dramatically the more copies
are run.

As far as I can see this proves that there is some serialisation going
on in Octave 4.0.0 that was not going on in Octave 3.8.2. It sounds
like a bug (system wide serialisation protecting a local resource?).
Has anyone got any suggestions for a workaround, alternative
explanations for the cause of the problem or other tests I can run to
elucidate the problem.

Cheers... Ian

reply via email to

[Prev in Thread] Current Thread [Next in Thread]