Ich verstehe, dass die Antwort auf diese Frage Compiler/OS spezifisch sein kann, also habe ich versucht, so viel Details im Titel wie möglich zur Verfügung zu stellen.Was ist das Standardverhalten für g ++ kompilierten Code in Bezug auf Threads auf einem Intel-Prozessor (Linux)?
Sagen wir, ich kompiliere eine sehr einfache Schleife wie die Summe aller Zahlen von eins zu einer Million. Wenn dieser Code auf einem Intel-Prozessor (i7-3770k) ausgeführt wird, wird er standardmäßig mehrere Threads nutzen? Stehe ich auf, um mehr Leistung zu erzielen, indem ich die Schleife explizit parallel mache?
Code für Threading muss explizit geschrieben werden. Aber der i7 könnte Code auf nichtlineare Weise ausführen, siehe [Out-of-Order-Ausführung] (https://en.wikipedia.org/wiki/Out-of-order_execution). –
Ich habe nichts schnell in Bezug auf Threads gesehen. Aber ... von gcc.gnu.org "Vektorisierung wird durch das Flag -tretre-vectorize und standardmäßig bei -O3 aktiviert." Sie erhalten also eine Vektorisierung, ohne danach zu fragen. – Matt