Hallo,
kurze Frage, wäre folgende Zeile sicher?
Diese Lambda Funktion ist nicht von mir, ich sehe da nur den Vergleich, keine Zähler o.ä., weiß aber natürlich nicht was std::sort genau da treibt im parallel mode, daher die Frage ob man die Zeile so beruhigt mit par_unseq nutzen kann?
Zu par_unseq liest man über die Gefahr von data races oder deadlocks. Ich hab die Zeile bisher nur sequenziell genutzt und schaue mir gerade das Thema std::execution mit par und par_unseq das aller erste mal an (was ab C++17 auch viele andere Algos betrifft). Anhand dieses Beispiels hab ich mal das par_unseq ergänzt zum Testen (das es nicht unbedingt zu schnellerer Ausführung kommen muss (gerade bei wenig Daten), ist mir klar (Threads kosten))
Grüße
kurze Frage, wäre folgende Zeile sicher?
C++:
struct struct_a
{
double var1;
int var2;
std::string var3;
};
// vector sortieren (nach einem Member des Structs):
std::sort(std::execution::par_unseq, v.begin(), v.end(), [](const struct_a &x, const struct_a &y) -> bool {return x.var1 < y.var1);
Diese Lambda Funktion ist nicht von mir, ich sehe da nur den Vergleich, keine Zähler o.ä., weiß aber natürlich nicht was std::sort genau da treibt im parallel mode, daher die Frage ob man die Zeile so beruhigt mit par_unseq nutzen kann?
Zu par_unseq liest man über die Gefahr von data races oder deadlocks. Ich hab die Zeile bisher nur sequenziell genutzt und schaue mir gerade das Thema std::execution mit par und par_unseq das aller erste mal an (was ab C++17 auch viele andere Algos betrifft). Anhand dieses Beispiels hab ich mal das par_unseq ergänzt zum Testen (das es nicht unbedingt zu schnellerer Ausführung kommen muss (gerade bei wenig Daten), ist mir klar (Threads kosten))
Grüße
Zuletzt bearbeitet:
(struct_a hinzugefügt)