On Mon, Oct 08, 2007 at 06:46:15PM -0700, Newell J. wrote:
I see the wiki on installing gnuradio on PS3. However, what is the status
for the parallelization of the code? I ask because I want to help. I am
looking for an after work coding task that I could spend a couple hours a
day on. I don’t have a PS3 but I am installing the SDK on F7 within VMware
on my box so I can start hacking. I have done a fair amount of reading on
taking code and tying to parallelize it but am no hands on expert. I assume
Eric B is the one taking the lead on this so if there is something I could
help with Eric, let me know. Thanks.
Thanks for your offer to help.
The first order of business is a cross-compilation environment for GNU
Radio so that we don’t spend all our time listening to the disk
thrash on the PS3.
Next is a “thread-per-block” scheduler for GNU Radio. In addition to
exploiting multi-core / SMP resources, this will permit us to block in
the work or general_work methods without killing system throughput.
We want to allow blocking so that a relatively simple RPC-like
mechanism can be used to offload work from the work/general_work
methods onto the SPEs. I suspect that the “thread-per-block”
scheduler will handle both classic GNU Radio blocks and the new
mblocks using the same underlying framework. There are lots of things
to get right including signal handling interactions with threads,
startup and clean shutdown, exception handling, resource allocation,
are we using a kernel thread per user thread or an N on M
implementation, locality/NUMA concerns, minimum amount of locking for
correctness, shared memory consistency models (PPC has a “weak”
ordering), memory barriers, etc…
Third is the offload mechanism (PPE and SPE pieces), low-overhead
dynamic SPE allocation/deallocation, etc.
Fourth are the SIMD computational kernels that run on the SPEs.
There’s a longer term vision that includes all of GNU Radio running
across the SPEs, but what I’ve described is phase I.
Does any of this grab your interest?