CSL's ThreadedFrameStream (was Re: [CLAM] RT and port sizes (was Re: AudioPorts Usage))
Xavier Amatriain
xavier at create.ucsb.edu
Tue Sep 20 10:26:11 PDT 2005
After talking to S.T. Pope about his ThreadedFrameStream, this is more
or less what he told me:
- The ThreadedFrameStream idea is ONLY used on distributed graphs, when
samples are being streamed onto a different processor or better still to a
different machine in the network.
- He basically agrees that because of the cost of context switching (let
appart hiperthreading) is not worth it to thread these things on a
uniprocessor machine.
- For these cases they use a different idea that they call the
BlockResizer [1], which is basically the implementation of an "eager" or
"pull" scheduling scheme.
[1] http://www.create.ucsb.edu/CSL/doxygen/_block_resizer_8h-source.html
Stéphane Letz wrote:
>
> Le 15 sept. 05 à 19:16, Xavier Amatriain a écrit :
>
>>
>> Good that everything stays at home! CSL has been designed by
>> S.T.Pope here at CREATE.
>
>
> Yes I know (-:
>
>> He is actually in an office next to mine so I will have a chat with
>> him to know about the rationale behind that design. Thanks for the
>> pointer !
>
>
>
> I would be interested to know about his answer, please share ! They
> are some good ideas in CSL design ...
>
> Stephane
>
>
>>
>>
>>> I think I was not able to explain clearly what I meant... (-:
>>>
>>> But after doing some google, I found that in the CREATE CSL
>>> documentation (http://www.create.ucsb.edu/CSL/CSL_ICMC_2003.pdf)
>>>
>>> A ThreadedFrameStream uses a background
>>> thread to compute samples. It caches some number of
>>> buffers from its “producer” sub-graph and supplies
>>> them to its “consumer” thread immediately on
>>> demand. It controls the scheduling of the thread of its
>>> producer. While this obviously introduces latency
>>> within a DSP graph, it is a known latency with (ideally)
>>> no latency jitter.
>>>
>>> This is typically the kind of solution I was thinking of : use
>>> another thread to do the main process and "smooth" CPU use , in
>>> the cost of additional latency
>>> The same kind of design is also done in Jamin.
>>>
>>> And I think doing multithreading correctly will be the next thing
>>> to do of course on MP machines, but it may help even UP machines.
>>>
>>> Stephane
>>>
>>
>>
>>
>> --
>> /******************************************
>> * Xavier Amatriain *
>> * Research Director *
>> * CREATE *
>> * University of California Santa Barbara *
>> ******************************************/
>>
>>
>
>
>
> _______________________________________________
> CLAM mailing list
> CLAM at iua.upf.es
> http://www.iua.upf.es/mtg/clam
--
/******************************************
* Xavier Amatriain *
* Research Director *
* CREATE *
* University of California Santa Barbara *
******************************************/
More information about the clam-users
mailing list