2008-12-26 6 views
5

Ich lerne derzeit die APIs zu Intels Parallelisierungsbibliotheken wie TBB, MKL und IPP. Ich frage mich jedoch, ob es sich auch lohnt, AMDs Teil des Puzzles zu betrachten. Oder wäre das nur Zeitverschwendung? (Ich muss gestehen, ich habe überhaupt keine Ahnung von AMDs Bibliotheksunterstützung - also würde ich mich über jeden Ratschlag freuen.)Lohnt es sich AMD-spezifische APIs zu lernen?

Nur um zu verdeutlichen, der Grund, warum ich den Intel-Weg gehe, ist, weil 1) die APIs sind sehr nett; und 2) Intel scheint die Werkzeugunterstützung genauso ernst zu nehmen wie die API-Unterstützung. (Noch einmal, ich habe keine Ahnung wie AMD in dieser Abteilung tut.)

Antwort

9

Die MKL- und IPP-Bibliotheken werden (fast) auch auf AMD-Rechnern laufen. Meine Vermutung ist, dass TBB auch gut auf AMD-Boxen läuft. Wenn ich eine Technologie vorschlagen müsste, die für beide nützlich und nützlich wäre, wäre es die OpenMP-Bibliotheken zu meistern. Der Intel-Compiler mit den OpenMP-Erweiterungen ist erstaunlich schnell und arbeitet auch mit AMD-Chips.

3

Wenn Ihr Unternehmen Pakete von nur Intel-Servern mit Ihrer Software verkauft, dann sollten Sie nicht die AMD-Ansatz lernen lernen. Aber wenn Sie Software für beide (oder viele) verschiedene Plattformen anbieten müssen, dann lohnt es sich, die verschiedenen Technologien zu betrachten. Es wird sehr schwierig sein, die Wrapper für die hardwarespezifischen Bibliotheken zu erstellen. (Vor allem, da Threading beteiligt ist.)

Und Sie wollen definitiv nicht für jede Hardware-Konfiguration komplett separate Implementierung schreiben. In der Tat, wenn Ihre Software von einem generischen Benutzer konsumiert werden soll, dann sollten Sie die Intel-Technologie aufgeben und Standard-Threading-Techniken verwenden. Ich möchte nicht entmutigen, aber ich glaube, dass die Intel Threading-Bibliotheken ihrer Zeit in jeder Hinsicht ein wenig voraus sind.

+0

Sind sie ihrer Zeit auch immer voraus, oder nur für intensive Zwecke? Was ist eigentlich ein intensiver Zweck? – Karl

+1

Ihre B.S. in C.S., um einen Job zu bekommen Programmierung von Computern ist eine "Absicht und Zweck". Ihren Ph.D. in C.S., um das gleiche zu tun, ist ein "intensiver Zweck". ;-) – Kevin

+0

haha, das bekomme ich zum Tippen schneller als ich denken kann. Ok, korrigiert die Phrasierung. – Marcin

7

Es lohnt sich nur, wenn Sie speziell daran interessiert sind, etwas wie Videospiele, Betriebssysteme, Datenbankserver oder Virtualisierungssoftware zu erstellen. Mit anderen Worten: Wenn Sie ein Segment haben, in dem Sie sich genug um Leistung kümmern, um sich die Zeit dafür zu nehmen (und es richtig zu machen), in Assembler. Das Gleiche gilt für Intel.

+0

Richtig, wenn Leistung ein großer Faktor ist, und die Hardware ist spezialisiert. – Marcin

Verwandte Themen