Erfahrungen mit dem intel compiler



  • 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.


  • Administrator

    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:

    1. 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.

    2. 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.

    3. 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.


Anmelden zum Antworten