Erfahrungen mit dem intel compiler
-
Meine Erfahrungen mit dem Intel Compiler:
# icc --version
icc: error #10310: Failed to enable trusted storage check for licensing: WARNING: Enable Trusted Storage failed (flexnet error code 2). Trusted Storage based license couldKein "Copy & Paste error". So steht es da: "... . Trusted Storage based license could"
-
Warum überhaupt Intel Compiler? Der ist nur für nicht kommerzielle Projekte unter Linux frei. Unter Windows musst du also schön brav zahlen.
-
Ich benutze zufällig GNU/Linux und bekomme die obige Fehlermeldung. Von wegen frei oder ich bin dumm, die Software zu benutzen.
Irgendwelche Lizenzkeys, Licensefiles oder ähnlicher Schrott scheinen mir bei jeder Software eine Schwachstelle zu sein (außer Aktivierung von Windows XP, die hat bei mir mehrmals ohne Probleme funktioniert, an dieser Stelle einfür Microsoft).
PS: mit jeder Software meine ich natürlich die Software, mit der ich irgendwas zu tun hatte, ober beruflich oder privat.
-
Für nichtkommerzielle Projekte ist die Linux-Lizenz für die Architekturen x86, x64 und IA64 kostenfrei.
Bist wohl doch zu d...
-
Doch zu dumm?
-
Moin,
Mal ne andere Frage zum icc:
Wo bekomm ich den überhaupt her?
-
johannes-h schrieb:
Moin,
Mal ne andere Frage zum icc:
Wo bekomm ich den überhaupt her?Google -> "Intel C++ compiler download" -> Erster Link.
Gratuliere: Du bist nicht in der Lage Google zu benutzen.
-
Janjan schrieb:
Du musst genauso speziall mit Threads programmieren, wie mit anderen Compilern auch. Da ändert sich rein gar nichts.
Iirc führt Sun Studio durchaus solche Optimierungen durch.
-
Tim schrieb:
Janjan schrieb:
Du musst genauso speziall mit Threads programmieren, wie mit anderen Compilern auch. Da ändert sich rein gar nichts.
Iirc führt Sun Studio durchaus solche Optimierungen durch.
Das wuerde mich mal interessieren wie das gehen soll.
-
Indem der Compiler den Code entsprechend analysiert und dann entsprechend optimiert. Ich sehe hier kein prinzipielles Problem.
-
Könnte es sein, dass hier eine Verwechslung zwischen Hardware- und Software-Threads vorliegt? Wie ein Kompiler für Software-Threads otpimieren soll, ohne dass man solche Threads im Programm verwendet, ist mir ein wenig rätselhaft. Dass der Kompiler aber für die Hardware-Threads der CPU optimieren kann, könnte ich mir schon eher vorstellen. Und es würde mich auch nicht überraschen, wenn dies der Intel Kompiler sehr gut für die eigene Architektur realisieren kann.
Grüssli
-
Sun Studio verwendet OpenMP 3.0! Also nix automatisch sonder im Code gemeißelt!
-
Zeus schrieb:
Sun Studio verwendet OpenMP 3.0! Also nix automatisch sonder im Code gemeißelt!
Die Argumentation musst du mir mal erklären.
-
dgrat schrieb:
Hat jemand Erfahrungen mit dem Intel-Compiler? Es steht in der Beschreibung, dass er automatisch für Multi-Cores optimiert. Heißt das, dass ich bei manchen Programmen auf Boost::threads verzichten kann?
Hat jemand allgemeine Erfahrungen mit der Geschwindigkeit?Da sprichst Du von verschiedenen Ebenen. Die Parallel-Optimierungen gibt's ja auf diversen Ebenen, z.B. grob:
-
Der Compiler optimiert auf Assemblerebene den Code so, daß er den Multicore besonders effizient nutzt - das erreicht man alleine durch die Verwendung eines anderen Compilers mit gleichem Code. Zusätzlich bringt der Compiler eine Stdlib mit, die ebenfalls für Multicore optimiert ist.
-
Die Ebene von "parallel_for", also dort wo sich OpenMP bewegt, man benutzt auf der Hochsprache eine spezielle Lib, die für parallele Bearbeitung eigene Konstrukte bietet.
-
Die Ebene der Architektur, Messagebearbeitung und/oder die Datenverarbeitung werden durch Aufteilung auf parallele Threads zur Laufzeit besser skalierbar.
Du sprichst mit dem "Verzicht auf Threads" die Ebene 3) an, der Intel-Compiler arbeitet zunächst aber Optimierungen auf Ebene 1) ab.
Ich war letzte Woche auf der Intel Software Conference 2010, und da wurde dieses Thema sehr ausgiebig erörtert. Die Anwender sprechen alle von deutlichen Performancegewinnen alleine durch den Intel-Compiler, aber trotzdem muß man auch auf den Ebenen 2) + 3) einiges tun, um schneller zu werden.
-