Wie der Titel sagt: Was genau ist der Unterschied zwischen @parallel
und pmap
? Ich meine nicht, dass das Offensichtliche ein Makro für eine Schleife ist, und die anderen arbeiten an Funktionen, ich meine, wie genau unterscheidet sich ihre Implementierung und wie sollte ich dieses Wissen verwenden, um zwischen ihnen zu wählen? Der Grund, warum ich frage, ist, dass viele der Anwendungen, die ich schreibe, entweder Konstrukt verwenden könnte: Ich könnte eine Schleife schreiben und etwas mit @parallel
berechnen, oder was würde in der Schleife in eine Funktion sein und pmap
darauf aufrufen . Ich habe den Ratschlag der Verwendung von @parallel
für Dinge, die schnell zu bewerten sind und pmap
für Anrufe, wo jede Aufgabe dauert viel länger (wie es in der Dokumentation angibt), aber ich fühle, dass, wenn ich ein besseres Verständnis von dem, was ich mache wäre in der Lage, bessere Entscheidungen zu treffen.Was genau ist der Unterschied zwischen @parallel und pmap?
Zum Beispiel: teilt sich @parallel
die Arbeit vor der Auswertung auf? Ich habe festgestellt, dass @parallel
lange dauern kann, wenn ich eine Parallelschleife benutze, bei der jeder innere Aufruf eine zufällige Zeit benötigt, weil am Ende nur noch wenige Prozesse funktionieren. pmap
auf dem gleichen Mikrotest scheint dies nicht zu haben: ist pmap
die Arbeit nach Bedarf verteilen?
Andere Fragen wie diese stammen alle aus meiner Unkenntnis, wie genau pmap
von @parallel
unterscheidet.