VS-Express vs. OpenMP



  • Ok, lange Geschichte kurz erzählt:

    GCC 4.+ (Win, Linux) unterstützt OpenMP.
    Visual Studio Express nicht, das tut VS erst ab Professional, nichtmal ab Standard.

    Was tun? Auf Visual Studio Express User verzichten zugunsten von OpenMP?
    VSE unterstützt OpenMP von der Syntax her, es gibt aber einen Linker-Fehler, wenn die Option eingestellt wird.
    Eure Meinung?



  • also gcc4.x stimm tnich tganz. gcc4.2+ unterstützt OpenMP um genau sein.
    Naja, es kommt darauf an. Wenn du nicht drauf verzichten kannst, dann musst du entweder die Visual Studio Version wechseln, dir einen Intel Compiler besorgen (dieser läßt sich wunderbar ins Studio integrieren) oder eben auf CodeBlocks, etc. pp. wechseln und minGW verwenden.
    An sich kompilieren OpenMP Anwendungen ohne Probleme auf Compileren OHNE OpenMP. lediglich warnings bzgl des pragams tauchen auf. Der Code läuft dann aber nicht"parallel". Ob du das so möchtest kannst vermutlich nur du selbst beantworten!



  • Hmm ja, genau diese Frage, ob man das möchte beschäftigt mich. Klar, es geht auch als Single-Process. Aber MultiThreading is halt schon geil. Ausserdem gehts hier ja nicht nur um Anwendungen sondern auch um versch. Libs die ich betreue und die im Rahmen der zlib-license bzw teilweise LGPL/GPLV3 auch von anderen genutzt werden.
    Daher rührt auch die Frage. Man kann auf OpenMP verzichten, dafür müsste man dann eine Threading-Library verwenden (boost als bsp) oder selbst eine ThreadKlasse schreiben, damit alle gängigen IDE und Compiler unterstützt werden. Oder man nimmt OpenMP und verzichtet auf Visual Studio User unter Windows, die kein OpenMP-Support haben.
    Ist nicht ganz einfach die Entscheidung hehe.
    Daher habe ich auf einige Erfahrungswerte von den netten Mitnutzern hier gehofft.


Anmelden zum Antworten