2010-09-04 13 views
7

Ich suche eine Open-Source-Bibliothek (DDS, eine Doppel-Dummy-Brücke Solver), die in seiner neuesten Version (2.1.1) einige sehr nützliche Multitasking-Funktionalität fügt ein Windows-System oder OpenMP (in der Tat wird diese neueste Version überhaupt nicht auf einem Nicht-Windows-System ohne volle OpenMP-Unterstützung kompilieren! -). Ubuntu 10.4 hat ein Paket für eine ältere Version (1.1.9), das die Python-Schnittstelle zur Bibliothek enthält (pydds). Ich habe vor langer Zeit einen Beitrag zu Upstream geleistet, aber ich würde gerne eine neue Python-Schnittstelle verwenden (...), aber dafür benötige ich einen C-Compiler und unterstützende Bibliotheken, die mir OpenMP-Funktionalität geben ...!Wie kann ich OpenMP unter Mac OS X 10.5 und Ubuntu 10.4 am besten nutzen?

Plus, ich brauche sie auf beiden Ubuntu 10.4 und meine guten alten Intel-Macs, die noch Mac OS X 10.5 (nicht zu verlieren Kompatibilität mit meinem guten alten PowerPC Macs laufen - aber ich halte nicht aus für einen Weg, um OpenMP-Unterstützung auch auf diesen PowerPC-Macs zu bekommen, obwohl ich natürlich gerne ... die Intel-basierten würde ausreichen! -).

Ich plane, so viel wie nötig zu hacken (und Patches natürlich nach der Arbeit beizusteuern, wie ich es seit langem bei allen offenen Quellcodes gemacht habe, einschließlich DDS selbst in der Vergangenheit; -) auf DDS selbst, pydds, und alle Nebenfunktionen für sie, aber ... genau deshalb würde ich nur gerne vermeiden, viel mehr "vorbereitende" Hacking zu machen, um OpenMP Unterstützung zu bekommen (für C) An erster Stelle auf den Plattformen brauche ich es! -).

Also, gibt es (im Idealfall! -) alles, was ich könnte nur apt-get install für Ubuntu 10.4, und ein Disk-Image oder Darwinport oder was auch immer für Mac OS X 10.5 zumindest auf Intel-Prozessoren, die ich verwenden könnte, um loszulegen. .? Ich bin natürlich bereit, aus Quellen, Patch-Quellen usw. nach Bedarf zu bauen, aber ich würde lieber nicht haben, wenn ich es vermeiden kann ... ;-).

+2

was ist 'sudo apt-get install gcc libgomp1'? – Anycorn

+0

@aaa, Ich habe 'gcc' installiert (die 4.4.3, die mit ubuntu kommt) - würde die Bibliothek magisch die OMP-spezifischen '# Pragma's unterstützen, vor denen sie momentan warnt und ignoriert ...? –

+0

ja, und benutze 'gcc -fopenmp' – Anycorn

Antwort

5

Unter Mac OSX 10.5 sieht es aus wie -fopenmp ist keine gültige Option (gcc Version 4.0.1).

$ gcc -fopenmp foo.c 
cc1plus: error: unrecognized command line option "-fopenmp" 

Allerdings konnte ich 10.6 (gcc Version 4.2.1) kompilieren und ausführen. Es sieht so aus, als ob Sie nur 1) auf 10,6 oder 2) eine eigene Version von gcc kompilieren können.

(Side Hinweis: Der Mann-Seite für gcc auf 10,5 erwähnt nicht -fopenmp, wo 10.6 der Fall ist.)

+2

OpenMp wird nur in gcc 4.2 und höher unterstützt. – db42

3

von Garrett Hyde vorgeschlagen As, die Version von gcc, die Schiffe mit Mac OS 10.5 ist auch alt, um OpenMP-Unterstützung zu haben. Aber kein Problem.

Installieren Sie MacPorts (http://trac.macports.org/wiki/InstallingMacPorts) - Sie müssen Xcode installiert haben, und dann X11, die beide Sie immer noch von der Apple-Website erhalten können, wenn Sie haben Ihre Installationsmedien noch nicht. Dann, sobald Macports eingerichtet ist, "sudo port install gcc45" (oder mindestens 44) und warte eine ganze Weile, bis es gcc und all seine Abhängigkeiten erstellt hat. Alles, was gcc 4.4.x oder später hat, wird eine ziemlich solide OpenMP 3.0-Unterstützung haben. Und dann solltest du gut gehen.

Wie bereits in den Kommentaren erwähnt wurde, funktioniert auch das standardmäßig mit Ubuntu 10.4 mitgelieferte gcc.

Verwandte Themen