<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Dev Blog &#187; Optimieren</title>
	<atom:link href="http://www.software-dev-blog.de/tag/optimieren/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.software-dev-blog.de</link>
	<description>Multicore-Programmierung, Multithreading &#38; Visual Computing</description>
	<lastBuildDate>Thu, 09 Feb 2012 19:54:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Warum Shrek immer schöner und das Rendern bei Dreamworks immer schneller wird</title>
		<link>http://www.software-dev-blog.de/warum-shrek-immer-schoner-und-das-rendern-bei-dreamworks-immer-schneller-wird/09/2011/</link>
		<comments>http://www.software-dev-blog.de/warum-shrek-immer-schoner-und-das-rendern-bei-dreamworks-immer-schneller-wird/09/2011/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 12:53:57 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Animationsfilm]]></category>
		<category><![CDATA[Dreamworks]]></category>
		<category><![CDATA[Optimieren]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1775</guid>
		<description><![CDATA[Ich vermute mal, dass Software-Entwickler dank ihrer Technik-Affinität ein großes Faible für animierte Filme à la Shrek und Madagaskar haben. Also, das trifft zumindest auf mich zu, und das nicht nur, weil ich Shrek so unglaublich schräg finde. Und genau aus diesem Grund fand ich die Geschichte so bemerkenswert, die ich bei den Kollegen des [...]]]></description>
			<content:encoded><![CDATA[<p>Ich vermute mal, dass Software-Entwickler dank ihrer Technik-Affinität ein großes Faible für animierte Filme à la Shrek und Madagaskar haben. Also, das trifft zumindest auf mich zu, und das nicht nur, weil ich Shrek so unglaublich schräg finde. Und genau aus diesem Grund fand ich die Geschichte so bemerkenswert, die ich bei den Kollegen des <a href="http://Softtalkblog.com" target="_blank">Softtalkblogs</a> gefunden habe und die ich Ihnen nicht vorenthalten will.</p>
<p>Die Macher von Shrek, <a href="http://www.dreamworksanimation.com/" target="_blank">Dreamworks Animation</a>, haben nämlich eine Art <a href="http://de.wikipedia.org/wiki/Mooresches_Gesetz" target="_blank">&#8220;Mooresches Gesetz&#8221;</a> für Animationsfilme entwickelt. Diese Regel besagt, dass sich mit jeder Shrek-Episode die notwendige Rechenleistung verdoppelt hat. Benötigte also Shrek I vor zehn Jahren etwa fünf Millionen CPU-Stunden zum Rendern des fertigen Films, so kam Shrek 2 bereits auf mehr als 10 Millionen Prozessorstunden für die notwendige Render-Leistung. Und der &#8220;aktuelle&#8221; Shrek-Film aus dem letzten Jahr erforderte eine unglaubliche Rechenleistung von 50 Millionen CPU-Stunden &#8211; und das nur für das Erstellen der 3D-Bilder. Die Konsequenzen für den benötigten Rechner-Park muss ich ja wohl nicht extra ausführen, oder?</p>
<p>Da es Dreamworks Animation sinnvoller erschien, anstatt ständig in neue Hardware eher in die Render-Software zu investieren, setze man sich mit diversen Intel-Ingenieuren zusammen und entwarf einen Plan, wie die Dreamworks-Render-Werkzeuge so zu optimieren seien, damit aus den 50 Millionen Render-CPU-Stunden möglicherweise 20 Millionen oder weniger Stunden werden können. Nun, die Ergebnisse des Brainstormings lassen sich wie folgt zusammenfassen:</p>
<ul>
<li>Mit Hilfe von <a title="OpenMP 3.1 mit neuen Features und Funktionen" href="http://www.software-dev-blog.de/openmp-3-1-mit-neuen-features-und-funktionen/07/2011/">OpenMP</a> ließen sich zahlreiche Abschnitte des Render-Codes parallelisieren. Um diese kritischen Code-Regionen exakt und mit möglichst geringem Aufwand ausfindig machen zu können, setzten die Intel-Ingenieure auf <a title="Dem Speicherfehler auf der Spur: Intel Inspector XE 2011" href="http://www.software-dev-blog.de/dem-speicherfehler-auf-der-spur-intel-inspector-xe-2011/02/2011/">Intel Inspector XE 2011</a>. Damit ließen sich die Render-Werkzeuge zudem auf mögliche <a title="Know-how: Von Deadlocks und Livelocks" href="http://www.software-dev-blog.de/know-how-von-deadlocks-und-livelocks/02/2011/">Dead-Lock</a>- und <a title="Know-How und Programmiertipps: Data Races" href="http://www.software-dev-blog.de/know-how-und-programmiertipps-data-races/02/2011/">Data-Race-Probleme</a> hin untersuchen.</li>
</ul>
<ul>
<li>Dank des Tools Intel C++ Compiler Threading Diagnostisch, der Teil des Intel C++-Compilers ist, konnten globale Variablen identifiziert werden, die beim gleichzeitigen Zugriff auf gemeinsam genutzte Daten erhebliche Probleme innerhalb parallel programmierter Abschnitte machen können.</li>
</ul>
<ul>
<li>Aber auch das Intel C++ Compiler Code Coverage Tool (ebenfalls Teil des Intel C++-Compilers) kam zum Einsatz. Damit lassen sich nämlich sämtliche Programmteile anzeigen, die vom Inspector XE 2011 analysiert worden sind. Das erhöht das Verständnis für die möglichen Optimierungen des eigenen Sourcecodes ganz erheblich.</li>
</ul>
<p>Es ist wohl überflüssig zu erwähnen, dass all diese Maßnahmen nicht nur zu schnellerem, sondern auch zu thread-sicherem Code geführt haben. Denn bei aller Euphorie hinsichtlich kürzerer Render-Zeiten darf die Laufzeit-Sicherheit auf keinen Fall zu kurz kommen.</p>
<p>So, und falls Sie an detaillierteren Infos zu den einzelnen Optimierungen der Render-Tools von Dreamworks Animation interessiert sind, sollten Sie unbedingt den zugehörigen <a href="http://software.intel.com/en-us/blogs/2011/08/15/thread-safety-analysis/" target="_blank">Blogbeitrag auf software.intel.com lesen</a>.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/warum-shrek-immer-schoner-und-das-rendern-bei-dreamworks-immer-schneller-wird/09/2011/&via=sw_devtwits&text=Warum Shrek immer schöner und das Rendern bei Dreamworks immer schneller wird&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/warum-shrek-immer-schoner-und-das-rendern-bei-dreamworks-immer-schneller-wird/09/2011/&via=sw_devtwits&text=Warum Shrek immer schöner und das Rendern bei Dreamworks immer schneller wird&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/warum-shrek-immer-schoner-und-das-rendern-bei-dreamworks-immer-schneller-wird/09/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallelisierungspotenzial von Anwendungen mit Hilfe von Parkour bestimmen</title>
		<link>http://www.software-dev-blog.de/parallelisierungspotenzial-von-anwendungen-mit-hilfe-von-parkour-bestimmen/07/2011/</link>
		<comments>http://www.software-dev-blog.de/parallelisierungspotenzial-von-anwendungen-mit-hilfe-von-parkour-bestimmen/07/2011/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 15:01:42 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1682</guid>
		<description><![CDATA[Also, es gibt ja Tools, die kaum ein Mensch kennt, was wirklich eine Schande ist. Denn mit einem Werkzeug wie Parkour, das begabte Wissenschaftler der Universität von Kalifornien in San Diego entwickelt haben, lässt sich das Leben eines Software-Ingenierus sicherlich vereinfachen. Was aber genau tut Parkour hierfür? Nun, zunächst einmal stelle man sich vor, dass [...]]]></description>
			<content:encoded><![CDATA[<p>Also, es gibt ja Tools, die kaum ein Mensch kennt, was wirklich eine Schande ist. Denn mit einem Werkzeug wie <a href="http://www.usenix.org/events/hotpar11/tech/final_files/Jeon.pdf" target="_blank">Parkour</a>, das begabte Wissenschaftler der Universität von Kalifornien in San Diego entwickelt haben, lässt sich das Leben eines Software-Ingenierus sicherlich vereinfachen. Was aber genau tut Parkour hierfür?</p>
<p>Nun, zunächst einmal stelle man sich vor, dass man eine seriell/sequentiell programmierte Anwendung gebaut hat, von der man gerne wissen möchte, ob sie auf einem Multicore-System schneller laufen würde, wenn sie parallel programmiert wäre. Und das betrifft schließlich einen Großteil sämtlicher Computersysteme, die derzeit am Markt zu kaufen sind. Denn das <a title="Parallelisierungsgrad von .NET- und Java-Anwendungen testen" href="http://www.software-dev-blog.de/parallelisierungsgrad-von-net-und-java-anwendungen-testen/03/2011/">Parallelisieren</a> von Software-Anwendungen kostet Zeit und Geld und sollte damit wohl überlegt sein.</p>
<p>Und genau hier setzt Parkour an. Anhand einer hirarchischen Analyse sämtlicher kritischen Pfade einer Anwendung (Hierarchical Critical Path Analysis) ermittelt das Tool diejenigen Codebereiche, die sich ganz besonders für die Parallelisierung von seriellem Code eignen. Hierzu gehören vor allem <a title="OpenMP 3.1 mit neuen Features und Funktionen" href="http://www.software-dev-blog.de/openmp-3-1-mit-neuen-features-und-funktionen/07/2011/">Schleifen</a> und Rekursionen, aber auch andere Konstrukte. Für diese Analyse muss allerdings keine Instrumentalisierung (Instrumantation) des Codes vorgenommen werden, da dies der Parkour-Compiler übernimmt. Das Ergebnis der vollständigen Anaylse einer Anwendung mit Hilfe von Parkour stellt eine Vorhersage anhand eines 64-Core-Systems dar. Damit lässt sich relativ genau prognostizieren, in welchem Ausmaß die serielle Anwendung im parallelisierten Fall skalieren würde, und zwar auf 1, 2, 4, 8, 16, 32 und 64 Prozessorkernen.</p>
<p>Die Grenzen von Parkour werden allerdings bei kurzem Nachdenken recht schnell klar: Neben der hilfreichen Aussage, in welchem Umfang die Anwendung auf x Kernen laufen würde, fehlen nützliche Hinweise, in welchen Bereichen die Parallelisierung des Software-Programms sinnvoll wäre. Hierfür benötig man also andere Tools, so wie <a title="Intel Parallel Advisor: Code-Optimierung für Templates  in C++" href="http://www.software-dev-blog.de/intel-parallel-advisor-code-optimierung-fur-templates-in-c/02/2011/">Intel Parallel Advisor</a> oder <a href="http://software.intel.com/en-us/articles/visualizing-parallel-speedup-with-cilkview/" target="_blank">CilkView</a>, wobei CilkView ähnlich wie Parkour arbeitet. Parallel Advisor hingegen gibt Auskunft darüber, an welchen Stellen Optimierungspotenzial besteht und wie dies zu implementieren ist. Allerdings steht Parallel Advisor nur C/C++-Entwickler zur Verfügung. <a href="http://software.intel.com/en-us/articles/intel-parallel-advisor/" target="_blank">Mehr Infos hierzu finden Sie auch bei Intel</a>.</p>
<p>Ach ja: Die Herren <a title="Multicore-Programmierung im .NET-Umfeld – Teil 1" href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-1/01/2009/">Amdahl und Gustafson</a> haben sich schon vor vielen Jahren zur Skalierbeit von Software-Anwendungen so ihre Gedanken gemacht.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallelisierungspotenzial-von-anwendungen-mit-hilfe-von-parkour-bestimmen/07/2011/&via=sw_devtwits&text=Parallelisierungspotenzial von Anwendungen mit Hilfe von Parkour bestimmen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallelisierungspotenzial-von-anwendungen-mit-hilfe-von-parkour-bestimmen/07/2011/&via=sw_devtwits&text=Parallelisierungspotenzial von Anwendungen mit Hilfe von Parkour bestimmen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/parallelisierungspotenzial-von-anwendungen-mit-hilfe-von-parkour-bestimmen/07/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Das sagen bekannte Spieleentwickler über Intel Graphics Performance Analyzers</title>
		<link>http://www.software-dev-blog.de/das-sagen-bekannte-spieleentwickler-uber-intel-graphics-performance-analyzers/05/2011/</link>
		<comments>http://www.software-dev-blog.de/das-sagen-bekannte-spieleentwickler-uber-intel-graphics-performance-analyzers/05/2011/#comments</comments>
		<pubDate>Fri, 20 May 2011 08:15:18 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Meinungen]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Spieleentwickler]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1612</guid>
		<description><![CDATA[Vorgestern habe ich auf ein Webinar hingwiesen, das Intel am 28. Juni 2011 abhalten wird und das sich vor allem mit der Toolsuite Intel Graphics Performance Analyzers beschäftigt. Ziel dieses kostenlosen Online-Seminars ist der richtige Umgang mit der Tool-Sammlung und wie sich damit eigene Spiele optimieren lassen. Das bestätigen erfolgreiche Spielefirmen. Entwicklerschmieden wie Creative Assembly [...]]]></description>
			<content:encoded><![CDATA[<p>Vorgestern habe ich <a title="Kostenloses Intel-Webinar für Spieleentwickler" href="http://www.software-dev-blog.de/kostenloses-intel-webinar-fur-spieleentwickler/05/2011/">auf ein Webinar hingwiesen</a>, das Intel am 28. Juni 2011 abhalten wird und das sich vor allem mit der Toolsuite <a href="http://software.intel.com/en-us/articles/intel-gpa/" target="_blank">Intel Graphics Performance Analyzers</a> beschäftigt. Ziel dieses kostenlosen Online-Seminars ist der richtige Umgang mit der Tool-Sammlung und wie sich damit eigene Spiele optimieren lassen.</p>
<p>Das bestätigen erfolgreiche Spielefirmen. Entwicklerschmieden wie Creative Assembly (&#8220;Empire: Total War&#8221;), Kingsoft (&#8220;JX3&#8243;), Codemasters (&#8220;Dirt 2&#8243;) und Gas Powered Games (&#8220;Demigod&#8221;) setzen Intel GPA bereits eine ganze Weile erfolgreich ein. Hier ein paar Statements der Software-Häuser zu dem Profiling-Tool von Intel:</p>
<blockquote><p><em>Jeder einzelne API-Call wird zeitlich erfasst und ausgegeben. Man sieht also ganz genau, wie lange der Grafikprozessor für die Berechnungen benötigt, und kann auf dieser Basis den Code entsprechend optimieren, damit das Spiel flüssig auf einem Onboard-Grafikchip läuft.</em> (Yuri O’Donnell, Creative Assembly)</p></blockquote>
<blockquote><p><em>Mithilfe von Intel GPA konnten wir recht einfach zwei Störenfriede in Form von Bottleneck aufspüren und eliminieren. Das verhalf uns zu einer 30-prozentigen Leistungssteigerung des Spiels. Ganz erstaunlich!</em> (Richard Broadhurst, Creative Assembly)</p></blockquote>
<blockquote><p><em>Das Hauptziel war es, die Framerate unseres Spiels &#8220;JX3&#8243; um den Faktor 2.1 zu erhöhen, ohne dass die Darstellungsqualität der gerenderten Bilder darunter leidet. Dank Intel GPA können wir sagen: Mission accomplished!</em> (Kingsoft)</p></blockquote>
<blockquote><p><em>Intel GPA ist ein wirklich cooles Tool. Es hat uns dabei geholfen, &#8220;Ghostbusters&#8221; für Intel Onboard-Grafikchips zu optimieren. Dabei ging es vordergründig um die Frage, wie wir es schaffen können, so wenig wie möglich an Details zu verlieren und gleichzeitig so viel wie möglich Merkmale zu erhalten (Schatten, Reflexionen, etc.). Ich muss sagen: wir haben mithilfe von Intel GPA die passenden Antworten gefunden.</em> (Mark Randel, Terminal Reality)</p></blockquote>
<blockquote><p><em><a title="Im Detail: Intel VTune Amplifier XE 2011 fka VTune Performance Analyzer/Thread Profiler" href="http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/"> </a>Wir arbeiten schon seit längeren mit Tools wie <a title="Im Detail: Intel VTune Amplifier XE 2011 fka VTune Performance Analyzer/Thread Profiler" href="http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/">VTune Performance Analyzer</a>, <a title="Thread Profiler: Parallelisierte Anwendungen grafisch testen" href="http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/">Intel Thread Profiler</a> und Intel GPA. Und ich muss sagen: Ohne diese Tools wären wir nicht in der Lage gewesen, die Framerates unserer Spiele auf ein solch hohes Level zu bringen, wie wir es heute gewohnt sind. Hoffentlich können wir auch in Zukunft dazu beitragen, diese Tools noch ein wenig besser zu machen.</em> (Graham Watson, Codemasters)</p></blockquote>
<blockquote><p><em>Intel GPA lässt sich einfach bedienen und erzeugt all die Informationen, die wir für das Optimieren der Render-Pipelines und der Gesamt-Performance unserer Spiele benötigen. Darüber hinaus ist es ein prima Debugging-Tool. Intel GPA hilft uns wirklich, unsere Effizienz zu verbessern.</em> (777 Studio, &#8220;Rise of Flight&#8221;)</p></blockquote>
<blockquote><p><em>Mithilfe von Intel GPA konten wir Civilization V für sämtliche am Markt befindlichen Grafikchips optimieren &#8211; von Onboard-GPUs bis hin zu Highend-Karten. Dank des GPA-Tools &#8220;Platform View&#8221; &#8211; in Kombination mit <a title="Intel TBB 3.0 mit neuen Funktionen und VS2010-Support" href="http://www.software-dev-blog.de/intel-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/2010/">Intel TBB</a> &#8211; konnten wir unseren Spielecode so optimieren, dass er von sämtlichen verfügbaren Prozessoren maximalen Gebrauch macht &#8211; 6-Kern-Core-i7-CPU inklusive.</em> (Dan Baker, Firaxis)</p></blockquote>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/das-sagen-bekannte-spieleentwickler-uber-intel-graphics-performance-analyzers/05/2011/&via=sw_devtwits&text=Das sagen bekannte Spieleentwickler über Intel Graphics Performance Analyzers&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/das-sagen-bekannte-spieleentwickler-uber-intel-graphics-performance-analyzers/05/2011/&via=sw_devtwits&text=Das sagen bekannte Spieleentwickler über Intel Graphics Performance Analyzers&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/das-sagen-bekannte-spieleentwickler-uber-intel-graphics-performance-analyzers/05/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel veröffentlicht Graphics Performance Analyzers (GPA) 4.0</title>
		<link>http://www.software-dev-blog.de/intel-veroffentlicht-graphics-performance-analyzers-gpa-4-0/03/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-veroffentlicht-graphics-performance-analyzers-gpa-4-0/03/2011/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 10:51:18 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[GPA]]></category>
		<category><![CDATA[Graphics Performance Analyzer]]></category>
		<category><![CDATA[Optimieren]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1498</guid>
		<description><![CDATA[Nachdem ich in der vergangenen Woche über PC-Spiele geschrieben und meine düsteren Visionen veröffentlicht habe, hier nun etwas Positives: Intel hat die Version 4 der Toolsuite Graphics Performance Analyzers (GPA) veröffentlicht, die selbstverständlich auf die Sandy Bridge-Architektur hin optimiert wurde.  Dabei handelt es sich um ein Set von Software-Tools, das Spiele-Entwicklern  dabei hilft, die Performance [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich in der vergangenen Woche <a href="http://www.software-dev-blog.de/game-over-klassische-pc-spiele-vor-dem-aus/02/2011/" target="_self">über PC-Spiele geschrieben und meine düsteren Visionen veröffentlicht habe</a>, hier nun etwas Positives:</p>
<p>Intel hat die <a href="http://software.intel.com/en-us/articles/intel-gpa" target="_blank">Version 4 der Toolsuite Graphics Performance Analyzers (GPA) veröffentlicht</a>, die selbstverständlich auf die Sandy Bridge-Architektur hin optimiert wurde.  Dabei handelt es sich um ein Set von Software-Tools, das Spiele-Entwicklern  dabei hilft, die Performance der eigenen Applikationen zu verbessern.</p>
<p>GPA visualisiert die Performance-Werte und zeigt deutlich, in welchen Frames die Schwachstellen zu finden sind. Zudem ermöglicht es „Was-wäre-wennn“-Analysen in Echtzeit, um die optimalen Grafikeinstellungen und -werte zu ermitteln. Zur Analyse typischer CPU-Probleme sind hingegen andere Intel-Tools wie Intel <a href="http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/" target="_self">VTune Performance Analyzer</a> und <a href="http://www.software-dev-blog.de/?s=parallel+studio&amp;x=0&amp;y=0" target="_self">Intel Parallel Studio</a> besser geeignet.</p>
<p>Die neue Version 4 bietet signifikante Verbesserungen, die weitestgehend aus dem Feedback der bestehenden Anwender resultieren und wendet sich an Programmierer für Windows (7, Vista, XP mit DirectX in den Versionen 9-11).</p>
<p>Der <a href="http://software.intel.com/en-us/articles/intel-gpa/" target="_blank">Download ist für registrierte User kostenlos</a>.</p>
<p><img class="alignnone size-full wp-image-1499" title="Performance-Analyse in Echtzeit mit GPA" src="http://www.software-dev-blog.de/wp-content/images/2011/03/gpa.png" alt="Performance-Analyse in Echtzeit mit GPA" width="510" height="398" /></p>
<h4>Vorteile der neuen Version</h4>
<p>Insgesamt sorgt ein verbessertes Programmdesign dafür, dass Sie Ihre Spiele-Apps intuitiv und schneller analysieren können. Zudem erweitert die Microsoft DirectX 11-Unterstützung das Spektrum der Spiele, die Sie testen und optimieren können.</p>
<p>Weitere Vorteile in Stichpunkten:</p>
<ul>
<li>Voll konfigurierbare Funktion für automatisch ablaufendes Capturing von Frames oder Trace Files (etwa alle Frames, die langsamer als 20 FPS sind)</li>
<li>Screenshot-Vorschau in Thumbnails erleichtert die Auswahl der Frames</li>
<li>Neue “How to&#8221;-Videos helfen Neulingen bei den ersten Schritten mit GPA</li>
<li>Das neue GPA-System Analyzer Heads-Up Display (HUD) ermöglicht eine intuitive Analyse und ist bereits für die aktuellen GPU-Metrics auf Intel HD Graphics 2000/3000 Hardware (GPU bei Sandy Bridge) gerüstet, um gerade dort die Bottlenecks in den Apps festzustellen</li>
<li>Intel Graphics Frame Analyzers unterstützt Multiple Render Targets (MRT)</li>
<li>Es werden mehr Texturen als bisher unterstützt</li>
</ul>
<p>Für den Einstieg in das Tool hat Intel einen <a href="http://software.intel.com/en-us/articles/intel-graphics-performance-analyzers-quick-start-guide" target="_blank">Quickstart-Guide</a> und eine <a href="http://software.intel.com/en-us/articles/gpa-faq/" target="_blank">FAQ-Seite</a> veröffentlicht.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/intel-veroffentlicht-graphics-performance-analyzers-gpa-4-0/03/2011/&via=sw_devtwits&text=Intel veröffentlicht Graphics Performance Analyzers (GPA) 4.0&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/intel-veroffentlicht-graphics-performance-analyzers-gpa-4-0/03/2011/&via=sw_devtwits&text=Intel veröffentlicht Graphics Performance Analyzers (GPA) 4.0&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/intel-veroffentlicht-graphics-performance-analyzers-gpa-4-0/03/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallelisierungsgrad von .NET- und Java-Anwendungen testen</title>
		<link>http://www.software-dev-blog.de/parallelisierungsgrad-von-net-und-java-anwendungen-testen/03/2011/</link>
		<comments>http://www.software-dev-blog.de/parallelisierungsgrad-von-net-und-java-anwendungen-testen/03/2011/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 07:00:00 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1497</guid>
		<description><![CDATA[Zugegeben, ganz neu ist der Intel Concurrency Checker nicht . Mit diesem Tool lässt sich ziemlich einfach der Parallelisierungsgrad einer Anwendung messen &#8211; und zwar ganz egal, ob es sich dabei um ein C++-, .NET- oder Java-Programm handelt. Denn das Intel-Tool untersucht &#8211; wie so viele andere Software-Werkzeuge &#8211; nicht den Sourcecode des zu testenden [...]]]></description>
			<content:encoded><![CDATA[<p>Zugegeben, ganz neu ist der <a href="http://www.software-dev-blog.de/video-parallelisierungsgrad-von-c-anwendungen-messen/04/2009/" target="_self">Intel Concurrency Checker</a> nicht . Mit diesem Tool lässt sich ziemlich einfach der Parallelisierungsgrad einer Anwendung messen &#8211; und zwar ganz egal, ob es sich dabei um ein C++-, .NET- oder Java-Programm handelt. Denn das Intel-Tool untersucht &#8211; wie so viele andere Software-Werkzeuge &#8211; nicht den Sourcecode des zu testenden Programms, sondern erstellt mithilfe der laufenden Anwendung und des daraus resultierenden Datenaufkommens eine Testdatei, in der bestimmte Parameter abgelegt werden. Anhand dieser Werte lässt sich dann der Parallelisierungsgrad der Anwendung ermitteln.</p>
<p>Das kann man einerseits selbst erledigen, indem man zunächst bestimmte Konstrukte parallelsiert, um den Multicore-Koeffizienten zu verbessern. Hierzu eignen sich ja beispielsweise Schleifenkonstrukte, die eine große Zahl an Daten in kurzer Zeit manipulieren. Sobald man testweise eine for-Schleife mit dem richtigen Befehl und dem dazu passenden Programmiermodell (wie zum Beispiel <a href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a>) parallelisiert hat, kompiliert man die Anwendung erneut, startet den Concurrency Checker und betrachtet die so ermittelten Testergebnisse.</p>
<p>Das ist natürlich aufwändig und erfordert ein gewisses Maß an Paralleliserungs-Know-now. Einfacher geht es da <a href="http://swpartner.intel.com/Partner/Initiatives/SATCenter.aspx?Lang=ENG#" target="_blank">mit dem zugehörigen Service</a>, den Intel Software-Entwicklern kostenlos anbietet. Das einzige, was Sie hierfür benötigen, ist ein <a href="https://secure-swpartner.intel.com/partner/Enrollment/Enrollment.aspx?LANG=ENG" target="_blank">gültiger Account des Intel Software Partner Program</a>. Sobald Sie Besitzer der notwendigen Login-Daten sind, können Sie den Testbericht, den der Concurrency Checker automatisch ausspuckt, auf den Intel-Server laden. Dieser wertet die Daten aus und stellt diese in grafischer Art und Weise am Bildschirm dar.</p>
<p>Falls die hierfür eingesetzten Tools Parallelisierungspotenzial innerhalb Ihrer Anwendung finden, bekommen Sie das mitgeteilt und Sie müssen sich selbst um das Aufspüren der möglichen Sourcecode-Stellen nicht kümmern. Was Sie allerdings schon wissen sollten, wie Sie die identifizierten Stellen mit entsprechenden Parallel-Konstrukten versehen. Und das wiederum erfordert ein wenig mehr als nur den Concurrency Checker. Aber wozu gibt es dieses Blog, oder?!</p>
<p>Falls Sie sich zu dem Thema ein Video angucken wollen, <a href="http://swpartner.intel.com/Partner/Initiatives/SATCenter.aspx?Lang=ENG#" target="_blank">hilft ein Mausklick auf diesen Link</a>. Oder Sie <a href="http://software.intel.com/en-us/articles/concurrency-improvement-center/" target="_blank">besuchen die Concurrency-Checker-Seite</a>, die Intel speziell zu diesem Thema zusammen gezimmert hat.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallelisierungsgrad-von-net-und-java-anwendungen-testen/03/2011/&via=sw_devtwits&text=Parallelisierungsgrad von .NET- und Java-Anwendungen testen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallelisierungsgrad-von-net-und-java-anwendungen-testen/03/2011/&via=sw_devtwits&text=Parallelisierungsgrad von .NET- und Java-Anwendungen testen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/parallelisierungsgrad-von-net-und-java-anwendungen-testen/03/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ausblick auf die CES, Sandy Bridge und zwei nützliche Tools</title>
		<link>http://www.software-dev-blog.de/ausblick-auf-die-ces-sandy-bridge-und-zwei-nutzliche-tools/01/2011/</link>
		<comments>http://www.software-dev-blog.de/ausblick-auf-die-ces-sandy-bridge-und-zwei-nutzliche-tools/01/2011/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 09:23:43 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Nehalem]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Preview]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1448</guid>
		<description><![CDATA[Keine Ahnung, wie viele Menschen Ihnen in den letzten Tagen „Ein gutes neues Jahr!“ gewünscht haben. Aber vermutlich waren es viele, und ganz sicher werden sie Recht behalten. Denn das Jahr 2011 wird für Parallel-Programmierer und Spiele-Entwickler Maßstäbe setzen! In wenigen Tagen wird Intel während der CES in Las Vegas die neue Prozessorgeneration Sandy Bridge [...]]]></description>
			<content:encoded><![CDATA[<p>Keine Ahnung, wie viele Menschen Ihnen in den letzten Tagen „Ein gutes neues Jahr!“ gewünscht haben. Aber vermutlich waren es viele, und ganz sicher werden sie Recht behalten. Denn das Jahr 2011 wird für Parallel-Programmierer und Spiele-Entwickler Maßstäbe setzen!</p>
<p>In wenigen Tagen wird Intel während der <a href="http://www.cesweb.org/" target="_blank">CES in Las Vegas</a> die <strong>neue Prozessorgeneration Sandy Bridge</strong> offiziell vorstellen. Vor Ort werden dann auch gleich ein paar Hardware-Hersteller erste Notebooks mit den neuen Recheneinheiten zeigen.</p>
<p>Die Prozessor-Architektur von Sandy Bridge wird vor allem in puncto Multimedia-Performance alle Vorgänger der Nehalem-Bauweise in den Schatten stellen. Sandy Bridge integriert den Grafikkern (GPU) in die CPU bei einer Strukturbreite von 32 Nanometern. Dank der integrierten Encoding-Einheit lassen sich Videos wesentlich schneller konvertieren als beispielsweise mit bekannten Core-i5-Prozessoren.</p>
<p>Die technologischen Neuerungen von Sandy Bridge und die daraus resultierenden, erweiterten Möglichkeiten für Parallel-Computing sind Anlass genug, dieses Blog wiederzubeleben. Ich werde Sie ab sofort regelmäßig mit News, technischem Background und Veranstaltungshinweisen versorgen, die Ihnen den Programmieralltag etwa erleichtern.</p>
<p>Zunächst aber darf ich Ihnen zwei neue, sehr nützlich Tools empfehlen, die Intel im Rahmen der Partnerprogramme veröffentlich hat und vor allem Entwickler von Media- und Videoanwendungen adressieren.</p>
<p>Das <a href="http://software.intel.com/en-us/articles/media/?CID=ISPP:106BL106ENG1363" target="_blank">Intel Media Software Development Kit in der Version 1.5</a> ist ein plattformübergreifendes SDK, das Ihnen hilft, auf einfache Weise leistungsstarke und schnelle Videoanwendungen zu entwickeln.  Das Tool-Paket bietet Ihnen drei Highlights:</p>
<ul>
<li>Codecs für Hardwarebeschleunigung: Sie greifen auf Video-Codecs zu, die für Intel Multicore-Prozessoren und Intel HD Graphics optimiert wurden und bestmögliche Performance bieten</li>
<li>Einheitliches API für unterschiedliche Plattformen: Weniger Code und weniger Komplexität durch ein universelles API, das viele PC-Plattformen unterstützt, darunter selbstverständlich auch die zukunftsträchtigen Intel Graphics- und Multicore-Architekturen.</li>
<li>Support und Add-Ons: Schneller optimale Ergebnisse erzielen dank nützlicher Features wie Video-Pre-Processing, Decodieren und Encodieren</li>
</ul>
<p>Sie können das <a href="http://software.intel.com/en-us/articles/media/?CID=ISPP:106BL106ENG1363" target="_blank">Media Software Development Kit kostenlos laden und installieren</a>. Sinnvoll ergänzt wird das SDK durch das <a href="http://swpartner.intel.com/Partner/Initiatives/SATCenter.aspx?Lang=ENG" target="_blank">Intel Media Checker Software Assessment Tool</a>. Zugegeben, eine grauenhafte Bezeichnung, aber das Tool ist überaus nützlich. Denn damit stellen Sie beispielsweise sicher, dass Sie das SDK korrekt in die Anwendungen einbinden. Zudem fungiert es als Tutorial, indem es die Funktionen und Technologien des SDK erläutert. Also für die ersten Schritte mit dem SDK sicherlich genau richtig. Und kostenlos ist es natürlich auch. Viel Erfolg damit!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/ausblick-auf-die-ces-sandy-bridge-und-zwei-nutzliche-tools/01/2011/&via=sw_devtwits&text=Ausblick auf die CES, Sandy Bridge und zwei nützliche Tools&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/ausblick-auf-die-ces-sandy-bridge-und-zwei-nutzliche-tools/01/2011/&via=sw_devtwits&text=Ausblick auf die CES, Sandy Bridge und zwei nützliche Tools&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/ausblick-auf-die-ces-sandy-bridge-und-zwei-nutzliche-tools/01/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wie multicore-optimiert ist Office 2010?</title>
		<link>http://www.software-dev-blog.de/wie-multicore-optimiert-ist-office-2010/05/2010/</link>
		<comments>http://www.software-dev-blog.de/wie-multicore-optimiert-ist-office-2010/05/2010/#comments</comments>
		<pubDate>Wed, 19 May 2010 13:03:07 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1379</guid>
		<description><![CDATA[Wer immer noch glaubt, dass Multicore-Optimierungen, Multithreading und Co. nur etwas für Highend-Software-Lösungen sind, sollte sich mal etwas näher mit Office 2010 beschäftigen. Denn was Microsoft hier an Mühen insvestiert hat, um die aktuelle All-in-One-Lösung für den modernen PC-Arbeiter für vier, sechs und mehr Kerne zu optimieren, ist aller Ehren wert &#8211; und diesen Blogbeitrag. [...]]]></description>
			<content:encoded><![CDATA[<p>Wer immer noch glaubt, dass Multicore-Optimierungen, Multithreading und Co. nur etwas für Highend-Software-Lösungen sind, sollte sich mal etwas näher mit Office 2010 beschäftigen. Denn was Microsoft hier an Mühen insvestiert hat, um die aktuelle All-in-One-Lösung für den modernen PC-Arbeiter für vier, sechs und mehr Kerne zu optimieren, ist aller Ehren wert &#8211; und diesen Blogbeitrag.</p>
<p>Die einzelnen Bereiche und Tools wurden wie folgt an die moderne CPU-Architektur angepasst:</p>
<ul>
<li>Sämtliche Anwendungen wurden einem Multithreading unterzogen, was unter anderem schnelleres Öffnen und Speichern von Dokumenten ermöglicht.</li>
</ul>
<ul>
<li>Beim Starten von Outlook werden mehrere Threads gleichzeitig gestartet, was dazu führt, dass parallel die Bedieneroberfläche aufgebaut, die Kalendereinträge geladen und die Voransicht der erhaltenen E-Mails angezeigt werden. Jeder Task bekommt also seinen eigenen Thread zugewiesen.</li>
</ul>
<ul>
<li>Word erledigt dank Multithreading die Paginierung im Hintergrund, was Raum für andere Aufgaben zur selben Zeit lässt.</li>
</ul>
<ul>
<li>In Excel werden Pivot-Tabellen parallel und damit deutlich schneller sortiert.</li>
</ul>
<ul>
<li>Multithreading wird in Excel aber auch dazu eingesetzt, Berechnungen in den Hintergrund zu schieben, während gleichzeitig grafisch orientierte Arbeiten wie das Ändern der Zeilenhöhe oder das automatische Anpassen der Zellenbreite an die Inhalte vorgenommen werden.</li>
</ul>
<p>Allerdings stand Microsoft beim Optimieren von Office 2010 an Multicore-Rechner vor einem erheblichen Problem: Wie können Tools wie Word oder Excel so verbessert werden, dass sie die häufigen Wartezeiten, die sich bei der Mensch-Maschine-Interaktion ergeben, möglichst minimieren? Daher wurden diejenigen Flaschenhälse identifiziert, die sich beispielsweise beim Start der Anwendung oder beim Öffnen oder Speichern einer Datei ergeben und Wartezeiten verursachen. Daran wurde dann verstärkt gearbeitet.</p>
<p>Nur setzt Microsoft immer noch sehr auf das funktionale Multithreading, bei dem die unterschiedlichen Aufgaben der Software eigenen Threads zugewiesen werden. Das ist zwar nicht sehr effizient (da diese Methode nicht optimal skaliert), aber wohl angesichts der hohen I/O-Aktivitäten zu vernachlässigen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/wie-multicore-optimiert-ist-office-2010/05/2010/&via=sw_devtwits&text=Wie multicore-optimiert ist Office 2010?&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/wie-multicore-optimiert-ist-office-2010/05/2010/&via=sw_devtwits&text=Wie multicore-optimiert ist Office 2010?&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/wie-multicore-optimiert-ist-office-2010/05/2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multicore-Guide, Teil 2 ist verfügbar</title>
		<link>http://www.software-dev-blog.de/multicore-guide-teil-2-ist-verfugbar/04/2010/</link>
		<comments>http://www.software-dev-blog.de/multicore-guide-teil-2-ist-verfugbar/04/2010/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 13:09:05 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1365</guid>
		<description><![CDATA[Mitte März hatte ich über eine ausführliche Sammlung gebloggt, in der es sehr ausführlich um das Thema Multicore-Programmierung geht. Und jetzt habe ich dazu passend eine E-Mail des Intel-Service &#8220;Software Dispatch&#8221; erhalten. Diese Mail verweist nämlich auf den zweiten Teil des großen Multicore-Guides. Darin geht es auf gut 50 Seiten unter anderem um folgende Dinge: [...]]]></description>
			<content:encoded><![CDATA[<p>Mitte März hatte ich <a href="http://www.software-dev-blog.de/ausfuhrliche-ubersicht-zur-multicore-programmierung/03/2010/">über eine ausführliche Sammlung gebloggt</a>, in der es sehr ausführlich um das Thema Multicore-Programmierung geht. Und jetzt habe ich dazu passend eine E-Mail des Intel-Service &#8220;Software Dispatch&#8221; erhalten. Diese Mail verweist nämlich auf den zweiten Teil des großen Multicore-Guides. Darin geht es auf gut 50 Seiten unter anderem um folgende Dinge:</p>
<ul>
<li>das richtige Speicher-Management beim Threaden von Anwendungen</li>
</ul>
<p>und</p>
<ul>
<li>der richtige Einsatz der bestehenden Intel-Tools wie <a title="Intel Integrated Performance Primitives" href="http://www.software-dev-blog.de/parallel-bibliotheken-helfen-bei-der-software-entwicklung/02/2009/">Integrated Performance Primitives</a> und <a title="Parallel Inspector" href="http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/">Parallel Inspector</a>, <a title="Parallel Amplifier" href="http://www.software-dev-blog.de/isc’09-intel-parallel-amplifier-im-detail/04/2009/">Parallel Amplifier</a> und <a title="Parallel Composer" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Composer</a>.</li>
</ul>
<p>Toll an diesem Programmier-Leitfaden ist die sehr ausführlich Darstellung möglicher Szenarien und wie sich diese richtig behandeln lassen. Dazu gibt es eine Menge nützlicher Diagramme und Code-Beispiele.</p>
<p>Allerdings hat Intel vor den Download dieser digitalen Broschüre <a href="http://softwaredispatch.intel.com/m/p/int/isd/source_dreg.asp?email=" target="_blank">eine kleine Registrierung</a> gestellt, die aber nur aus einem Namen und einer E-Mail-Adresse besteht. Anschließend könnt ihr sogar auswählen, welche Themen und Broschüren euch besonders interessieren. Im Falle der Multithreading-Anleitungen solltet ihr &#8220;Intel Software Dispatch&#8221; anklicken. Viel Spaß beim Lesen!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/multicore-guide-teil-2-ist-verfugbar/04/2010/&via=sw_devtwits&text=Multicore-Guide, Teil 2 ist verfügbar&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/multicore-guide-teil-2-ist-verfugbar/04/2010/&via=sw_devtwits&text=Multicore-Guide, Teil 2 ist verfügbar&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/multicore-guide-teil-2-ist-verfugbar/04/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aus seriell mach parallel: Intel Parallel Advisor Lite</title>
		<link>http://www.software-dev-blog.de/aus-seriell-mach-parallel-intel-parallel-advisor-lite/03/2010/</link>
		<comments>http://www.software-dev-blog.de/aus-seriell-mach-parallel-intel-parallel-advisor-lite/03/2010/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 12:38:50 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1336</guid>
		<description><![CDATA[Kollege Preiss von Intel hat mal wieder fleißig geschrieben, und rausgekommen ist ein gedruckter Beitrag in der Elektronik Industrie, den es aber natürlich auch als PDF zum kostenlosen Download gibt. Thema des Artikels: Intel Parallel Advisor Lite, ein ziemlich mächtiges Tool zum Konvertieren von seriellem in parallelen Code. Der Advisor Lite ist übrigens Teil der [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/">Kollege Preiss</a> von Intel hat <a href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">mal</a> <a href="http://www.software-dev-blog.de/surftipp-parallel-studio-artikel-kostenlos-downloaden/06/2009/">wieder</a> fleißig geschrieben, und rausgekommen ist ein gedruckter Beitrag in der <em>Elektronik Industrie</em>, den es aber natürlich auch <a href="http://www.elektronik-industrie.de/ae/article/42006-Consulting-Entwicklungswerkzeug+für+parallele+Anwendungen?PHPSESSID=34d037602581dd4e999a6517b3f93fff">als PDF zum kostenlosen Download</a> gibt. Thema des Artikels: <a href="http://www.software-dev-blog.de/parallel-studio-das-leistet-der-parallel-advisor-lite/05/2009/">Intel Parallel Advisor Lite</a>, ein ziemlich mächtiges Tool zum Konvertieren von seriellem in parallelen Code. Der Advisor Lite ist übrigens Teil der Intel-Suite <a href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a>, ein Plug-In für Visual Studio 2005 und 2008.</p>
<p>In dem ausführlichen Beitrag wird gezeigt, wie das Intel-Tool dabei helfen kann, serielle Codeabschnitte zu parallelisieren. Ach ja: Das betrifft ausschließlich C++-Programmierer. Toll an Advisor Lite ist sein schrittweises Herantasten an den möglichen Multithread-Code: Anstatt alles auf einmal umzustellen, erlaubt das Tool ein sukzessives Optimieren des seriellen Quellcodes. Hierzu setzt es vorhandene Debugger-Tools ein, mit denen der parallelisierte Quellcode sofort getestet und mögliche Fehler identifiziert und eliminiert werden können. Dazu zählen unter anderem Data-Sharing-Probleme, die sich beim Synchronisieren von Threads ergeben können.</p>
<p>Interessant an Edmunds Artikel ist übrigens die Vorgehensweise des Advisor Lite:</p>
<ol>
<li>Leistungsengpässe (Hotspots) identifizieren</li>
<li>Annotationen in den seriellen Quellcode einfügen (eine Art von C-/C++-Makros)</li>
<li>die  annotierten Quellcodes verifizieren</li>
<li>parallele Datenzugriffe untersuchen</li>
<li>Datenkonflikte auflösen, die unter Schritt 4 aufgespürt wurden</li>
<li>Quellcodeänderungen testen</li>
</ol>
<p>Ach ja: Wer noch nicht wissen sollte, was Annotationen sind: Sogar hierzu hält Edmund die passenden Antworten parat. Also alles in allem eine wirklich gelungene Abhandlung in Sachen Parallel Advisor Lite. <a title="Hier gibt's den Artikel als PDF" href="http://www.elektronik-industrie.de/ae/article/42006-Consulting-Entwicklungswerkzeug+f%C3%BCr+parallele+Anwendungen?PHPSESSID=34d037602581dd4e999a6517b3f93fff" target="_blank">Und, worauf wartet ihr noch?</a></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/aus-seriell-mach-parallel-intel-parallel-advisor-lite/03/2010/&via=sw_devtwits&text=Aus seriell mach parallel: Intel Parallel Advisor Lite&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/aus-seriell-mach-parallel-intel-parallel-advisor-lite/03/2010/&via=sw_devtwits&text=Aus seriell mach parallel: Intel Parallel Advisor Lite&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/aus-seriell-mach-parallel-intel-parallel-advisor-lite/03/2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ausführliche Übersicht zur Multicore-Programmierung</title>
		<link>http://www.software-dev-blog.de/ausfuhrliche-ubersicht-zur-multicore-programmierung/03/2010/</link>
		<comments>http://www.software-dev-blog.de/ausfuhrliche-ubersicht-zur-multicore-programmierung/03/2010/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 09:14:28 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1333</guid>
		<description><![CDATA[Zugegeben, es ist auf diesem Blog ein wenig still geworden rund um das Thema Multicore-Programmierung. Das liegt daran, dass ich mich mit dem Thema hier schon ausführlich beschäftigt habe und sich die Themen grade ein wenig verschieben. Mit der Ankündigung des Intel AppUp Center während des letztjährigen Intel Developer Forum rückte das Netbook mit all [...]]]></description>
			<content:encoded><![CDATA[<p>Zugegeben, es ist auf diesem Blog ein wenig still geworden rund um das Thema <a href="http://www.software-dev-blog.de/category/multicore/">Multicore-Programmierung</a>. Das liegt daran, dass ich mich mit dem Thema hier schon ausführlich beschäftigt habe und sich die Themen grade ein wenig verschieben. Mit der Ankündigung des <a href="http://www.intelappup.com" target="_blank">Intel AppUp Center</a> während des letztjährigen <a href="http://www.software-dev-blog.de/tag/idf09/">Intel Developer Forum</a> rückte das Netbook mit all seinen Facetten in den Mittelpunkt.</p>
<p>Das wird sicherlich auch noch ein wenig so bleiben, was aber nicht bedeutet, dass auf dem Software Dev Blog die parallele Verarbeitung von Programmcode keinen Platz mehr findet. Um dies unmittelbar zu belegen, möchte ich heute auf eine sehr ausführliche Übersicht aufmerksam machen. &#8220;Ultimativ&#8221; klingt immer ein wenig anbiedernd und angeberisch, aber in diesem Fall kommt der Begriff ziemlich nah an das heran, was die amerikanischen Kollegen unter dem Titel <a title="Intel Guide for Developing Multithreaded Applications" href="http://software.intel.com/en-us/articles/intel-guide-for-developing-multithreaded-applications/" target="_blank">&#8220;Intel Guide for Developing Multithreaded Applications&#8221;</a> zusammengetragen haben.</p>
<p>Diese wirklich umfangreiche Sammlung betrachtet sämtliche Aspekte der Parallelprogrammierung. Ob das das <a href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">Multithreaden</a> von Anwendungen im Allgemeinen ist oder spezielle Themen wie die Daten- und Ablaufsynchronisation oder das Speichermanagement &#8211; so detailliert konntet ihr euch dem Thema wohl selten widmen. Ok, das Ganze findet zwar auf Englisch statt, aber das sollte doch keine echte Hürde darstellen.</p>
<p>Ach ja, natürlich darf eine genaue Beschreibung sämtlicher <a href="http://www.software-dev-blog.de/tag/tool/">Intel-Tools</a> nicht fehlen, wenn es um das Multithreaden von Anwendungen geht. Also so Themen wie <a href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel Compiler</a>, <a href="http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/">Parallel Inspector</a>, <a href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a>, Parallel Amplifier und viele mehr. Na, dann kann ich euch nur noch &#8220;Gut Stöber&#8221; wünschen und dass ihr möglichst viele Antworten auf eure parallelen Fragen findet. Die gibt es natürlich auch hier auf dem Software Dev Blog. Probiert doch einfach mal die Suchfunktion aus!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/ausfuhrliche-ubersicht-zur-multicore-programmierung/03/2010/&via=sw_devtwits&text=Ausführliche Übersicht zur Multicore-Programmierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/ausfuhrliche-ubersicht-zur-multicore-programmierung/03/2010/&via=sw_devtwits&text=Ausführliche Übersicht zur Multicore-Programmierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/ausfuhrliche-ubersicht-zur-multicore-programmierung/03/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Antiviren-Software von Avast ist multicore-tauglich</title>
		<link>http://www.software-dev-blog.de/antivirensoftware-von-avast-ist-multicore-tauglich/01/2010/</link>
		<comments>http://www.software-dev-blog.de/antivirensoftware-von-avast-ist-multicore-tauglich/01/2010/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 10:15:49 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1292</guid>
		<description><![CDATA[Gerade habe ich auf Zdnet.de eine News entdeckt, die von der sofortigen Verfügbarkeit der kostenlosen Antiviren-Software Avast Free Antivirus 5.0 berichtet. Neben einer komplett neu gestalteten Bedieneroberfläche für mehr Komfort hat sich laut der Avast-Entwickler die Scan-Engine deutlich verbessert, was gemäß interner Benchmarks die Verarbeitungsgeschwindigkeit um bis zu 80 Prozent schneller machen soll. Daneben glänzt [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade habe ich <a href="http://www.zdnet.de/news/wirtschaft_sicherheit_security_avast_free_antivirus_5_0_ist_fertig_story-39001024-41526039-1.htm" target="_blank">auf Zdnet.de eine News entdeckt</a>, die von der sofortigen Verfügbarkeit der kostenlosen Antiviren-Software <a href="http://www.zdnet.de/antivirenprogramme_fuer_windows_avast_free_antivirus_download-39002345-7069-1.htm" target="_blank">Avast Free Antivirus 5.0</a> berichtet. Neben einer komplett neu gestalteten Bedieneroberfläche für mehr Komfort hat sich laut der Avast-Entwickler die Scan-Engine deutlich verbessert, was gemäß interner Benchmarks die Verarbeitungsgeschwindigkeit um bis zu 80 Prozent schneller machen soll. Daneben glänzt die Software mit Echtzeitüberprüfungen des Dateisystems sowie des gesamten E-Mail-, Internet- und Netzwerkdatenverkehrs.</p>
<p>So viel Verbesserung in Sachen Performance lässt sich unter anderem mit Multicore-Optimierungen seitens der Avast-Entwickler bewerkstelligen. Damit erfolgt beispielsweise der Echtzeit-Scan auf einem Prozessorkern, während die GUI von einem zweiten Kern ausgeführt wird, was die Software insgesamt performanter macht.</p>
<p>Was die Leute bei Avast alles dafür getan haben, um ihre Software multicore-tauglich zu machen, werde ich versuchen herauszufinden. Sobald ich die passenden Antworten habe, werden sie natürlich hier veröffentlicht.</p>
<p><em><strong>PS:</strong></em> Falls ihr Avast Free Antivirus installieren wollt, solltet ihr vorher unbedingt die bereits installierte Antiviren-Software deinstallieren. Ansonsten legt ihr euch möglicherweise den PC selbst lahm.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/antivirensoftware-von-avast-ist-multicore-tauglich/01/2010/&via=sw_devtwits&text=Antiviren-Software von Avast ist multicore-tauglich&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/antivirensoftware-von-avast-ist-multicore-tauglich/01/2010/&via=sw_devtwits&text=Antiviren-Software von Avast ist multicore-tauglich&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/antivirensoftware-von-avast-ist-multicore-tauglich/01/2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Maxon setzt auf Intel Softwaretools für optimierte Apps</title>
		<link>http://www.software-dev-blog.de/maxon-setzt-auf-intel-softwaretools-fur-optimierte-apps/12/2009/</link>
		<comments>http://www.software-dev-blog.de/maxon-setzt-auf-intel-softwaretools-fur-optimierte-apps/12/2009/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 16:58:37 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1271</guid>
		<description><![CDATA[Dass Maxon alles dafür getan hat, ihre Software-Anwendungen wie Cinema 4D für die aktuellen Intel-Prozessoren zu optimieren, darüber habe ich schon vor längeren gebloggt. Und wie es der Zufall wollte (ok, der natürlich keiner war), konnten wir mit Maxon höchstpersönlich darüber reden, wie sie es immer wieder schaffen, dass ihre Anwendungen besonders performant auf Rechnern [...]]]></description>
			<content:encoded><![CDATA[<p>Dass Maxon alles dafür getan hat, ihre Software-Anwendungen wie Cinema 4D für die aktuellen Intel-Prozessoren zu optimieren, darüber habe ich schon <a title="Maxon-Multithreading: Darum ist Cinema 4D so performant" href="http://www.software-dev-blog.de/maxon-multithreading-darum-ist-cinema-4d-so-performant/06/2009/">vor längeren gebloggt</a>. Und wie es der Zufall wollte (ok, der natürlich keiner war), konnten wir mit Maxon höchstpersönlich darüber reden, wie sie es immer wieder schaffen, dass ihre Anwendungen besonders performant auf Rechnern mit Intel-Architektur laufen.</p>
<p>Ein wesentlicher Punkt ist unter anderem der Einsatz des <a title="Optimierte Compiler helfen beim Parallelisieren" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel C++ Compilers</a>, der laut Maxon schon mal ohne nennenswerte Änderungen am Code etwa 15 Prozent mehr Speed bringt. Aber auch der <a title="Thread Profiler: Parallelisierte Anwendungen grafisch testen" href="http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/">Intel Thread Profiler</a> steht bei Maxon ganz oben auf der Liste, wenn es darum geht herauszufinden, wie sich das parallelisierte Programm verhält, ob also die anfallenden Threads möglichst gleichmäßig auf die vorhandenen Ressourcen verteilt werden (Skalierung ist hier das Zauberwort).</p>
<p>Darüber hinaus kommen <a href="http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> und <a title="Neue Version der Intel Threading Building Blocks" href="http://www.software-dev-blog.de/neue-version-der-intel-threading-building-blocks/08/2009/">Intel Threading Building Blocks</a> zur Sprache. Ok, dann würde ich mal sagen, den Rest solltet ihr euch am besten selbst ansehen. Viel Spaß dabei!</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="290" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/-M1eX5Vvrg8&amp;hl=de_DE&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="520" height="290" src="http://www.youtube.com/v/-M1eX5Vvrg8&amp;hl=de_DE&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/maxon-setzt-auf-intel-softwaretools-fur-optimierte-apps/12/2009/&via=sw_devtwits&text=Maxon setzt auf Intel Softwaretools für optimierte Apps&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/maxon-setzt-auf-intel-softwaretools-fur-optimierte-apps/12/2009/&via=sw_devtwits&text=Maxon setzt auf Intel Softwaretools für optimierte Apps&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/maxon-setzt-auf-intel-softwaretools-fur-optimierte-apps/12/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GDC09: Spieletitel für integrierte Grafikchips optimieren</title>
		<link>http://www.software-dev-blog.de/gdc09-spieletitel-fur-integrierte-grafikchips-optimieren/08/2009/</link>
		<comments>http://www.software-dev-blog.de/gdc09-spieletitel-fur-integrierte-grafikchips-optimieren/08/2009/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 13:09:28 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[GDC09]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1144</guid>
		<description><![CDATA[Anlässlich der Game Developers Conference 2009 in Köln betrat Steve Hughes von Intel die Bühne, um über ein Tool zu sprechen, von dem hier schon öfter die Rede war: Intel Graphics Performance Analyzer. Mithilfe dieses kleinen Software-Werkzeugs können Spieleentwickler wie Sega ihre Titel so optimieren, dass sie nicht nur auf Desktop-PCs mit diskreter Grafikkarte vernünftig [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object width="464" height="261" data="http://www.youtube.com/v/FRQoY6zDsxQ&amp;hl=de&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/FRQoY6zDsxQ&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object></p>
<p>Anlässlich der Game Developers Conference 2009 in Köln betrat Steve Hughes von Intel die Bühne, um über ein Tool zu sprechen, von dem hier <a title=" Warum Demigod auch auf Notebooks spielbar ist " href="http://www.software-dev-blog.de/warum-demigod-auch-auf-notebooks-spielbar-ist/07/2009/">schon öfter</a> <a title=" Analysetool für DirectX-Games für mehr Laptop-Performance " href="http://www.software-dev-blog.de/analysetool-fur-directx-games-fur-mehr-laptop-performance/05/2009/">die Rede</a> war: Intel Graphics Performance Analyzer. Mithilfe dieses kleinen Software-Werkzeugs können <a title=" Warum “Empire: Total War” auf Notebooks so gut läuft" href="http://www.software-dev-blog.de/warum-empire-total-war-auf-notebooks-so-gut-lauft/07/2009/">Spieleentwickler wie Sega</a> ihre Titel so optimieren, dass sie nicht nur auf Desktop-PCs mit diskreter Grafikkarte vernünftig laufen, sondern auch auf Rechnern mit integriertem Grafikchip.</p>
<p>Um dabei eine optimale Balance aus flüssigem Gameplay und möglichst detail- und effektreichen Bildern zu garantieren, ermittelt Intel GPA vorhandene Hotspots eines Spieletitels wie in <em>Empire: Total War</em>. Hierfür haben die Software-Spezialisten der Sega Tech Group im Auftrag von Sega das komplette Spiel zu Testzwecken zweigeteilt: &#8220;Kampagnen&#8221; und &#8220;Schlachten&#8221;. Innerhalb dieser zwei Segmente wurden dann mithilfe des Intel GPA interessante Dinge identifiziert.</p>
<p><span id="more-1144"></span>Dazu gehörte beispielsweise das Rendern der Küstenlinie, was eine Menge an Rechenzeit beansprucht. Zuviel für ein System mit integrierter Grafik. Die Lösung war dann recht simpel: Shader-Befehle wurden vereinfacht, sodass die GPU weniger zu rechnen hat, ohne dass die Szenerie ihren Reiz verliert. Ähnlich verfuhren die Software-Entwickler in Sachen Regenschauer, die das Spiel auf Notebooks erheblich ausbremsten. So entschlossen sich die Sega-Ingenieure dazu, die einzelnen Regentropfen mit einer Textur zu überziehen, anstatt diese mithilfe eines aufwendigen Shaders berechnen zu lassen.</p>
<p>Nach seiner Präsentation hat sich Steve dann noch ein wenig Zeit genommen, um uns Intel Graphics Performance Analyzer in Aktion zu zeigen. Sehr sehenswert!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/gdc09-spieletitel-fur-integrierte-grafikchips-optimieren/08/2009/&via=sw_devtwits&text=GDC09: Spieletitel für integrierte Grafikchips optimieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/gdc09-spieletitel-fur-integrierte-grafikchips-optimieren/08/2009/&via=sw_devtwits&text=GDC09: Spieletitel für integrierte Grafikchips optimieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/gdc09-spieletitel-fur-integrierte-grafikchips-optimieren/08/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Warum Demigod auch auf Notebooks spielbar ist</title>
		<link>http://www.software-dev-blog.de/warum-demigod-auch-auf-notebooks-spielbar-ist/07/2009/</link>
		<comments>http://www.software-dev-blog.de/warum-demigod-auch-auf-notebooks-spielbar-ist/07/2009/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 10:24:41 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Notebook]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1108</guid>
		<description><![CDATA[Was ist der Traum aller Spiele-Publisher? Genau, dass ihre Spieletitel auf möglichst vielen Plattformen laufen. Daher sind sie stets in Sorge, dass ihre Games nicht nur auf einem Highend-PC gut aussehen, sondern auch auf einem Notebook mit integriertem Grafikchip, ohne dabei zu viele Kompromisse in Sachen 3D-Opulenz hinnehmen zu müssen. Klar ist aber, dass es [...]]]></description>
			<content:encoded><![CDATA[<p>Was ist der Traum aller Spiele-Publisher? Genau, dass ihre Spieletitel auf möglichst vielen Plattformen laufen. Daher sind sie stets in Sorge, dass ihre Games nicht nur auf einem Highend-PC gut aussehen, sondern auch auf einem Notebook mit integriertem Grafikchip, ohne dabei zu viele Kompromisse in Sachen 3D-Opulenz hinnehmen zu müssen. Klar ist aber, dass es vor allem um ein ausgewogenes Verhältnis von Spielbarkeit und realistischen Effekten geht.</p>
<p>Wer nun denkt, &#8220;man kann leider nicht alles haben&#8221;, liegt falsch. Wie das <a title="Das Video mit Gas Powered Games zum Intel GPA" href="http://software.intel.com/en-us/videos/gas-powered-games-optimization-demigod-using-gpa/" target="_blank">Video mit Gas Powered Games</a> zeigt, konnten die Entwickler von <a title="Webseite zu Demigod" href="http://www.demigodthegame.com/" target="_blank">Demigod</a> mithilfe der Toolsuite <a title="Analysetool für DirectX-Games für mehr Laptop-Performance" href="http://www.software-dev-blog.de/analysetool-fur-directx-games-fur-mehr-laptop-performance/05/2009/">Graphics Performance Analyzers (GPA)</a> von Intel eine Leistungssteigerung von etwa 30 Prozent erzielen &#8211; ohne dabei auf wesentliche 3D-Effekte verzichten zu müssen. Denn gerade beim Rendern produzierten sie einen echten Flaschenhals, den sie mit GPA entdecken konnten. Dabei ging es vor allem um einen ganz speziellen Effekt auf einem einzigen Level, der sich als Störenfried entpuppte &#8211; und der für das Laptop-Gaming eliminiert wurde. Lieber ein Schimmern oder Gleißen weniger als 10 oder 20 Bilder pro Sekunde.</p>
<p>Das Gute aus GPG-Sicht war auch die Tatsache, dass sich dieser Effekt recht einfach entfernen ließ und dazu nicht die komplette Shader-Einheit umgeschrieben werden musste, was den Entwicklern natürlich eine Menge Zeit erspart hat. Auch dabei hat die Toolsammlung geholfen, da sie grafisch basiert arbeitet und sich somit Hotspots und andere Flaschenhälse ohne größeren Aufwand identifizieren lassen. Auf diesem Weg konnten die Männer rund um Chef-Entwickler Bart Kijanka auch einen nervigen Blur-Effekt-Fehler aufspüren, der zwar schön aussieht (der Effekt, nicht der Fehler), aber gerade auf Laptops mit integrierter Grafik eine Menge an Performance-Einbußen mit sich brachte. Also, weg damit!</p>
<p>Beide Probleme wurden übrigens in einem einzigen Durchlauf mit den Grafiktools gefunden, was die Möglichkeiten der GPA unterstreicht. Klar, dass Bart sehr euphorisch die Zusammenarbeit mit Intel und den Support preist, der Gas Powered Games zuteil wurde. Wer sich also angesprochen fühlt, die Graphics Performance Analyzers mal selbst auszuprobieren, wird entweder (kostenlos) <a title="Hier Mitglied werden" href="https://ssl.software.intel.com/en-us/register/visual-adrenaline/" target="_blank">Mitglied des Entwicklerprogramms &#8220;Visual Adrenaline&#8221;</a> oder <a title="Hier kann man Toolsuite für 300 Dollar kaufen" href="http://sx.intel.com/p-744-intel-graphics-performance-analyzers.aspx" target="_blank">berappt 300 Dollar</a> für die Toolsuite.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/warum-demigod-auch-auf-notebooks-spielbar-ist/07/2009/&via=sw_devtwits&text=Warum Demigod auch auf Notebooks spielbar ist&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/warum-demigod-auch-auf-notebooks-spielbar-ist/07/2009/&via=sw_devtwits&text=Warum Demigod auch auf Notebooks spielbar ist&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/warum-demigod-auch-auf-notebooks-spielbar-ist/07/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Colin McRae DiRT 2 unterstützt DirectX 11 und Multithreading</title>
		<link>http://www.software-dev-blog.de/colin-mcrae-dirt-2-unterstutzt-directx-11-und-multithreading/07/2009/</link>
		<comments>http://www.software-dev-blog.de/colin-mcrae-dirt-2-unterstutzt-directx-11-und-multithreading/07/2009/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 12:47:10 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Optimieren]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1104</guid>
		<description><![CDATA[So weit ich mich noch erinnern kann, war Colin McRae eines der allerersten Rennspiele, das ich ausgiebig auf dem PC  &#8220;getestet&#8221; habe. Und es sah damals schon verdammt gut aus und ließ sich auch ganz passabel steuern. Das ist mittlerweile viele Jahre her, und Anno Domini 2009 kommt Colin McRae DiRT 2 als weiteres PC-Highlight [...]]]></description>
			<content:encoded><![CDATA[<p>So weit ich mich noch erinnern kann, war <a title="Colin McRae auf einem Macbook" href="http://www.it-techblog.de/spielbar-colin-mcrae-ralley-auf-dem-macbook-pro/11/2008/">Colin McRae</a> eines der allerersten Rennspiele, das ich ausgiebig auf dem PC  &#8220;getestet&#8221; habe. Und es sah damals schon verdammt gut aus und ließ sich auch ganz passabel steuern.</p>
<p>Das ist mittlerweile viele Jahre her, und Anno Domini 2009 kommt <a title="Die offizielle Webseite zu Colin McRae DiRT &quot;" href="http://www.dirt2game.com/" target="_blank">Colin McRae DiRT 2</a> als weiteres PC-Highlight in die Regale, wenn auch mit Verspätung. Der Grund hierfür ist recht einfach: DiRT 2 benötigt für die volle Performance und Schönheit DirectX 11. Die Grafikschnittstelle steht erst mit <a title="Praxisbericht: Windows 7 auf dem Netbook" href="http://www.it-techblog.de/praxisbericht-windows-7-auf-dem-netbook/07/2009/">Windows 7</a> auf PCs zur Verfügung und Window 7 erscheint am 22. Oktober. Zudem muss natürlich eine passende Grafikkarte im Rechner stecken, und auch die ist noch nicht verfügbar.</p>
<p>Dann geht`s aber richtig los mit Colin McRae DiRT 2. Dafür sollen Features wie Hardware-Tesselation, Shader Model 5.0 und Multithreading sorgen. Was sich genau dahinter verbirgt und was die McRae-Fans davon haben werden, will ich ganz genau wissen und habe beim zuständigen Produktmanager von Codemasters nachgefragt. Ich hoffe, seine Antwort lässt nicht zu lange auf sich warten &#8211; damit ihr bald wisst, wie es Codemasters schafft, Colin McRae DiRT 2 den angeblichen Fotorealismus einzuhauchen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/colin-mcrae-dirt-2-unterstutzt-directx-11-und-multithreading/07/2009/&via=sw_devtwits&text=Colin McRae DiRT 2 unterstützt DirectX 11 und Multithreading&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/colin-mcrae-dirt-2-unterstutzt-directx-11-und-multithreading/07/2009/&via=sw_devtwits&text=Colin McRae DiRT 2 unterstützt DirectX 11 und Multithreading&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/colin-mcrae-dirt-2-unterstutzt-directx-11-und-multithreading/07/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook-CTO ist mit aktuellen Prozessoren unzufrieden</title>
		<link>http://www.software-dev-blog.de/facebook-cto-ist-mit-aktuellen-prozessoren-unzufrieden/06/2009/</link>
		<comments>http://www.software-dev-blog.de/facebook-cto-ist-mit-aktuellen-prozessoren-unzufrieden/06/2009/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 10:13:58 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[HPC]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Skalierung]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1082</guid>
		<description><![CDATA[Gestern fand im schönen San Francisco die von Gigacom Network organisierte Structure 09 statt, eine Eintageskonferenz, die sich dieses Mal mit dem Thema Cloud Computing beschäftigte. Zu den Anwesenden und Vortragenden gehörte auch Jonathan Heiliger, seines Zeichens Vice President of Technical Operations der Social-Media-Plattform Facebook. Heiliger diskutierte mit Om Malik, Gründer von Gigacom Network, die [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern fand im schönen San Francisco die von Gigacom Network organisierte <a title="Structure-09-Webseite" href="http://events.gigaom.com/structure/09/" target="_blank">Structure 09</a> statt, eine Eintageskonferenz, die sich dieses Mal mit dem Thema Cloud Computing beschäftigte.</p>
<p>Zu den Anwesenden und Vortragenden gehörte auch Jonathan Heiliger, seines Zeichens Vice President of Technical Operations der Social-Media-Plattform <a title="Workshop: Facebook richtig nutzen" href="http://www.contentxperten.de/2009/05/06/workshop-facebook-richtig-nutzen/" target="_blank">Facebook</a>. Heiliger diskutierte mit Om Malik, Gründer von Gigacom Network, die Frage, wie viel Infrastruktur solch eine riesige Plattform wie Facebook benötigt und wie sich diese in Sachen Server- und Datenbankzugriffe beherrschen lässt.</p>
<p>In diesem Zusammenhang berichtete Mister Heiliger unter anderem darüber, dass sich Facebook aus Performance- und Skalierungsgründen neue Server mit den aktuellen Prozessoren angeschafft hat, um dem steigenden Ansturm von Facebook-Anwendern besser gerecht zu werden. Jedoch empfindet er die Mehrkosten wohl nicht als gerechtfertigt, da seinen Worten zufolge die Performance durch die neuen Chips zu wenig zugelegt hat. Außerdem merkte er an, dass Facebook die gegenüber der Presse propagierten Leistungsschübe bei der Performance ihrer Applikationen nicht sieht.</p>
<p>So weit, so gut. Dabei beschleicht mich das Gefühl, dass es sich Facebook damit ein wenig zu leicht macht. Denn die aktuellen Prozessoren skalieren nur dann wirklich, wenn die betreffenden Serveranwendungen das Leistungspotenzial der Rechnerfarm auch vernünftig ausnutzen. Ich gehe mal davon aus, dass sich Jonathan Heiliger und seine Mitarbeiter schon mal mit dem Thema <a title=" Highend-Datenbanksystem für Cluster-Umgebungen " href="http://www.software-dev-blog.de/highend-datenbanksystem-fur-cluster-umgebungen/12/2008/">HPC-konforme Anwendungen</a> beschäftigt haben. Oder, Jonathan?!</p>
<p>(via <a title="via computerworld.ch" href="http://www.computerworld.ch/aktuell/news/48454/" target="_blank">computerworld.ch</a>)</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/facebook-cto-ist-mit-aktuellen-prozessoren-unzufrieden/06/2009/&via=sw_devtwits&text=Facebook-CTO ist mit aktuellen Prozessoren unzufrieden&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/facebook-cto-ist-mit-aktuellen-prozessoren-unzufrieden/06/2009/&via=sw_devtwits&text=Facebook-CTO ist mit aktuellen Prozessoren unzufrieden&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/facebook-cto-ist-mit-aktuellen-prozessoren-unzufrieden/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reminder: Computerspiel optimieren und richtig abräumen</title>
		<link>http://www.software-dev-blog.de/reminder-computerspiel-optimieren-und-richtig-abraumen/06/2009/</link>
		<comments>http://www.software-dev-blog.de/reminder-computerspiel-optimieren-und-richtig-abraumen/06/2009/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 12:19:22 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Wettbewerb]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1067</guid>
		<description><![CDATA[In gut 15 Tagen ist es soweit: Da wird sich eine prominente Jury der Spieleentwickler-Welt zusammensetzen und darüber befinden, welches der eingereichten Spiele einen der ersten drei Preise erhält. Vergeben werden die Plätze eins, zwei und drei in den Kategorien &#8220;Bestes Multicore-Spiel&#8221;, &#8220;Bestes Notebook-Spiel&#8221; und &#8220;Bestes 3D-Chip-Game&#8221;. Zu gewinnen gibt es einen ganzen Haufen an [...]]]></description>
			<content:encoded><![CDATA[<p>In gut 15 Tagen ist es soweit: Da wird sich eine <a title="Mehr Infos zu Level Up 2009" href="http://www.software-dev-blog.de/optimierte-spieletitel-konnen-doppelt-und-dreifach-gewinnen/04/2009/" target="_self">prominente Jury der Spieleentwickler-Welt</a> zusammensetzen und darüber befinden, welches der eingereichten Spiele einen der ersten drei Preise erhält.</p>
<p>Vergeben werden die Plätze eins, zwei und drei in den Kategorien &#8220;Bestes Multicore-Spiel&#8221;, &#8220;Bestes Notebook-Spiel&#8221; und &#8220;Bestes 3D-Chip-Game&#8221;. Zu gewinnen gibt es einen ganzen Haufen an Entwicklertools, Tickets zu großen Entwicklerkonferenzen und PCs im Wert bis zu 4.000 US-Dollar. Und, ist das nix?</p>
<p>Falls das für euch interessant ist, solltet ihr euch möglichst schnell für den Wettbewerb<a title="Für Level-Up-Contest anmelden und gewinnen" href="http://software.intel.com/en-us/contests/levelup2009/contests.php" target="_blank"> &#8220;Level Up 2009&#8243; registrieren</a> und euer optimiertes Computerspiel anmelden. Auf dass ihr zu den glücklichen Gewinnern zählt!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/reminder-computerspiel-optimieren-und-richtig-abraumen/06/2009/&via=sw_devtwits&text=Reminder: Computerspiel optimieren und richtig abräumen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/reminder-computerspiel-optimieren-und-richtig-abraumen/06/2009/&via=sw_devtwits&text=Reminder: Computerspiel optimieren und richtig abräumen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/reminder-computerspiel-optimieren-und-richtig-abraumen/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analysetool für DirectX-Games für mehr Laptop-Performance</title>
		<link>http://www.software-dev-blog.de/analysetool-fur-directx-games-fur-mehr-laptop-performance/05/2009/</link>
		<comments>http://www.software-dev-blog.de/analysetool-fur-directx-games-fur-mehr-laptop-performance/05/2009/#comments</comments>
		<pubDate>Mon, 25 May 2009 10:29:22 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1049</guid>
		<description><![CDATA[Es soll Leute geben, die gehen davon aus, dass bis zum Jahr 2013 dreimal so viele Notebooks mit integriertem Grafikchipsatz wie mit diskreter Grafikkarte verkauft werden. Diese Grafikchips sind zwar leistungsschwächer als Highend-Grafikkarten von Nvidia und Konsorten, bringen aber genug 3D-Power und sind darüber hinaus sehr akkuschonend. Und was hat das alles mit Software-Entwicklung zu [...]]]></description>
			<content:encoded><![CDATA[<p>Es soll <a title="Mecury-Research-Blog" href="http://blog.mercury-rac.com/" target="_blank">Leute</a> geben, die gehen davon aus, dass bis zum Jahr 2013 dreimal so viele Notebooks mit integriertem Grafikchipsatz wie mit diskreter Grafikkarte verkauft werden. Diese Grafikchips sind zwar leistungsschwächer als Highend-Grafikkarten von Nvidia und Konsorten, bringen aber genug 3D-Power und sind darüber hinaus sehr akkuschonend.</p>
<p>Und was hat das alles mit Software-Entwicklung zu tun? Nun, für Spieleentwickler ergibt sich daraus ein wichtiger Aspekt: Wie kann ich dafür sorgen, dass meine Spiele auf den verschiedenen Plattformen gleichermaßen gut laufen, also auf diskreten Grafikkarten genauso wie auf integrierten Grafikchips. Und genau an diesem Punkt kommt <a title="Mehr Infos zu den GPA" href="http://software.intel.com/en-us/articles/intel-gpa/" target="_blank">Graphics Performance Analyzers</a> von Intel zum Einsatz. Mit dieser Toolsuite können Spieleprogrammierer recht schnell und unkompliziert herausfinden, an welchen Schrauben sie drehen müssen, um ihre Spieletitel für sämtliche Computerplattformen zu optimieren.</p>
<p>Graphics Performance Analyzers (GPA) umfasst drei Einzeltools: den System Analyzer, das Frame Capture Tool und den Frame Analyzer. Damit lassen sich verborgene Bottlenecks und andere Hemmschuhe aufspüren, die das Spiel davon abhalten, auf einem Notebook mit integrierter Grafikkarte vernünftig zu laufen. Toll an GPA ist die Tatsache, dass die Analyse auf einem separaten System läuft, während sich das zu untersuchende Spiel auf einem eigenen Laptop befindet. Beide Rechner werden mit einem Netzwerkkabel verbunden und tauschen auf diesem Weg die notwendigen Daten aus.</p>
<p>Derzeit unterstützt GPA lediglich die Intel-G45- und Mobile-Intel-GM45-Express-Chipsatz-Familien und untersucht nur DirectX-basierte Spiele. Aber wie man Intel kennt, werden wohl weitere Chipsätze in Zukunft folgen.</p>
<p>An die Toolsuite kommt man auf zwei Wegen heran: Entweder <a title="Hier für das Visual Adrenaline Program registrieren" href="https://ssl.software.intel.com/en-us/register/visual-adrenaline/" target="_blank">registriert</a> man sich für das kostenlose Visual Adrenaline Program, das vom <a title="Intel Software Network" href="http://software.intel.com/en-us/?cid=ISPP:99GER017SS9978" target="_blank">Intel Software Network</a> betrieben wird. Oder man begibt sich in den Onlineshop Intel Business Exchange und <a title="Graphics Performance Analysers im IBX kaufen" href="http://sx.intel.com/p-744-intel-graphics-performance-analyzers.aspx" target="_blank">kauft die Tools</a> für rund 300 US-Dollar.</p>
<p><em><strong>Video-Tipp:</strong></em> In einem <a title="Das Video-Interview mit Aaron Davies auf Youtube" href="http://www.youtube.com/watch?v=c3ylaqWCTTY" target="_blank">Video-Interview</a> live von der <a title=" Multithread your Games: Intel auf der GDC 2009 " href="http://www.software-dev-blog.de/multithread-your-games-intel-auf-der-gdc-2009/03/2009/">GDC&#8217;09</a> in San Francisco beantwortet Aaron Davies von Intel zahlreiche GPA-Fragen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/analysetool-fur-directx-games-fur-mehr-laptop-performance/05/2009/&via=sw_devtwits&text=Analysetool für DirectX-Games für mehr Laptop-Performance&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/analysetool-fur-directx-games-fur-mehr-laptop-performance/05/2009/&via=sw_devtwits&text=Analysetool für DirectX-Games für mehr Laptop-Performance&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/analysetool-fur-directx-games-fur-mehr-laptop-performance/05/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erfolgsgeschichten in Sachen Intel-Softwaretools</title>
		<link>http://www.software-dev-blog.de/erfolgsgeschichten-in-sachen-intel-softwaretools/05/2009/</link>
		<comments>http://www.software-dev-blog.de/erfolgsgeschichten-in-sachen-intel-softwaretools/05/2009/#comments</comments>
		<pubDate>Mon, 11 May 2009 15:35:17 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1040</guid>
		<description><![CDATA[Gerade habe ich auf dem Intel Software Network eine interessante Liste von Anwendungsfällen gefunden, die zeigen sollen, bei welchen Applikationen Intel-Softwaretools erfolgreich zum Einsatz gekommen sind. Dazu gehören unter anderem: Die Open-Source-Datenbank MySQL konnte dank der Intel C++ Compiler um 27 bis 42 Prozent schneller gemacht werden. Und zwar sowohl für Pentium-4- als auch Itanium-2-Prozessoren. [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade habe ich auf dem Intel Software Network eine interessante Liste von <a title="Erfolgsgeschichten zu Intel-Softwaretools" href="http://software.intel.com/en-us/articles/case-studies/" target="_blank">Anwendungsfällen</a> gefunden, die zeigen sollen, bei welchen Applikationen Intel-Softwaretools erfolgreich zum Einsatz gekommen sind. Dazu gehören unter anderem:</p>
<ul>
<li>Die Open-Source-Datenbank MySQL konnte dank der <a title="Optimierte Compiler helfen beim Parallelisieren " href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel C++ Compiler</a> um 27 bis 42 Prozent schneller gemacht werden. Und zwar sowohl für Pentium-4- als auch Itanium-2-Prozessoren.</li>
</ul>
<ul>
<li>Mithilfe des Intel-Fortran-Compilers gelang es der australischen Swinburne-Universität für Astrophysik, ihre HPC-basierten Anwendungen auf dem zugehörigen Supercomputer nochmals um 22 bis 31 Prozent zu beschleunigen.</li>
</ul>
<ul>
<li>Die Datenbankanwendungen von Oracle laufen sowohl unter Linux als auch unter Windows schneller, da beide Versionen dank der Multicore-Optimierungen der entsprechenden Compiler noch mehr aus der Hardware herausholen.</li>
</ul>
<ul>
<li> Das Erstellen von MP3-Songs mithilfe der Kodierungssoftware <em>Musicmatch Jukebox </em>geschieht dank des Intel C++ Compilers um 37 Prozent schneller als zuvor. Hierzu hat die Profiling-Software <a title="Intel VTune Performance Analyzer 9.1" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> allerdings auch einen Teil beigetragen.</li>
</ul>
<p>Neben diesen compiler-basierten Verbesserungen hilft VTune immer mehr Software-Anbietern, ihre Anwendungen für Intel-Prozessoren zu optimieren. Dazu gehört bespielsweise Kaspersky Lab, das seine Antiviren-Software mithilfe des Intel-Tools verbessern konnte. Ebenso konnte Abaqus Inc. dank VTune seiner Simulationssoftware neues Leben einhauchen.</p>
<p>Wer mehr wissen will zu den einzelnen Erfolgsgeschichten, begebe sich auf <a title="Erfolgsgeschichten zu Intel-Softwaretools" href="http://software.intel.com/en-us/articles/case-studies/" target="_blank">die zugehörige Webseite</a>. Dort finden sich auch sämtliche Fallstudien in PDF-Form zum Download.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/erfolgsgeschichten-in-sachen-intel-softwaretools/05/2009/&via=sw_devtwits&text=Erfolgsgeschichten in Sachen Intel-Softwaretools&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/erfolgsgeschichten-in-sachen-intel-softwaretools/05/2009/&via=sw_devtwits&text=Erfolgsgeschichten in Sachen Intel-Softwaretools&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/erfolgsgeschichten-in-sachen-intel-softwaretools/05/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reminder: Webinar zum Thema Parallel Studio</title>
		<link>http://www.software-dev-blog.de/reminder-webinar-zum-thema-parallel-studio/05/2009/</link>
		<comments>http://www.software-dev-blog.de/reminder-webinar-zum-thema-parallel-studio/05/2009/#comments</comments>
		<pubDate>Tue, 05 May 2009 08:19:39 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1036</guid>
		<description><![CDATA[Ende Mai soll es soweit sein: Parallel Studio kommt auf den Markt und aus diesem Grund bietet Intel seit Anfang März eine ganze Reihe passender Webinars, die kostenlos sind, zirka eine Stunde dauern und euch mit interessanten Infos und Einblicken in die zukünftige Entwicklerumgebung für parallelisierte Anwendungen versorgen. Am heutigen Dienstag ist um 18:00 Uhr [...]]]></description>
			<content:encoded><![CDATA[<p>Ende Mai soll es soweit sein: <a title="Noch befindet sich Parallel Studio in der Betaphase" href="http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/" target="_blank">Parallel Studio</a> kommt auf den Markt und aus diesem Grund bietet Intel seit Anfang März <a title=" Online-Seminare rund um Intel Parallel Studio " href="http://www.software-dev-blog.de/online-seminare-rund-um-intel-parallel-studio/02/2009/">eine ganze Reihe passender Webinars</a>, die kostenlos sind, zirka eine Stunde dauern und euch mit interessanten Infos und Einblicken in die zukünftige Entwicklerumgebung für parallelisierte Anwendungen versorgen.</p>
<p>Am heutigen Dienstag ist um 18:00 Uhr MESZ ein Online-Seminar dran, das sich an C-/C++-Programmierer richtet, die mithilfe von Parallel Studio und Visual Studio ihren Softwareprodukten paralleles Leben einhauchen wollen. Dabei geht es um die Fragen, an welchen Stellen, in welchem Umfang und mit welchen Mitteln Quellcode multithread-tauglich gemacht werden kann, damit er auf Multicore-Systemen optimal skaliert. Ach ja: Es wird empfohlen, ergänzend am Webinar mit dem Titel  &#8220;Identify and Address Threading Opportunities&#8221; teilzunehmen, das für den 12. Mai anberaumt ist.</p>
<p>Also, dann nix wie <a title="Hier für die Webinare anmelden" href="https://event.on24.com/event/36/88/3/rt/1/index.html?&amp;eventid=36883&amp;sessionid=1&amp;key=D76A2FD29D7444AEC06765011A2D4953&amp;sourcepage=register" target="_blank">zur Anmeldeseite hingesurft</a>, schnell registrieren und für das Webinar eintragen. Dann könnt ihr heute Abend Punkt 18:00 Uhr am PC mehr zu Parallel Studio erfahren.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/reminder-webinar-zum-thema-parallel-studio/05/2009/&via=sw_devtwits&text=Reminder: Webinar zum Thema Parallel Studio&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/reminder-webinar-zum-thema-parallel-studio/05/2009/&via=sw_devtwits&text=Reminder: Webinar zum Thema Parallel Studio&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/reminder-webinar-zum-thema-parallel-studio/05/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webcast-Reminder: Anwendungen optimal parallelisieren</title>
		<link>http://www.software-dev-blog.de/webcast-reminder-anwendungen-optimal-parallelisieren/04/2009/</link>
		<comments>http://www.software-dev-blog.de/webcast-reminder-anwendungen-optimal-parallelisieren/04/2009/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 10:14:33 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1031</guid>
		<description><![CDATA[Die Parallelisierung von Software beginnt schon beim Design der Anwendung. Und genau da hapert es in vielen Fällen. Das Multithreaden bestehender Anwendungen ist ebensowenig ein einfaches Unterfangen. Dass das Ganze aber trotzdem keine Hexerei ist, soll das Webinar mit dem originellen Titel &#8220;The Good, the Bad, and the Ugly: Improve Parallel Application Quality and Performance&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Die Parallelisierung von Software beginnt schon beim Design der Anwendung. Und genau da hapert es in vielen Fällen. Das Multithreaden bestehender Anwendungen ist ebensowenig ein einfaches Unterfangen. Dass das Ganze aber trotzdem keine Hexerei ist, soll <a title="Hier für das Webinar anmelden" href="http://w.on24.com/r.htm?e=133903&amp;s=1&amp;k=E02B3DF266CBE94EF832196184B2C19E" target="_blank">das Webinar</a> mit dem originellen Titel &#8220;The Good, the Bad, and the Ugly: Improve Parallel Application Quality and Performance&#8221; zeigen.</p>
<p>Eric Moore wird auf die bekanntesten Fehler eingehen, die man bei der Parallelisierung von Software machen kann, und zeigt, wie sich diese vermeiden oder auch eliminieren lassen. Hierzu zieht er bekannte und unbekannte Software-Titel zu Rate, anhand derer die Optimierung von Multithread-Code demonstriert werden soll.</p>
<p>Falls das also interessant scheint, solltet ihr euch möglichst schnell <a title="Hier könnt ihr euch für die Webinars anmelden" href="https://event.on24.com/event/36/88/3/rt/1/index.html?&amp;eventid=36883&amp;sessionid=1&amp;key=D76A2FD29D7444AEC06765011A2D4953&amp;sourcepage=register" target="_blank">für das kostenlose Webinar anmelden</a> und den Worten Erics lauschen. Viel Spaß dabei!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/webcast-reminder-anwendungen-optimal-parallelisieren/04/2009/&via=sw_devtwits&text=Webcast-Reminder: Anwendungen optimal parallelisieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/webcast-reminder-anwendungen-optimal-parallelisieren/04/2009/&via=sw_devtwits&text=Webcast-Reminder: Anwendungen optimal parallelisieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/webcast-reminder-anwendungen-optimal-parallelisieren/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimierte Spieletitel können doppelt und dreifach gewinnen</title>
		<link>http://www.software-dev-blog.de/optimierte-spieletitel-konnen-doppelt-und-dreifach-gewinnen/04/2009/</link>
		<comments>http://www.software-dev-blog.de/optimierte-spieletitel-konnen-doppelt-und-dreifach-gewinnen/04/2009/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 12:16:49 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Wettbewerb]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=995</guid>
		<description><![CDATA[Gerade hoch komplexe 3D-Spiele wie Crysis oder Sacred 2 sehen auf einem Multicore-System nur dann wirklich gut aus, wenn die Entwickler dafür auch einiges getan haben (Mark Atkinson von Crytek hatte mir schon mal dazu einiges erzählt). Denn mit Tools wie OpenMP, Parallel Studio, VTune Performance Analyzer, Laptop Gaming TDK und anderen Werkzeugen können Spieleentwickler [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade hoch komplexe 3D-Spiele wie <a title=" Crysis und Sacred 2 räumen beim Entwicklerpreis 2008 ab " href="http://www.software-dev-blog.de/crysis-und-sacred-2-raumen-beim-entwicklerpreis-2008-ab/12/2008/"><em>Crysis</em> oder <em>Sacred 2</em></a> sehen auf einem Multicore-System nur dann wirklich gut aus, wenn die Entwickler dafür auch einiges getan haben (Mark Atkinson von Crytek hatte mir schon mal dazu <a title=" Lernen mit Crytek: Deshalb ist Crysis erfolgreich " href="http://www.software-dev-blog.de/lernen-mit-crytek-deshalb-ist-crysis-erfolgreich/01/2009/">einiges erzählt</a>). Denn mit Tools wie <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a>, <a title="Hier Beta-Tester des Parallel Studio werden" href="https://registrationcenter.intel.com/RegCenter/AutoGen.aspx?ProductID=1261&amp;AccountID=&amp;EmailID=&amp;ProgramID=&amp;RequestDt=&amp;rm=BETA&amp;lang=">Parallel Studio</a>, <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a>, <a title="Mithilfe des Laptop Gaming TDK verpasst man seinem Spiel &quot;mobile Eigenschaften&quot;" href="http://software.intel.com/en-us/blogs/2008/08/14/gcdc08-turn-your-game-into-a-real-mobile-app/">Laptop Gaming TDK</a> und anderen Werkzeugen können Spieleentwickler ihren 3D-Titeln erst richtig viel Leben einhauchen &#8211; für noch mehr Spielspaß, atemberaubende Szenen und intelligente Gegner.</p>
<p>So, und falls jetzt einer von euch aufspringt und schreit &#8220;Ja, hier, ich, ich habe mein Spiel multithread-tauglich gemacht und habe ihm mobile Features verpasst und habe es sogar noch für integrierte Intel-Grafikchips optimiert&#8221;, dann sollte sich der- oder diejenige ganz schnell <a title="Hier könnt ihr euch für Level Up 2009 anmelden" href="http://software.intel.com/en-us/contests/levelup2009/contests.php" target="_blank">für einen Wettbewerb anmelden</a>, der sich <strong>&#8220;Level Up 2009&#8243;</strong> nennt und der im Rahmen der &#8220;Intel Visual Adrenaline Game Demo Challenge&#8221; stattfindet.</p>
<p>Der Anmeldeschluss ist übrigens der <strong>1. Juli 2009</strong>. Ihr solltet also möglichst schnell das <a title="Hier könnt ihr euch für Level Up 2009 anmelden" href="http://software.intel.com/en-us/contests/levelup2009/contests.php" target="_blank">zugehörige Online-Formular</a> ausfüllen, damit ihr auch bis zum 1. Juli von Besuchern der Wettbewerbsseite beurteilt werden könnt (das hat allerdings keinen Einfluss auf das Endergebnis). Solltet ihr für den Level-up-Contest zugelassen werden, bekommt ihr von Intel erst mal eine Menge an Software kostenlos zur Verfügung gestellt. Das sind im einzelnen:</p>
<ul>
<li><a title="Infos zu Intel-Compilern" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel C++ Compiler 11.0</a></li>
<li><a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">Intel VTune Performance Analyzer 9.1</a></li>
<li><a title="Intel Thread Checker" href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Intel Thread Checker 3.1</a></li>
<li><a title=" Thread Profiler: Parallelisierte Anwendungen grafisch testen " href="http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/">Intel Thread Profiler 3.1</a></li>
<li><a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel Threading Building Blocks 2.1</a></li>
<li><a title=" Software-Projekte mit Multicore-Bibliotheken optimieren " href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel Integrated Performance Primitives 6.0</a></li>
</ul>
<p>Zwar umfassen diese Werkzeuge eine limitierte Lizenz, die bis zum 14. September läuft. Aber gerade für die Kategorie &#8220;Bestes Multithread-Game&#8221; leisten diese Tools sehr gute Dienste.</p>
<p><span id="more-995"></span>Ab dem 2. Juli setzt sich die Jury zusammen und befindet über die je zehn Finalisten der drei Kategorien &#8220;Multithreading&#8221;, &#8220;Laptop-Game&#8221; und &#8220;Spiel-ohne-Grafikkarte&#8221;. Am 20. Juli werden die Finalisten von Intel benachrichtigt und am 24. Juli werden deren Spiele online gestellt. Bis dahin muss auf jeden Fall eine lauffähige Demo vorliegen. Von Mitte bis Ende August werden die jeweils ersten drei Sieger gekürt und online vorgestellt. Und am 14. September werden die Gewinnertitel auf der Austin Game Developers Conference präsentiert. Und, ist das schick?!</p>
<p>Viel schicker wird&#8217;s aber noch, wenn ich euch erzähle, was es zu <strong>gewinnen</strong> gibt. Für den Ersten einer jeden Kategorie einen PC im Wert von 4.000 US-Dollar, eine Erwähnung in diversen Intel-Postillen, ein Entwickler-Softwarepaket im Wert von 4.300 Dollar, Intel-Entwickler-Tools für ein Jahr (Wert: 2.300 Dollar) sowie diverse Eintrittskarten zu diversen Konferenzen (die Flüge müsst ihr allerdings selbst zahlen). Und klar, die Plätze zwei und drei bekommen auch eine ganze Menge ab.</p>
<p>Und, sind das genug Gründe? Dann <a title="Hier könnt ihr euch für Level Up 2009 anmelden" href="http://software.intel.com/en-us/contests/levelup2009/contests.php" target="_blank">meldet euch am besten gleich für Level Up 2009 an</a> und mit der entsprechenden Optimierungsarbeit und ein wenig Glück werdet ihr vielleicht der nächste <a title="Michael Capps live von der GCDC'08 über Gears of War 2" href="http://software.intel.com/en-us/blogs/2008/08/18/gcdc08-michael-capps-is-talking-about-gears-of-war-2/" target="_blank">Michael Capps</a>.</p>
<p><strong>Ach ja:</strong> Die gesamten Teilnahmebedingungen und sonstigen Infos findet ihr <a title="Alle Infos rund um Leve Up 2009" href="http://software.intel.com/en-us/articles/levelup-tc/" target="_blank">auf dieser Webseite</a>. Und wer das Ganze auf Facebook nachlesen will, sollte einfach der <a title="Level Up 2009 auf Facebook" href="http://www.facebook.com/pages/Level-Up-2009-IntelR-Visual-Adrenaline-Game-Demo-Challenge/70872257408?ref=ts&amp;cid=sw:kmlnews4002b&amp;CTP=GI27J62ZT84O6SL#/pages/Level-Up-2009-IntelR-Visual-Adrenaline-Game-Demo-Challenge/70872257408?v=info&amp;viewas=1275092640" target="_blank">zugehörigen Gruppe</a> beitreten.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/optimierte-spieletitel-konnen-doppelt-und-dreifach-gewinnen/04/2009/&via=sw_devtwits&text=Optimierte Spieletitel können doppelt und dreifach gewinnen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/optimierte-spieletitel-konnen-doppelt-und-dreifach-gewinnen/04/2009/&via=sw_devtwits&text=Optimierte Spieletitel können doppelt und dreifach gewinnen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/optimierte-spieletitel-konnen-doppelt-und-dreifach-gewinnen/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Nero unterstützt bereits seit der Version 7 Multithreading&#8221;</title>
		<link>http://www.software-dev-blog.de/nero-unterstutzt-bereits-seit-der-version-7-multithreading/03/2009/</link>
		<comments>http://www.software-dev-blog.de/nero-unterstutzt-bereits-seit-der-version-7-multithreading/03/2009/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 13:31:36 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Kooperation]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=972</guid>
		<description><![CDATA[Das Thema Multithreading steht bei weitem noch nicht überall auf der Agenda, obwohl Mehrkernprozessoren wie der Pentium D den Massenmarkt schon seit etwa vier Jahren bereichern. Umso erstaunlicher ist es, dass nach wie vor nur ein Bruchteil der bestehenden Software zwei oder mehr Prozessorkerne optimal nutzt. Klar, Betriebssysteme wie Windows Vista oder auch das künftige [...]]]></description>
			<content:encoded><![CDATA[<p>Das Thema Multithreading steht bei weitem noch nicht überall auf der Agenda, obwohl Mehrkernprozessoren wie der <a title="Wiki-Infos zum Pentium D" href="http://de.wikipedia.org/wiki/Intel_Pentium_D">Pentium D</a> den Massenmarkt schon seit etwa vier Jahren bereichern. <a title=" In der Parallelprogrammierung steckt die Zukunft! " href="http://www.software-dev-blog.de/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/">Umso erstaunlicher ist es</a>, dass nach wie vor nur ein Bruchteil der bestehenden Software zwei oder mehr Prozessorkerne optimal nutzt. Klar, Betriebssysteme wie Windows Vista oder auch das künftige <a title=" Windows 7 und seine Multicore-Fähigkeiten " href="http://www.software-dev-blog.de/windows-7-und-seine-multicore-fahigkeiten/01/2009/">Windows 7</a> unterstützen von Haus aus Multicore-Plattformen, wirklich effizient skalieren die meisten Softwaretitel aber nicht.</p>
<p>Jedoch gibt es mehr und mehr Ausnahmen von der Regel, wie ich ja hier schon anhand der Beispiele <a title=" Skalierende Filter: Nik Software setzt auf Multicore " href="http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/">Nik Software</a>, <a title=" Lernen mit Crytek: Deshalb ist Crysis erfolgreich " href="http://www.software-dev-blog.de/lernen-mit-crytek-deshalb-ist-crysis-erfolgreich/01/2009/">Crytek,</a> <a title="Skalierende Musikprojekte dank Multithreading: Sonar 8" href="http://www.software-dev-blog.de/skalierende-musikprojekte-dank-multithreading-sonar-8/03/2009/">Cakewalk</a> und <a title="How-to: Deshalb skaliert DivX 7 auf Multicore-Plattformen" href="http://www.software-dev-blog.de/how-to-deshalb-skaliert-divx-7-auf-multicore-plattformen/01/2009/">DivX</a> gezeigt habe. Dazu gehört auch Nero, die schon seit der Version 7 ihrer Suiten Multithreading betreibt. Seitdem werden die Software-Titel wie <a title="Mehr Infos zu Nero 9" href="http://www.nero.com/deu/nero9-introduction.html" target="_blank">Nero 9</a> immer weiter optimiert, um eine bestmögliche Ausnutzung der Hardware-Kapazitäten gewährleisten zu können. Hierfür arbeitet Nero sehr eng mit Intel zusammen, um in diesem Bereich optimale Ergebnisse erzielen zu können.</p>
<p><span id="more-972"></span>Am besten eignen sich bestimmte Anwendungstypen für das Multithreaden. Hierzu gehören beispielsweise Video-Encoder, ebenso Authoringtools. Daneben sind für Multicore diejenigen Nero-Tools optimiert, mit denen sich MPEG2-basierte DVDs in MPEG4-Videos konvertieren lassen, womit die notwendige Speicherkapazität halbiert werden kann. Gerade in diesen Disziplinen spielt die <a title="Programmiermethoden: Daten- und Aufgabenparallelität" href="http://www.software-dev-blog.de/programmiermethoden-daten-und-aufgabenparallelitat/12/2008/">Datenparallelisierung</a> eine ganz wichtige Rolle, da Encoderalgorithmen sehr multithreading-tauglich sind.</p>
<p>Ganz neue Software-Titel wie <a title="Mehr Infos zu Nero Move it" href="http://www.nero.com/deu/moveit-introduction.html" target="_blank">Nero Move it</a> kommen ebenfalls in den Genuss des Multithreadings. Mit <em>Move it</em> lassen sich digitale Daten mit wenig Aufwand an das jeweils vorhandene Mobilgerät wie <a title="iPod-News exklusiv vom Münchner Apple-Event" href="http://www.it-techblog.de/ipod-news-exklusiv-vom-munchner-apple-event/09/2008/">iPod</a> und Musikhandy anpassen und dorthin übertragen. Nero setzt übrigens aus Performance-Gründen schon länger den <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Perfermance Analyzer</a> und <a title="Infos zu Intel-Compilern" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel Compiler</a> zu Analyse-, Optimierungs- und Testzwecken ein. Für eine bestmögliche Skalierbarkeit und Recheneffizienz.</p>
<p><em><strong>Videotipp:</strong></em> Wer sich ansehen und -hören will, was Oberstratege Charly Lippoth (CSO) von Nero zu dem Thema zu sagen hat, sollte sich in folgendes Video reinklicken &#8230;</p>
<p style="text-align: center;"><object width="480" height="295" data="http://www.youtube.com/v/2DgMIKR_KEk&amp;hl=de&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/2DgMIKR_KEk&amp;hl=de&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/nero-unterstutzt-bereits-seit-der-version-7-multithreading/03/2009/&via=sw_devtwits&text="Nero unterstützt bereits seit der Version 7 Multithreading"&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/nero-unterstutzt-bereits-seit-der-version-7-multithreading/03/2009/&via=sw_devtwits&text="Nero unterstützt bereits seit der Version 7 Multithreading"&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/nero-unterstutzt-bereits-seit-der-version-7-multithreading/03/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skalierende Musikprojekte dank Multithreading: Sonar 8</title>
		<link>http://www.software-dev-blog.de/skalierende-musikprojekte-dank-multithreading-sonar-8/03/2009/</link>
		<comments>http://www.software-dev-blog.de/skalierende-musikprojekte-dank-multithreading-sonar-8/03/2009/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 12:23:25 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=960</guid>
		<description><![CDATA[Der Name Cakewalk ist wohl hauptsächlich eingefleischten Audio-Freaks ein Begriff. So entwickelt das in Boston, Massachusetts beheimatete Unternehmen Software für Musiker und ähnliche Menschen. Eines der wichtigsten Software-Titel von Cakewalk ist Sonar, ein professioneller Audio-Sequenzer, mit dem sich sowohl Audio- als auch MIDI-Tracks parallel mischen, arrangieren und aufnehmen lassen. Ach ja: Sonar hieß irgendwann mal [...]]]></description>
			<content:encoded><![CDATA[<p>Der Name <strong>Cakewalk</strong> ist wohl hauptsächlich eingefleischten Audio-Freaks ein Begriff. So entwickelt das in Boston, Massachusetts beheimatete Unternehmen Software für Musiker und ähnliche Menschen. Eines der wichtigsten Software-Titel von Cakewalk ist <a title="Wikiinfos zu Cakewalk, Sonar und Co." href="http://en.wikipedia.org/wiki/Cakewalk_(company)" target="_self">Sonar</a>, ein professioneller Audio-Sequenzer, mit dem sich sowohl Audio- als auch MIDI-Tracks parallel mischen, arrangieren und aufnehmen lassen. Ach ja: <em>Sonar </em>hieß irgendwann mal<em> Cakewalk Pro </em>resp.<em> Cakewalk Pro Audio</em>. Aber das nur so am Rande.</p>
<p>Warum ich das alles erzähle? Nun, ich hatte gestern die exklusive Gelegenheit, mit Noel Borthwick ein ausführliches Telefonat zu führen. Noel ist CTO von Cakewalk, also der führende technische Kopf des Unternehmens. So gesehen hat Noel eine ganze Menge über <em>Sonar </em>und dessen Multithread-Fähigkeiten zu erzählen.</p>
<p>Zunächst einmal gab es ein wenig Geschichtliches. So erfuhr ich, dass <em>Cakewalk Pro Audio</em> etwa 1993/94 entstanden ist und damals schon multithread-fähig war. Ok, natürlich nur auf einer Multisocket-Plattform mit zwei parallel geschalteten Prozessoren, mit deren Hilfe es möglich war, die komplette Bedieneroberfläche auf einen separaten Thread auszulagern und die Audio Engine auf die zweite CPU. Das war sicherlich nicht sonderlich effektiv, zeigt aber, das sich Cakewalk schon seit mehr als 15 Jahren mit dem Thema Multithreading beschäftigt &#8211; und das sehr erfolgreich, wie die Firmenhistorie zeigt.</p>
<p>Im Jahr 2001 vollzog Cakewalk dann den Namenswechsel: Aus <em>Cakewalk Pro Audio</em> wurde <em>Sonar </em>und damit ein skalierendes Produkt, das auf Basis einer komplett neu entwickelten Audio Engine die Möglichkeiten des damals aufkommenden Software-Multithreadings erheblich besser ausnutzen konnte als sein Vorgänger. Hierfür war neben dem Redesign der Software auch ein eigener Task Scheduler notwendig, der in Sachen Funktionsumfang dem Task Scheduler der <a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel TBB</a> ähnelt. Für eine optimale Skalierung werden also die vorhandenen Ressourcen (Kerne) ermittelt und anhand dessen die anstehenden Aufgaben (Tasks) intern in Threads umgewandelt und zur Laufzeit dynamisch auf die vorhandenen Prozessorkerne verteilt.</p>
<p><span id="more-960"></span>Um diese Software-Skalierung zu perfektionieren, arbeitet Cakewalk kontinuierlich an <em>Sonar</em>. So kommt beispielsweise permanent der <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> zum Einsatz, um ausgeglichene Kernel Workloads zu erzielen. Aber auch Treiberprobleme lassen sich auf diesem Weg ermitteln und beheben. Dies führt insgesamt zu geringeren Ladezeiten, was sich vor allem bei großen Musikprojekten positiv bemerkbar macht, die sich aus einer Vielzahl von Tracks, Plugins und anderen Objekten zusammensetzen. Zudem lassen sich mit VTune recht einfach Cache Misses und andere unschöne Dinge ausfindig machen.</p>
<p>Der <a title="Thread Checker" href="http://www.software-dev-blog.de/12-thesen-und-antithesen-zur-multicore-programmierung/01/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Thread Checker</a> ist für Cakewalk immer wieder von Vorteil, wenn es zum Beispiel um das Aufspüren von <a title="Threads unter .NET synchronisieren" href="http://www.software-dev-blog.de/workshop-alles-uber-net-threads-teil-4/03/2009/">Synchronisationsproblemen</a> von Threads geht, die ja meist erst zur Laufzeit auftauchen. So half Thread Checker Cakewalk beim Eliminieren eines Priority Inversion-Problems, das sich eines Tages in <em>Sonar 8</em> bemerkbar machte: Aufgrund einer falschen Thread-Priorisierung verhielt sich das Tool an manchen Stellen völlig anders als erwartet, was natürlich mit unzufriedenen Kunden endete. Dank Thread Checker konnte das Laufzeitproblem behoben werden und alle waren wieder glücklich.</p>
<p><strong>Surftipp:</strong> Wenn ihr mal sehen wollt, wie sich Multithreading in <em>Sonar 8 </em>bemerkbar macht, solltet ihr unbedingt <a title="Multihreading-Erfolge à la Cakewalk: Sonar 7 vs. Sonar 8" href="http://www.cakewalk.com/Products/SONAR/English/benchmark.asp" target="_blank">diese Webseite ansurfen</a>. Dort gibt es sehr aufschlussreiche Benchmarks, die <em>Sonar 8</em> mit dessen Vorgänger<em> Sonar 7</em> vergleichen. Vor allem beim <em>Sonar</em>-eigenen Benchmark kamen Steigerungsraten von bis zu 240 Prozent heraus. Ich sag mal, da haben die Cakewalk-Entwickler multithreading-seitig ganze Arbeit geleistet!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/skalierende-musikprojekte-dank-multithreading-sonar-8/03/2009/&via=sw_devtwits&text=Skalierende Musikprojekte dank Multithreading: Sonar 8&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/skalierende-musikprojekte-dank-multithreading-sonar-8/03/2009/&via=sw_devtwits&text=Skalierende Musikprojekte dank Multithreading: Sonar 8&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/skalierende-musikprojekte-dank-multithreading-sonar-8/03/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thread Profiler: Parallelisierte Anwendungen grafisch testen</title>
		<link>http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/</link>
		<comments>http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 13:27:46 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=910</guid>
		<description><![CDATA[Über Tools für die parallele Programmierung habe ich mich hier schon ausgiebig ausgelassen: Concurrency Checker, Thread Checker, VTune Performance Analyzer, Intel TBB, Multicore-Bibliotheken, Parallel Studio und andere Werkzeuge sind Teil des Software Dev Blogs. Was auf der Liste allerdings immer noch fehlt ist der Thread Profiler. Bis heute! Der Thread Profiler ist ein Analysetool, mit [...]]]></description>
			<content:encoded><![CDATA[<p>Über Tools für die parallele Programmierung habe ich mich hier schon ausgiebig ausgelassen: <a title=" Concurrency Checker: Wie parallel ist parallel? " href="http://www.software-dev-blog.de/concurrency-checker-wie-parallel-ist-parallel/02/2009/">Concurrency Checker</a>, <a title="Thread Checker" href="http://www.software-dev-blog.de/12-thesen-und-antithesen-zur-multicore-programmierung/01/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Thread Checker</a>, <a title="VTune Performance Analyzer" href="../quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer,</a> <a title="Software-Bibliotheken zum Optimieren von bestehendem oder neuem Quellcode" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel TBB,</a> <a title="Software-Bibliotheken zum Optimieren von bestehendem oder neuem Quellcode" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Multicore-Bibliotheken,</a> <a title="Parallel Studio als Beta erhältlich" href="http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/">Parallel Studio</a> und andere Werkzeuge sind Teil des Software Dev Blogs. Was auf der Liste allerdings immer noch fehlt ist der Thread Profiler. Bis heute!</p>
<p>Der Thread Profiler ist ein Analysetool, mit dem sich Schwachstellen in parallelisierten Anwendungen grafisch darstellen lassen. Hierzu ist kein Quellcode notwendig, da der Thread Profiler das ausführbare Programm, also die Exe-Datei, untersucht. Dabei können folgende Dinge aufgespürt werden:</p>
<ul>
<li>Unter- und überbeschäftigte Ressourcen werden grafisch dargestellt. Damit kann der Programmierer sofort sehen, an welchen Stellen das Programm auf der Multicore-Plattform optimal, ein wenig oder gar nicht skaliert.</li>
</ul>
<ul>
<li>Der Programmablauf wird visualisiert. Es lässt sich auf diesem Weg also feststellen, wo die kritischen Pfade sind, welche Abschnitte der Anwendung sequenziell ausgeführt werden und an welchen Stellen die einzelnen Threads aktiv oder inaktiv waren bzw. wann sie warten mussten.</li>
</ul>
<p><span id="more-910"></span></p>
<ul>
<li>Es werden beide Zustände des Programmablaufs grafisch dargestellt: die Ausführung der parallelen Threads und der chronologische Ablauf der Software.</li>
</ul>
<ul>
<li>Mittels Doppelklick auf eine bestimmte Stelle innerhalb des Ablaufplans der Anwendung verzweigt der Entwickler genau an die Stelle innerhalb des Quellcodes, an der die Probleme auftauchen. Damit kann er die kritischen Abschnitte im Sourcecode verifizieren und mit viel Know-how und Erfahrung die Fehler eliminieren.</li>
</ul>
<ul>
<li>Synchronisationsprobleme zwischen den einzelnen Threads lassen sich lokalisieren und beheben. Aber auch ein ungleichgewichtiges Verteilen auf die vorhandenen Threads bzw. Prozessorkerne spürt der Thread Profiler auf.</li>
</ul>
<ul>
<li>Eine <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a>-basierte Testmethode ermöglicht das Überprüfen unterschiedlicher Programmdesigns, um somit den besten Optimierungsansatz herauszufinden.</li>
</ul>
<p>Den Thread Profiler gibt es in einer Standalone-Variante oder als Teil des <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a>. Darüber hinaus fügt er sich nahtlos in Visual Studio 2003, 2005 und 2008 ein und ist für C++ sowie Fortan-Projekte unter Windows konzipiert. Zudem ist er kompatibel mit den Threading Building Blocks und OpenMP. Den Thread Profiler gibt es 30 Tage lang zu Evaluierungszwecken, und das natürlich gratis. Allerdings muss man sich einmalig <a title="Hier kann man sich für Intel-Software registrieren" href="https://registrationcenter.intel.com/RegCenter/AutoGen.aspx?ProductID=902&amp;AccountID=&amp;EmailID=&amp;ProgramID=&amp;RequestDt=&amp;rm=EVAL&amp;lang=" target="_blank">registrieren</a>, um in diesem Genuss zu kommen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/&via=sw_devtwits&text=Thread Profiler: Parallelisierte Anwendungen grafisch testen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/&via=sw_devtwits&text=Thread Profiler: Parallelisierte Anwendungen grafisch testen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallel-Bibliotheken helfen bei der Software-Entwicklung</title>
		<link>http://www.software-dev-blog.de/parallel-bibliotheken-helfen-bei-der-software-entwicklung/02/2009/</link>
		<comments>http://www.software-dev-blog.de/parallel-bibliotheken-helfen-bei-der-software-entwicklung/02/2009/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 13:19:27 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[OpenMP]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=866</guid>
		<description><![CDATA[Ende Januar habe ich auf Basis eines Vortrags von Walter Tichy, Uniprofessor in Karlsruhe, 12 Thesen und 12 passende Antithesen zum Thema Multicore-Programmierung aufgestellt. These Nummer 12 beschäftigt sich mit Professor Tichys Aussage, es gäbe für bestimmte, immer wiederkehrende Aufgaben der Parallelprogrammierung noch nicht die passenden Tools auf dem Markt. Schon seinerzeit habe ich dagegen [...]]]></description>
			<content:encoded><![CDATA[<p>Ende Januar habe ich auf Basis eines Vortrags von <a title="Walter Tichy: &quot; In der Parallelprogrammierung steckt die Zukunft&quot;" href="http://www.software-dev-blog.de/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/">Walter Tichy</a>, Uniprofessor in Karlsruhe, <a title=" 12 Thesen und Antithesen zur Multicore-Programmierung " href="http://www.software-dev-blog.de/12-thesen-und-antithesen-zur-multicore-programmierung/01/2009/">12 Thesen und 12 passende Antithesen</a> zum Thema Multicore-Programmierung aufgestellt. These Nummer 12 beschäftigt sich mit Professor Tichys Aussage, es gäbe für bestimmte, immer wiederkehrende Aufgaben der Parallelprogrammierung noch nicht die passenden Tools auf dem Markt.</p>
<p>Schon seinerzeit habe ich dagegen gesprochen, da sehr wohl Software-Werkzeuge existieren wie die <a title=" Software-Projekte mit Multicore-Bibliotheken optimieren " href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Integrated Performance Primitives</a> (IPP), die vor allem Entwickler von Multimedia-Software bei ihrer Arbeit unterstützen sollen. So basieren zahlreiche MP3- und AAC-Encoder/-Decoder auf Teilen der IPP-Bibliotheken, in denen übrigens viele Mannjahre Entwicklungsarbeit stecken.</p>
<p>Mit den IPP lassen sich einzelne Funktionen für das Encoden von Audio- und Videostreams mehr oder weniger per Drag &amp; Drop für eigene Anwendungen nutzen, die dann bestimmte Aufgaben hochparallelisiert ausführen &#8211; ohne dass der Programmierer sich darüber Gedanken machen muss, wie dies funktioniert. Bekannte Beispiele hierfür sind H.264-, MPEG-4- und AAC-basierte Encoder.</p>
<p>Aber auch im medizinischen Bereich für die rechenintensive Auswertung von Ultraschallbildern kommen IPP-Bibliotheken zum Einsatz. Damit lassen sich hochkomplexe 3D-Bilder deutlich schneller analysieren, da die vorhandenen Prozessoren simultan die Berechnungen durchführen können. Somit spart der Einsatz der IPP im günstigsten Fall drei bis vier Mannjahre Entwicklungszeit, die das Programmieren solcher Parallel-Bibliotheken resp. der zugehörigen Anwendung in Anspruch nähmen.</p>
<p><span id="more-866"></span>Ein weiteres bekanntes Beispiel ist auch der Winzip-Codec, der mithilfe von IPP parallelisiert wurde und damit eine erheblich beschleunigte Kompression und Dekompression von Daten auf Multicore-Systemen ermöglicht. Hierbei kümmert sich IPP auf Basis von <a title=" Multithreading-Konzepte: OpenMP, APIs und Intel TBB " href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">OpenMP</a> (also mithilfe spezieller Pragma-Konstrukte) sogar um die Skalierung von Winzip, indem die einzelnen Threads möglichst gleichmäßig auf die vorhandenen Prozessorkerne verteilt werden.</p>
<p>Das Tolle an den IPPs sind auch die Anschaffungskosten: Es werden nämlich umgerechnet gerade mal 200 Dollar pro Entwickler fällig, dem für diesen geringen Betrag sämtliche vorgefertigte Funktionen zur Verfügung stehen. Unterstützt werden Window, Linux und Mac OS X, zudem gehört eine 30-Tage-Testversion zum Angebot und für nicht-kommerzielle Linux-Anwendungen kosten die <a title="Mehr Infos und Download-Links zu den IPP" href="http://www.intel.com/cd/software/products/asmo-na/eng/perflib/302910.htm" target="_blank">Integrated Performance Primitives</a> keinen einzigen Cent.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallel-bibliotheken-helfen-bei-der-software-entwicklung/02/2009/&via=sw_devtwits&text=Parallel-Bibliotheken helfen bei der Software-Entwicklung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallel-bibliotheken-helfen-bei-der-software-entwicklung/02/2009/&via=sw_devtwits&text=Parallel-Bibliotheken helfen bei der Software-Entwicklung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/parallel-bibliotheken-helfen-bei-der-software-entwicklung/02/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parallel-Studio-Serie (4): mehr Infos zum Parallel Amplifier</title>
		<link>http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/</link>
		<comments>http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 09:57:43 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=856</guid>
		<description><![CDATA[Mit dem vierten und letzten Teil endet unsere kleine Serie rund ums Parallel Studio. Thema des heutigen Blogeintrags: Parallel Amplifier. (Hier geht&#8217;s zu den Teilen eins, zwei und drei). Wie ich ja schon berichtet habe, sucht der Parallel Amplifier nach Optimierungspotenzial in Multithread-Anwendungen. Für eine optimale Performance also. Hierfür leistet das Tuningtool eine ganze Menge: [...]]]></description>
			<content:encoded><![CDATA[<p id="post-847" class="h1">Mit dem vierten und letzten Teil endet unsere kleine Serie rund ums Parallel Studio. Thema des heutigen Blogeintrags: Parallel Amplifier. (Hier geht&#8217;s zu den Teilen <a title="Teil eins der Parallel-Studio-Serie" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">eins</a>, <a title="Teil zwei der Parallel-Studio-Serie" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/">zwei</a> und <a title="Teil drei der Parallel-Studio-Serie" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">drei</a>).</p>
<p class="h1">Wie ich ja schon berichtet habe, sucht der Parallel Amplifier nach Optimierungspotenzial in Multithread-Anwendungen. Für eine optimale Performance also. Hierfür leistet das Tuningtool eine ganze Menge:</p>
<p class="h1"><strong>Aufspüren von Hotspots:</strong> An welchen Stellen verbrät die Anwendung besonders viel Zeit und was kann ich dagegen tun? Hierzu werden die kritischen Bereiche grafisch dargestellt und können so schneller identifiziert werden. Zudem liefern die Stack-Aufrufe wichtige Infos über das Laufzeitverhalten der Anwendung.</p>
<p class="h1"><strong>Parallelität verbessern:</strong> Wo klappt es mit der Parallelisierung noch nicht so gut und welche Quellcode-Abschnitte könnte man noch weiter simultan schalten? Um diese Fragen beantworten zu können, erhält der Anwendungsentwickler grafisch aufbereitete Hinweise darauf, welche Programmabschnitte die vorhandenen CPU-Ressourcen über- bzw. unterbeanspruchen. Genau an diesen Stellen lässt sich dann der Quellcode tunen.</p>
<p class="h1"><strong>Wartezeiten finden:</strong> Wo muss die Anwendung zu lange warten, weil bestimmte Abhängigkeiten existieren? Wie kann ich diese Hotspots identifizieren und möglichst auflösen? Auch hierfür stellt der Parallel Amplifier die betreffenden Quellcode-Abschnitte grafisch dar und zeigt in Balkenform die Auslastung der Prozessoren an. So lassen sich Idle-Zustände relativ einfach herausfinden.</p>
<p class="h1">Eine weitere praktische Eigenschaft des Parallel Amplifier ist dessen Transparenz in Sachen Laufzeitverhalten. So lässt sich jede Funktion, jeder Callaufruf und jede Prozedur bis auf jede einzelne Quellcode-Zeile herunterbrechen und analysieren. Das gibt dem Programmierer ein gutes Gefühl dafür, wo es klemmt und wo er noch mehr machen muss.</p>
<p class="h1">Und es lassen sich mehrere Testläufte aufzeichnen und die Ergebnisse miteinander vergleichen. Auch das sorgt im Problemfall für zusätzliche Hinsweise darauf, dass die parallelisierte Anwendung weiter optimiert werden muss &#8211; oder sich gar Fehler eingeschlichen haben.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/&via=sw_devtwits&text= Parallel-Studio-Serie (4): mehr Infos zum Parallel Amplifier &related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/&via=sw_devtwits&text= Parallel-Studio-Serie (4): mehr Infos zum Parallel Amplifier &related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multicore-Fähigkeiten mit Spezialtool herausfinden</title>
		<link>http://www.software-dev-blog.de/multicore-fahigkeiten-mit-spezialtool-herausfinden/02/2009/</link>
		<comments>http://www.software-dev-blog.de/multicore-fahigkeiten-mit-spezialtool-herausfinden/02/2009/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 08:15:00 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=791</guid>
		<description><![CDATA[Im bayerischen Pilsting-Großköllnbach kennt man sich ziemlich gut aus mit der Archivierung von relationalen Datenbanken. Denn in Pilsting-Großköllnbach sitzt die Software-Schmiede CSP GmbH und Co. KG, die das Archivierungstool Chronos entwickelt hat. Diese Anwendung lagert nicht permanent benötigte Daten in ein Langzeitarchiv aus, um so die vorhandenen Datenbankserver kontinuierlich zu entlasten. Das Extrahieren dieser Daten [...]]]></description>
			<content:encoded><![CDATA[<p>Im bayerischen Pilsting-Großköllnbach kennt man sich ziemlich gut aus mit der Archivierung von relationalen Datenbanken. Denn in Pilsting-Großköllnbach sitzt die Software-Schmiede CSP GmbH und Co. KG, die <a title="mehr Infos zu Chronos" href="http://www.csp-sw.de/de/inhalt.php?kategorie=c114_L_sungen_CHRONOS" target="_blank">das Archivierungstool Chronos</a> entwickelt hat. Diese Anwendung lagert nicht permanent benötigte Daten in ein Langzeitarchiv aus, um so die vorhandenen Datenbankserver kontinuierlich zu entlasten.</p>
<p>Das Extrahieren dieser Daten geschieht in Echtzeit, also während des laufenden Betriebs. Um eine möglichst reibungslose Archivierung zu garantieren, hat sich die CSP schon sehr früh auf das Multithreaden ihrer Anwendung konzentriert.</p>
<p>Das <a title=" In der Parallelprogrammierung steckt die Zukunft" href="http://www.software-dev-blog.de/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/">gesamte Konzept</a> ist also auf parallele Datenverarbeitung ausgelegt. Es findet sogar eine doppelte Parallelisierung statt: Es kommt ein Mini-Cluster zum Einsatz, in dem einzelne Server bestimmte Aufgaben übernehmen. Und innerhalb dieser Server gibt es eine hohe Multithreading-Kultur, die eine skalierende Ausführung der Anwendung sicherstellt.</p>
<p>Chronos ist übrigens vollständig in Java programmiert und findet innerhalb der Java Runtime Environment statt, die standardmäßig mit Java-Threads auskommt. Auf diesem Weg können Java-Anwendungen mithilfe bestimmter Bibliotheken und Klassen parallelisiert werden. Für die komplette Verwaltung sämtlicher Threads hat CSP übrigens einen eigenen Threadmanager entwickelt, der im Hintergrund analog zu den <a title=" Mit Intel Threading Building Blocks parallel programmieren " href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Threading  Building Blocks</a> die einzelnen Tasks auf die vorhandenen Prozessoren und Threads verteilt. Für eine bestmögliche Auslastung der Ressourcen.</p>
<p>Wieso können sich die Entwickler von CSP aber so sicher sein, dass Chronos wirklich optimal auf Intel Multicore-Plattformen skaliert? Nun, um das herauszufinden, besorgte man sich in Pilsting-Großköllnbach das kostenlose Tool <a title="Mehr Infos zum Concurrency Checker" href="http://www.software-dev-blog.de/concurrency-checker-wie-parallel-ist-parallel/02/2009/" target="_self">Concurrency Checker</a>, mit dessen Hilfe festgestellt werden kann, ob eine Anwendung effizient auf Intel Multicore-Plattformen läuft.</p>
<p>Und die Entwickler der CSP GmbH waren ziemlich schnell davon überzeugt, dass der Concurrency Checker das richtige Tool für ihre Zwecke ist. Denn sie waren sehr zufrieden mit der Bedienbarkeit des Programms, da sie für einen ausführlichen Multicore-Test gerade mal einen halben Tag investieren mussten. Danach war den CSP-Programmierern klar, dass sich der Concurrency Checker für ihre Zwecke optimal einsetzen lässt. Und dass Chronos auch das hält, was es verspricht: eine optimale Ausnutzung der vorhandenen Systemressourcen, sprich der Prozessorkerne und Threads.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/multicore-fahigkeiten-mit-spezialtool-herausfinden/02/2009/&via=sw_devtwits&text=Multicore-Fähigkeiten mit Spezialtool herausfinden&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/multicore-fahigkeiten-mit-spezialtool-herausfinden/02/2009/&via=sw_devtwits&text=Multicore-Fähigkeiten mit Spezialtool herausfinden&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/multicore-fahigkeiten-mit-spezialtool-herausfinden/02/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How-to: Deshalb skaliert DivX 7 auf Multicore-Plattformen</title>
		<link>http://www.software-dev-blog.de/how-to-deshalb-skaliert-divx-7-auf-multicore-plattformen/01/2009/</link>
		<comments>http://www.software-dev-blog.de/how-to-deshalb-skaliert-divx-7-auf-multicore-plattformen/01/2009/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 13:49:39 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[DivX]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=615</guid>
		<description><![CDATA[Anfang des Monats haben wir über eine Neuerscheinung am Codec-Firmament berichtet, nämlich über DivX Version 7. Das Besondere daran: DivX 7 wurde intensiv auf seine Multicore-Fähigkeiten hin überprüft und optimiert. Natürlich wollten wir wissen, was DivX alles dafür getan hat, dass Version 7 unter anderem HD-Videos im H.264-Format bei voller Auflösung dekodieren kann, ohne dass [...]]]></description>
			<content:encoded><![CDATA[<p>Anfang des Monats haben wir über eine Neuerscheinung am Codec-Firmament <a title=" Die volle Multicore-Unterstützung: DivX 7 " href="http://www.software-dev-blog.de/die-volle-multicore-unterstutzung-divx-7/01/2009/">berichtet</a>, nämlich über <strong>DivX Version 7</strong>. Das Besondere daran: DivX 7 wurde intensiv auf seine Multicore-Fähigkeiten hin überprüft und optimiert.</p>
<p>Natürlich wollten wir wissen, was DivX alles dafür getan hat, dass Version 7 unter anderem HD-Videos im H.264-Format bei voller Auflösung dekodieren kann, ohne dass es auf einem PC oder Notebook mit Core 2 Duo oder Quad ordentlich ruckelt. Heute kamen die Antworten bei uns an. Und das sind sie (inklusive ihrer Fragen):</p>
<blockquote><p>Welche Softwaretools kamen zum Einsatz, damit DivX 7 vorhandene Multicore-Plattformen optimal unterstützt?</p></blockquote>
<p><em><span style="color: #800000;"><strong>Antwort:</strong></span> Zunächst einmal haben wir ganz unten angefangen. Soll heißen, dass wir sämtliche DivX-Algorithmen auf Quellcode-Ebene mithilfe des <a title=" Quellcode-Schwachstellen mit Intel VTune aufspüren " href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> auf mögliche Flaschenhälse und damit auf potenzielle Optimierungsarbeiten hin untersucht haben. Das lieferte uns schon mal sehr interessante Anhaltspunkte. Darüber hinaus kamen eigene Tools zum Einsatz, um die Leistungswerte und die Qualität unserer Codecs zu überprüfen.</em></p>
<p><span id="more-615"></span></p>
<p><em>Doch nicht nur der Quellcode wurde untersucht, sondern auch die Anwendungen haben wir ausführlich unter diversen Bedingungen auf ihr Laufzeitverhalten hin analysiert. Dafür haben wir unter anderem Benchmark-Tools wie Sysinternals Process Explorer, Haali TimeCodec, Monogram GraphStudio, GraphEdit, AVISynth und VirtualDub eingesetzt.</em></p>
<blockquote><p>Welche SSE4-Befehlsroutinen kommen in DivX 7 zum Einsatz, um ein Leistungsoptimum beim Kodieren und Dekodieren von Videostreams zu erzielen?</p></blockquote>
<p><em><span style="color: #800000;"><strong>Antwort:</strong></span> Der DivX-7-H.264-Codec kommt noch ohne SSE4-Befehle aus, aber wir sehen uns das natürlich sehr genau an, um DivX noch leistungsfähiger machen zu können.</em></p>
<p>Gerade die zweite Antwort ist nicht wirklich ausgiebig, sodass wir uns kurzerhand am Mittwoch mit DivX treffen werden, um weitere Infos rund um die Multicore-Tauglichkeit von DivX 7 in Erfahrung zu bringen. Am besten nehmen Sie unser Blog schon mal <a title="RSS-Feed des Software Dev Blog" href="http://www.software-dev-blog.de/feed/" target="_blank">in Ihren RSS-Reader</a> auf. Dann bekommen Sie die Infos exklusiv und frei Haus geliefert &#8230;</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/how-to-deshalb-skaliert-divx-7-auf-multicore-plattformen/01/2009/&via=sw_devtwits&text=How-to: Deshalb skaliert DivX 7 auf Multicore-Plattformen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/how-to-deshalb-skaliert-divx-7-auf-multicore-plattformen/01/2009/&via=sw_devtwits&text=How-to: Deshalb skaliert DivX 7 auf Multicore-Plattformen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/how-to-deshalb-skaliert-divx-7-auf-multicore-plattformen/01/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skalierende Filter: Nik Software setzt auf Multicore</title>
		<link>http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/</link>
		<comments>http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 15:01:52 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=556</guid>
		<description><![CDATA[Wir haben über das Thema schon mal berichtet: Datenparallelität, also das simultane Berechnen von unabhängigen Daten, wie sie beispielsweise in der Bildbearbeitung anfallen. Denn einem Pixelgebilde, das aus mehreren Millionen Bildpunkten besteht, ist es völlig wurscht, ob nun Bildpunkt 1 oder 599 oder 122.921 zuerst oder zuletzt manipuliert wird. Daher steckt eine ganze Menge Multicore-Potenzial [...]]]></description>
			<content:encoded><![CDATA[<p>Wir haben über das Thema <a title=" Programmiermethoden: Daten- und Aufgabenparallelität " href="http://www.software-dev-blog.de/programmiermethoden-daten-und-aufgabenparallelitat/12/2008/">schon mal berichtet</a>: Datenparallelität, also das simultane Berechnen von unabhängigen Daten, wie sie beispielsweise in der Bildbearbeitung anfallen. Denn einem Pixelgebilde, das aus mehreren Millionen Bildpunkten besteht, ist es völlig wurscht, ob nun Bildpunkt 1 oder 599 oder 122.921 zuerst oder zuletzt manipuliert wird.</p>
<p>Daher steckt eine ganze Menge Multicore-Potenzial in der Manipulation von Bildern, vor allem dann, wenn es sich um große Digitalfotos handelt. Dabei ist die Parallelisierbarkeit völlig unabhängig vom Format, so dass Bilder im sogenannten <a title="Mehr Infos zum RAW-Format" href="http://www.itwissen.info/definition/lexikon/RAW-Format-RAW-format.html" target="_blank">RAW-Format</a> genauso von parallelisierten Algorithmen profitieren wie JPEG- oder TIFF-Dateien.</p>
<p>Wie wichtig in solch einem Fall das optimale Zusammenspiel von Hard- und Software ist, hat unter anderem <a title="Webseite von Nik Software" href="http://www.niksoftware.com/index/de/entry.php?" target="_blank">Nik Software</a> erkannt, ein Anbieter von Bildbearbeitungstools, die sich an professionelle Fotografen und ähnliche Menschen richten. Eines der Highlight-Produkte von Nik Software nennt sich <a title="Mehr Infos zu Silver Efex Pro" href="http://www.niksoftware.com/silverefexpro/de/entry.php" target="_blank">Silver Efex Pro</a>. Dabei handelt es um einen Schwarzweiß-Filter für Adobe Photoshop und <a title="Mehr Infos zu Apple Aperture 2" href="http://www.it-techblog.de/apple-aperture-2-erblickt-das-licht-der-welt/02/2008/">Apple Aperture</a>, mit dem sich Farbbilder in S/W-Kunstwerke verwandeln lassen. Hierfür setzt Nik Software auf die eigene Manipulationstechnik U Point, die es erlaubt, anhand definierter Bildbereiche (sogenannter Kontrollpunkte) diese separat zu bearbeiten.</p>
<p><span id="more-556"></span>Für eine bestmögliche Skalierung von Silver Efex Pro auf Multicore-Plattformen musste Nik Software allerdings eine ganze Menge tun. Hierzu gehörte unter anderem eine gründliche Analyse des Quellcodes mit <a title="Quellcode-Schwachstellen mit Intel VTune aufspüren" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a>, um die Hotspots, also die kritischen Programmstellen, zu identifizieren.</p>
<p>Anschließend haben die Software-Entwickler die verschiedenen technischen Möglichkeiten geprüft, mit welchen Methoden die vorhandene Datenparallelität optimal in entsprechende Algorithmen umgesetzt werden kann. In Frage kamen hierfür <a title="Infos zu OpenMP und Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">OpenMP, die Threading Building Blocks</a> und eine selbst implementierte Lösung auf Basis von <a title="boost.org" href="http://www.boost.org/" target="_blank">Boost</a> und Posix Threads.</p>
<p>Die Wahl fiel am Ende auf die selbst implementierte Lösung, da sie ein Maximum an Kontrolle, Flexibilität und Portierbarkeit gewährleistet. Die fertige Implementation des Thread <em>pool pattern</em> erlaubt hierbei eine relativ problemlose Übersetzung der Algorithmen in eine parallele Formulierung sowohl unter Windows als auch auf dem Mac.</p>
<p>Und klar, anschließend musste noch auf Teufel komm raus debuggt werden, und zwar mit den passenden Tools wie dem <a title="Fehler im Multithread-Code aufspüren: Thread Checker" href="../fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Thread Checker</a> und Thread Profiler. Damit der parallelisierte Quellcode auch wirklich optimal auf mehreren Threads sprich Prozessorkernen skaliert. Und die Mühe hat sich offensichtlich gelohnt: Das Fotomagazin &#8220;Foto Video Digital&#8221; aus dem Hause Chip hat Silver Efex Pro als eine der besten Bildbearbeitungsprogramme des Jahres 2008 gekürt. Na also!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/&via=sw_devtwits&text=Skalierende Filter: Nik Software setzt auf Multicore&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/&via=sw_devtwits&text=Skalierende Filter: Nik Software setzt auf Multicore&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Die volle Multicore-Unterstützung: DivX 7</title>
		<link>http://www.software-dev-blog.de/die-volle-multicore-unterstutzung-divx-7/01/2009/</link>
		<comments>http://www.software-dev-blog.de/die-volle-multicore-unterstutzung-divx-7/01/2009/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 13:46:19 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[DivX]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=550</guid>
		<description><![CDATA[Seit gestern ist es also soweit: Die aktuelle Version 7 des DivX-Dekoders steht zum Download bereit, und zwar in einer Standard- und einer Pro-Variante. Die Standardversion beherrscht die Wiedergabe von DivX- und AVI-Videodateien, spielt seit neuestem aber auch H.264-kodierte Clips ab. Darüber hinaus lassen sich MP3- und sogar AAC-Musikfiles dekodieren. Was die Pro- und die [...]]]></description>
			<content:encoded><![CDATA[<p>Seit gestern ist es also soweit: Die aktuelle Version 7 des DivX-Dekoders steht <a title="DivX 7 downloaden" href="http://www.divx.de" target="_blank">zum Download bereit</a>, und zwar in einer Standard- und einer Pro-Variante. Die Standardversion beherrscht die Wiedergabe von DivX- und AVI-Videodateien, spielt seit neuestem aber auch H.264-kodierte Clips ab. Darüber hinaus lassen sich MP3- und sogar AAC-Musikfiles dekodieren.</p>
<p>Was die Pro- und die Standardversion <a title="Vergleich zwischen DivX und DivX Pro" href="http://divx.de/de/products/software/windows/compare-divx" target="_blank">unterscheidet</a>, ist die Möglichkeit, mit dem Pro-Paket eigenen Videocontent zu generieren. Das Standardpaket, das es wie die Pro-Version bis dato nur für Windows gibt, bietet allerdings eine 15-Tage-Testversion mit allen Pro-Funktionen, bis 16 Euro für die Lizenz fällig werden.</p>
<p>Gerade aus Multicore-Sicht ist DivX ein sehr interessantes Stück Software: So werden bis zu acht Prozessorkerne unterstützt und auch der Einsatz des SSE4-Befehlssatzes soll bei der Wiedergabe hochaufgelöster HD-Videos für möglichst ruckelfreie Bilder sorgen. Welche Anstrengungen DivX unternommen hat, um diese gute Skalierbarkeit zu garantieren, wollen wir natürlich genauer wissen und haben mal bei der Pressestelle angefragt.</p>
<p>Sobald es etwas Berichtenswertes gibt, werden wir dies hier veröffentlichen. Versprochen!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/die-volle-multicore-unterstutzung-divx-7/01/2009/&via=sw_devtwits&text=Die volle Multicore-Unterstützung: DivX 7&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/die-volle-multicore-unterstutzung-divx-7/01/2009/&via=sw_devtwits&text=Die volle Multicore-Unterstützung: DivX 7&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/die-volle-multicore-unterstutzung-divx-7/01/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimierte Compiler helfen beim Parallelisieren</title>
		<link>http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/</link>
		<comments>http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 14:45:05 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=459</guid>
		<description><![CDATA[Auf dem Software Dev Blog war schon von diversen Entwickler-Tools die Rede, die Programmierern beim Erstellen multicore-tauglicher Anwendungen helfen sollen. Ob das die Threading Building Blocks sind, der Thread Checker, Hochleistungsbibliotheken oder der VTune Performance Analyzer &#8211; stets geht es darum, das Optimum aus seiner Software herauszuholen, falls diese auf Multicore-Plattformen möglichst gut skalieren soll. [...]]]></description>
			<content:encoded><![CDATA[<p>Auf dem Software Dev Blog war schon von diversen Entwickler-Tools die Rede, die Programmierern beim Erstellen multicore-tauglicher Anwendungen helfen sollen. Ob das die <a title=" Mit Intel Threading Building Blocks parallel programmieren " href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Threading Building Blocks</a> sind, der <a title=" Fehler im Multithread-Code aufspüren: Thread Checker " href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Thread Checker</a>, <a title=" Software-Projekte mit Multicore-Bibliotheken optimieren " href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Hochleistungsbibliotheken</a> oder der <a title=" Quellcode-Schwachstellen mit Intel VTune aufspüren " href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> &#8211; stets geht es darum, das Optimum aus seiner Software herauszuholen, falls diese auf Multicore-Plattformen möglichst gut skalieren soll.</p>
<p>Wie aber sieht es mit den fundamentalen Tools aus, die bei der Programmierung an erster Stelle stehen, also etwa den Compilern, mit denen sich der Quellcode in eine ausführbare Anwendung verwandeln lässt? Nun, auch hierfür gibt es <a title="Alle Intel-Compiler auf einen Blick" href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/284132.htm" target="_blank">multicore-optimierte Lösungen</a>, die sich vor allem an C++- und Fortran-Programmierer richten. Das Ganze gibt es sogar als <a title="Intel C++ Compiler 11.0 Professional Edition für Windows" href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/279578.htm">komplettes Entwicklerpaket</a>, das neben dem C++-Compiler die TBB-Suite umfasst, die Integrated Performance Primitives und die Math Kernel Library.</p>
<p>Praktisch an dem Intel C++-Compiler für Windows sind vor allem zwei Dinge: Zum einen lässt er sich direkt in Visual Studio einbinden, was das Kompilieren innerhalb der gewohnten Umgebung ermöglicht. Und zum anderen ist der Compiler für Multicore-Plattformen optimiert. Das bedeutet, dass der Quellcode auf <a title=" Vier Schritte zum optimierten Multicore-Quellcode " href="http://www.software-dev-blog.de/vier-schritte-zum-optimierten-multicore-quellcode/12/2008/">mögliche Parallelitäten</a> hin untersucht wird. Findet der Compiler entsprechende Programmabschnitte, fügt er automatisch die passenden Konstrukte und Funktionen ein, die den seriell programmierten Abschnitt parallelisieren.</p>
<p>Neu an der Version 11 des Intel C++-Compilers sind übrigens unter anderem die eingebauten Lambda-Funktionen, OpenMP 3.0 und die Unterstützung von dezimalen Fließpunktoperatoren und -registern. Und natürlich gibt es die Intel Compiler auch für <a title="Intel Compiler für Linux" href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/284264.htm" target="_blank">Linux</a> (inklusive Eclipse-Unterstützung) und für <a title="Intel Compiler für Mac OS X" href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/270528.htm" target="_blank">Mac OS X</a> (in Verbindung mit <a title=" Apple-Software mit Intel-Tools optimieren " href="http://www.software-dev-blog.de/apple-software-mit-intel-tools-optimieren/11/2008/">XCode</a>).</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/&via=sw_devtwits&text=Optimierte Compiler helfen beim Parallelisieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/&via=sw_devtwits&text=Optimierte Compiler helfen beim Parallelisieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vier Schritte zum optimierten Multicore-Quellcode</title>
		<link>http://www.software-dev-blog.de/vier-schritte-zum-optimierten-multicore-quellcode/12/2008/</link>
		<comments>http://www.software-dev-blog.de/vier-schritte-zum-optimierten-multicore-quellcode/12/2008/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 16:31:59 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=421</guid>
		<description><![CDATA[Wir haben uns hier ja schon mit den Regeln der parallelen Programmierung beschäftigt und sind auch der Frage nachgegangen, welche Tools hierfür zur Verfügung stehen. Heute geht es um die vier wesentlichen Schritte, die zur Erstellung des optimalen Multicore-Codes notwendig sind. 1. Untersuche! Und zwar den gesamt Quellcode auf potenzielle Parallelisierung hin. Hierfür eignen sich [...]]]></description>
			<content:encoded><![CDATA[<p>Wir haben uns hier ja schon mit den <a title="Fünf Regeln der Multicore-Programmierung" href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">Regeln der parallelen Programmierung</a> beschäftigt und sind auch der Frage nachgegangen, <a title="Mit diesen Tools lassen sich Anwendungen multi-threaden" href="http://www.software-dev-blog.de/software-projekte-mit-intel-tools-optimieren/10/2008/">welche Tools</a> hierfür zur Verfügung stehen. Heute geht es um die vier wesentlichen Schritte, die zur Erstellung des optimalen Multicore-Codes notwendig sind.</p>
<p><strong>1. Untersuche!</strong> Und zwar den gesamt Quellcode auf potenzielle Parallelisierung hin. Hierfür eignen sich vor allem Schleifenkonstrukte, die beispielsweise eine große Menge an Daten berechnet, was oft simultan geschehen kann. Es geht aber auch um &#8220;Hotspots&#8221;, die es in jedem Programm gibt und die die Leistungsfähigkeit der Anwendung negativ beeinträchtigen können. Um diese Untersuchungen möglichst effizient durchzuführen, gibt es spezielle Tools wie den <a title="Mehr Infos zum VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a>, der genau für diese Aufgaben geschaffen worden ist.</p>
<p><strong>2. Kodiere! Und zwar parallel.</strong> Nachdem die passenden Programmstellen identifiziert worden sind, beginnt die eigentliche Arbeit, nämlich die des Kodierens. Packen Sie also all den parallelen Code in Ihr Programm, von dem Sie glauben, dass er Ihre Anwendung schneller macht, da sie von den vorhandenen Prozessorkernen profitiert. Und Sie können es sich dabei ein wenig leichter machen, indem Sie auf Tools zurückgreifen, die Ihnen mithilfe vorgefertigter Routinen und Bibliotheken dabei helfen. Dies können einfache Anweisungen <a title="Mehr Infos zu OpenMP und Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">paralleler Schleifenkonstrukte</a> sein, aber auch komplexe Funktionen für <a title="Unterstützung bei der Programmierung von Multimedia- und Wissenschaftsanwendungen mithilfe optimierter Bibliotheken" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Multimedia- oder Wissenschaftsanwendungen</a>.</p>
<p><span id="more-421"></span></p>
<p><strong>3. Debugge!</strong> Nachdem der Quellcode Ihrer Anwendung möglichst gut für die parallele Ausführung optimiert worden ist, steht noch eine Menge Debug-Arbeit auf dem Plan. Auch hierfür gibt es die passenden Tools, denn nur schwer auffindbare Fehler wie Dead Locks oder unvorhersehbare Race Conditions lassen sich mit einfachen Testmethoden gar nicht oder nur sehr aufwendig identifizieren. Ziehen Sie hierzu am besten die passenden Tools zu Rate wie den <a title="Schwachstellen im Multicore-Code aufspüren: Thread Checker" href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Thread Checker</a>, der genannte Fehlerquellen aufdeckt und Ihnen genau sagt, welche Quelltextstellen kritisch bzw. fehleranfällig sind.</p>
<p><strong>4. Optimiere!</strong> Jetzt haben Sie es fast geschafft, aber noch können Sie sich nicht sicher sein, dass Ihre Multicore-Anwendung auch wirklich optimal läuft. Denn noch können einzelne Codeteile den gesamten Programmablauf ausbremsen, da beispielsweise die Speicherverwaltung nicht effizient erfolgt oder die Anwendung nicht richtig skaliert. Das bedeutet im schlimmsten Fall, dass Ihre Software zwar auf einem Dualcore-Rechner perfekt läuft, es auf einer <a title="Optimal skalierende Anwendungen müssen auf einem Quadcore-Prozessor wie dem Core i7 genauso gut laufen wie auf einer Dualcore-Maschine" href="http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/">Quadcore-Maschine</a> aber permanent zu Wartezeiten kommt, da mehr Threads zur Laufzeit erzeugt werden als Prozessorkerne vorhanden sind. Auch für diese Zwecke gibt es die entsprechenden Tools: den schon erwähnte VTune Analyzer, aber auch den <a title="Mehr Infos zum Intel Thread Profiler" href="http://www.intel.com/cd/software/products/asmo-na/eng/threading/winthreadprofiler/286749.htm" target="_blank">Intel Thread Profiler</a>, der die Effizienz des parallelisierten Code grafisch darstellt und Ihnen so hilft, Schwachstellen schneller und leichter zu lokalisieren.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/vier-schritte-zum-optimierten-multicore-quellcode/12/2008/&via=sw_devtwits&text=Vier Schritte zum optimierten Multicore-Quellcode&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/vier-schritte-zum-optimierten-multicore-quellcode/12/2008/&via=sw_devtwits&text=Vier Schritte zum optimierten Multicore-Quellcode&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/vier-schritte-zum-optimierten-multicore-quellcode/12/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software-Projekte mit Multicore-Bibliotheken optimieren</title>
		<link>http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/</link>
		<comments>http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 15:32:39 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Bibliothek]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[TBB]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=387</guid>
		<description><![CDATA[Gerade auf Entwickler von Multimediaanwendungen wartet ein großes Optimierungspotenzial in Sachen Multicore-Programmierung. Ein gutes Beispiel sind Videoschnittprogramme wie PowerDirector 7 von CyberLink, in denen ein hohes Maß an Datenparallelität steckt, da beispielsweise beim Rendern sämtliche Bildpunkte simultan manipuliert werden können. Wie gut, dass es für die Parallelisierung solcher Anwendungen die passenden Tools gibt, die Intel [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade auf Entwickler von Multimediaanwendungen wartet ein großes Optimierungspotenzial in Sachen <a title="Fünf Regeln der Multicore-Programmierung" href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">Multicore-Programmierung</a>. Ein gutes Beispiel sind Videoschnittprogramme wie <a title="PowerDirector 7 ist für Multicore-Plattformen " href="http://www.software-dev-blog.de/powerdirector-7-ist-fur-core-i7-prozessor-optimiert/12/2008/">PowerDirector 7</a> von CyberLink, in denen ein hohes Maß an <a title="Programmiermethoden: Daten- und Aufgabenparallelität" href="http://www.software-dev-blog.de/programmiermethoden-daten-und-aufgabenparallelitat/12/2008/">Datenparallelität</a> steckt, da beispielsweise beim Rendern sämtliche Bildpunkte simultan manipuliert werden können.</p>
<p>Wie gut, dass es für die Parallelisierung solcher Anwendungen die passenden Tools gibt, die Intel unter dem Begriff „Performance Libraries“, also Hochleistungsbibliotheken, anbietet. Dazu gehören die schon besprochenen <a title="Multithreading-Konzepte: OpenMP und Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">Intel Threading Building Blocks</a>, aber auch spezielle C++-Bibliotheken namens Intel Integrated Performance Primitives (<a title="Mehr Infos zu Intel IPP" href="http://www.intel.com/cd/software/products/asmo-na/eng/perflib/302910.htm" target="_blank">Intel IPP</a>) und Intel Math Kernel Library (<a title="Mehr Infos zu Intel MKL" href="http://www.intel.com/cd/software/products/asmo-na/eng/perflib/307757.htm" target="_blank">Intel MKL</a>).</p>
<p>Die Intel IPP wenden sich an all diejenigen, die programmierseitig viel mit En- und Dekodern für Audio- und Videoinhalte zu tun haben, aber auch mit Datenkompression, Spracherkennung und Bildbearbeitung. Für all diese (und weitere) Anwendungen bieten die Intel IPP nämlich die passenden Bibliotheken, die sich mit wenig Aufwand in das eigene Softwareprojekt integrieren lassen. Man muss ja schließlich das Rad nicht jedes Mal neu erfinden. Außerdem kann man sicher sein, dass die IPP in höchstem Maße multithreaded sind.</p>
<p><span id="more-387"></span>Aber auch die Intel MKL bietet vorgefertigte Bibliotheken, Funktionen und Konstrukte, die sich mit wenigen Anpassungen in eigene Projekte einbinden lassen. Dies betrifft vor allem Wissenschafts-, Entwickler- und Finanzanwendungen. Die Intel MKL setzt hierfür unter anderem auf hoch parallelisierte Fast-Fourier-, Statistik- und LAPACK-Routinen.</p>
<p>Intel IPP und Intel MKL unterstützen Windows, Linux und Mac OS X und lassen sich problemlos in Visual Studio 2003, 2005 und 2008 integrieren. Beide Toolsets sind zudem Teil der <a title="Mehr Infos zu der Intel C++ Compiler Pro Edition für Windows" href="http://www.intel.com/cd/software/products/asmo-na/eng/279578.htm" target="_blank">Intel C++-Compiler Professional Edition</a>. Außerdem können die Multicore-Bibliotheken zu <a title="Intel Evaluationscenter" href="http://www.intel.com/cd/software/products/asmo-na/eng/219690.htm" target="_blank">Evaluationszwecken</a> ausgiebig getestet werden. Hierfür muss man sich nur einmal für die <a title="Via Evaluationscenter bekommt man zu Testzwecken das Intel-Tool seiner Wahl" href="http://www.intel.com/cd/software/products/asmo-na/eng/219690.htm" target="_blank">jeweilige Software anmelden</a>, was kostenfrei ist.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/&via=sw_devtwits&text=Software-Projekte mit Multicore-Bibliotheken optimieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/&via=sw_devtwits&text=Software-Projekte mit Multicore-Bibliotheken optimieren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crysis und Sacred 2 räumen beim Entwicklerpreis 2008 ab</title>
		<link>http://www.software-dev-blog.de/crysis-und-sacred-2-raumen-beim-entwicklerpreis-2008-ab/12/2008/</link>
		<comments>http://www.software-dev-blog.de/crysis-und-sacred-2-raumen-beim-entwicklerpreis-2008-ab/12/2008/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 09:26:46 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Award]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Optimieren]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=376</guid>
		<description><![CDATA[Gestern Abend fand in Essen die Verleihung des Deutschen Entwicklerpreises 2008 in Sachen deutsche Computerspiele statt. Dabei konnten zwei Spieletitel gewinnen, die nachweislich für Multicore-Plattformen, aber auch für Notebooks optimiert wurden: Crysis der deutschen Entwicklerschmiede Crytek aus Frankfurt am Main sowie Sacred 2 &#8211; Fallen Angel, für das Ascaron zuständig ist. Dass sich die Multithread-Optimierung [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern Abend fand in Essen die Verleihung des <a title="Webseite Deutscher Entwicklerpreis" href="http://www.deutscher-entwicklerpreis.de/" target="_blank">Deutschen Entwicklerpreises 2008</a> in Sachen deutsche Computerspiele statt. Dabei konnten zwei Spieletitel gewinnen, die nachweislich für Multicore-Plattformen, aber auch für Notebooks optimiert wurden: Crysis der deutschen Entwicklerschmiede Crytek aus Frankfurt am Main sowie Sacred 2 &#8211; Fallen Angel, für das Ascaron zuständig ist.</p>
<p>Dass sich die Multithread-Optimierung für Crytek ausgezeichnet hat, zeigen auch die weiteren Preise in den Kategorien „Bestes Gamedesign“ und „Beste Spielegrafik“. Aber wie haben die das bloß gemacht?</p>
<p>Nun, sowohl im Falle von Crysis als auch Sacred haben beide Entwicklerfirmen ganz eng mit Intel zusammengearbeitet, um eine möglichst hohe Multicore-Optimierung hinzubekommen. So haben die Spieleentwickler von Crytek es geschafft, die unterschiedlichen Aufgaben wie das Rendering, die physikalischen Effekte wie Wind und Wasser und die Soundeffekte auf unterschiedliche Prozessorkerne zu verteilen, was die CPU extrem gut auslastet und damit für noch mehr Realismus und einen hohen Detailgrad sorgt.</p>
<p>Darüber hinaus haben sich die Entwickler von Crytek des <a title="Intel Laptop Gaming TDK" href="http://softwarecommunity.intel.com/articles/eng/1017.htm" target="_blank">Intel Laptop Gaming TDK</a> bedient, das mit relativ wenig Aufwand beispielsweise das Einbinden einer Batterieanzeige in der Spielumgebung ermöglicht. Damit hat man als Notebook-Gamer stets die Restlaufzeit des Akkus im Auge. Mehr dazu gibt es übrigens <a title="Video zeigt Crytek" href="http://software.intel.com/en-us/videos/mobile-gaming-cryteks-crysis-threaded-for-notebooks" target="_blank">in diesem Video</a>.</p>
<p><span id="more-376"></span>Aber auch Sacred 2 kann mit einigen Überraschungen aufwarten. Dazu gehört die Optimierung des Spiels für integrierte Grafikchips, die auf Centrino 2 basieren. Damit läuft das RPG von Ascaron nicht nur in voller Auflösung und hohem Detailgrad auf einer Highend-Machine, sondern auch auf einem Einsteiger-Laptop, das ohne diskrete Grafikkarte auskommt. Auch hierfür war der Einsatz des Intel Laptop Gaming TDK notwendig.</p>
<p>Das TDK stellt ein weiteres Feature bereit, dass sich speziell an mobile Spieler richtet: Ad-hoc-Gaming. Dies ermöglicht per Mausklick die drahtlose Verbindung zwischen zwei Notebooks für einen unmittelbaren Multigamer-Spaß. Und auch dies geschieht direkt aus dem Spiel heraus und erfordert kein Verzweigen in die Windows-Systemeinstellungen. Und natürlich bietet Sacred 2 für Laptop-Gamer auch eine Batterie- und eine Wifi-Anzeige. Für die bestmögliche Kontrolle während des mobilen Spiels.</p>
<p>Alle, die sich den tragbaren Spielspaß mit Sacred 2 &#8211; Fallen Angel ansehen wollen, empfehlen wir <a title="Sacred-2-Video von der GCDC'08" href="http://software.intel.com/en-us/blogs/2008/08/18/gcdc08-optimized-games-on-intel-platform/ " target="_blank">dieses Video</a>, das wir im August während der Games Convention Developers Conference 2008 gedreht haben.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/crysis-und-sacred-2-raumen-beim-entwicklerpreis-2008-ab/12/2008/&via=sw_devtwits&text=Crysis und Sacred 2 räumen beim Entwicklerpreis 2008 ab&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/crysis-und-sacred-2-raumen-beim-entwicklerpreis-2008-ab/12/2008/&via=sw_devtwits&text=Crysis und Sacred 2 räumen beim Entwicklerpreis 2008 ab&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/crysis-und-sacred-2-raumen-beim-entwicklerpreis-2008-ab/12/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerDirector 7 ist für Core i7-Prozessor optimiert</title>
		<link>http://www.software-dev-blog.de/powerdirector-7-ist-fur-core-i7-prozessor-optimiert/12/2008/</link>
		<comments>http://www.software-dev-blog.de/powerdirector-7-ist-fur-core-i7-prozessor-optimiert/12/2008/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 14:02:15 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Nehalem]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=364</guid>
		<description><![CDATA[Es ist jetzt gerade mal zwei Wochen her, dass Intel den Core i7 Prozessor vorgestellt hat, und schon erreicht uns heute eine E-Mail von Cyberlink, dass der taiwanesische Software-Hersteller sein Videoschnittprogramm PowerDirector 7 für den Quadcore-Prozessor optimiert hat. Das bedeutet primär, dass die Videobearbeitung dank der acht gleichzeitig ablaufenden Threads auf den vier Prozessorkernen einen [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist jetzt gerade mal zwei Wochen her, dass Intel den <a title="Multicore-Infos zum Core i7" href="http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/">Core i7 Prozessor</a> vorgestellt hat, und schon erreicht uns heute eine E-Mail von Cyberlink, dass der taiwanesische Software-Hersteller sein Videoschnittprogramm PowerDirector 7 für den Quadcore-Prozessor optimiert hat.</p>
<p>Das bedeutet primär, dass die Videobearbeitung dank der acht gleichzeitig ablaufenden Threads auf den vier Prozessorkernen einen enormen Leistungssprung erfährt. Darüber hinaus profitiert PowerDirector 7 von der Intel QuickPath-Technologie und dem 8 MByte großen L3-Cache des Core i7 – für noch mehr Tempo beim Videoschnitt.</p>
<p>Der Quadcore-Prozessor ist unter anderem dafür verantwortlich, dass das Vorschau-Rendering schneller geschieht als auf herkömmlichen Quadcore-Rechnern, dass Effekte schneller verarbeitet werden und dass sich optische Medien noch schneller brennen lassen. So ist beispielsweise ein HD-Video, das mit dem rechenintensiven Pencil-Sketch-Effekt versehen wird, in weniger als einer Minute vollständig gerendert. Auf einem <a title="Mehr Infos zu Core 2 Quad Prozessoren" href="http://www.intel.com/products/processor_number/chart/core2quad.htm?iid=pn_det+list_c2q" target="_blank">Core 2 Quad Q9550</a> benötigt derselbe Rechenaufwand zwei Minuten. Fazit: Die Wartezeit lässt sich mit dem Core i7 locker halbieren.</p>
<p>Wem diese Infos ein wenig zu dünn sind, der kann sich schon mal auf mehr freuen. Wir wollen nämlich auch wissen, an welchen Stellen Cyberlink Code-Optimierung vorgenommen hat und welche Tools hierfür zum Einsatz gekommen sind. Sobald wir diese Details vorliegen haben, gehen diese online. Versprochen!</p>
<p>Ach ja: Wer mehr zu PowerDirector 7 lesen will, kann dies auf der <a title="Mehr Infos zu PowerDirector 7" href="http://de.cyberlink.com/multi/products/main_4_DEU.html" target="_blank">passenden Webseite</a> tun.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/powerdirector-7-ist-fur-core-i7-prozessor-optimiert/12/2008/&via=sw_devtwits&text=PowerDirector 7 ist für Core i7-Prozessor optimiert&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/powerdirector-7-ist-fur-core-i7-prozessor-optimiert/12/2008/&via=sw_devtwits&text=PowerDirector 7 ist für Core i7-Prozessor optimiert&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/powerdirector-7-ist-fur-core-i7-prozessor-optimiert/12/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple Mac OS X 10.6 mit hohem Multicore-Potenzial</title>
		<link>http://www.software-dev-blog.de/apple-mac-os-x-106-mit-hohem-multicore-potenzial/12/2008/</link>
		<comments>http://www.software-dev-blog.de/apple-mac-os-x-106-mit-hohem-multicore-potenzial/12/2008/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 13:13:54 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=356</guid>
		<description><![CDATA[John Hubbard scheint ein ziemlich kluger Kopf zu sein. Denn erstens beschäftigt er sich bei Apple als Director of Unix Technologies mit sehr komplexen und ernsthaften Dingen. Und zweitens hat er Mitte November auf einer Konferenz in San Diego bemerkenswerte Dinge über Intel und Multicore gesagt. Beispiele gefällig? Forget everything you thought you knew about [...]]]></description>
			<content:encoded><![CDATA[<p>John Hubbard scheint ein ziemlich kluger Kopf zu sein. Denn erstens beschäftigt er sich bei <strong>Apple</strong> als Director of Unix Technologies mit sehr komplexen und ernsthaften Dingen. Und zweitens hat er Mitte November auf einer <a title="Mehr Infos zu LISA'08" href="http://www.usenix.org/events/lisa08/" target="_blank">Konferenz in San Diego</a> bemerkenswerte Dinge über Intel und Multicore gesagt. Beispiele gefällig?</p>
<blockquote><p>Forget everything you thought you knew about multi-threaded programming (and, as it turns out, most developers didn’t know much anyway).</p></blockquote>
<blockquote><p>The kernel is the only one who really knows the right mix of cores and power states to use at any given time &#8211; this can’t be a pure app-driven decision.</p></blockquote>
<blockquote><p>We need new APIs and mechanisms for dealing with this incoming meteor.</p></blockquote>
<p>Wie gut, dass sich Intel über Letzteres bereits Gedanken macht und Tools wie <a title="Mehr Infos zu den Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">Intel TBB</a> und <a title="Intel Parallel Composer steht als Beta bereit" href="http://www.software-dev-blog.de/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/">Intel Parallel Studio</a> bietet, mit deren Hilfe die Multicore-Programmierung deutlich erleichtert werden kann.</p>
<p>Weniger schlau während seines Vortrags war allerdings die Folie Nummer 5, auf der er (ganz inoffiziell natürlich) den Erscheinungszeitraum der nächsten <a title="Mehr Infos zu Snow Leopard auf apple.com" href="http://www.apple.com/macosx/snowleopard/" target="_blank">OS-X-Version 10.6 aka Snow Leopard</a> bekannt gegeben hat, nämlich das erste Quartal 2009. Anfang Juni während der <a title="Die WWDC'08-Keynote zum Nachlesen" href="http://www.it-techblog.de/wwdc08-live-ticker-iphone-20-snow-leopard-co/06/2008/" target="_blank">Apple-Entwicklerkonferenz WWDC’08</a> war noch von ungefähr einem Jahr die Rede, bis Mac OS X 10.6 in die Läden kommt. Tja, dumm gelaufen!</p>
<p>Und was hat das alles mit Multicore-Programmierung zu tun? Nun, in der nächsten Version des Apple-Betriebssystems wird ganz viel Multicore-Unterstützung stecken. Leider gibt Apple noch nichts Konkretes raus (und John leider auch nicht), aber einige grundsätzliche Dinge sind heute schon klar:</p>
<p><span id="more-356"></span>Die Multicore-Technik in Snow Leopard trägt den Codenamen „Grand Central“ und soll laut Apple den Umgang mit Multicore-Systemen erheblich erleichtern. Das soll sowohl die Software-Entwickler betreffen als auch die Anwendungen und deren Ausführung. Es geht also um die Zuordnung von Tasks auf vorhandene Prozessorkerne und eine verbesserte Multicore-Programmierung unter Mac OS X 10.6. Das ist so überraschend nicht, schließlich weiß Apple seit vielen Jahren ganz genau, wie man Software und Hardware optimal aufeinander abstimmt.</p>
<p>Übrigens: Auch John Hubbards Chef, Mister Steve Jobs, kann gelegentlich nicht ganz so schlaue Dinge sagen. In einem <a title="Das komplette Interview mit Steve Jobs" href="http://bits.blogs.nytimes.com/2008/06/10/apple-in-parallel-turning-the-pc-world-upside-down/" target="_blank">Interview mit dem Bits Blog</a> der News York Times sprach er nämlich folgenden Satz:</p>
<blockquote><p>The way the processor industry is going is to add more and more cores, but nobody knows how to program those things. I mean, two,, [processor cores], yeah; four, not really; eight, forget it!</p></blockquote>
<p>So, so, niemand weiß, wie man Software für vier, acht oder mehr Prozessorkerne programmiert. Na, Steve, frag mal bei <a title="Videochat mit Nero zum Thema Core i7 und Nero-Software" href="http://software.intel.com/en-us/videos/perfect-match-nero-and-the-intel-core-i7" target="_blank">Intel und seinen Partnern</a> nach, wie das geht &#8230;</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/apple-mac-os-x-106-mit-hohem-multicore-potenzial/12/2008/&via=sw_devtwits&text=Apple Mac OS X 10.6 mit hohem Multicore-Potenzial&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/apple-mac-os-x-106-mit-hohem-multicore-potenzial/12/2008/&via=sw_devtwits&text=Apple Mac OS X 10.6 mit hohem Multicore-Potenzial&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/apple-mac-os-x-106-mit-hohem-multicore-potenzial/12/2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mehr Multithread-Leistung mit dem Intel Core i7 Prozessor</title>
		<link>http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/</link>
		<comments>http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 13:37:20 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Nehalem]]></category>
		<category><![CDATA[Optimieren]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=301</guid>
		<description><![CDATA[Mit dem erst gerade vorgestellten Core i7 Prozessor von Intel bekommt das Thema parallele Programmierung eine ganze neue Bedeutung. Denn selten zuvor steckte in einer Intel-CPU so viel Parallelität wie in diesem neuen Mikroprozessor. Daher sollte man sich als Software-Entwickler unbedingt die Mühe machen, den Core i7 genauer zu erforschen. Hier mal ein paar wichtige [...]]]></description>
			<content:encoded><![CDATA[<p>Mit dem <a title="Pressemeldung zum Intel Cire i7 Prozessor" href="http://www.intel.com/corporate/pressroom/emea/deu/corei7/index.htm" target="_blank">erst gerade vorgestellten Core i7 Prozessor</a> von Intel bekommt das Thema <a title="Alle Beiträge zum Thema parallele Programmierung" href="http://www.software-dev-blog.de/category/multicore/">parallele Programmierung</a> eine ganze neue Bedeutung. Denn selten zuvor steckte in einer Intel-CPU so viel Parallelität wie in diesem neuen Mikroprozessor. Daher sollte man sich als Software-Entwickler unbedingt die Mühe machen, den Core i7 genauer zu erforschen. Hier mal ein paar wichtige Leistungsdaten:</p>
<ul>
<li>Sämtliche verfügbaren Prozessorkerne samt der zugehörigen Threads, Caches und Schnittstellen werden <strong>dynamisch verwaltet</strong> und ermöglichen somit ein Maximum an Rechen- und Systemleistung.</li>
</ul>
<ul>
<li>Die Intel <strong>Hyperthreading</strong>-Technologie erlaubt verbessertes Multithreading bei gleichzeitig optimiertem Energieverbrauch. Darüber hinaus lassen sich in Zukunft pro Prozessorkern zwei Threads gleichzeitig verarbeiten, was bei einem Core i7 mit vier CPU-Kernen acht parallele Threads bedeutet.</li>
</ul>
<ul>
<li>Die <strong>Intel Streaming SIMD Extensions 4</strong> (SSE4) konnten erneut verbessert werden, vor allem in Sachen XML-Verarbeitung.</li>
</ul>
<ul>
<li>Verglichen mit den aktuellen Xeon-Prozessoren bietet der Core i7 dank seiner <a title="Mehr Infos zu QuickPath" href="http://www.intel.com/technology/quickpath/" target="_blank">QuickPath-Architektur</a> eine <strong>Bandbreite</strong>, die bis zu viermal so groß ist.</li>
</ul>
<ul>
<li>Ein <strong>verbessertes Power Management</strong> erlaubt es Software-Entwicklern, ihre Anwendungen noch exakter auf die SSE4-Befehlssätze abzustimmen.</li>
</ul>
<p>Da diese Infos aber nur einen kleinen Ausschnitt dessen wiedergeben, wozu der Core i7 im Stande ist, empfehlen wir weitere Informationen, die einen guten Überblick geben. Hierzu gehört beispielsweise ein <a title="Videoclip zum Core i7 Prozessor" href="http://intelpr.feedroom.com/?fr_story=3958103f6dd201c3aef50cd044b628dc9392723a&amp;rf=bm" target="_blank">Videoclip</a>, der den neuesten Highend-Prozessor von Intel anschaulich erklärt, genauso wie ein <a title="PDF zur Nehalem-Architektur" href="http://www.intel.com/technology/architecture-silicon/next-gen/whitepaper.pdf" target="_blank">Whitepaper</a>, das im Detail auf die neue Mikroprozessor-Architektur eingeht, die hinter dem Core i7 steckt.</p>
<p>Gerade für Entwickler sind auch die SSE4-Infos wichtig: Diese zeigen, wie man <a title="So lässt sich mit SSE4 die Videokodierung beschleunigen" href="http://softwarecommunity.intel.com/articles/eng/1246.htm" target="_blank">Videokodierung</a> mithilfe spezieller SSE4-Befehle optimiert, wie sich <a title="SO lässt sich mit SSE4 der Speicherdurchsatz verbessern " href="http://softwarecommunity.intel.com/articles/eng/1248.htm" target="_blank">dank SSE4 der Speicherdurchsatz</a> erhöhen lässt und wie man die <a title="Tools zur Beschleunigung der XML-Verarbeitung" href="http://software.intel.com/en-us/articles/intel-xml-software-products" target="_blank">XML-Verarbeitung beschleunigen</a> kann, indem man die neuen SSE4-Befehle richtig einsetzt. Aber auch die PDF-Gesamtübersicht ist sehr hilfreich, wenn man alles über <a title="Übersicht aller SSE4-Befehle" href="http://softwarecommunity.intel.com/UserFiles/en-us/D9156103.pdf" target="_blank">sämtliche neuen SSE4-Befehle</a> wissen will.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/&via=sw_devtwits&text=Mehr Multithread-Leistung mit dem Intel Core i7 Prozessor&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/&via=sw_devtwits&text=Mehr Multithread-Leistung mit dem Intel Core i7 Prozessor&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quellcode-Schwachstellen mit Intel VTune aufspüren</title>
		<link>http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/</link>
		<comments>http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 14:35:51 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=160</guid>
		<description><![CDATA[Ich kann mich noch gut an eine Programmieraufgabe während meines Informatikstudiums erinnern. Da haben wir geschlagene zwei Tage nach einem Winzfehler im Quellcode gesucht. Dabei handelte es sich nur um einen nicht zurückgesetzten Pointer. Ok, das ist jetzt mehr als 15 Jahre her und wir hatten auch keine vernünftige Testumgebung zur Verfügung, aber das gute [...]]]></description>
			<content:encoded><![CDATA[<p>Ich kann mich noch gut an eine Programmieraufgabe während meines Informatikstudiums erinnern. Da haben wir geschlagene zwei Tage nach einem Winzfehler im Quellcode gesucht. Dabei handelte es sich nur um einen nicht zurückgesetzten Pointer.</p>
<p>Ok, das ist jetzt mehr als 15 Jahre her und wir hatten auch keine vernünftige Testumgebung zur Verfügung, aber das gute Trial-and-Error wird beim Aufspüren von Programmierfehlern immer noch gerne eingesetzt. Doch spätestens bei großen Projekten, die hunderte von Manntagen umfassen, greifen solche Ansätze nicht mehr.</p>
<p>Wie gut, dass es hierfür Tools wie den <a title="Mehr Infos zum Intel VTune Performance Analyzer" href="http://www.intel.com/cd/software/products/asmo-na/eng/239144.htm" target="_blank">Intel VTune Performance Analyzer</a> gibt, der Schwachstellen und Fehler aufspürt, was das Debuggen und Testen von Quellcode erheblich vereinfacht und beschleunigt. Hierzu bedient sich VTune verschiedener Ansätze, die bei der Fehlersuche angewandt werden:</p>
<ul>
<li>Ereignis-basiertes Sampling findet Flaschenhälse und Engpässe, die sich in den Quellcode eingeschlichen haben, ohne dabei unnötigen Overhead zu generieren. Solche Ereignisse sind Fehltreffer bei Cache-Zugriffen, falsche Vorhersagen bei Funktionsaufrufen und unzureichende Busbandbreiten.</li>
</ul>
<ul>
<li>Der VTune Performance Analyzer identifiziert darüber hinaus exakt die Stellen innerhalb des Quellcodes, die bei der Ausführung am meisten Zeit benötigen. Damit lassen sich falsche Funktionsaufrufe und ähnliche Konstrukte relativ einfach bestimmen und wahlweise eliminieren oder optimieren.</li>
</ul>
<ul>
<li>Mithilfe von Call Graph werden Funktionsaufrufe grafisch dargestellt und der jeweils zugehörige kritische Pfad ermittelt. Das hilft sehr intuitiv beim Aufspüren möglicher Engpässe und Problemstellen. Außerdem ermittelt VTune auf diesem Weg zeitintensive Funktionen.</li>
</ul>
<ul>
<li>VTune Performance Analyzer ermittelt außerdem leistungshemmenden Quellcode auf Systemebene, indem mithilfe des Counter Monitors sämtliche Systemaktivitäten und die benötigten Ressourcen zur Laufzeit überprüft werden. Damit lässt sich beispielsweise feststellen, welche Programmteile unverhältnismäßig viel Speicher vereinnahmen.</li>
</ul>
<p><span id="more-160"></span>Sehr praktisch an VTune ist seine Unabhängigkeit: Das Tool kann mit sämtlichen gängigen Compilern eingesetzt werden, also von Microsoft, <a title="Intel Compiler Webseite" href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/284132.htm">Intel</a> oder GNU, und zwar für C++, Fortran und Microsoft .NET inklusive C# und Visual Basic.</p>
<p>Immer noch nicht vom VTune Performance Analyzer überzeugt? Dann sollten Sie mal bei Musicmatch, Adobe, Nvidia, Yahoo oder Microsoft <a title="O-Töne von Microsoft, Yahoo, Nvidia und Co. zum VTune Performance Analyzer" href="http://www.intel.com/cd/software/products/asmo-na/eng/219644.htm#vtune" target="_blank">nachfragen</a>. Die finden VTune nämlich sehr praktisch und wollen darauf nicht mehr verzichten. So wurden beispielsweise Microsoft Excel und den Grafiktreibern von Nvidia mehr Leistung eingehaucht.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/&via=sw_devtwits&text=Quellcode-Schwachstellen mit Intel VTune aufspüren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/&via=sw_devtwits&text=Quellcode-Schwachstellen mit Intel VTune aufspüren&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tipps zum Multithreading von DirectX-Anwendungen</title>
		<link>http://www.software-dev-blog.de/tipps-zum-multithreading-von-directx-anwendungen/11/2008/</link>
		<comments>http://www.software-dev-blog.de/tipps-zum-multithreading-von-directx-anwendungen/11/2008/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 08:00:36 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tipp]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=127</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Ein schwieriges, weil für viele Software-Entwickler unbekanntes Terrain ist das der <a title="Videocast-Interview von der GCDC'08 zu DirectX-Programmierung" href="http://software.intel.com/en-us/blogs/2008/08/19/gcdc08-optimizing-directx-code-for-multi-core-platforms/" target="_blank">DirectX-basierten Programmierung</a>. 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?</p>
<p>Nun, zunächst einmal gilt es, die gesamte Anwendung auf mögliche Schwachstellen hin zu untersuchen. Hierfür spezialisierte <a title="Mehr Infos zu VTune Performance Analyzer &amp; Co." href="http://www.software-dev-blog.de/software-projekte-mit-intel-tools-optimieren/10/2008/">Profiler-Tools</a> 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.</p>
<p>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.</p>
<p>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.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/tipps-zum-multithreading-von-directx-anwendungen/11/2008/&via=sw_devtwits&text=Tipps zum Multithreading von DirectX-Anwendungen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/tipps-zum-multithreading-von-directx-anwendungen/11/2008/&via=sw_devtwits&text=Tipps zum Multithreading von DirectX-Anwendungen&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/tipps-zum-multithreading-von-directx-anwendungen/11/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multicore-Turbo für Visual Studio: Intel Parallel Studio</title>
		<link>http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/</link>
		<comments>http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 15:46:38 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=122</guid>
		<description><![CDATA[Erst gestern haben wir über die geplante Entwicklungsumgebung Intel Parallel Studio berichtet, die sich in Microsoft Virtual Studio einbinden lässt und C++-Programmierern und Software-Entwicklern dabei helfen soll, ihre eindimensionalen Singlethread-Anwendungen in leistungsfähige, parallelisierte Multithread-Applikationen zu verwandeln. Zwar befindet sich das Plugin noch in der Beta-Phase (für die Sie sich übrigens kostenlos anmelden können), das ist [...]]]></description>
			<content:encoded><![CDATA[<p>Erst gestern haben wir über die geplante Entwicklungsumgebung Intel Parallel Studio <a title="Mehr Infos zur Microsoft TechEd EMEA Developers 2008 und Intel PS" href="http://www.software-dev-blog.de/intel-microsoft-teched-emea-developers-2008-preview/10/2008/">berichtet</a>, die sich in Microsoft Virtual Studio einbinden lässt und C++-Programmierern und Software-Entwicklern dabei helfen soll, ihre eindimensionalen Singlethread-Anwendungen in leistungsfähige, parallelisierte Multithread-Applikationen zu verwandeln. Zwar befindet sich das Plugin noch in der Beta-Phase (für die Sie sich übrigens <a title="Hier anmelden zum Beta-Programm des Intel Parallel Studio" href="http://www.intel.com/cd/software/products/asmo-na/eng/399359.htm" target="_blank">kostenlos anmelden</a> können), das ist aber für uns überhaupt kein Grund, nicht schon mal einen Blick darauf zu werfen. Eine Kurzvorstellung.</p>
<p>Intel Parallel Studio setzt sich aus vier einzelnen Programmen zusammen, die entweder als Komplettpaket genutzt werden können oder aber jedes Tool für sich alleine.</p>
<p>Der <strong>Parallel Advisor</strong> untersucht bestehenden Sourcecode auf mögliches Parallelisierungspotenzial und schlägt bestimmte Routinen und Funktionen vor, mit deren Hilfe aus einfachen Programmen parallelisierte Anwendungen werden, die optimal auf Intel-Multicore-Plattformen laufen. Darüber hinaus analysiert der Advisor mögliche Programmkonflikte und nennt passende Lösungen.</p>
<p><span id="more-122"></span>Der <strong>Parallel Composer</strong> erlaubt die schnelle und relativ einfache Implementierung paralleler Funktionen und Programmschnipsel, die der Entwickler mithilfe fertiger Routinen und Bibliotheken in seinen bestehenden Sourcecode integrieren kann. Damit kann der Programmierer die bestmöglichen Ansätze für sein Projekt herausfinden und einsetzen.</p>
<p>Der <strong>Parallel Inspector</strong> fungiert als eine Art Debugger, der anhand der implementierten Multithread-Routinen und -Funktionen einen zuverlässigen und fehlerfreien Sourcecode garantiert. Hierfür spürt das Tool Fehler im Multithread-Code auf, die mit herkömmlichen Werkzeugen nur schwer zu finden wären. Der Inspector betreibt unter anderem intensive Ursachenforschung in Sachen Endlosschleifen, Deadlocks und anderen Fehlern.</p>
<p>Der <strong>Parallel Amplifier</strong> schließlich hilft beim Finetuning der parallelisierten Anwendung, indem er ungewollten und unvorhergesehen Singlethread-Code ermittelt, der sich als echter Flaschenhals in einer Multithread-Anwendung erweisen kann.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/&via=sw_devtwits&text=Multicore-Turbo für Visual Studio: Intel Parallel Studio&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/&via=sw_devtwits&text=Multicore-Turbo für Visual Studio: Intel Parallel Studio&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

