bugGNU Octave - Bugs: bug #41277, isosurface plotting performance...


bug #41277: isosurface plotting performance poor on random data

Submitter:  None
Submitted:  Sun 19 Jan 2014 12:44:26 PM UTC
Category:  Plotting with OpenGL Severity:  3 - Normal
Priority:  3 - Low Item Group:  Performance
Status:  Postponed Assigned to:  None
Originator Name:  Originator Email:  -email is unavailable-
Open/Closed:  * Open Release:  * dev
Operating System:  * Any Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup

Tue 21 Jan 2014 10:15:48 PM UTC, comment #2: 

This is back to the poor performance of the patch function when called with lots of patches.  There is a similar bug open about the poor performance of the scatter function (bug #40663).  The problem is not Octave's m-file implementation of isosurface.  You can check that by changing the final command to be

tic; isosurface (x, y, z, v, 0.8); toc

On my machine the m-file takes just 1.15 seconds, but the actual rendering by OpenGL and the C++ code in Octave's drawnow routine take 17.5 seconds.

I think at some point the drawnow routine needs to be run under a profiler to find out what the bottleneck is.

Rik <rik5>
Group administrator
Sun 19 Jan 2014 03:50:53 PM UTC, comment #1: 

On Windows plotting isn't quite as fast as on Linux.

On my WinXP SP3 box (Core Duo, 2,5 GHz) it does take about 40-50 seconds (during which Octave doesn't respond), but the plot does appear. It looks like the attached .png

Note that any panning/zooming of the figure (or raising it to foreground) will cause a full redraw, each with 40-50 seconds drawing time.

BTW I use my own mxe cross-compiled Octave-3.8.0; but I doubt if is much different from Markus' one (after all, mxe-octave is meant to provide a standardized build).

Philip Nienhuis <philipnienhuis>
Group Member
Sun 19 Jan 2014 12:44:26 PM UTC, original submission:  

Suppose you have the following piece of code

space = -n/2:n/2-1
[x,y,z] = meshgrid (space,space,space);
v = randn(n,n,n);   %some measurement data
isosurface (x, y, z, v, 0.8);

On my GNU Octave build for Windows, this script never displays anything. The plotting window is frozen, CPU consumption is high, memory usage is high.
The same script under Linux works, but the plot window reacts very slowly to zoom/panning.

I know, my data is not the best, but I would not consider it bad on purpose! Therefore plotting should work (by reducing the number of patches to draw, subsampling,...) or issue a warning ("you are about to do something stupid...")

Installed: http://octave.osuv.de/3.8/windows/octave-3.8.0-1-installer.exe)



(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

Attached Files
file #30310:  41277.png added by philipnienhuis (121KiB - image/png)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by mtmiller (Updated the item)
  • -email is unavailable- added by rik5 (Posted a comment)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.


    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-12-21 mtmiller Priority5 - Normal 3 - Low
        StatusWorks For Me Postponed
        Release3.8.0 dev
        Operating SystemMicrosoft Windows Any
    2014-01-19 philipnienhuis Attached File- Added 41277.png, #30310
        StatusNone Works For Me

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code