Hi Laurent:

I have put my reply to you on list for obvious reasons.

On 2016-11-14 14:26+0100 Laurent Berger wrote:

> Hi Alan,
>
> I would try to help you

Thanks in advance for that.

> but I'm not familiar on linux (see attached file for 
> version).

>From what you included, your Linux platform has access to wxwidgets
version 3.0 (as do I).  But the rest of your platform (old Linux Mint
distribution using a relatively old kernel version 3.2.0-2-amd64
compared to my much more modern Debian Jessie using a fairly
up-to-date kernel version 3.16.0-4-amd64) provides an extremely useful
testing contrast in case the issue is some lameness in the IPC
implementation for my particular Linux kernel.  (IPC, i.e.,
interprocess communication is used to communicate between -dev
wxwidgets and the wxPLViewer application that displays the results.)

> I think it is this message 
> (https://sourceforge.net/p/plplot/mailman/message/34744869/)

Yes, that message and the following one that provided the screenshots referred 
to
in that message are the relevant ones.

>
> I have build plplot on linux using cmake 3.0.2 using "Unix Makefiles"
> Then sudo make install. I have attached git log result and cmakecache
> Then  I run in folder examples/c++
> ./x01c -dev wxdrivers
>
> I can see a window with 4 curves. Windows title is wxPLviewer. No problem
> Now what do you want to test ?

Speed.

You measure speed on linux using, e.g.,

software@raven> time examples/c/x01c -dev wxwidgets -np
PLplot library version: 5.11.1

real    0m0.652s
user    0m0.064s
sys     0m0.016s
software@raven> 
software@raven> time examples/c/x01c -dev wxwidgets -np
PLplot library version: 5.11.1

real    0m9.327s
user    0m0.072s
sys     0m0.008s

That -np option stands for "no pause" and allows you to measure time
without waiting for the human reaction of clicking on the GUI to
finish the display.

Those two measurements obviously have a huge difference in the real
time used. The first timing is not too bad, but (by chance) the second
timed run shows the problem which is quite often there is a random
drop of at least an order of magnitude and sometimes two orders of
magnitude in speed of communications between -dev wxwidgets and
wxPLviewer due to excessive times when my cpus sit absolutely idle (as
proved above by comparison of the sum of the user + sys times and the
real time required to finish the example in the second time run).
(This excessive idle time is also proved by my screenshots of my cpu
meter that are referred to above.) The above results are for the
current master branch tip.  By way of comparison here are the
consistent timing results I get for -dev xwin, -dev qtwidget (for
Qt5), and -dev xcairo on my platform.

software@raven> time examples/c/x01c -dev xwin -np
PLplot library version: 5.11.1

real    0m0.482s
user    0m0.008s
sys     0m0.008s
software@raven> time examples/c/x01c -dev xwin -np
PLplot library version: 5.11.1

real    0m0.472s
user    0m0.012s
sys     0m0.004s
software@raven> time examples/c/x01c -dev qtwidget -np
PLplot library version: 5.11.1
libGL error: failed to authenticate magic 759
libGL error: failed to load driver: nouveau

real    0m0.472s
user    0m0.088s
sys     0m0.012s
software@raven> 
software@raven> time examples/c/x01c -dev qtwidget -np
PLplot library version: 5.11.1

real    0m0.452s
user    0m0.076s
sys     0m0.020s
software@raven> time examples/c/x01c -dev xcairo -np
PLplot library version: 5.11.1

real    0m0.239s
user    0m0.048s
sys     0m0.012s
software@raven> time examples/c/x01c -dev xcairo -np
PLplot library version: 5.11.1

real    0m0.229s
user    0m0.044s
sys     0m0.012s

If you get consistent timing results for -dev wxwidgets no matter how
often you repeat the experiment and those timing results are within a
factor of two of the timing results for one or more of the above
interactive devices, then it is clear the IPC problem is likely due to
some kernel issue on my Debian Jessie platform, and we can write off
my timing results above to that cause.  But if you also get wildly
inconsistent and often extremely slow wxwidgets results for a
completely different Linux kernel, then either IPC kernel
implementations on Linux are uniformly bad regardless of kernel
version (a conclusion which I doubt) or the way that -dev wxwidgets
and wxPLviewer currently use IPC to communicate between them is set up
in a bad way for the Linux case, that randomly causes excessive idle
times, and that is an issue that the PLplot development team needs to
urgently address if we ever want the wxwidgets device to be popular on
Linux.

I am looking forward to your reply with similar time experiments
on your own Linux platform.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to