ressemble à une clojure aura une implémentation de Fork-Join. qui ressemble à un wrapper fonctionnel sur la fourchette de fourche de Java. p>
Je me demande quelle est la différence entre ces et PMP / PMPA pourrait être? P>
5 Réponses :
de regarder ce code, leur fonctionnalité sera principalement la même - la seule différence est que Je ne suis pas en mesure de dire à coup sûr, mais je m'attendrais à ce que celui-ci fonctionne mieux dans le cas général deviendrait la mise en œuvre standard pour On dirait aussi (pour l'instant au moins) Le Fork-Join Framework ne prend en charge que des vecteurs, ce n'est donc pas semi-paresseux comme PMAP code> utilise des contrats à terme exécutés sur l'agent threadpool car il est sous-jacent primitif, tandis que pvmap code > Utilise Fork-Join. P>
PMAP code>, sauf s'il y a des compromis suffisamment importants faire avoir à la fois la peine. p>
PMAP code>. P>
Fork-Join est plus général que le PMAP code> / / précipité code>, et devrait permettre un contrôle plus fin-grain sur le parallélisme. Les API exactes pour faire cela sont toujours en l'air. P>
Une différence, aussi loin que je le comprends, est que Fork-Rejoindre permet de voler le travail de manière à ce que ce soit exécuté sur chaque thread peut être adaptatif. p> PMAP code> ne fonctionnera qu'à tout degré de "chunkiness". La fonction est mappée sur chaque membre de la séquence donnée à PMAP code>. Si une granularité est trop faible, les avantages potentiels du parallélisme se font avaler dans les frais généraux de créer et de gérer trop de futur code> s. p>
Ni PMAP ou PVMAP ne nous sauvera de devoir utiliser la taille du morceau correct b>. Pour mes projets, cela signifie généralement casser les données en morceaux et à l'aide de la carte sur chaque morceau, puis utilisez PMAP pour cartographier les morceaux en parallèle. puis réduire et aplatir. p>
Ces diapositives contiennent des diagrammes montrant des comparaisons entre les deux approches: http: // données -sorcery.org/2010/10/23/clojueconj/ p>
Cela va être un sujet de discussion à la conférence de Clojure-»: clojure-conj.org/speakers #liebke David Liebke travaille maintenant activement pour la prochaine version de Clojure
@Alex que résumé est ce qui a incité cette question :).
Est-ce que toute pensée étant donnée à une stratégie de mise en œuvre de Fork-Rejoindre sur Clojureclr ou en garantissant généralement l'API de la Fork-Rejointure, est amical à des implémentations alternatives?