Tipps zum Multithreading von DirectX-Anwendungen

veröffentlicht von am 3. November 2008

Ein schwieriges, weil für viele Software-Entwickler unbekanntes Terrain ist das der DirectX-basierten Programmierung. Denn nichts ist leistungshemmender als single-threaded Sourcecode, der sich innerhalb einer parallelisierten Entwicklungsumgebung als Flaschenhals entpuppt. Was sollten also Programmierer und ähnliche Experten tun, um ihrem DirectX-Code mit leistungsfördernden Maßnahmen auf die Sprünge zu helfen?

Nun, zunächst einmal gilt es, die gesamte Anwendung auf mögliche Schwachstellen hin zu untersuchen. Hierfür spezialisierte Profiler-Tools wie der Intel VTune Performance Analyzer, der Intel Thread Profiler oder PIX für Windows helfen dabei, entsprechende Engpässe aufzuspüren. Hierbei handelt es sich um zwei wesentliche Bereiche, in denen es immer wieder zu Leistungseinbußen kommt: Nicht-skalierender Quellcode und 3D-Runtimes und Treiber. Allein die zwei letztgenannten verbrauchen bei suboptimaler Programmierung 25 bis 40 Prozent der gesamten Prozessorkapazität. Hier eröffnet sich also eine Menge an Verbesserungsbedarf.

Darüber hinaus fressen Rendering-Prozesse sehr viel CPU-Bandbreite, je mehr an Spezialeffekten wie Regen oder Wind in der Anwendung stecken oder eine Zunahme an AI-Objekten zu verzeichnen ist. Daher ist der Programmierung und Parallelisierung von Render-Einheiten höchste Priorität einzuräumen.

So gilt speziell bei der effizienten Programmierung von multithreaded 3D-Inhalten, die auf DirectX-APIs basieren, vor allem eins: Vergessen Sie die Treiber nicht und fassen Sie häufig genutzte Routinen sinnvoll zusammen, vermeiden Sie das Reservieren zu großer Systemressourcen und ordnen Sie bestimmte Aufgaben nicht einem bestimmten Prozessor zu. Nur dann erstellen Sie optimierte DirectX-Anwendungen, die auf Multicore-Systemen optimal skalieren und zudem überflüssigen Quellcode und Treiber vermeiden.


Keine ähnlichen Artikel.
Kategorien : Visual Computing Tags : , ,

Kommentare

Keine Kommentare vorhanden.


Beitrag kommentieren.

Sie müssen angemeldet sein um diesen Beitrag zu kommentieren. [Login | Registrieren]

(erforderlich)

(erforderlich)