Solved my problem; I wasn’t deleting the float arrays in the sink. Silly mistake.
Sincerely,
Tommy James Tracy II
Ph.D Student
High Performance Low Power Lab
University of Virginia
Phone: 913-775-2241
On Mar 27, 2014, at 10:27 AM, Tommy Tracy II <address@hidden> wrote:
Dear Marcus,
Thank you. I will explain my setup and system below
I am running Ubuntu 13.04, kernel: 3.8.0-35-generic in a VM.
I am using a pybombs-installed GR version v3.7.2.1-195-g19d111e2.
The description below is a small component of my overall system design; what I’m seeking to do is include a multiple-producer, multiple-consumer queue into the flow graph. The c++ code for this test program is here:
It may seem unnecessary to include a QUEUE in the case about, but I am benchmarking having a QUEUE vs. not using one.
Explaining the different blocks:
[FFT/IFFT] block is a hierarchical dummy load. It accepts a stream of floats, vectorizes the stream, does a forward FFT, then a reverse FFT, and de-vectorizes.
[THROUGHPUT] block is a transparent block that returns the running average throughput; it’s basically the compliment of the [THROTTLE BLOCK] (existing gnu radio::blocks)
[OUTPUT QUEUE SINK] block accepts a stream of floats, packages them into a series of 1024-float vectors, tacks on a message type, message index, and message size, and pushes the address of these messages onto the lock free queue.
|QUEUE|: This is a boost::lockfree::queue. This queue supports multiple producers and consumers. It dynamically grows in size. (unless I were to constrain the size)
[OUTPUT QUEUE SOURCE] block is basically the compliment of the [OUTPUT QUEUE SINK] block. It pops message addresses off of the queue, reads headers, and dumps the data on the output.