Компанія ІБМ випустила додаток до Eclipse який полегшує створення та працю з так званими
map-reduce алгоритмами, які широко використовує Ґуґл для розпаралелювання роботи ресурсоємних алгоритмів на сотнях вузлів. В якості системи виконання використовується Apache Hadoop який масштабується до сотень вузлів у одному кластері.
Суть підходу map-reduce у використанні двох основних функцій:
- map - оператор, який застосовує якусь операцію над усіма елементами масиву, зберігаючи значення у іншому масиві;
- reduce - оператор, який застосовує якусь операцію над усіма елементами масиву, повертаючи єдине значення.
Приклад map-reduce алгоритму для обчислення середнього квадратичного на Перлі:
#!/usr/bin/perl
use List::Util qw/reduce/;
my @values=(1, 2, 3, 4);
my $result= sqrt( ( reduce { $a + $b } map { $_ * $_ } @values ) / (scalar @values) );
print "Square average: $result\n";
IBM MapReduce Tools for Eclipse:
http://www.alphaworks.ibm.com/tech/mapreducetools/Більше про Hadoop:
http://wiki.apache.org/lucene-hadoop/Більше про map-reduce:
http://en.wikipedia.org/wiki/MapReduce