Różnica między widłami / połączeniami a mapami / redukcjami

Jaka jest kluczowa różnica między Fork/Join i Map / Reduce?

Czy różnią się one rodzajem rozkładu i rozkładu (dane a obliczenia)?

Author: S.L. Barth, 2010-03-29

2 answers

Kluczową różnicą jest to, że F-J wydaje się być zaprojektowany do pracy na pojedynczej maszynie wirtualnej Java, podczas gdy M-R jest wyraźnie zaprojektowany do pracy na dużej grupie maszyn. Są to bardzo różne scenariusze.

F-J oferuje możliwości podziału zadania na kilka podzadań, w sposób rekurencyjny; więcej warstw, możliwość komunikacji "inter-fork" na tym etapie, znacznie bardziej tradycyjne programowanie. Nie rozciąga się (przynajmniej w papierze) poza pojedynczą maszynę. Świetny do korzystania z twojego ośmiordzeniowego.

M-R wykonuje tylko jeden duży podział, z mapowanymi podziałami w ogóle nie rozmawiając między sobą, a następnie zmniejsza wszystko razem. Pojedyncza warstwa, brak komunikacji między dzieleniem, aż do zmniejszenia i ogromnie skalowalna. Świetnie nadaje się do wykorzystania Twojego udziału w chmurze.

 33
Author: tucuxi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-29 14:28:18

Jest cała praca naukowa na ten temat, porównując Fork / Join i MapReduce .

W artykule porównano wydajność, skalowalność i programowalność trzech paradygmatów równoległych: fork/join, MapReduce i podejście hybrydowe.

Okazuje się, że Java fork / join ma małe opóźnienie uruchamiania i dobrze skaluje małe wejścia (100 MB) w klastrze obliczeniowym.

Ale jest tam o wiele więcej do przeczytania, jeśli jesteś na to gotowy.

 12
Author: Per Quested Aronsson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-09 20:22:15