On 2016-12-24 13:39-0000 p.d.rosenb...@gmail.com wrote:

> Hi Alan
> It's great that these improvements have borne fruit.

> Regarding the two slower examples, I don't think it is cut and dry that it is 
> the semaphores are the cause. It may be that for these cases where there are 
> a large number of elements the ring buffer is filling up so the main 
> application gets stuck waiting for the viewer to render.

To Phil and Pedro:

Just to clarify with my unnamed semaphores proof-of-concept project at
cmake/test_linux_ipc, I didn't use a ring buffer at all. Instead, it
was just a simple shared-memory buffer.  The receiving end would
sem_wait until the unnamed semaphore set by the sending end said it
was time to read. And the sending end would sem_wait to write to that
buffer depending on the initial semaphore condition to start and then
afterward by how the semaphore was set by the receiving end.  And one
of the nice advantages of the unnamed semaphores approach is the
memory area used by unnamed semaphores for interprocess communication
is just part of the shared memory buffer with no file semantics
involved.  I don't know how big an efficiency improvement that will
be, but the important point for me is it does make the code easier to
understand.

I haven't looked at the current code in this regard but if either end
is using a loop with a timed wait to check on conditions for a ring
buffer, then that may be an efficiency concern when relatively large
amounts of data have to be passed.  Anyhow, there are no timed waits
at all in the proof-of-concept code, and I think the efficiency of the
result (25MBytes of data passed between sender and receiver in 0.3
seconds for a small buffer and even shorter times for larger buffers)
speaks for itself.

However, instead of me speculating any more about what a great
efficiency improvement this _might_ be, this is obviously "show me the
code" time.  Therefore, after this release is out the door, I plan to
implement the proof-of-concept project's ideas in wxwidgets_comms.cpp.
And once that is working on a topic branch, I will document the time
required on both the -dev wxwidgets end AND the wxPLViewer end for
example 8 to complete for both that topic branch and master.  And if
the proof-of-concept approach turns out to be a net efficiency
benefit, push it, but otherwise abandon it.  You and Pedro are, of
course, welcome to join me in working on this proposed topic branch
even if you decide to limit your involvement to acting as a sounding
board if I run into trouble with this implementation.

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
__________________________

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to