Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.graphics.apps.gnuplot > #2588 > unrolled thread

Large plot performance help

Started byjesramsing@gmail.com
First post2014-09-22 04:20 -0700
Last post2014-09-24 17:17 +0200
Articles 4 — 4 participants

Back to article view | Back to comp.graphics.apps.gnuplot


Contents

  Large plot performance help jesramsing@gmail.com - 2014-09-22 04:20 -0700
    Re: Large plot performance help Ethan A Merritt <EAMerritt@gmail.com> - 2014-09-22 08:54 -0700
    Re: Large plot performance help Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2014-09-22 20:23 +0200
      Re: Large plot performance help Karl <mail.kfr@gmx.net> - 2014-09-24 17:17 +0200

#2588 — Large plot performance help

Fromjesramsing@gmail.com
Date2014-09-22 04:20 -0700
SubjectLarge plot performance help
Message-ID<ad72a35f-3953-4971-b5d4-0748d2b030ad@googlegroups.com>
I have some reasonable sized 3D arrays that I am working with (~3500 x 488 x 1) which basically is a height map.

gnuplot> set xlabel 'X'
gnuplot> set ylabel 'Y'
gnuplot> set zlabel 'Z'
gnuplot> set palette
gnuplot> splot 'c:\temp\ShowDoubleArray_OD5_RAP10.RawData.txt' with lines palette

0 0 0.0343
0 1 0.0345
.
.
0 487 0.035

1 0 0.0343
1 1 0.044 etc.

The performance is quite bad when I try to rotate it. The current file I am working on is 28megs, but since I am running on an I7 with Flashdisk then it should not take long to load. At least I have an analytical application also working with this file, and file IO is fast.

Any performance tips that someone can propose (and downscaling is not the answer, I am looking for some minute details that are apparent in GnuPlot)

Yours sincerely and with appreciation.
Jes R.

[toc] | [next] | [standalone]


#2589

FromEthan A Merritt <EAMerritt@gmail.com>
Date2014-09-22 08:54 -0700
Message-ID<lvpgo1$kqe$1@dont-email.me>
In reply to#2588
jesramsing@gmail.com wrote:

> I have some reasonable sized 3D arrays that I am working with (~3500 x
> 488 x 1) which basically is a height map.
> 
> gnuplot> set xlabel 'X'
> gnuplot> set ylabel 'Y'
> gnuplot> set zlabel 'Z'
> gnuplot> set palette
> gnuplot> splot 'c:\temp\ShowDoubleArray_OD5_RAP10.RawData.txt' with
> lines palette
> 
> 0 0 0.0343
> 0 1 0.0345
> .
> .
> 0 487 0.035
> 
> 1 0 0.0343
> 1 1 0.044 etc.
> 
> The performance is quite bad when I try to rotate it. 

The speed of interactive graphics depends strongly on which output
mode ("terminal") you are using.  In older gnuplot versions, typically

x11 (fastest) > wxt > Windows > qt

However in recent gnuplot versions both the wxt and qt terminals were
redesigned and became amazingly faster.  On my linux machines currently,
qt is about 50% faster than wxt, and about 4 times faster than x11.
I have not benchmarked on Windows.

> The current file
> I am working on is 28megs, but since I am running on an I7 with
> Flashdisk then it should not take long to load. At least I have an
> analytical application also working with this file, and file IO is
> fast.

Depending on what type of graph you are producing, each screen 
refresh (i.e. each incremental rotation) may require rereading the
data file and replotting.  So file access time can indeed be an issue.

> Any performance tips that someone can propose (and downscaling is not
> the answer, I am looking for some minute details that are apparent in
> GnuPlot)

On some platforms the processing of floating point number read from
a file is slowed down by error checking.
You can disable this with the command
   set datafile nofpe_trap

> Yours sincerely and with appreciation.
> Jes R.

[toc] | [prev] | [next] | [standalone]


#2591

FromHans-Bernhard Bröker <HBBroeker@t-online.de>
Date2014-09-22 20:23 +0200
Message-ID<c8b7opFk6emU1@mid.dfncis.de>
In reply to#2588
Am 22.09.2014 um 13:20 schrieb jesramsing@gmail.com:
> I have some reasonable sized 3D arrays that I am working with (~3500
> x 488 x 1) which basically is a height map.

Actually that's quite a bit larger than "reasonable".  There's no way
you'll be able to make out the level of detail of those data on-screen. 
  You have about as many data points in there as pixels on any feasible 
screen --- there's just no way you'll be able to make out lines between 
those points, at that resolution.  So you might as well plot that mass 
of data 'with dots'.  That should be faster, too.

> The performance is quite bad when I try to rotate it. The current
> file I am working on is 28megs, but since I am running on an I7 with
> Flashdisk then it should not take long to load.

What you probably don't recognize is that gnuplot may have to re-read 
that entire data file on every step of that rotation.  And it has to 
parse it all from decimal ASCII to binary float every time.  That's what 
makes this so slow: 1.7 million scanf() calls per re-draw will take time.

A binary data file would be a good deal smaller, and much faster to handle.

[toc] | [prev] | [next] | [standalone]


#2596

FromKarl <mail.kfr@gmx.net>
Date2014-09-24 17:17 +0200
Message-ID<lvun4i$qv0$1@news.rz.uni-karlsruhe.de>
In reply to#2591
Am 22.09.2014 20:23, schrieb Hans-Bernhard Bröker:
> What you probably don't recognize is that gnuplot may have to re-read
> that entire data file on every step of that rotation.  And it has to

The help on "refresh" says that mousing operations will use the data
already read in, if "appropriate".

Now you say refesh "may" not work on 3D rotation, i wonder what could
make it work or not work?

( "refresh" reuses the data after a "using" statement has been applied,
is that right? )

   Karl

[toc] | [prev] | [standalone]


Back to top | Article view | comp.graphics.apps.gnuplot


csiph-web