Parallel map
May. 18th, 2010 11:06 pmНе раз уже видел восторженные отчеты об успешном применении Эрланга в задаче скачивания большого числа файлов. На мое замечание, что распараллеливание кучи одинаковых независимых заданий - невелико достижение, мне ответили, что для обычных императивных языков это вполне достижение. Сегодня я сам столкнулся с такой задачей, и на совершенно императивном языке Руби задача решилась очень просто.
( Read more... )
( Read more... )
class Array def par_map(nt, &f) slices = Array.new(nt) {|i| self[i*length/nt...(i+1)*length/nt] } threads = slices.map {|xs| Thread.new { xs.map &f } } threads.inject([]) {|r, t| r + t.value} end end( Read more... )