[Cbe-oss-dev] A couple of MARS questions
tthompso at eecs.utk.edu
tthompso at eecs.utk.edu
Sun Nov 30 10:54:31 EST 2008
Hey Everybody,
I have a couple of questions regarding MARS and wasnt too sure where to
look or whom to ask, so I thought Id start here and hopefully get a
pointer or two.
I came across MARS recently while researching the library problem with
the Cell architecture namely that creating libraries of independent
components for the cell is difficult due to the problem of
cooperating/competing for resources. MARS seems to be well aimed at that
with its lightweight task switching model, but I havent been able to find
much regarding the plans for MARS outside of the documentation and Geoffs
presentations. Is MARS targeted at becoming a library interface framework
or mainly for application development? Why MARS as opposed to IBMs ALF?
Next question, why the context unload/load on every yield? I understand
the decision to make all blocking spu kernel calls yield to another task
if it is ready, but throwing out the context every time seems like it
would hurt for programs that are lock-step synchronized with the PPU (or
another SPU). For instance, I wouldnt expect the partial_context_save
example program to do anything when the mpu task yields. If there arent
any other programs waiting to run, why take the time and bandwidth to save
context? Could you not do something like specify a processor affinity for
a task when blocking, so if the task becomes runnable again before another
program needs that SPU it could pick right up without moving the context
at all? This would seem to help significantly with applications that move
locality from one set of SPU programs to another (such as mine ;)
On the whole MARS seems to be a pretty slick piece of work.
Thanks,
Thad Thompson
More information about the cbe-oss-dev
mailing list