Hi Karlis

> However, if I understand it correctly, the current approach to
> multi-threading in moses means that there is some idle time while waiting
> for the sentences to be translated in the same order as in input (both
> input and output are still serial).

All the sentences are placed in a queue, and while there's still sentences in 
the queue, the worker threads keep translating. I think this is known as 
the "thread pool pattern" (http://en.wikipedia.org/wiki/Thread_pool_pattern). 
You're correct that the output has to be ordered, but this is done by 
buffering up translated sentences as necessary in the OutputCollector. So you 
may observe a pause in the output, if one thread is translating a 
particularly long sentence, but all the threads are still working at this 
time (unless the long sentence is the last one in the corpus).

>
> Are there any plans to make the decoding itself multi-threaded?
>

It's something we may look at within the context of delivering fast online 
translation, or using a language model server. However it would change the 
decoding algorithm, and be significantly more complex than 
the "embarrassingly parallel" setup we have now.

best regards - Barry

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

_______________________________________________
Moses-support mailing list
[email protected]
http://mailman.mit.edu/mailman/listinfo/moses-support

Reply via email to