[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] How to utilize multi-thread processor

From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] How to utilize multi-thread processor
Date: Tue, 28 Aug 2012 08:22:33 -0400

On Mon, Aug 27, 2012 at 7:07 AM, Qing Yang <address@hidden> wrote:
> Hi there,
> I am currently doing a OFDM transceiver project based on RawOFDM. We want to
> implement 20MHz bandwidth transmit/receive, but the RawOFDM code seems to
> support only narrow band (<1MHz). Once I set the sample-rate larger than
> 1MHz, my program will block with overrun messages (more details here
> http://lists.gnu.org/archive/html/discuss-gnuradio/2012-08/msg00069.html). I
> think the reason is that at 20MHz sample-rate, USRP produces too much data
> for the PC to process and drain PC's computation power.
> To boost the speed, I have two questions
> 1) My cpu have 8 threads(4 cores), can I manually dedicate one thread to
> each gr block, and make it a pipe-line system? Tom mentioned that gnuradio
> use a "thread-per-block" scheduler
> (http://lists.gnu.org/archive/html/discuss-gnuradio/2010-09/msg00274.html)
> but in my case only two threads are 100% occupied when I run the program.
> 2) Inside some blocks, we extensively use vector multiplications (e.g.,
> precoding, CFO compensation). I've heard about the use of SSE to boost the
> speed of vector multiplication. How can I utilize this technology in my
> program?
> Best regards,
> --
> Yang, Qing
> Information Engineering, CUHK


Yes, the default scheduler is the thread-per-block, so each block
operates in its own thread, and the OS will distribute those across
the CPU's. What you are seeing is probably that two blocks in
particular are taking a long time to process and starving the others.
So CPU affinity won't help you. From your other posts, it looks like
you are trying to profile the code. That's the better way to go;
figure out which blocks are taking the most time and try to optimize


reply via email to

[Prev in Thread] Current Thread [Next in Thread]