<?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; Tool</title>
	<atom:link href="http://www.software-dev-blog.de/tag/tool/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.software-dev-blog.de</link>
	<description>Multicore-Programmierung, Multithreading &#38; Visual Computing</description>
	<lastBuildDate>Fri, 03 Feb 2012 09:35:23 +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>Intel veröffentlicht Power Gadget 2.0 zum kostenlosen Download</title>
		<link>http://www.software-dev-blog.de/intel-veroffentlicht-power-gadget-2-0-zum-kostenlosen-download/01/2012/</link>
		<comments>http://www.software-dev-blog.de/intel-veroffentlicht-power-gadget-2-0-zum-kostenlosen-download/01/2012/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 13:17:34 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Power Gadget 2.0]]></category>
		<category><![CDATA[Sandy Bridge]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1894</guid>
		<description><![CDATA[Cleveres Tool, nicht nur für Programmierer, sondern auch für Systemadministratoren und System-Builder: Mit dem neuen Power Gadget 2.0 können Sie bei Sandy Bridge-Prozessoren den Energieverbrauch und die Prozessorfrequenz in Echtzeit messen. Dafür laden Sie (kostenlos natürlich) ein kleines Windows 7-Gadget (zusammen mit Treibern und Libraries) auf Ihren Desktop, das Ihnen in Watt-Angaben die CPU-Belastung anzeigt. [...]]]></description>
			<content:encoded><![CDATA[<p>Cleveres Tool, nicht nur für Programmierer, sondern auch für Systemadministratoren und System-Builder: Mit dem neuen<a href="http://software.intel.com/en-us/articles/intel-power-gadget/" target="_blank"> Power Gadget 2.0</a> können Sie bei Sandy Bridge-Prozessoren den Energieverbrauch und die Prozessorfrequenz in Echtzeit messen. Dafür laden Sie (kostenlos natürlich) ein kleines Windows 7-Gadget (zusammen mit Treibern und Libraries) auf Ihren Desktop, das Ihnen in Watt-Angaben die CPU-Belastung anzeigt. Diese Angaben holt sich das nützliche Programm direkt aus den Energy Conuters des Prozessors. Folge: Die Messwerte sind genauer und schneller, als wenn diese über Third-Party-Tools vom Motherboard geschleust werden.<br />
Gedacht ist das Tool sowohl für Notebooks, Desktop-PCs als auch Server mit Windows 7.</p>
<p><a href="http://software.intel.com/en-us/articles/intel-power-gadget/"><img class="alignright" style="margin-top: 3px; margin-bottom: 3px;" title="Power Gadget 2.0" src="http://software.intel.com/file/35078" alt="" width="291" height="413" /></a>Im Gegensatz zur früheren Version verfügt das neue Release über Support für Multi Socket-Systeme und die Möglichkeit per API-Layer (diverse Librariers und DLLs) via C/C#/C++ oder JavaScript relevante Energieinformationen auszulesen und weiterzugeben. Sie können das Tool über das Gadget bedienen oder auch über die Kommandozeile steuern. Dafür steht Ihnen die Funktion PwrLogSample.exe zur Verfügung.</p>
<p><strong>Systemvoraussetzungen</strong>:</p>
<ul>
<li>Windows 7 32-bit oder 64-bit</li>
<li>Windows Server 2008, Windows Server 2008 RC2 (64-Bit Server)</li>
<li>Microsoft .Net Framework 4</li>
<li>Microsoft Visual C++ 2010 SP1 (x86 oder x64 anhängig vom OS)</li>
<li>Sandy Bridge-Prozessor</li>
</ul>
<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-power-gadget-2-0-zum-kostenlosen-download/01/2012/&via=sw_devtwits&text=Intel veröffentlicht Power Gadget 2.0 zum kostenlosen Download&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-power-gadget-2-0-zum-kostenlosen-download/01/2012/&via=sw_devtwits&text=Intel veröffentlicht Power Gadget 2.0 zum kostenlosen Download&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-power-gadget-2-0-zum-kostenlosen-download/01/2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel veröffentlicht GPA 4.2 &#8211; kostenloser Download für Teilnehmer des Intel Visual Adrenaline Developer Programms</title>
		<link>http://www.software-dev-blog.de/intel-veroffentlicht-gpa-4-2-kostenloser-download-fur-teilnehmer-des-intel-visual-adrenaline-developer-programms/11/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-veroffentlicht-gpa-4-2-kostenloser-download-fur-teilnehmer-des-intel-visual-adrenaline-developer-programms/11/2011/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 16:48:04 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[GPA]]></category>
		<category><![CDATA[GPA 4.2]]></category>
		<category><![CDATA[Graphics Performance Analyzers]]></category>
		<category><![CDATA[Intel Visual Adrenaline Developer Program]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1841</guid>
		<description><![CDATA[Eines der besten und wichtigsten Developer-Tool-Sets für die Analyse und Optimierung grafischer Berechnungen in 3D-Spielen und Animationen erscheint nun in einer neuen Version. Die Rede ist von den Graphics Performance Analyzers, kurz GP 4.2. Hier eine schnelle Leistungs- und Funktionsübersicht für Spiele-Entwickler, die GPA noch nicht kennen. Das Set besteht aus drei Programmen: Intel GPA [...]]]></description>
			<content:encoded><![CDATA[<p>Eines der besten und wichtigsten Developer-Tool-Sets für die Analyse und Optimierung grafischer Berechnungen in 3D-Spielen und Animationen erscheint nun in einer neuen Version. Die Rede ist von den <a href="http://software.intel.com/en-us/articles/vcsource-tools-intel-gpa/?cid=sw:ISNnews_80_Eng_6491" target="_blank">Graphics Performance Analyzers, kurz GP 4.2</a>.<br />
Hier eine schnelle Leistungs- und Funktionsübersicht für Spiele-Entwickler, die GPA noch nicht kennen. Das Set besteht aus drei Programmen:</p>
<ul>
<li><strong>Intel GPA Frame Analyzer</strong> ist ein intuitiv bedienbares Tool zur Analyse und Optimierung einzelner Frames.</li>
<li><strong>Intel GPA System Analyzer Heads-up Display (HUD)</strong> bietet eine erste und grundlegende (Fehler-)Analyse, ermittelt Bottlenecks und misst die Grafik-Performance auch hinsichtlich möglicher Microsoft 3D-Effekte</li>
<li><strong>Intel GPA Platform Analyzer</strong> stellt eine Zeitskalenansicht für die Analyse von Tasks, Threads, Microsoft DirectX, OpenCL und anderen GPU relevaten Applikationen zur Verfügung.</li>
</ul>
<p>Wenn Sie mehr darüber erfahren möchten, empfehle ich Ihnen diesen <a href="http://www.software-dev-blog.de/live-von-der-gdc-euroe-2011-philipp-gerasimov-%E2%80%9Emaxis-mizing-darkspore-game-performance-with-intel-gpa%E2%80%9C/08/2011/">Beitrag von der GDC Europe 2011 zum Thema GPA</a>.</p>
<p style="text-align: center;"><a href="http://software.intel.com/en-us/articles/vcsource-tools-intel-gpa/?cid=sw:ISNnews_80_Eng_6491"><img class="size-full wp-image-1842 aligncenter" style="margin: 2px;" title="GPA 4.2" src="http://www.software-dev-blog.de/wp-content/images/2011/11/38839.jpg" alt="GPA 4.2" width="484" height="374" /></a></p>
<p>Nun zu den Neuerungen der Version 4.2. Gegenüber der Version 4.1 vom Anfang des Jahres kamen abgesehen von einigen Fixes <a href="http://software.intel.com/en-us/articles/gpa-announcing-4dot2/" target="_blank">folgende Funktionen hinzu</a>:</p>
<ul>
<li>Aktualisierte Intel Instrumentation und Tracing Technology (Intel ITT): Mehr Tracing-Informationen werden gesammelt, um typische Problemfelder wie Flaschenhälse noch exakter zu ermitteln</li>
<li>Die Task Timeline Ansicht stellt nun auch Task Sub-States dar</li>
<li>Task-Daten können nun auch über die OS- Scheduler Informationen hinaus abgerufen werden</li>
<li>Task-Farben können nun flexibler angepasst werden um die Übersichtlichkeit der Darstellung zu verbessern</li>
<li>In der Zeitskalenansicht kann der Anwender nun eigene Tracks hinzufügen</li>
</ul>
<p>Neugierig geworden? Dann probieren Sie GPA doch selbst in Ihrem persönlichen Umfeld aus. Als <a href="http://software.intel.com/sites/billboard" target="_blank">Mitglied des Intel Visual Adrenaline Developer Programms</a> können Sie die Tool-Sammlung <a href="http://software.intel.com/en-us/articles/gpa-announcing-4dot2/" target="_blank">kostenlos downloaden.</a> Und<a href="https://ssl.software.intel.com/en-us/register/visual-adrenaline" target="_blank"> hier können Sie sich für das Intel Visual Adrenaline Developer Programm registrieren</a>, wenn Sie noch nicht dabei sind.<br />
Andernfalls kostet GPA 4.2 299 US-Dollar und wird <a href="http://softwarestore.ispfulfillment.com/Store/Product.aspx?sku=I23S87101A01" target="_blank">hier angeboten</a>.<br />
News-Beiträge, Workshops, Tutorials und Videos zu dem cleveren Toolset können Sie übrigens <a href="http://software.intel.com/sites/landingpage/vcsource/frame.php?u=http%3A//software.intel.com/en-us/forums/developing-software-for-visual-computing" target="_blank">regelmäßig hier abrufen</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/intel-veroffentlicht-gpa-4-2-kostenloser-download-fur-teilnehmer-des-intel-visual-adrenaline-developer-programms/11/2011/&via=sw_devtwits&text=Intel veröffentlicht GPA 4.2 - kostenloser Download für Teilnehmer des Intel Visual Adrenaline Developer Programms&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-gpa-4-2-kostenloser-download-fur-teilnehmer-des-intel-visual-adrenaline-developer-programms/11/2011/&via=sw_devtwits&text=Intel veröffentlicht GPA 4.2 - kostenloser Download für Teilnehmer des Intel Visual Adrenaline Developer Programms&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-gpa-4-2-kostenloser-download-fur-teilnehmer-des-intel-visual-adrenaline-developer-programms/11/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Das leistet Flow Graph von Intel Threading Building Blocks 4.0</title>
		<link>http://www.software-dev-blog.de/das-leistet-flow-graph-von-intel-threading-building-blocks-4-0/10/2011/</link>
		<comments>http://www.software-dev-blog.de/das-leistet-flow-graph-von-intel-threading-building-blocks-4-0/10/2011/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 13:10:34 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Flow Graph]]></category>
		<category><![CDATA[Intel TBB]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1814</guid>
		<description><![CDATA[Mitte September, passend zum Intel Developer Forum 2011, stellte der Chiphersteller die vierte Version seiner C-/C++-Multithhreading-Bibliothek Threading Building Blocks vor. Eine wichtige Neuerung von Intel TBB 4.0 ist der Flow Graph, mit dem sich Abhängigkeiten zwischen Funktionen und anderen Konstrukten grafisch darstellen und damit einfacher analysieren lassen. Da ich über den Flow Graph noch nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Mitte September, passend zum <a title="Neuigkeiten aus Kalifornien: Intel IDF und Microsoft BUILD" href="http://www.software-dev-blog.de/neuigkeiten-aus-kalifornien-intel-idf-und-microsoft-build/09/2011/">Intel Developer Forum 2011</a>, stellte der Chiphersteller die <a title="Intel Threading Building Blocks 4.0 stehen mit neuen Funktionen bereit" href="http://www.software-dev-blog.de/intel-threading-building-blocks-4-0-stehen-mit-neuen-funktionen-bereit/09/2011/">vierte Version seiner C-/C++-Multithhreading-Bibliothek Threading Building Blocks</a> vor. Eine wichtige Neuerung von Intel TBB 4.0 ist der Flow Graph, mit dem sich Abhängigkeiten zwischen Funktionen und anderen Konstrukten grafisch darstellen und damit einfacher analysieren lassen. Da ich über den Flow Graph noch nicht ausführlich berichtet habe, hole ich dies hiermit nach.</p>
<p>Solch ein Flow Graph besteht aus drei Elementen: das Graph-Objekt, Knoten und Verbindungen. Das Objekt stellt Methoden zur Verfügung, mit deren Hilfe Tasks ausgeführt und beendet werden können. Die Knoten hingegen erstellen, transformieren und speichern Nachrichten. Und die Verbindungen machen aus dem Graph eine Einheit, indem sie die Knoten miteinander verbinden und auf diesem Weg die Nachrichten von Knoten zu Knoten senden. Es gibt diverse Typen von Knoten, die sich je nach Aufgabe einsetzen lassen:</p>
<p><strong>Funktionen:</strong> Hierfür sind vier Typen vorgesehen: <em>source_node</em>, <em>continue_node</em>, <em>function_node</em> und <em>multioutput_function_node</em>.</p>
<p><strong>Speichern (Buffering):</strong> Hierbei wird unterschieden in <em>buffer_node</em>, <em>queue_node</em>, <em>priority_queue_node</em> und <em>sequencer_node</em>.</p>
<p><strong>Teilen/Vereinen (split/join):</strong> Die zugehörigen Knoten lauten <em>queueing_join</em>, <em>reserving_join</em>, <em>tag_matiching_join</em>, <em>split_node</em> und <em>nor_node</em>.</p>
<p><strong>Diverse:</strong> Darunter fallen <em>broadcast_node</em>, <em>write_once_node</em>, <em>overwrite_node</em> und <em>limiter_node</em>.</p>
<p>Und so sieht das Ganze in der Symbolansicht aus:</p>
<div id="attachment_1815" class="wp-caption aligncenter" style="width: 518px"><img class="size-full wp-image-1815 " style="margin-left: 20px; margin-right: 20px;" title="Diese Knoten werden von Intel TBB Flow Graph unterstützt" src="http://www.software-dev-blog.de/wp-content/images/2011/10/tbb_flowgraph_nodes.gif" alt="Diese Knoten werden von Intel TBB Flow Graph unterstützt" width="508" height="430" /><p class="wp-caption-text">Diese Knoten werden von Intel TBB Flow Graph unterstützt</p></div>
<p>Im folgenden Bild ist ein möglicher Einsatz des Intel TBB Flow Graph zu sehen. Dabei soll der Verlauf einer Wellenfront mit Hilfe einer Reihe von Continue-Knoten dargestellt werden. In diesem Beispiel kann eine Berechnung erst dann ausgeführt werden, sobald die Berechnungen oberhalb und links von ihr abgeschlossen sind. Ist dies geschehen, erhält der jeweilige Knoten eine Nachricht vom Typ <em>contiune_msg</em>.</p>
<div id="attachment_1816" class="wp-caption aligncenter" style="width: 412px"><img class="size-full wp-image-1816  " style="margin-left: 30px; margin-right: 30px;" title="Mit Hilfe dieses Beispiels soll der Verlauf einer Wellenfront berechnet werden" src="http://www.software-dev-blog.de/wp-content/images/2011/10/tbb_flowgraph_bsp.gif" alt="Mit Hilfe dieses Beispiels soll der Verlauf einer Wellenfront berechnet werden" width="402" height="299" /><p class="wp-caption-text">Mit Hilfe dieses Beispiels soll der Verlauf einer Wellenfront berechnet werden</p></div>
<p>Ein komplettes Beispiel solch einer Flow-Graph-Implementierung zeigt der <a href="http://software.intel.com/en-us/blogs/2011/09/09/implementing-a-wave-front-computation-using-the-intel-threading-building-blocks-flow-graph/" target="_blank">zugehörige Blogbeitrag von Michael Voss</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/das-leistet-flow-graph-von-intel-threading-building-blocks-4-0/10/2011/&via=sw_devtwits&text=Das leistet Flow Graph von Intel Threading Building Blocks 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/das-leistet-flow-graph-von-intel-threading-building-blocks-4-0/10/2011/&via=sw_devtwits&text=Das leistet Flow Graph von Intel Threading Building Blocks 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/das-leistet-flow-graph-von-intel-threading-building-blocks-4-0/10/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET-Portierungstool MonoDevelop 2.8 mit neuen Funktionen für Mac-Entwickler</title>
		<link>http://www.software-dev-blog.de/net-portierungstool-monodevelop-2-8-mit-neuen-funktionen-fur-mac-entwickler/10/2011/</link>
		<comments>http://www.software-dev-blog.de/net-portierungstool-monodevelop-2-8-mit-neuen-funktionen-fur-mac-entwickler/10/2011/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 07:54:17 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Portierung]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1796</guid>
		<description><![CDATA[Es ist wohl der Traum eines jeden .NET-Entwicklers: Wie portiere ich meinen existierenden C#-Quellcode mit möglichst wenig Aufwand auf weitere Plattform, sodass ich meine Software-Programme einer größeren Anwenderschar zur Verfügung stellen kann. Mit dem unter General Public License 2.1 stehenden Entwicklerumgebung MonoDevelop wird dieser Traum wahr, und ab sofort steht die verbesserte Version 2.8 zum [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist wohl der Traum eines jeden .NET-Entwicklers: Wie portiere ich meinen existierenden C#-Quellcode mit möglichst wenig Aufwand auf weitere Plattform, sodass ich meine Software-Programme einer größeren Anwenderschar zur Verfügung stellen kann. Mit dem unter General Public License 2.1 stehenden Entwicklerumgebung <a href="http://monodevelop.com/" target="_blank">MonoDevelop</a> wird dieser Traum wahr, und ab sofort steht die verbesserte Version 2.8 zum Download zur Verfügung. Folgende wesentliche Neuerungen bietet das Portierungs- und Entwicklertool:</p>
<p>Der <strong>Quellcode-Editior</strong> wurde um neue Funktionen für das Projektmanagement erweitert. Das bedeutet unter anderem, dass MSBuild-Projektdateien mit <a title="Neuigkeiten aus Kalifornien: Intel IDF und Microsoft BUILD" href="http://www.software-dev-blog.de/neuigkeiten-aus-kalifornien-intel-idf-und-microsoft-build/09/2011/">Visual Studio</a> durch das Update kompatibler und darüber hinaus angepasste Frameworks unterstützt werden. Auch neu: die Syntax lässt sich farblich individuell darstellen, indem man eigene Farbschemen festlegt und diese je nach Projekt einsetzt.</p>
<p>Mac-Entwickler können ab sofort <strong>Xcode 4</strong> für das Schreiben ihres Quellencodes einsetzen. Somit können beispielsweise Interface-Builder-Dateien mithilfe von Xcode 4 editiert werden. Desweiteren sollen neue <a href="https://github.com/xamarin/monotouch-samples" target="_blank">MonoTouch-Beispiele</a> dabei helfen, Xcode 4 besser einzusetzen.</p>
<p>Außerdem wird der Testing-Services <strong>TestFlight</strong> unterstützt. Hierfür müssen Sie sich lediglich auf <a href="https://testflightapp.com/" target="_blank">testflightapp.com</a> anmelden, das zugehörige SDK in Ihre Build-Datei integrieren, dieselbe hochladen, testen lassen, fertig. Darüber hinaus lassen sich die Pfade zum Portierungstool <a href="http://ios.xamarin.com/" target="_blank">MonoTouch</a> und zum iOS SDK besser konfigurieren, es gibt neue Projektvorlagen für iPhone und iPad und die neue Storyboard-Funktion, die unter iOS 5 zur Verfügung steht, wird ebenfalls unterstützt.</p>
<p>MonoDevelop 2.8 können Sie <a href="http://monodevelop.com/Download" target="_blank">von der Download-Seite auf Ihren Rechner laden</a>. Unterstützt werden Windows, Mac OS X sowie die Linux-Distributionen openSUSE, SLE, Debian und Ubuntu.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/net-portierungstool-monodevelop-2-8-mit-neuen-funktionen-fur-mac-entwickler/10/2011/&via=sw_devtwits&text=.NET-Portierungstool MonoDevelop 2.8 mit neuen Funktionen für Mac-Entwickler&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/net-portierungstool-monodevelop-2-8-mit-neuen-funktionen-fur-mac-entwickler/10/2011/&via=sw_devtwits&text=.NET-Portierungstool MonoDevelop 2.8 mit neuen Funktionen für Mac-Entwickler&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/net-portierungstool-monodevelop-2-8-mit-neuen-funktionen-fur-mac-entwickler/10/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel Threading Building Blocks 4.0 stehen mit neuen Funktionen bereit</title>
		<link>http://www.software-dev-blog.de/intel-threading-building-blocks-4-0-stehen-mit-neuen-funktionen-bereit/09/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-threading-building-blocks-4-0-stehen-mit-neuen-funktionen-bereit/09/2011/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 10:19:27 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Intel TBB]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1765</guid>
		<description><![CDATA[Als ob ich es geahnt hätte: erst am Freitag habe ich über die Intel Parallel Building Blocks geschrieben, den &#8220;großen Bruder&#8221; der Intel Threading Building Blocks (Intel TBB). Und heute erfahre ich, dass die Multithreading-Bibliothek von Intel ab sofort als Major Release 4 erhältlich ist. Na, das ist mir ja wohl einen genaueren Blick wert. [...]]]></description>
			<content:encoded><![CDATA[<p>Als ob ich es geahnt hätte: erst am Freitag habe ich über die <a title="Das leistet die Tool-Suite Intel Parallel Building Blocks" href="http://www.software-dev-blog.de/das-leistet-die-tool-suite-intel-parallel-building-blocks/09/2011/">Intel Parallel Building Blocks geschrieben</a>, den &#8220;großen Bruder&#8221; der Intel Threading Building Blocks (Intel TBB). Und heute erfahre ich, dass die Multithreading-Bibliothek von Intel ab sofort als Major Release 4 erhältlich ist. Na, das ist mir ja wohl einen genaueren Blick wert.</p>
<p>Eine wichtige Verbesserung bzw. Neuheit stellt der Flow Graph dar, den man ja schon im fünften Update der Intel TBB 3.0 vorgefunden hat, allerdings noch nicht in der finalen Version. Dies ist mit Intel TBB 4.0 geschehen, und Software-Entwickler werden diese neue Funktion lieben.</p>
<p>Denn mit dem Flow Graph lassen sich Abhängigkeiten zwischen einzelnen Berechnungen und Algorithmen grafisch darstellen. Das betrifft sowohl statische als auch dynamische Operationen. Dies ist vor allem bei der Visualisierung von parallelisierten Codeabschnitten sehr hilfreich, da vor allem in diesen speziellen Fällen unvorhersehbare Nebeneffekte auftreten können, die mit Flow Graph unter Umständen sichtbar werden.</p>
<p>Neben Flow Graph spielen neue Mechanismen in TBB 4.0 ein weitere wesentliche Rolle, mit deren Hilfe Speicheroperationen auf definierte Bereiche beschränkt werden können. Diese Memory Pools eignen sich ebenfalls dazu, mögliche Speicherprobleme bei parallel programmierten Codeabschnitten zu vermeiden.</p>
<p>Für die explizite Parallelprogrammierung kommt in Intel TBB 4.0 eine <em>Concurrent Memory Queue</em> zum Einsatz, mit deren Hilfe die Abarbeitung paralleler Aufgaben einfacher gewichtet, also priorisiert werden können. Und mit  den neu eingeführten<em> Concurrent Unordered Sets </em>können Software-Entwickler thread-sichere Container zum Ablegen von Nutzerobjekte erstellen und per Hashkey nutzen.</p>
<p>Darüber hinaus lassen sich auch Tasks und ganze Task-Gruppen priorisieren, und zwar auf drei verschiedenen Ebenen, nämlich Low, Normal und High. Last but not least unterstützt der <a title="Sandy Bridge, AVX und Core-CPUs: GCC 4.6 mag Intel" href="http://www.software-dev-blog.de/sandy-bridge-avx-und-core-cpus-gcc-4-6-mag-intel/03/2011/">GCC</a> dank Intel TBB 4.0 ab sofort thread-sichere atomare Operationen, was Parallelcode noch effizienter machen soll.</p>
<p>Intel Threading Building Blocks 4.0 <a href="http://threadingbuildingblocks.org/ver.php?fid=174" target="_blank">gibt es in Varianten für Windows, Linux und Mac OS X</a>, und zwar kostenfrei, wenn man damit nicht-kommerzuielle Projekte betreibt (auf Basis der GPLv2 mit Runtime Exception). Für <a href="http://software.intel.com/en-us/articles/intel-tbb/" rel="external" target="_blank">kommerzielle Projekte</a> stehen diverse Kaufversionen von Intel bereit. Und das inklusive Support.</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-threading-building-blocks-4-0-stehen-mit-neuen-funktionen-bereit/09/2011/&via=sw_devtwits&text=Intel Threading Building Blocks 4.0 stehen mit neuen Funktionen bereit&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-threading-building-blocks-4-0-stehen-mit-neuen-funktionen-bereit/09/2011/&via=sw_devtwits&text=Intel Threading Building Blocks 4.0 stehen mit neuen Funktionen bereit&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-threading-building-blocks-4-0-stehen-mit-neuen-funktionen-bereit/09/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel veröffentlicht Parallel Studio XE 2011 für Fortran-Entwickler</title>
		<link>http://www.software-dev-blog.de/intel-veroffentlicht-parallel-studio-xe-2011-fur-fortran-entwickler/09/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-veroffentlicht-parallel-studio-xe-2011-fur-fortran-entwickler/09/2011/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 11:45:16 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Fortran]]></category>
		<category><![CDATA[Parallel Studio XE]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1762</guid>
		<description><![CDATA[Über die Programmier-Suite Parallel Studio XE 2011 habe ich ja hier schon diverse Male berichtet: ob in Form eines Videointerviews, ob vom Composer XE als Beta-Programm oder vom VTune Amplifier XE in Kooperation mit OpenCL &#8211; C- und C++-Programmierer finden hier immer erstklassige Werkzeuge. Heute gibt es wichtige Neuigkeiten für Fortran-Programmierer, denn Intel bietet ab [...]]]></description>
			<content:encoded><![CDATA[<p>Über die Programmier-Suite Parallel Studio XE 2011 habe ich ja hier schon diverse Male berichtet: ob in Form eines <a title="[Videochat] Manuel Wille von Nik Software zu Multicore-Optimierungen, AVX und Parallel Studio XE" href="http://www.software-dev-blog.de/videochat-manuel-wille-von-nik-software-zu-multicore-optimierungen-avx-und-parallel-studio-xe/04/2011/">Videointerviews</a>, ob vom <a title="Intel Composer XE 2011 SP1 Beta Programm gestartet!" href="http://www.software-dev-blog.de/intel-composer-xe-2011-sp1-beta-programm-gestartet/06/2011/">Composer XE als Beta-Programm</a> oder vom <a title="Workshop: VTune Amplifier XE 2011 im Teamwork mit Intel OpenCL SDK 1.1 Beta" href="http://www.software-dev-blog.de/workshop-vtune-amplifier-xe-2011-im-teamwork-mit-intel-opencl-sdk-1-1-beta/06/2011/">VTune Amplifier XE in Kooperation mit OpenCL</a> &#8211; C- und C++-Programmierer finden hier immer erstklassige Werkzeuge.</p>
<p>Heute gibt es wichtige Neuigkeiten für Fortran-Programmierer, denn Intel bietet ab sofort eine angepasste Version der Entwickler-Suite Parallel Studio XE 2011 an, die sich Fortran Studio XE 2011 nennt und sämtliche Komponenten bietet, die man auch von Parallel Studio XE 2011 kennt. Dazu gehört der Fortran-Composer, den es für Windows, Mac OS X und Linux gibt. In diesem Paket befinden sich neben dem Fortran-Compiler Multicore-optimierte Bibliotheken, spezielle Vektor-Funktionen und die <a href="http://software.intel.com/en-us/articles/intel-parallel-building-blocks/" target="_blank">Intel Parallel Building Blocks</a>, die Thread-sichere Funktionen zur Verfügung stellen.</p>
<p>Darüber hinaus gehört zu Fortran Studio XE 2011 auch das Analyse-Tool <a title="Intel Software Developer Conference 2011 (II): Intel VTune Amplifier XE in Action" href="http://www.software-dev-blog.de/intel-software-developer-conference-2011-ii-intel-vtune-amplifier-xe-in-action/04/2011/">VTune Amplifier XE</a> und das Speicher-Überprüfungs-Werkzeug <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/">Inspector XE</a>, das Intel für Fortran-Zwecke angepasst hat, da es ja bisher nur C- und C++-Entwicklern zur Verfügung stand.</p>
<p>Damit entspricht Fortran Studio XE 2011 funktionsseitig vollständig Parallel Studio XE 2011, allerdings mit angepassten und aktualisierten Komponenten. Dazu gehört das Update 12.1.0 des Fortran-Compilers, dem Intel eine Reihe an Verbesserungen spendiert hat. Dazu gehören folgende Funktionen:</p>
<ul>
<li>ALLOCATE auf Basis eines polymorphen SOURCE= wird jetzt unterstützt</li>
<li>zahlreiche neue Visual-Studio-2010-Funktionen wie der Code-Browser (aber nur für Visual Studio 2010)</li>
<li>OpenMP 3.1 wird jetzt unterstützt</li>
<li>die <a title="Software-Projekte mit Multicore-Bibliotheken optimieren" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel Math Kernel Library</a> wurde auf 10.3 Update 6 aktualisiert</li>
</ul>
<p>Weitere Infos zu Fortran Studio XE 2011 bekommen Sie in dem <a href="http://software.intel.com/en-us/blogs/2011/09/06/introducing-intel-fortran-studio-xe-2011/" target="_blank">zugehörigen Blogbeitrag</a>, in dem Steve Lionel von Intel ausführlich auf die Entwickler-Suite eingeht.</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-parallel-studio-xe-2011-fur-fortran-entwickler/09/2011/&via=sw_devtwits&text=Intel veröffentlicht Parallel Studio XE 2011 für Fortran-Entwickler&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-parallel-studio-xe-2011-fur-fortran-entwickler/09/2011/&via=sw_devtwits&text=Intel veröffentlicht Parallel Studio XE 2011 für Fortran-Entwickler&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-parallel-studio-xe-2011-fur-fortran-entwickler/09/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live von der GDC Europe 2011: Philipp Gerasimov im Interview</title>
		<link>http://www.software-dev-blog.de/live-von-der-gdc-europe-2011-philipp-gerasimov-im-interview/08/2011/</link>
		<comments>http://www.software-dev-blog.de/live-von-der-gdc-europe-2011-philipp-gerasimov-im-interview/08/2011/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 14:12:31 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[GPA]]></category>
		<category><![CDATA[Graphics Performance Analyzer]]></category>
		<category><![CDATA[Intel GPA]]></category>
		<category><![CDATA[Techsession]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1729</guid>
		<description><![CDATA[Wenige Stunden vor seiner offiziellen Session habe ich Philipp für ein Kurz-Interview verpflichten können. Philipp ist Senior Application Engineer bei Intel, blickt auf eine langjährige Developer-Erfahrung zurück und ist Experte für Intel Graphics Performance Analyzers. Im Interview erklärt er, wer GPA unbedingt braucht, welche Verbesserungen die Version 4.1 gegenüber dem Vorgänger verspricht und wie Sie [...]]]></description>
			<content:encoded><![CDATA[<p>Wenige Stunden vor seiner offiziellen Session habe ich Philipp für ein Kurz-Interview verpflichten können. Philipp ist Senior Application Engineer bei Intel, blickt auf eine langjährige Developer-Erfahrung zurück und ist Experte für <a href="http://software.intel.com/en-us/articles/intel-gpa/" target="_blank">Intel Graphics Performance Analyzers</a>.</p>
<p>Im Interview erklärt er, wer GPA unbedingt braucht, welche Verbesserungen die Version 4.1 gegenüber dem Vorgänger verspricht und wie Sie sehr, sehr günstig an die aktuelle Version kommen, um die Grafikleistung auch Ihrer eigenen Spiele zu optimieren.</p>
<p>Hier das sehr sehenswerte Video dazu:</p>
<p>&nbsp;<br />
<object style="height: 304px; width: 500px"><param name="movie" value="http://www.youtube.com/v/5rWRC7G_4cw?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/5rWRC7G_4cw?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="500" height="304"></object><br />
&nbsp;</p>
<p>Später werde ich von noch von seiner Session berichten.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/live-von-der-gdc-europe-2011-philipp-gerasimov-im-interview/08/2011/&via=sw_devtwits&text=Live von der GDC Europe 2011: Philipp Gerasimov im Interview&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/live-von-der-gdc-europe-2011-philipp-gerasimov-im-interview/08/2011/&via=sw_devtwits&text=Live von der GDC Europe 2011: Philipp Gerasimov im Interview&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/live-von-der-gdc-europe-2011-philipp-gerasimov-im-interview/08/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tech-Interview: Mit Java-Extension einfach parallel programmieren</title>
		<link>http://www.software-dev-blog.de/tech-interview-mit-java-extension-einfach-parallel-programmieren/07/2011/</link>
		<comments>http://www.software-dev-blog.de/tech-interview-mit-java-extension-einfach-parallel-programmieren/07/2011/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 14:36:04 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1689</guid>
		<description><![CDATA[Die Kollegen vom SoftTalk-Blog hatten die Gelegenheit, ein Interview mit Patrick Viry zu führen, der eine Software-Firma in Paris betreibt. Er entwickelt dort mit seinem Team Erweiterungen für etablierte Progammiersprachen und fokussiert sich derzeit mit seinen Ateji PX Extension auf Java. Die Antworten fand ich so interessant, dass ich sie in Auszügen wiedergeben möchte. Das komplette [...]]]></description>
			<content:encoded><![CDATA[<p>Die Kollegen vom SoftTalk-Blog hatten die Gelegenheit, ein Interview mit Patrick Viry zu führen, der eine <a href="http://www.ateji.com/" target="_blank">Software-Firma in Paris</a> betreibt. Er entwickelt dort mit seinem Team Erweiterungen für etablierte Progammiersprachen und fokussiert sich derzeit mit seinen Ateji PX Extension auf Java. Die Antworten fand ich so interessant, dass ich sie in Auszügen wiedergeben möchte. Das komplette Interview können Sie <a href="http://softtalkblog.com/2011/07/26/parallel-programming-in-java/" target="_blank">auf dem SoftTalk-Blog nachlesen</a>.</p>
<p><em><strong>Wie schafft es Ateji, die Parallelprogrammierung einfacher zu machen?</strong></em></p>
<p><em>Nun, zunächst haben wir eine bestehende Sprache erweitert (nämlich Java), sodass es nicht notwendig ist, eine neue Sprache zu lernen (weitere sollen folgen). Dann haben wir auf Basis einer mathematischen Formel eine parallele Extension entwickelt, mit deren Hilfe sich parallele Ausdrücke mit einem einfachen Operator kombinieren lassen. Wenn Sie beispielsweise eine Funktion a und b parallel ablaufen lassen wollen, müssen Sie das lediglich als <strong>a || b</strong> in Ihren Quellcode einfügen.</em></p>
<p><em><strong>Welche Programmiermodelle unterstützen Sie?</strong></em></p>
<p><em>Dazu gehören eine ganze Menge:</em></p>
<ul>
<li><em>task-basierte Modelle wie <a title="Infos aus erster Hand zu Cilk" href="http://www.software-dev-blog.de/infos-aus-erster-hand-zu-cilk/07/2010/">Cilk</a></em></li>
<li><em>daten-basierte Modelle wie <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></em></li>
<li><em>rekursive und spekulative parallele Konstrukte</em></li>
<li><em>und einiges mehr.</em></li>
</ul>
<p><em><strong>Worin unterscheiden sich die Ateji-Extensions von anderen Erweiterungen, die es zum Zwecke der Parallelprogrammierung bereits gibt? </strong></em></p>
<p><em>Nun, da gibt es eine Reihe von Unterschieden:</em></p>
<ul>
<li><em>Chapel, X10, Fortress, etc. adressieren den Bereich des High Performance Computing (HPC), sind also vor allem für <a title="International Supercomputing Conference 2011 in Hamburg" href="http://www.software-dev-blog.de/international-supercomputing-conference-2011-in-hamburg/06/2011/">Supercomputer</a> ausgelegt. Ateji PX wurde für &#8220;einfache&#8221; Java-Entwickler geschrieben, die Anwendungen für herkömmliche Multicore-Server und -Cluster schreiben.<br />
</em></li>
<li><em>Es handelt sich dabei im eine Spracherweiterung, die mit Standard-Java-Code kompatibel ist.<br />
</em></li>
<li><em>Der einfach zu erlernende ||-Operand erlaubt es, diverse Parallelisierungs-Konstrukte mithilfe einer einzigen Sprache auszudrücken.<br />
</em></li>
<li><em>Unsere Extension basiert auf einer erprobten, zuverlässigen mathematischen Formel, sodass wir genau vorhersagen können, was innerhalb des parallelen Konstrukts passieren wird. Das bedeutet auch, dass der Compiler mögliche Fehler wie <a title="Know-How und Programmiertipps: Data Races" href="http://www.software-dev-blog.de/know-how-und-programmiertipps-data-races/02/2011/">Data Races</a> relativ genau vorhersagen kann.</em></li>
</ul>
<p><em><strong>Wie reagieren Entwickler auf Ihre Java-Extension?</strong></em></p>
<p><em>Nun, unsere Hauptaussage, dass mit Ateji PX die Parallelprogrammierung einfacher wird, ließ sich <em>schon </em>des öfteren bestätigen. So können Entwickler in der Regel innerhalb eines halben Tages ihr erstes parallel programmiertes Programm schreiben und zum Laufen bringen. Und ein großes Bankinstitut hat es tatsächlich geschafft, innerhalb von zwei Tagen ihre Java-Anwendung derart zu parallelisieren, dass sie hinterher fünf mal schneller lief als ohne den Parallelisierungsaufwand.</em></p>
<p>Weitere Informationen zur Ateji PX Extension für Java gibt es im zu<a href="http://www.ateji.com/px/whitepapers/Ateji%20PX%20for%20Java%20v1.0.pdf" target="_blank"> zugehörigen PDF</a> oder auf der <a href="http://www.ateji.com/px/index.html">Ateji PX Webseite</a>. Es gibt auch eine <a href="http://www.ateji.com/px/whitepapers/Ateji%20PX%20MatMult%20Whitepaper%20v1.2.pdf" target="_blank">Case Study</a>, die zeigt, wie sich mit Hilfe von Ateji eine Server-Anwendung mit 16 Prozessorkernen um den Faktor 12,5 beschleunigen ließ.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/tech-interview-mit-java-extension-einfach-parallel-programmieren/07/2011/&via=sw_devtwits&text=Tech-Interview: Mit Java-Extension einfach parallel programmieren&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/tech-interview-mit-java-extension-einfach-parallel-programmieren/07/2011/&via=sw_devtwits&text=Tech-Interview: Mit Java-Extension einfach parallel programmieren&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/tech-interview-mit-java-extension-einfach-parallel-programmieren/07/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>Mit JSIL .NET-Anwendungen in Javascript-Code umwandeln</title>
		<link>http://www.software-dev-blog.de/mit-jsil-net-anwendungen-in-javascript-code-umwandeln/06/2011/</link>
		<comments>http://www.software-dev-blog.de/mit-jsil-net-anwendungen-in-javascript-code-umwandeln/06/2011/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 12:10:25 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1636</guid>
		<description><![CDATA[Heute wage ich mal wieder einen der Über-den-Tellerrand-Blicke. Es geht konkret um die Möglichkeit, mithilfe eines speziellen Compilers .NET-Anwendungen in Javascript-Code zu überführen. Der Name dahinter: JSIL. Dieses Tool macht dabei nichts anderes, als den CIL-Bytecode der .NET-Anwendung in browser-tauglichen Javascript-Code umzuwandeln, der dann direkt aus dem Webbrowser heraus gestartet werden kann. Darüber hinaus generiert [...]]]></description>
			<content:encoded><![CDATA[<p>Heute wage ich mal wieder einen der <a title="Vorsicht! Aktuelle Phishing-Attacken auf Windows Live (Hotmail)-Konten" href="http://www.software-dev-blog.de/vorsicht-aktuelle-phishing-attacken-auf-windows-live-hotmail-konten/04/2011/">Über-den-Tellerrand-Blicke</a>. Es geht konkret um die Möglichkeit, mithilfe eines speziellen Compilers .NET-Anwendungen in Javascript-Code zu überführen. Der Name dahinter: JSIL. Dieses Tool macht dabei nichts anderes, als den CIL-Bytecode der .NET-Anwendung in browser-tauglichen Javascript-Code umzuwandeln, der dann direkt aus dem Webbrowser heraus gestartet werden kann. Darüber hinaus generiert JSIL im Gegensatz zu anderen Cross-Compilern lesbaren und einfach zu testenden JavaScript-Code, der die Struktur des ursprünglichen .NET-Quellcodes beibehält.</p>
<p>Die auf der <a href="http://jsil.org/" target="_blank">zugehörigen Webseite</a> verfügbaren Beispiele zeigen recht eindrucksvoll, wie das Ganze aussehen kann. OK, Tetris ist nicht so der Brüller, aber das Indiana Jones-Verschnitt-Spiel kann sich durchaus sehen und spielen lassen. Das Spiel läuft recht flüssig, je nach vorhandener Hardware. Und bei der Wahl des Browsers sollte man ebenfalls wählerisch sein: So werden nur die aktuellen Webbrowswer wie Internet Explorer 9, Firefox 4, Safari 5 und Chrome 11 vernünftig unterstützt, da diese den noch recht neuen JavaScript-Standard <a href="http://www.peterkroener.de/ecmascript5-die-nachste-version-von-javascript-teil-1-ein-uberblick/" target="_blank">ECMAScript 5</a> sowie HTML5 beherrschen. Alle Opera-Anwender werden sich daher noch ein wenig gedulden müssen.</p>
<p>Es sind lediglich vier Schritte notwendig, um JSIL für seine eigenen Zwecke einzusetzen:</p>
<ol>
<li>Erstellen Sie mithilfe von Git eine Kopie des <a href="https://github.com/kevingadd/JSIL.git" target="_blank">zugehörigen Repositories</a> (vergessen Sie die Submodule nicht).</li>
<li>Erzeugen Sie mithilfe von Visual Studio 2010 (ja, die Express-Version funktioniert auch) die Build-Datei JSIL.sln.</li>
<li>Lassen Sie die so erzeugten JSILc.exe über Ihre .NET-Anwendungen laufen.</li>
<li>Versuchen Sie, die entstandenen Fehler zu korrigieren (JSIL befindet sich noch im Beta-Stadium).</li>
</ol>
<p><strong>Ach ja:</strong> JSIL ist nicht der erste Versuch, .NET in Java- oder JavaScript-basierten Code umzuwandeln. Die Projekte <a href="http://www.ikvm.net/" target="_blank">IKMV.NET</a> und <a href="http://xmlvm.org/" target="_blank">XMLVM</a> haben dies bereits vorgemacht. Vor allem das XMLVM-Projekt ist für Entwickler mobiler Anwendungen äußerst interessant, da sich auf diesem Weg Android-Apps in iPhone- und iPad-kompatible Anwendungen konvertieren lassen. Hierfür bietet XMLVM die Möglichkeit, Java Bytecode in Objective-C-Code umzuwandeln.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/mit-jsil-net-anwendungen-in-javascript-code-umwandeln/06/2011/&via=sw_devtwits&text=Mit JSIL .NET-Anwendungen in Javascript-Code umwandeln&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/mit-jsil-net-anwendungen-in-javascript-code-umwandeln/06/2011/&via=sw_devtwits&text=Mit JSIL .NET-Anwendungen in Javascript-Code umwandeln&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/mit-jsil-net-anwendungen-in-javascript-code-umwandeln/06/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel OpenCL SDK 1.1 als Windows-Beta und Linux-Alpha</title>
		<link>http://www.software-dev-blog.de/intel-opencl-sdk-1-1-als-windows-beta-und-linux-alpha/05/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-opencl-sdk-1-1-als-windows-beta-und-linux-alpha/05/2011/#comments</comments>
		<pubDate>Tue, 10 May 2011 11:22:18 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[GPCPU]]></category>
		<category><![CDATA[OpenCL]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1596</guid>
		<description><![CDATA[Intel macht mehr und mehr Ernst mit dem Thema GPCPU! Darauf deutet zumindest die Nachricht hin, die ich heute in einem der amerikanischen Intel-Blogs entdeckt habe, die davon berichtet, dass das OpenCL SDK in der Version 1.1 als Beta für Windows zum Download zur Verfügung steht. Zudem ist eine Alpha-Preview für Linux erhältlich. Und was [...]]]></description>
			<content:encoded><![CDATA[<p>Intel macht mehr und mehr Ernst <a title="[Videochat] James Reinders von Intel über Entwicklertools, 2012 und MeeGo" href="http://www.software-dev-blog.de/videochat-james-reinders-von-intel-uber-entwicklertools-2012-und-meego/04/2011/">mit dem Thema GPCPU</a>! Darauf deutet zumindest die Nachricht hin, die ich heute in einem der amerikanischen <a href="http://software.intel.com/en-us/blogs/2011/05/09/conformant-intel-opencl-sdk-11-beta-announced-linux-support-available/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IntelSoftwareNetworkBlog+%28Intel+Software+Network+Blog%29" target="_blank">Intel-Blogs entdeckt</a> habe, die davon berichtet, dass das OpenCL SDK in der Version 1.1 als Beta für Windows zum Download zur Verfügung steht. Zudem ist eine Alpha-Preview für Linux erhältlich.</p>
<p>Und was hat das mit dem Thema GPCPU zu tun? Nun, wie Intel ja schon vor längerem angekündigt hat, wird das ehemalige Vorzeigeprojekt <a title="GDC09: Effizient und parallel mit Larrabee programmieren" href="http://www.software-dev-blog.de/gdc09-effizient-und-parallel-mit-larrabee-programmieren/08/2009/">Larrabee</a> wieder auferstehen, und zwar unter dem Namen <a title="OOP 2011: Ralph de Wargny zu Tools und Trends für Software-Entwickler" href="http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/">Knights Corner</a>. Dabei handelt es sich um eine Art Co-Prozessor, der 50 Prozessorkerne umfassen, in der 22-Nanometer-Technik gebaut und für parallele Rechenaufgaben geradezu prädestiniert sein wird. Das Ganze wird im Laufe des nächsten Jahres auf den Markt kommen.</p>
<p>Und genau hier setzt OpenCL ein, denn mit diesem Framework, das mit OpenCL C konform ist und diverse Tools für Programmierer bietet, lassen sich vor allem grafisch-orientierte Aufgaben deutlich schneller ausführen als auf jedem Standard-PC, der CPU und GPU nicht gemeinsam nutzen kann.</p>
<p>Das Intel OpenCL SDK 1.1 Beta umfasst folgende Merkmale:</p>
<ul>
<li>Das SDK ist vollständig kompatibel mit der <a href="http://www.khronos.org/opencl/" target="_blank">OpenCL-Spezifikation</a></li>
<li>Beta-Support für Microsoft Windows (32 and 64 bit)</li>
<li>Alpha-Support für Linux</li>
<li>OpenCL-Client-Treiber</li>
<li>CPU-Vektorisierungsmodule für SIMD-Berechnungen</li>
</ul>
<p>Darüber hinaus werden folgende optionale Core-Features unterstützt:</p>
<ul>
<li> Out-of-Order-Execution</li>
<li>Unterstützung nativer Kernels</li>
<li>native Verarbeitung von Bildern</li>
<li>Code-Optimierungen mithilfe bestimmer Compiler-Einstellungen (cl-fast-relaxed-math)</li>
<li>Floating Point-Erweiterungen für Berechnungen mit doppelter Genauigkeit (cl_khr_fp64)</li>
<li>Code-Beispiele</li>
<li>Debug- und Analyse-Tools sind ebenfalls Teil des SDKs (z.B. <a title="Grafikoptimierung mit GPA 4.0 auf Pixelebene" href="http://www.software-dev-blog.de/grafikoptimierung-mit-gpa-4-0-auf-pixelebene/03/2011/">Intel GPA</a> und <a title="Intel Software Developer Conference 2011 (II): Intel VTune Amplifier XE in Action" href="http://www.software-dev-blog.de/intel-software-developer-conference-2011-ii-intel-vtune-amplifier-xe-in-action/04/2011/">VTune Amplifier</a>-Support)</li>
</ul>
<p><a href="http://software.intel.com/en-us/articles/download-intel-opencl-sdk/" target="_blank">Mithilfe des zugehörigen Links</a> kann das Intel OpenCL SDK auf den eigenen PC zu Testzwecken geladen werden.</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-opencl-sdk-1-1-als-windows-beta-und-linux-alpha/05/2011/&via=sw_devtwits&text=Intel OpenCL SDK 1.1 als Windows-Beta und Linux-Alpha&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-opencl-sdk-1-1-als-windows-beta-und-linux-alpha/05/2011/&via=sw_devtwits&text=Intel OpenCL SDK 1.1 als Windows-Beta und Linux-Alpha&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-opencl-sdk-1-1-als-windows-beta-und-linux-alpha/05/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Download: Performance Tuning Utility (Intel PTU) Utility 4.0 Update 5</title>
		<link>http://www.software-dev-blog.de/download-performance-tuning-utility-intel-ptu-utility-4-0-update-5/04/2011/</link>
		<comments>http://www.software-dev-blog.de/download-performance-tuning-utility-intel-ptu-utility-4-0-update-5/04/2011/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 15:34:45 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Performance Analyse]]></category>
		<category><![CDATA[Performance Tuning Utility]]></category>
		<category><![CDATA[PTU]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1543</guid>
		<description><![CDATA[Intel hat gestern das neue Performance Tuning Utility (Intel PTU) zum kostenlosen Download veröffentlicht. Dabei handelt es sich um ein Performance Analyse-Tool für unterschiedliche Systemplattformen wie Windows und Linux. Neben den gewohnten Power-Funktionen etwa zur Identifizierung von Flaschenhälsen und Leistungsbremsen im Sourcecode, hat Intel eine Reihe von Verbesserungen zur Datenkontrolle, Analyse und Visualisierung integriert. Die [...]]]></description>
			<content:encoded><![CDATA[<p>Intel hat gestern das neue <a href="http://software.intel.com/en-us/articles/intel-performance-tuning-utility/" target="_blank">Performance Tuning Utility (Intel PTU)</a> zum kostenlosen Download veröffentlicht.</p>
<p>Dabei handelt es sich um ein Performance Analyse-Tool für unterschiedliche Systemplattformen wie Windows und Linux. Neben den gewohnten Power-Funktionen etwa zur Identifizierung von Flaschenhälsen und Leistungsbremsen im Sourcecode, hat Intel eine Reihe von Verbesserungen zur Datenkontrolle, Analyse und Visualisierung integriert.</p>
<p>Die wichtigsten Funktionen und Eigenschaften des Performance Tuning Utility:</p>
<ul>
<li><strong>Ereignisbasiertes Sampling:</strong> Über die prozessoreigene Leistungsmessung lassen sich Probleme sehr genau ermitteln</li>
</ul>
<ul>
<li><strong>Block-Analyse:</strong> Hotspots werden exakt ermittelt</li>
</ul>
<ul>
<li><strong>Visualisierung:</strong> Performance-Histogramme stellen Leistungshöchst- und Tiefstwerte in der Anwendung dar</li>
</ul>
<ul>
<li><strong>Schleifen-Analyse:</strong> Ermitteln von Loops und Rekursionen im Code</li>
</ul>
<ul>
<li><strong>Data Access Profiling:</strong> Identifizieren von Memory-Hotspots und Zuordnen zu Code-Hotspots</li>
</ul>
<ul>
<li><strong>Heap Profiler:</strong> Ermitteln der Speichernutzung der Anwendung und in der Folge auch von möglichen Memory-Leaks</li>
</ul>
<p>Insgesamt gesehen bietet die Toolbox hinsichtlich Performance-Analyse <a href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">ähnliche Funktionen wie der Intel VTune Performance Analyzer</a>. Allerdings profitieren vor allem erfahrene Anwender von den sehr flexiblen Profi-Features.</p>
<p>Dazu gehört ab sofort eine detailliertere Speicherdiagnostik hinsichtlich der CPU-Nutzung. Leistungsprobleme können so schneller dem Sourcecode zugewiesen werden, um Korrekturen einzuleiten. Auch die grafische Darstellung von Leistungswerten -und kurven wurde erweitert.</p>
<p>Hier eine Übersicht der Neuerungen:</p>
<ul>
<li>volle Unterstützung für Sandy Bridge inklusive AVX</li>
</ul>
<ul>
<li>bessere Unterstützung für neue Atom-Prozessoren von Intel</li>
</ul>
<ul>
<li>neue Profile ermöglichen bessere Konfiguration</li>
</ul>
<ul>
<li>verbesserte Hotspot-Analyse</li>
</ul>
<ul>
<li>Möglichkeit zur Integration des Intel Performance Bottleneck Analyzer</li>
</ul>
<ul>
<li>diverse Fehlerkorrekturen</li>
</ul>
<p>Neugierig geworden? Hier gibt es den <a href="http://software.intel.com/en-us/articles/intel-performance-tuning-utility/" target="_blank">Download und eine detaillierte Übersicht zu allen Neuerungen</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/download-performance-tuning-utility-intel-ptu-utility-4-0-update-5/04/2011/&via=sw_devtwits&text=Download: Performance Tuning Utility (Intel PTU) Utility 4.0 Update 5&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/download-performance-tuning-utility-intel-ptu-utility-4-0-update-5/04/2011/&via=sw_devtwits&text=Download: Performance Tuning Utility (Intel PTU) Utility 4.0 Update 5&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/download-performance-tuning-utility-intel-ptu-utility-4-0-update-5/04/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zwei Updates &amp; neue Videos zum Thema Parallel-Programmierung</title>
		<link>http://www.software-dev-blog.de/zwei-updates-neue-videos-zum-thema-parallel-programmierung/04/2011/</link>
		<comments>http://www.software-dev-blog.de/zwei-updates-neue-videos-zum-thema-parallel-programmierung/04/2011/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 14:19:19 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Parallel Studio XE]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1541</guid>
		<description><![CDATA[&#8220;Alles neu macht der Mai&#8221;, heißt es in einer Redewendung. Wir beginnen schon im April damit und stellen Ihnen zwei wichtige Updates für Developer-Tools vor und neue Entwickler-Videos bei ISN. Beginnen wir mit den Updates: Der Parallel Advisor 2011 wurde mit einem zweiten Update aufgewertet. Zum einen wurden, wie bei Updates üblich, kleine Fehler korrigiert. [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Alles neu macht der Mai&#8221;, heißt es in einer Redewendung. Wir beginnen schon im April damit und stellen Ihnen zwei wichtige Updates für Developer-Tools vor und neue Entwickler-Videos bei ISN.</p>
<p>Beginnen wir mit den Updates:</p>
<p>Der <a href="http://software.intel.com/en-us/articles//intel-parallel-advisor/" target="_blank">Parallel Advisor 2011</a> wurde mit einem zweiten Update aufgewertet. Zum einen wurden, wie bei Updates üblich, kleine Fehler korrigiert. Zum anderen wurde das Tool aber auch für das Zusammenspiel mit Windows 7 Service Pack 1 und Microsofts Entwicklungsumgebung Visual Studio 2010 optimiert.</p>
<p>Hintergrund: Der Parallel Advisor ist eines der wichtigsten Entwicklerwerkzeuge von Intel, um festzustellen, welche seriellen Codebestandteile Parallelisierungs-Potenzial haben und wie sich entsprechende Threads implementieren lassen.</p>
<p>In diesem Blog habe ich bereits mehrfach über den <a href="http://www.software-dev-blog.de/?s=parallel+advisor&amp;x=0&amp;y=0">Parallel Advisor und dessen Möglichkeiten in der Programmierpraxis</a> berichtet.</p>
<p>Auch <a href="http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/" target="_blank">Intels VTune Amplifier XE</a> hat per <a href="http://software.intel.com/en-us/articles/vtune-amplifier-xe-for-2nd-generation-intel-core-processor" target="_blank">Update</a> ein paar neue Funktionen erhalten. Das Tool ist<a href="http://software.intel.com/en-us/articles/vtune-amplifier-xe-for-2nd-generation-intel-core-processor/" target="_blank"> konsequent auf die neue Sandy-Bridge-Generation ausgerichtet</a> und bietet nun neue Performance- und Analyse-Funktionen wie</p>
<ul>
<li> vordefinierte Event-Profile zur einfacheren Diagnose</li>
</ul>
<ul>
<li> mehr integrierte Messverfahren etwa zur Speicherbelegung</li>
</ul>
<ul>
<li> automatisches Markieren von Code-Elementen, die einen bestimmten Normwert übersteigern</li>
</ul>
<ul>
<li>Tooltipps</li>
</ul>
<p>Hintergrund: Der VTune Amplifier XE sammelt, analysiert und bewertet Leitungsdaten in vorhandenen Programmen, um Schwachstellen und Flaschenhälse zu ermitteln.</p>
<p>Weitere <a href="http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/">Informationen zum VTune Amplifier können Sie ebenfalls in diesem Blogbeitrag</a> nachlesen.</p>
<p>Zudem hat das Intel ISN eine <a href="http://software.intel.com/en-us/articles/parallel-programming-talk/" target="_blank">Reihe neuer Videos</a> im Rahmen des Parallel Programming Talk veröffentlicht. Der Parallel Programming Talk ist eine <a href="http://intel.com/software/tv" target="_blank">wöchentliche Video-Show im Intel Software Network TV</a>, die sich an Parallel-Programmierer wendet – auch an Einsteiger. Um zu neuen Video-Aufzeichnungen auf dem Laufenden zu bleiben, können Sie sich <a href="http://twitter.com/isntv" target="_blank">auch per Twitter</a> informieren lassen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/zwei-updates-neue-videos-zum-thema-parallel-programmierung/04/2011/&via=sw_devtwits&text=Zwei Updates & neue Videos zum Thema Parallel-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/zwei-updates-neue-videos-zum-thema-parallel-programmierung/04/2011/&via=sw_devtwits&text=Zwei Updates & neue Videos zum Thema Parallel-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/zwei-updates-neue-videos-zum-thema-parallel-programmierung/04/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CPU-Tool zu Visualisierungszwecken von Turbo Boost 2.0</title>
		<link>http://www.software-dev-blog.de/cpu-tool-zu-visualisierungszwecken-von-turbo-boost-2-0/03/2011/</link>
		<comments>http://www.software-dev-blog.de/cpu-tool-zu-visualisierungszwecken-von-turbo-boost-2-0/03/2011/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 16:56:08 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Sandy Bridge]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1527</guid>
		<description><![CDATA[Über die neuen Intel-Prozessoren der Core-Serie, die auch unter ihrem Codenamen &#8220;Sandy Bridge&#8221; bekannt sind, habe ich ja schon das eine und andere Mal gesprochen. Zu den wesentlichen Neuerungen aus Entwicklersicht ist zweifelsohne die neue Register-Generation AVX, mit deren Hilfe prozessornahe Befehle fast doppelt so schnell ausgeführt werden können, da die zugehörige Registerbreite verdoppelt wurde [...]]]></description>
			<content:encoded><![CDATA[<p>Über die neuen Intel-Prozessoren der Core-Serie, die auch unter ihrem Codenamen &#8220;Sandy Bridge&#8221; bekannt sind, habe ich ja schon <a title="Sandy Bridge gestartet &amp; Windows auf SoC" href="http://www.software-dev-blog.de/sandy-bridge-gestartet-windows-auf-soc/01/2011/">das eine</a> und <a title="Entwicklerwettbewerb von Intel zum Thema AVX – jetzt mitmachen und gewinnen!" href="http://www.software-dev-blog.de/entwicklerwettbewerb-von-intel-zum-thema-avx-%e2%80%93-jetzt-mitmachen-und-gewinnen/02/2011/">andere Mal</a> <a title="Wie Entwickler von neuen Sandy-Bridge-Registern und -Ops profitieren" href="http://www.software-dev-blog.de/wie-entwickler-von-neuen-sandy-bridge-registern-und-ops-profitieren/02/2011/">gesprochen</a>. Zu den wesentlichen Neuerungen aus Entwicklersicht ist zweifelsohne die neue <a title="Sandy Bridge: Schnellere Apps dank breiteren AVX-Registern" href="http://www.software-dev-blog.de/sandy-bridge-schnellere-apps-dank-breiteren-avx-registern/01/2011/">Register-Generation AVX</a>, mit deren Hilfe prozessornahe Befehle fast doppelt so schnell ausgeführt werden können, da die zugehörige Registerbreite verdoppelt wurde und zudem neue Micro-Befehle implementiert worden sind.</p>
<p>Interessant aus Entwicklersicht ist aber auch eine Technik, die es in der Vorgänger-Architektur &#8220;Nehalem&#8221; bereits gab und die eine Überarbeitung erfahren hat: <a title="Wie 3D-Spiele von Sandy Bridge profitieren" href="http://www.software-dev-blog.de/wie-3d-spiele-von-sandy-bridge-profitieren/01/2011/">Turbo Boost</a>. Mit Turbo Boost 2.0 von Sandy Bridge geht Intel einen Schritt weiter und fokussiert sich im Gegensatz zur Version 1.0 nicht nur auf sequentiell ablaufende Anwendungen, sondern auf seriell <em>und</em> parallel programmierte Apps gleichermaßen. Und mithilfe des Tools <a href="http://www.intel.com/support/processors/sb/CS-031038.htm" target="_blank">Intel Turbo Boost Technology Monitor</a> kann man dem Prozessor-Turbo unter Windows 7 in Echtzeit bei der Arbeit zusehen.</p>
<p>Einer der wesentlichen Unterschiede zwischen TB 1.0 und 2.0 ist die längere Boost-Zeit, die auf die vorhandenen Prozessorkerne verteilt werden kann. Darüber hinaus funktioniert diese Turbo-Funktion hinsichtlich CPU und GPU, die ja seit der Einführung von Sandy Bridge auf einem gemeinsamen Die sitzen (Stichwort: SoC).</p>
<p>Hierfür hat Intel einen ausgeklügelten Algorithmus entwickelt, der stets auf der Suche nach dem perfekten Mix aus Leistungbedarf und aktueller Auslastung sucht. Gleichzeitig wird stets darauf geachtet, dass die Leistungsaufnahme von CPU und CPU möglichst optimal ist, was vor allem bei Notebook-Prozessoren wichtig ist, um so längere Akkulaufzeiten zu erreichen.</p>
<p><img class="size-medium wp-image-1528  alignright" style="margin: 5px 10px;" title="Der hellblaue auf dem dunkelblauen Balken, die erhöhte Frequenz und die Bezeichnung &quot;Intel Turbo Boost Technology 2.0&quot; zeigen an: Turbo Boost ist ON" src="http://www.software-dev-blog.de/wp-content/images/2011/03/tb20_on-283x300.jpg" alt="Der hellblaue auf dem dunkelblauen Balken, die erhöhte Frequenz und die Bezeichnung &quot;Intel Turbo Boost Technology 2.0&quot; zeigen an: Turbo Boost ist ON" width="236" height="250" /></p>
<p>Aber zurück zum Turbo-Boost-Tool von Intel. Dieses kleine Werkzeug ist immer dann nützlich, wenn man verstehen will, was gerade beim Ausführen einer Anwendung passiert. Hierfür folgt das Tool einer bestimmten Farbkodierung:</p>
<ul>
<li>Ist Turbo Boost nicht aktiv und die CPU verbraucht weniger Strom als spezifiziert, leuchtet ein grünes Blatt und die Bezeichnung &#8220;Energy Saver&#8221; auf.</li>
</ul>
<ul>
<li>Wenn sich die aktuelle Frequenz unterhalb der spezifizierten Taktrate bewegt, wird ein dunkelblauer, senkrechter Balken angezeigt, aber ohne eine Angabe der aktuellen Frequenz.</li>
</ul>
<ul>
<li>Aktiviertes Turbo Boost 2.0 wird mithilfe eines hellblauen Balkens und der TB-Frequenz dargestellt. Außerdem wird der Text &#8220;Intel Turbo Boost Technology 2.0&#8243; angezeigt.</li>
</ul>
<p>Beim Installieren des TB-Tools sollte beachtet werden, dass nur Windows 7 sowie sämtliche Intel-Core-Prozessoren der zweiten Generation (&#8220;Sandy Bridge&#8221;) richtig unterstützt werden.</p>
<p><em><strong>Tipp:</strong></em> Jenseits des Intel-TB-Tools gibt es ein ähnliches Werkzeug, das sich <a href="http://www.cpuid.com/softwares/tmonitor.html" target="_blank">TMonitor</a> nennt und vom CPUID-Team stammt. Damit lassen sich einerseits auch ältere Prozesorren beobachten, und andererseits werden die aktullen Taktraten aller Prozessorkerne angezeigt.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/cpu-tool-zu-visualisierungszwecken-von-turbo-boost-2-0/03/2011/&via=sw_devtwits&text=CPU-Tool zu Visualisierungszwecken von Turbo Boost 2.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/cpu-tool-zu-visualisierungszwecken-von-turbo-boost-2-0/03/2011/&via=sw_devtwits&text=CPU-Tool zu Visualisierungszwecken von Turbo Boost 2.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/cpu-tool-zu-visualisierungszwecken-von-turbo-boost-2-0/03/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Für Spiele-Entwickler: kostenlose Beispiel-Applikation &#8220;Shadow Explorer&#8221;</title>
		<link>http://www.software-dev-blog.de/fur-spiele-entwickler-kostenlose-beispiel-applikation-shadow-explorer/03/2011/</link>
		<comments>http://www.software-dev-blog.de/fur-spiele-entwickler-kostenlose-beispiel-applikation-shadow-explorer/03/2011/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 14:52:00 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1508</guid>
		<description><![CDATA[Für Programmierer von 3D-Spielen sind Raytracing und Shadowmapping nach wie vor die größten Hürden auf dem Weg zu einem realitätsgetreuen 3D-Gaming-Erlebnis. Dabei konkurrieren unterschiedliche Shadow-Algorithmen in Bezug auf Code-Komplexität, Skalierbarkeit, Qualität und Belastung der Hardware-Ressourcen. Intel hat dazu eine interessante Beispielanwendung veröffentlicht, die es Spiele-Entwicklern ermöglichen soll, unterschiedliche Shadow-Algorithmen hinsichtlich Qualität und Performance zu vergleichen. [...]]]></description>
			<content:encoded><![CDATA[<p>Für Programmierer von 3D-Spielen sind Raytracing und Shadowmapping nach wie vor die größten Hürden auf dem Weg zu einem realitätsgetreuen 3D-Gaming-Erlebnis. Dabei konkurrieren unterschiedliche Shadow-Algorithmen in Bezug auf Code-Komplexität, Skalierbarkeit, Qualität und Belastung der Hardware-Ressourcen.</p>
<p>Intel hat dazu eine<a href="http://software.intel.com/en-us/articles/shadowexplorer/?cid=sw:ISNnews_69_ENG_5825" target="_blank"> interessante Beispielanwendung</a> veröffentlicht, die es Spiele-Entwicklern ermöglichen soll, unterschiedliche Shadow-Algorithmen hinsichtlich Qualität und Performance zu vergleichen. Auf zwei unterschiedliche Szenen werden die Algorithmen angewendet: Ein „Stadtbild“ als typisches Game-Setting mit unterschiedlichen Sonneneinstrahlungen und Schattendimensionen sowie ein kugelförmiges „Gitterobjekt“ mit diffizilen Schattenelementen.</p>
<p><img class="wp-image-1509" title="Der Shadow Explorer berechnet unterschiedliche Schattenwürfe " src="http://www.software-dev-blog.de/wp-content/images/2011/03/shadow.png" alt="Der Shadow Explorer berechnet unterschiedliche Schatteneinflüsse " width="500" /></p>
<p>Die Beispielanwendung basiert auf dem neuen <a href="http://software.intel.com/en-us/articles/shadowexplorer/" target="_blank">Shadow Explorer</a>. In der ersten Version bietet der Shadow Explorer vier Algorithmen, die sich hinsichtlich der Komplexität unterscheiden:</p>
<ul>
<li>Simple shadow maps</li>
<li>Percentage closer shadow maps</li>
<li>Variance shadow maps</li>
<li>Exponential variance shadow maps</li>
</ul>
<p>Ganz gleich, für welche Methode sich der Entwickler entscheidet, er hat über den Shadow Explorer Zugriff auf unterschiedliche Variablen und Filter, die ihm die Möglichkeit geben, die Schatteneffekte zu variieren und die jeweilige Technik in Echtzeit auszuprobieren, zu verfeinern und später auf den eigenen Quellcode zu übertragen. Kurzum: Der Shadow Explorer hilft, viel Zeit beim Experimentieren mit 3D-Effekten zu sparen.</p>
<p>Wie üblich hat Intel dazu auch ein schickes Video veröffentlicht</p>
<p><center><br />
<iframe title="YouTube video player" width="510" height="316" src="http://www.youtube.com/embed/3LkXc6a7DqI" frameborder="0" allowfullscreen></iframe><br />
</center></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/fur-spiele-entwickler-kostenlose-beispiel-applikation-shadow-explorer/03/2011/&via=sw_devtwits&text=Für Spiele-Entwickler: kostenlose Beispiel-Applikation "Shadow Explorer"&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/fur-spiele-entwickler-kostenlose-beispiel-applikation-shadow-explorer/03/2011/&via=sw_devtwits&text=Für Spiele-Entwickler: kostenlose Beispiel-Applikation "Shadow Explorer"&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/fur-spiele-entwickler-kostenlose-beispiel-applikation-shadow-explorer/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>Ein Compiler für (fast) alles: Intel Composer XE 2011</title>
		<link>http://www.software-dev-blog.de/ein-compiler-fur-fast-alles-intel-composer-xe-2011/02/2011/</link>
		<comments>http://www.software-dev-blog.de/ein-compiler-fur-fast-alles-intel-composer-xe-2011/02/2011/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 07:36:38 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[AVX]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Parallel Studio XE]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1484</guid>
		<description><![CDATA[Für alle, die auf den dritten Teil meiner Parallel-Studio-XE-Reihe gewartet haben: Heute ist nach Inspector XE 2011 und VTune Amplifier XE 2011 der Intel Composer XE 2011 an der Reihe. Dieses Triumvirat bildet insgesamt die Entwicklersuite Intel Parallel Studio XE 2011 ab. Mit Intel Composer XE verhält es sich wie mit einem Schweizer Taschenmesser: Man [...]]]></description>
			<content:encoded><![CDATA[<p>Für alle, die auf den dritten Teil meiner <a href="http://www.software-dev-blog.de/parallel-studio-xe-key-features-und-anwendungsmoglichkeiten/01/2011/">Parallel-Studio-XE-Reihe</a> gewartet haben: Heute ist nach <a href="http://www.software-dev-blog.de/dem-speicherfehler-auf-der-spur-intel-inspector-xe-2011/02/2011/">Inspector XE 2011</a> und <a href="http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/">VTune Amplifier XE 2011</a> der <strong>Intel Composer XE 2011</strong> an der Reihe. Dieses Triumvirat bildet insgesamt die Entwicklersuite <a href="http://software.intel.com/en-us/articles/intel-parallel-studio-xe/" target="_blank">Intel Parallel Studio XE 2011</a> ab.</p>
<p>Mit Intel Composer XE verhält es sich wie mit einem Schweizer Taschenmesser: Man bekommt für jeden Job das richtige Tool an die Hand. Will man beispielsweise C++-Projekte unter Windows oder Linux oder Mac OS X kompilieren, ist die neue Intel-Entwicklersuite das richtige Tool für Sie. Oder sind Sie eher Fortran-Entwickler und sind auf der Suche nach dem passenden Compiler, egal ob für Windows, Linux oder Mac OS X? Dann ist der Composer XE 2011 ebenfalls eine gute Entscheidung.</p>
<p>Doch nicht nur die plattform-übergreifende Kompilierung macht aus dem Intel Composer XE ein mächtiges Tool. Denn neben der Optimierung für <a href="http://www.software-dev-blog.de/avx-mit-visual-studio-2010-und-openmp-optimal-einsetzeni/01/2011/">AVX- und SIMD-Befehle</a> zeichnet sich das Entwicklerwerkzeug durch weitere Bausteine aus:</p>
<ul>
<li><strong>Intel Parallel Building Blocks</strong> (Intel PBB): Eine Toolsammlung, die <a href="http://www.software-dev-blog.de/intel-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/2010/">Intel Threading Building Blocks</a>, <a href="http://software.intel.com/en-us/articles/intel-array-building-blocks/" target="_blank">Intel Array Building Blocks</a> und <a href="http://software.intel.com/en-us/articles/intel-cilk-plus/" target="_blank">Intel Cilk Plus</a> umfasst.</li>
<li><strong>hoch-optimierte Software-Bibliotheken: </strong>Dies sind <a href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel Math Kernel Library</a> und <a href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel Integrated Performance Primitives</a>.</li>
<li><strong>High-Performance Parallel Optimizer:</strong> Damit lassen sich vor allem verschachtelte Schleifenkonstrukte besser untersuchen.</li>
<li><strong>Interprocedural Optimization: </strong>hiermit lassen sich vor allem kleinere und mittlere Funktionen parallelisieren, die oft zum Einsatz kommen und in denen Funktionsaufrufe innerhalb von Schleifen vorkommen.</li>
<li><strong>Profile-Guided Optimization:</strong> verbessert die gesamte Laufzeit-Performance, indem unter anderem der Sourcecode neu arrangiert wird, die Code-Größe reduziert wird und fehlerhafte Sprungvorhersagen entfernt werden.</li>
</ul>
<p>Weitere Infos zu Intel Composer XE 2011 gibt es entweder <a href="http://software.intel.com/sites/products/collateral/XE/composer_xe_brief.pdf" target="_blank">als PDF</a>, auf der <a href="http://software.intel.com/en-us/articles/intel-composer-xe/" target="_blank">englischsprachigen Webseite</a> oder in Videoform im <a title="Intel Learning Lab" href="http://software.intel.com/en-us/articles/intel-learning-lab/" target="_blank">Intel Learning Lab</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/ein-compiler-fur-fast-alles-intel-composer-xe-2011/02/2011/&via=sw_devtwits&text=Ein Compiler für (fast) alles: Intel Composer XE 2011&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/ein-compiler-fur-fast-alles-intel-composer-xe-2011/02/2011/&via=sw_devtwits&text=Ein Compiler für (fast) alles: Intel Composer XE 2011&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/ein-compiler-fur-fast-alles-intel-composer-xe-2011/02/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dem Speicherfehler auf der Spur: Intel Inspector XE 2011</title>
		<link>http://www.software-dev-blog.de/dem-speicherfehler-auf-der-spur-intel-inspector-xe-2011/02/2011/</link>
		<comments>http://www.software-dev-blog.de/dem-speicherfehler-auf-der-spur-intel-inspector-xe-2011/02/2011/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 09:31:39 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Parallel Studio XE]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1478</guid>
		<description><![CDATA[Heute wird es mal wieder Zeit, ein neues Kapitel in Sachen Intel Parallel Studio XE aufzuschlagen. Nach dem VTune Amplifier XE 2011 ist das Speicherfehlerfinde-Tool Intel Inspector XE 2011 an der Reihe. Hinter diesem Tool verbirgt sich &#8211; ähnlich wie beim VTune Amplifier &#8211; ein erfahrenen Entwicklern bereits bekanntes Werkzeug, nämlich der Intel Thread Checker, [...]]]></description>
			<content:encoded><![CDATA[<p>Heute wird es mal wieder Zeit, ein neues Kapitel in Sachen <a href="http://www.software-dev-blog.de/parallel-studio-xe-key-features-und-anwendungsmoglichkeiten/01/2011/">Intel Parallel Studio XE</a> aufzuschlagen. Nach dem <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 Amplifier XE 2011</a> ist das Speicherfehlerfinde-Tool <a href="http://software.intel.com/en-us/articles/intel-inspector-xe/" target="_blank">Intel Inspector XE 2011</a> an der Reihe. Hinter diesem Tool verbirgt sich &#8211; ähnlich wie beim VTune Amplifier &#8211; ein erfahrenen Entwicklern bereits bekanntes Werkzeug, nämlich der <a href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Intel Thread Checker</a>, über den ich auf diesem Blog schon berichtet haben.</p>
<p>Mit dem Inspector XE 2011 lassen sich in C/C++-Anwendungen, aber auch in C#- und Fortran-Programmen eine Reihe von Fehlern aufspüren, und das, bevor der Fehler überhaupt erst auftaucht. Zudem benötigt man keine aufwändigen Testumgebungen, da das Tool anhand des Sourcecodes mögliche Schwachstellen aufspürt und diese grafisch anschaulich darstellt. Zu den typischen Fehlern gehören:</p>
<ol>
<li>nicht-deterministische Fehler wie das Speichern mehrerer Daten auf dieselbe Speicherzelle</li>
<li>Memorylecks und korrupte Speicherbereiche</li>
<li>inkonsistente Speicherreservierung und die dazugehörige Freigabe</li>
<li>falsche Benutzung der Speicherschnittstellen</li>
<li>Date Races</li>
<li>Deadlocks</li>
<li>gemeinsamer Speicherzugriff von Threads</li>
</ol>
<p>Sämtliche Punkte beziehen sich auf mögliche Speicherprobleme, die immer wieder bei der Parallelprogrammierung auftauchen, da hier fehlende Locks oder der unsachgemäße Einsatz globaler Variablen (zum Beispiel innerhalb einer <a href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-3/02/2009/">parallel_for-Loop</a>) zum Crash der Anwendung führen können, sobald Daten auf dieselbe Speicherzelle zugreifen. Damit sorgt der Inspector XE 2011 für zuverlässigere Anwendungen.</p>
<p>Praktisch am Inspector ist aber auch dessen Flexibilität: So lässt sich dieses Tool (wie die gesamte Parallel-Studio-XE-Suite) sowohl als eigenständige Entwicklerumgebung einsetzen als auch innerhalb der gewohnten Visual-Studio-IDE als Plug-in nutzen. Zudem unterstützt die Standalone-Variante sowohl Windows als auch Linux. Das macht das Entwicklertool für eine Reihe von Programmierern interessant, für die <a href="http://software.intel.com/en-us/intel-parallel-studio-home/">Parallel Studio</a> nicht infrage kommt.</p>
<p>Und für all diejenigen, die lieber gucken als lesen, haben wir ein <a href="http://software.intel.com/en-us/videos/intel-inspector-xe-overview/" target="_blank">knapp 9-minütiges Video aufgespürt</a>, das Intel Inspector XE 2011 recht anschaulich erklärt &#8211; wenn auch in englischer Sprache.</p>
<div id="attachment_1479" class="wp-caption aligncenter" style="width: 510px"><img class="    " style="margin-left: 20px; margin-right: 20px;" title="Mit dem Intel Inspector XE 2011 lassen sich vor allem Speicherprobleme aufspüren und beheben" src="http://www.software-dev-blog.de/wp-content/images/2011/02/inspector_xe.png" alt="Mit dem Intel Inspector XE 2011 lassen sich vor allem Speicherprobleme aufspüren und beheben" width="500" /><p class="wp-caption-text">Mit dem Intel Inspector XE 2011 lassen sich vor allem Speicherprobleme aufspüren und beheben</p></div>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/dem-speicherfehler-auf-der-spur-intel-inspector-xe-2011/02/2011/&via=sw_devtwits&text=Dem Speicherfehler auf der Spur: Intel Inspector XE 2011&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/dem-speicherfehler-auf-der-spur-intel-inspector-xe-2011/02/2011/&via=sw_devtwits&text=Dem Speicherfehler auf der Spur: Intel Inspector XE 2011&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/dem-speicherfehler-auf-der-spur-intel-inspector-xe-2011/02/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel Parallel Advisor: Code-Optimierung für Templates  in C++</title>
		<link>http://www.software-dev-blog.de/intel-parallel-advisor-code-optimierung-fur-templates-in-c/02/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-parallel-advisor-code-optimierung-fur-templates-in-c/02/2011/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 08:47:31 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Parallel Advisor]]></category>
		<category><![CDATA[Parallel Studio]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1471</guid>
		<description><![CDATA[Während der OOP (ja,ja, das Thema lassen wir bald ruhen, schließlich steht schon die CeBIT vor der Tür) hatte ich die Gelegenheit, interessante Gespräche mit (angehenden) Multicore-Programmierern zu führen. Dabei tauchte mehrfach die Frage auf, ob der Advisor in Intel Parallel Studio auch mit vorhandenen Templates umgehen könne. Berechtige Frage, aber nicht schwer zu beantworten, [...]]]></description>
			<content:encoded><![CDATA[<p>Während der <a href="http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/" target="_self">OOP</a> (ja,ja, das Thema lassen wir bald ruhen, schließlich steht schon die CeBIT vor der Tür) hatte ich die Gelegenheit, interessante Gespräche mit (angehenden) Multicore-Programmierern zu führen. Dabei tauchte mehrfach die Frage auf, ob der <a href="http://software.intel.com/en-us/articles//intel-parallel-advisor/" target="_blank">Advisor</a> in <a href="http://software.intel.com/en-us/articles/intel-parallel-studio-home/" target="_blank">Intel Parallel Studio</a> auch mit vorhandenen Templates umgehen könne. Berechtige Frage, aber nicht schwer zu beantworten, wie die <a href="http://software.intel.com/en-us/blogs/2011/02/01/can-advisor-help-me-thread-my-code-even-if-i-use-templates/" target="_blank">amerikanischen Kollegen vom Intel Software Network festgestellt haben </a>.</p>
<p>Das Ausgangsproblem: Mit den für C++ vorhandenen Templates lässt sich schnell zuverlässiger Code generieren. Die Fertigprodukte sind zuverlässig, lassen sich aber kaum optimieren, etwa hinsichtlich Performance. Der Advisor setzt genau dort an und leistet gute Dienste, indem er auch bei älteren Templates die passenden Threads in die Apps integriert.</p>
<p>Gerade wenn der Durchblick  bei seriellem Code fehlt, was bei fremden Templates häufig der Fall ist, sind Analyse-Instrumente obligat, um zu entscheiden, an welchen Stellen Parallelisierung möglich ist und in der Folge zu deutlichen Leistungsgewinnen führt. Der Advisor beantwortet die offenen Fragen über die Funktion <em>Survey Report</em>. Auf diesem Weg werden Bottlenecks grafisch sichtbar.</p>
<div id="attachment_1472" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-1472  " title="Parallel Advisor " src="http://www.software-dev-blog.de/wp-content/images/2011/02/Image1.png" alt="Funktion Survey Report ermittelt Bottlenecks" width="550" height="204" /><p class="wp-caption-text">Die Funktion Survey Report ermittelt Bottlenecks</p></div>
<p>Und natürlich hilft das Tolol auch bei der Codebereinigung. Über die Funktion <em>Correctness Report</em> lassen sich die Fehler vorhandener Funktionen im Detail darstellen.</p>
<div id="attachment_1473" class="wp-caption aligncenter" style="width: 569px"><img class="size-full wp-image-1473" title="Image2" src="http://www.software-dev-blog.de/wp-content/images/2011/02/Image2.png" alt="Die Funktion Correctness Report bewertet den Code" width="559" height="141" /><p class="wp-caption-text">Die Funktion Correctness Report bewertet den Code</p></div>
<p>Und für das Fixing ist der<em> Correctness Source</em> zuständig. Die Funktion zeigt exakt, an welchen Stellen Parallelisieren hilft.</p>
<p>Den kompletten Beitrag mit weiteren Screenshots und konkreten Code-Beispielen können Sie übrigens <a href="http://software.intel.com/en-us/blogs/2011/02/01/can-advisor-help-me-thread-my-code-even-if-i-use-templates" target="_blank">hier</a> abrufen. Und wer es noch genauer wissen will: Hier gibt es eine <a href="http://software.intel.com/sites/products/evaluation-guides/docs/intelparallelstudio-evaluationguide-model-parallelism.pdf" target="_blank">kostenlose und sehr detaillierte Einführung in den Advisor zum Download</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/intel-parallel-advisor-code-optimierung-fur-templates-in-c/02/2011/&via=sw_devtwits&text=Intel Parallel Advisor: Code-Optimierung für Templates  in C++&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-parallel-advisor-code-optimierung-fur-templates-in-c/02/2011/&via=sw_devtwits&text=Intel Parallel Advisor: Code-Optimierung für Templates  in C++&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-parallel-advisor-code-optimierung-fur-templates-in-c/02/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Im Detail: Intel VTune Amplifier XE 2011 fka VTune Performance Analyzer/Thread Profiler</title>
		<link>http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/</link>
		<comments>http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 17:26:11 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Parallel Studio XE]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1470</guid>
		<description><![CDATA[Wer diesen Blog regelmäßig anklickt, hat sicher mitbekommen, dass ich in der vergangegen Woche auf der OOP in München war, um mir dort die eine oder andere Session zum Thema Parallelprogrammierung anzuhören &#8211; und um mit den Vortragenden das eine oder andere Interview zu führen. Dabei ging es auch um die noch recht neue Entwicklersuite [...]]]></description>
			<content:encoded><![CDATA[<p>Wer diesen Blog regelmäßig anklickt, hat sicher mitbekommen, dass ich in der vergangegen Woche auf der OOP in München war, um mir dort <a href="http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/">die eine</a> oder <a href="http://www.software-dev-blog.de/oop-2011-stephen-blair-chappell-uber-chancen-und-grenzen-der-parallel-programmierung/01/2011/">andere Session</a> zum Thema Parallelprogrammierung anzuhören &#8211; und um mit den Vortragenden <a href="http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-multicore-manycore-intel-parallel-studio-und-mehr/01/2011/">das eine</a> oder <a href="http://www.software-dev-blog.de/oop-2011-stephen-blair-chappell-uber-die-parallelisierung-von-anwendungen/01/2011/">andere Interview</a> zu führen.</p>
<p>Dabei ging es auch um die noch recht neue Entwicklersuite Intel Parallel Studio XE, über die ich ja hier schon <a href="http://www.software-dev-blog.de/parallel-studio-xe-key-features-und-anwendungsmoglichkeiten/01/2011/">am Montag ein wenig ausführlicher gebloggt</a> habe. Für einige von Ihnen war das sicherlich noch nicht ausführlich genug, und so bekommen Sie hier weitere Details zu den einzelnen Komponenten, die im Entwicklertool von Intel stecken.</p>
<p>Den Anfang macht <a href="http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/">VTune Amplifier XE 2011</a>, formerly known as <a href="http://www.software-dev-blog.de/wie-net-entwickler-mit-vtune-bottlenecks-finden-konnen/11/2009/">VTune Performance Analyzer</a> samt <a href="http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/">Thread Profiler</a>. Mit VTune Amplifier XE hat Intel also zwei Tools zu einem einzigen verschmolzen, und das aus gutem Grund: denn mit dem ehemaligen Tool VTune Analyzer konnte man als Entwickler zwar recht schnell die vorhandenen Hotspots innerhalb einer Anwendungen finden, nur war die optische Aufmachung des Tools ein wenig gewöhnungsbedürftig, so dass eine Menge an Einarbeitungszeit vonnöten war, um dieses Profiwerkzeug richtig einzusetzen.</p>
<p>Der Thread Profiler hingegen lieferte grafisch aufbereitete Fehleranalysen Ihres Quellcodes, um unter anderem folgende Fragen zu beantworten: &#8220;Welche CPU-Ressourcen nutzt meine App kaum oder nur ungenügend?&#8221;, &#8220;Wie sieht der Verlauf meiner App aus?&#8221; und &#8220;Wo finde ich die Synchronisationsprobleme laufender Threads?&#8221;  Tja, und mit dem VTune Amplifier XE 2011 bekommt man als Software-Entwickler für C, C++ und Fortran ein Tool an die Hand, mit dem sich all diese Aufgaben erledigen lassen, und das unter einer optisch ansprechenden und verständlichen Bedieneroberfläche.</p>
<p>Was also leistet der VTune Amplifier im Detail? Nun, hierzu gehören folgende Aufgaben:</p>
<ul>
<li>Mit der Hotspot-Analyse lassen sich diejenigen Codeabschnitte aufspüren, die die meiste Rechenzeit verschlingen. Und per Doppelklick auf die jeweilige Funktion landet man direkt im zugehörigen Quellcode.</li>
<li>Locks und Waits lassen sich grafisch identifizieren. &#8220;Grau&#8221; bedeutet vertane CPU-Zeit, &#8220;Rot&#8221; heißt schwache Auslastung der Prozessoren, &#8220;Orange&#8221; signalisert &#8220;Alles gut&#8221;, und &#8220;Grün&#8221; sagt: &#8220;Hier sind die Wartezeiten optimal!&#8221;</li>
<li>Mit der Maus lassen sich kurze Zeitabschitte definieren, die gesondert analyisert und betrachtet werden sollen. Damit können Sie beispielsweise testen, wie lange Ihre App für den Start und das Beenden braucht.</li>
<li>Das Verhalten von Threads zueinander lässt sich mit dem Analysetool ebenfalls messen. Sie sehen sofort, wie gut es um die Parallelität der Threads bestellt ist.</li>
<li>Mit dem prozessoreigenen Tool <a href="http://software.intel.com/en-us/articles/intel-microarchitecture-codename-nehalem-performance-monitoring-unit-programming-guide/" target="_blank">Performance Monitoring Unit</a> (PMU) lassen sich in Verbindung mit VTune Amplifier hardwarenahe Infos wie Cache Misses, Clock Ticks und andere Daten auslesen und darstellen. Dabei erhalten Sie sogar Tipps, an welchen Schrauben Sie drehen können, um die Performance Ihrer Anwendungen weiter zu steigern.</li>
</ul>
<p>Sie sehen also: Mit <a href="http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/" target="_blank">VTune Amplifier XE 2011</a> können Sie Anwendungen unter Windows und Linux auf ihre Parallelfähigkeiten hin untersuchen &#8211; und das grafisch und mit vielen nützlichen Zusatzinformationen. Und wer das Ganze in Videoform präsentiert haben möchte, dem empfehle ich einen Ausflug in das <a href="http://software.intel.com/en-us/articles/intel-learning-lab/" target="_blank">Intel Learning Lab</a>, das regelmäßig neue Lernvideos veröffentlicht &#8211; auch zu Intel Parallel Studio XE 2011.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/&via=sw_devtwits&text=Im Detail: Intel VTune Amplifier XE 2011 fka VTune Performance Analyzer/Thread Profiler&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/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/&via=sw_devtwits&text=Im Detail: Intel VTune Amplifier XE 2011 fka VTune Performance Analyzer/Thread Profiler&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/im-detail-intel-vtune-amplifier-xe-2011-fka-vtune-performance-analyzerthread-profiler/02/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallel Studio XE: Key-Features und Anwendungsmöglichkeiten</title>
		<link>http://www.software-dev-blog.de/parallel-studio-xe-key-features-und-anwendungsmoglichkeiten/01/2011/</link>
		<comments>http://www.software-dev-blog.de/parallel-studio-xe-key-features-und-anwendungsmoglichkeiten/01/2011/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 12:00:47 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Parallel Studio]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1467</guid>
		<description><![CDATA[Die erste wichtige Entwicklermesse des Jahres 2011, die OOP , hat ihre Pforten geschlossen. Keine Frage, die OOP ist eine thematisch eng abgesteckte Nischenveranstaltung mit einem überschaubaren Ausstellungsbereich. Kein CeBIT-Party-Flair. Dafür gab es aber eine enorme Informationsdichte. In den vielen  Sessions erhielten Entwickler unter anderem einen sehr guten Überblick zu den wichtigsten aktuellen Tools und [...]]]></description>
			<content:encoded><![CDATA[<p>Die erste wichtige Entwicklermesse des Jahres 2011, die<a href="http://www.sigs-datacom.de/oop2011/oop2011.html" target="_blank"> OOP</a> , hat ihre Pforten geschlossen. Keine Frage, die OOP ist eine thematisch eng abgesteckte Nischenveranstaltung mit einem überschaubaren Ausstellungsbereich. Kein CeBIT-Party-Flair. Dafür gab es aber eine enorme Informationsdichte. In den vielen  Sessions erhielten Entwickler unter anderem einen sehr guten Überblick zu den wichtigsten aktuellen Tools und Technologien der Parallel-Programmierung, zu typischen Fehlern und entsprechenden Workarounds.</p>
<p>Über eines der neueren Tools, das <a href="http://software.intel.com/en-us/articles/intel-parallel-studio-xe/" target="_blank">Intel Parallel Studio XE,</a> habe ich in der vergangenen Woche <a href="http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/" target="_self">bereits geschrieben</a>.</p>
<p>Parallel Studio XE ist ein unverzichtbares Instrument zum Parallelisieren von C/C++ und Fortran-Apps. Das Tool-Paket stellt Bibliotheken, Analyse- und Performance-Werkzeuge zur Verfügung, dieProgrammierern die Möglichkeit geben, ihre Anwendungen mit bestmöglicher Skalierbarkeit, Verfügbarkeit und Sicherheit auszustatten.</p>
<p>Hier nun die wichtigsten Vorteile von Parallel Studio XE im Einzelnen:</p>
<ul>
<li><strong>Plattformunabhängigkeit</strong>: Entwickler können ihrenSource Code auf unterschiedliche Betriebssysteme wie Windows, Linux und Mac OS (Compiler und Libraries) ausrichten. Zudem ist Parallel Studio XE mit den aktuellen Entwicklungsumgebungen kompatibel.</li>
</ul>
<ul>
<li><strong>Automatisierung der Code-Verbesserung:</strong> In der künftigen Ausrichtung auf Sandy Bridge und Many Core-Prozessoren lassen sich <a href="http://www.software-dev-blog.de/avx-mit-visual-studio-2010-und-openmp-optimal-einsetzeni/01/2011/">AVX-Befehlssätze</a> mit 256 Bit breiten Registern einfach über die integrierten Compiler nutzen. Der Parallel Composer XE 2011 sorgt für automatische Vektorberechnung und Autp-Parallelisierung.</li>
</ul>
<ul>
<li><strong>Serie von Bibliotheken:</strong> Der Intel Composer XE 2011 stellt zudem <a href="http://software.intel.com/en-us/articles/intel-parallel-building-blocks/" target="_blank">Intels Parallel Building Blocks</a> zur Verfügung. Diese bieten mit C++-Bibliotheken und Spracherweiterungen hohe Skalierbarkeit und eine höhere Abstraktion. Native Threads müssen nicht mehr verwendet werden. Somit sinkt der Aufwand für die Optimierung von Legacy Code. Fortran-Entwicklern bietet der Fortran-Compiler mehr Funktionalität und verbesserten Support.</li>
</ul>
<ul>
<li><strong>Code-Qualität verbessern:</strong> Der Intel Inspector XE prüft auf Speicher- und Thread-Probleme wie Data Races und Deadlocks. Zudem führt er Sicherheitsanalyse durch und deckt Security-Lecks wie Buffer Overruns auf. Entwickler können Fehler korrigieren, bevor diese im Code verwurzelt werden.</li>
</ul>
<ul>
<li><strong>Fortgeschrittene Performance-Tools:</strong> Der VTune Amplifier XE führt Performance-Analysen durch und findet Bottlenecks in seriellem und parallelem Code. Das Tool gibt Antworten auf die Fragen „Wo verwendet und verschwendet meine App Zeit? Wo kann ich Wartezeit reduzieren? etc.“</li>
</ul>
<p>Interesse geweckt? Der Intel-Partner SOS Software Services veranstaltet am 22.2.2011 bei Intel in Feldkirchen einen Info-Event zum Thema „Multicore-Programmierung mit Intel-Tools“. Am 23.2.2011 folgt dann ein Technik-Workshop mit praktischen Beispielen.</p>
<p>Weitere Details dazu sowie eine Anmeldemöglichkeit gibt es unter<a href="http://www.sos-software.com/intelevent" target="_blank"> www.sos-software.com/intelevent</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/parallel-studio-xe-key-features-und-anwendungsmoglichkeiten/01/2011/&via=sw_devtwits&text=Parallel Studio XE: Key-Features und Anwendungsmöglichkeiten&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-xe-key-features-und-anwendungsmoglichkeiten/01/2011/&via=sw_devtwits&text=Parallel Studio XE: Key-Features und Anwendungsmöglichkeiten&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-xe-key-features-und-anwendungsmoglichkeiten/01/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOP 2011: Ralph de Wargny zu Tools und Trends für Software-Entwickler</title>
		<link>http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/</link>
		<comments>http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 10:05:11 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Parallel Studio]]></category>
		<category><![CDATA[Parallel Studio XE]]></category>
		<category><![CDATA[Sandy Bridge]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1462</guid>
		<description><![CDATA[Gestern ist die OOP in München mit den für solche Events wegeweisenden Keynotes gestartet. Heute öffnet dann auch der Ausstellungsbereich. Intel finden Sie übrigens am Stand 7.3 im Erdgeschoss. Spannend (und durchaus unterhaltsam) war die Eröffnungsrede von Ralph de Wargny, Business Development Manager bei Intel. Wargny gab tiefe Einblick in die Prozessorentwicklung bei Intel und [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern ist die <a href="http://www.sigs-datacom.de/oop2011/oop2011.html" target="_blank">OOP in München</a> mit den für solche Events wegeweisenden Keynotes gestartet. Heute öffnet dann auch der Ausstellungsbereich. <strong>Intel </strong>finden Sie übrigens am <strong>Stand 7.3</strong> im Erdgeschoss.</p>
<p>Spannend (und durchaus unterhaltsam) war die Eröffnungsrede von Ralph de Wargny, Business Development Manager bei Intel. Wargny gab tiefe Einblick in die Prozessorentwicklung bei Intel und ging mit seinen Ausführungen auf wichtige Intel-Tools für Software-Entwickler detailiert ein.</p>
<p style="text-align: center;"><a title="Ralph de Wargny auf der OOP 2011 von SoftwareDevBlog bei Flickr" href="http://www.flickr.com/photos/softwaredevblog/5387144982/"><img class="aligncenter" src="http://farm6.static.flickr.com/5211/5387144982_1f8e1dec36.jpg" alt="Ralph de Wargny auf der OOP 2011" width="500" height="344" /></a></p>
<p>Hier die wichtigsten Punkte:</p>
<p>Mit den derzeit verfügbaren Notebook-Chips Core i-3, Core-i-5 und Core i-7  ist Sandy Bridge „state of the art“ für Hochleistungs-Computing in den Bereichen Grafik, Multimedia und Spiele. Die Desktop-Varianten von Sandy Bridge werden in Kürze folgen.</p>
<h3>50 Prozessorkerne auf einer Steckkarte</h3>
<p>Letztlich ist Sandy Bridge aber vor allem ein Zwischenschritt auf dem Weg zur Generation der Many-Core-Prozessoren. Intels künftige „Many Integrated Core Architektur“ (MIC) wird 22nm-Chips hervorbringen. Kleiner, leistungsstärker und mit bis zu 50 Cores. Ein solcher Prozessor ist unter der Bezeichnung „Knights Corner“ in Planung. Diese Chips ergänzen die Leistung vorhandenere Prozessoren, indem sie auf einer Steckkarte als Coprozessoren integriert werden. Klingt nach Flexibilität und enormer Usability. Allerdings gibt es dafür noch keinen genauen Zeitplan.</p>
<p style="text-align: center;"><a title="So sieht die Zukunft aus: Knights Corner mit 22 nm und 50+ Prozessorkernen von SoftwareDevBlog bei Flickr" href="http://www.flickr.com/photos/softwaredevblog/5386540911/"><img class="aligncenter" src="http://farm6.static.flickr.com/5215/5386540911_47da6f051c.jpg" alt="So sieht die Zukunft aus: Knights Corner mit 22 nm und 50+ Prozessorkernen" width="500" height="348" /></a></p>
<h3>Intel Parallel Studio in der Praxis</h3>
<p>Wargny sprach zudem ausführlich über die aktuellen Intel Entwickler-Tools wie <a href="http://www.insight.de/content/intel-ps-xe" target="_blank">Parallel Studio XE</a> und <a href="(http://www.insight.de/content/intel-paralel-studio" target="_blank">Parallel Studio</a>.  Beide bieten ein Set an effizienten Werkzeugen wie Compiler, Bibliotheken und Analyse-Tools. Im Vordergrund hierbei stehen eine maximale Skalierbarkeit von Software-Anwendungen und umfassendes Performance Measurement. Damit sind sie für Multicore-Programmierer unverzichtbar.</p>
<p>Der Unterschied zwischen den beiden: Parallel Studio XE (XE steht übrigens für eXtreme Edition) ist ein Standalone-Produkt, das sich in unterschiedlichen Systemumgebungen wie Windows oder Linux einsetzen lässt. Parallel Studio hingegen ist ein Plug-In für Visual Studio von Microsoft. Diese Version stellt mit dem Parallel Advisor ein sehr gutes Einsteigerwerkzeug bereit, das enorme Hilfe beim Parallelisieren des Codes leistet.</p>
<p>In einem meiner künftigen Beiträge werde ich mir Parallel Studio XE näher ansehen und die Vorteile für Parallel-Programmierer detailliert beschreiben. Zudem habe ein Interview mit Ralph de Wargny geführt. Das zugehörige Video können Sie hier ebenfalls in Kürze abrufen.</p>
<p><strong>Update:</strong> Das Video ist fertig und <a href="http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-multicore-manycore-intel-parallel-studio-und-mehr/01/2011/">steht zum Ansehen bereit</a>.</p>
<p>Heute freue ich mich aber erst einmal auf den Vortrag „Introducing parallelism into legacy code: Three case studies“ von Stephen Blair-Chappell. Auch hierüber werde ich natürlich berichten und mit Stephen ein kurzes Interview führen.</p>
<p>Alle <a href="http://www.flickr.com/photos/softwaredevblog/sets/72157625776520347/" target="_blank">Fotos von der Keynote der OOP</a> können Sie übrigens über die neue <a href="http://www.flickr.com/photos/softwaredevblog/" target="_blank">Flickr-Seite</a> des Software Dev Blogs abrufen und selbstverständlich auch für Ihre eigenen Zwecke nutzen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/&via=sw_devtwits&text=OOP 2011: Ralph de Wargny zu Tools und Trends für Software-Entwickler&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/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/&via=sw_devtwits&text=OOP 2011: Ralph de Wargny zu Tools und Trends für Software-Entwickler&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/oop-2011-ralph-de-wargny-zu-tools-und-trends-fur-software-entwickler/01/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sandy Bridge: Schnellere Apps dank breiteren AVX-Registern</title>
		<link>http://www.software-dev-blog.de/sandy-bridge-schnellere-apps-dank-breiteren-avx-registern/01/2011/</link>
		<comments>http://www.software-dev-blog.de/sandy-bridge-schnellere-apps-dank-breiteren-avx-registern/01/2011/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 12:07:28 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[AVX]]></category>
		<category><![CDATA[Sandy Bridge]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1456</guid>
		<description><![CDATA[Wer von Sandy Bridge spricht, denkt in erster Linie an die SoC-Architektur, bei der die Prozessorkerne, der Speichercontroller, die Caches und die Grafikeinheit auf demselben Die sitzen. Das ist zwar aus Entwicklersicht auch eine schöne Sache, da aufgrund der direkten Verbindungen höhere Datendurchsätze möglich sind. Aber eine wesentliche Neuerung für schnellere Software-Programme ist zweifelsohne die [...]]]></description>
			<content:encoded><![CDATA[<p>Wer von <a href="http://www.software-dev-blog.de/sandy-bridge-gestartet-windows-auf-soc/01/2011/">Sandy Bridge</a> spricht, denkt in erster Linie an die SoC-Architektur, bei der die Prozessorkerne, der Speichercontroller, die Caches und die Grafikeinheit auf demselben Die sitzen. Das ist zwar aus Entwicklersicht auch eine schöne Sache, da aufgrund der direkten Verbindungen höhere Datendurchsätze möglich sind. Aber eine wesentliche Neuerung für schnellere Software-Programme ist zweifelsohne die erneute Verbesserung der SIMD-Register, die 1993 mit dem Pentium-MMX-Prozessor eingeführt wurden. AVX löst im Grunde SSE4 ab und steht für Advanced Vector Extension, also eine verbesserte Vektorisierung von Gleitkomma- und Ganzpunktzahlen.</p>
<p>Der wesentliche Unterschied zwischen SSE4 und AVX ist die Registerbreite, die von 128 auf 256 Bit erhöht wurde und damit doppelt so schnelle Vektorberechnungen ermöglicht &#8211; na ja, zumindest theoretisch.</p>
<p>Und wie sieht das Ganze in der Praxis aus? Nun, mihilfe der AVX-Erweiterungen lassen sich bis zu vier  Gleitkomma-Operanden mit doppelter Genauigkeit (64 Bit) in einem  einzigen Vektor zusammenzufassen. Auf dieser Basis lassen sich mit diesem so entstandenen Vektor  arithmetische und logische Operationen durchführen. Damit kann zum Beispiel die Addition zweier Vektoren [x,x,x]+[y,y,y] in einem einzigen Zyklus erledigt werden. Bei skalaren Berechnungen sind vier Taktzyklen erforderlich. Ein Nachteil haben die doppelt so breiten Register natürlich auch: die Datenpfade müssen entsprechend größer sein.</p>
<p>Was man mit AVX alles Schönes anstellen kann, zeigt die <a href="http://software.intel.com/en-us/avx/" target="_blank">Intel-AVX-Seite</a>, die ich hier mal verlinkt habe. Dazu gehören unter anderem:</p>
<ul>
<li>Normalisierung von 3D-Vektoren</li>
<li>Inverse Transformationen von Diskreten Kosinus-Funktionen</li>
<li>Implementierung eines Gauss&#8217;schen Blur-Filters</li>
<li>usf.</li>
</ul>
<p>Darüber hinaus findet man auf dieser Seite weitere Infos rund um AVX. Dazu gehört beispielsweise das brandneue Tool <a href="http://software.intel.com/en-us/articles/intel-architecture-code-analyzer/" target="_blank">Intel Architecture Code Analyzer</a>, mit dem sich bestehender Quellcode auf mögliches AVX-Optimierungspotenzial hin untersuchen lässt. Aber auch Infos zum <a href="http://software.intel.com/en-us/articles/intel-software-development-emulator" target="_blank">Intel Software Development Emulator</a> finden Sie auf der AVX-Seite. Und wem das alles zuviel  Englisch ist, sollte regelmäßig auf dem Software Dev Blog vorbei schauen. Denn hier gibt es in den nächsten Wochen immer wieder Infos rund um AVX, Sandy Bridge und Co.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/sandy-bridge-schnellere-apps-dank-breiteren-avx-registern/01/2011/&via=sw_devtwits&text=Sandy Bridge: Schnellere Apps dank breiteren AVX-Registern&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/sandy-bridge-schnellere-apps-dank-breiteren-avx-registern/01/2011/&via=sw_devtwits&text=Sandy Bridge: Schnellere Apps dank breiteren AVX-Registern&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/sandy-bridge-schnellere-apps-dank-breiteren-avx-registern/01/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>Mit Intel Adivsor schrittweise parallel programmieren</title>
		<link>http://www.software-dev-blog.de/mit-intel-adivsor-schrittweise-parallel-programmieren/09/2010/</link>
		<comments>http://www.software-dev-blog.de/mit-intel-adivsor-schrittweise-parallel-programmieren/09/2010/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 13:09:51 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[IDF10]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1442</guid>
		<description><![CDATA[Zurück von der großen Intel Entwickler-Konferenz &#8211; auch IDF (Intel Developer Forum) genannt &#8211; gibt&#8217;s hier Stück für Stück viele nützliche Infos und News aus der Welt des Parallel &#38; Visual Computing. Soll heißen, dass ihr über all die Dinge etwas erfahrt, die ich mir in San Francisco angehört und angesehen habe. Also dann, viel [...]]]></description>
			<content:encoded><![CDATA[<p>Zurück von der großen Intel Entwickler-Konferenz &#8211; auch <a href="http://www.intel.com/idf/" target="_blank">IDF (Intel Developer Forum)</a> genannt &#8211; gibt&#8217;s hier Stück für Stück viele nützliche Infos und News aus der Welt des Parallel &amp; Visual Computing. Soll heißen, dass ihr über all die Dinge etwas erfahrt, die ich mir in San Francisco angehört und angesehen habe. Also dann, viel Spaß damit!</p>
<p>Den Anfang macht ein kleines, unscheinbares Tool, dass sich Intel Parallel Advisor nennt, Teil des <a href="http://software.intel.com/en-us/intel-parallel-studio-home/" target="_blank">Intel Parallel Studio 2011</a> ist und Software-Entwicklern dabei helfen soll, nativ programmierten Code schneller, effizienter und einfacher zu parallelisieren. Dabei geht der Advisor sehr systematisch vor, um die bestmöglichen Ergebnisse in Sachen parallelisierter Quellcode zu erreichen. Hierzu sind fünf Schritte notwendig:</p>
<p><strong>1. Survey Target:</strong> Im ersten Schritt wird der Quellcode auf mögliche Hotspots untersucht und dabei festgestellt, welche Abschnitte innerhalb des Programms besonders für eine Parallelisierung in Frage kommen.</p>
<p><strong>2. Annotate Sources:</strong> Anschließend fügt der Advisor in die identifizierten Quellcodestellen sogenannte Annotationen ein, also entsprechende Pseudo-Befehle, die das Parallelisieren ermöglichen sollen. Dieser Abschnitt ist als eine Art Experiment zu sehen, mit dessen Hilfe man die bestmöglichen Ansätze für Parallelcode finden soll.</p>
<p><strong>3. Check Suitability:</strong> Nachdem man die Annotationen in den seriellen Quellcode eingefügt hat, macht sich der Parallel Advisor per Mausklick daran, die vorgenommenen Änderungen des Programms auf Machbarkeit hin zu überprüfen. Hierbei wird vor allem festgestellt, was die Veränderungen zur Laufzeit tatsächlich bringen, ob sich ein Parallelisieren an dieser Stelle also überhaupt lohnt.</p>
<p><strong>4. Check Correctness:</strong> Der vierte Schritt hat vor allem mit möglichen Speicherproblemen zu tun. Dabei überprüft der Parallel Advisor wiederrum per Mausklick, welche Dead Locks, Data Races und andere möglichen Probleme anhand der vorgenommenen Änderungen des ursprünglich seriellen Quellcodes zu erwarten sind. Dies ist bei der Umstellung von seriell auf parallel ein kritischer Punkt, den man auf keinen Fall unterschätzen darf. Mögliche Speicherfehler lassen sich nämlich mit herkömmlichen Testverfahren oder Debuggern nur ganz schwer oder gar nicht aufspüren.</p>
<p><strong>5. Add Parallel Framework:</strong> Sobald der Parallelcode keine Fehler mehr aufweist und sämtliche Speichertests ohne Probleme durchgeführt werden konnten, müssen nur noch sämtliche Annotationen durch entsprechende Konstrukte und Funktionsaufrufe ersetzt werden. Dabei kann man aus einer Reihe von unterstützten Programmiermodellen wie <a href="http://www.threadingbuildingblocks.org/" target="_blank">Intel Threading Building Blocks</a>, <a href="http://software.intel.com/en-us/articles/intel-cilk-plus/" target="_blank">Intel Cilk Plus</a> und anderen auswählen &#8211; je nachdem, welches Modell besser zum ausgewählten Quellecodeabschnitt passt.</p>
<p>Ach ja: Bilder und weitere Erklärungen zum Intel Parallel Advisor bekommt ihr noch diese Woche auf dem Software Dev Blog. So, stay tuned&#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/mit-intel-adivsor-schrittweise-parallel-programmieren/09/2010/&via=sw_devtwits&text=Mit Intel Adivsor schrittweise parallel programmieren&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/mit-intel-adivsor-schrittweise-parallel-programmieren/09/2010/&via=sw_devtwits&text=Mit Intel Adivsor schrittweise parallel programmieren&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/mit-intel-adivsor-schrittweise-parallel-programmieren/09/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Das war die GDCE 2010: Videointerviews und mehr, Teil 3</title>
		<link>http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-3/08/2010/</link>
		<comments>http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-3/08/2010/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:13:07 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[GDCE10]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Workshop]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1438</guid>
		<description><![CDATA[Sodala, nachdem Teil 1 und Teil 2 der GDCE-2010-Rückschau draußen sind, folgt jetzt das dritte und letzte Kapitel meiner Trilogie in Sachen Spieleentwicklung. Den Abschluss soll ein Dreiteiler bilden (sic!), der sich mit der Analysetool-Suite Intel Graphics Performance Analyzers beschäftigt. Den Anfang macht der System Analyzer, mit dem sich in Echtzeit analysieren lässt, was während [...]]]></description>
			<content:encoded><![CDATA[<p>Sodala, nachdem <a href="http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-1/08/2010/">Teil 1</a> und <a href="http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-2/08/2010/">Teil 2</a> der GDCE-2010-Rückschau draußen sind, folgt jetzt das dritte und letzte Kapitel meiner Trilogie in Sachen Spieleentwicklung. Den Abschluss soll ein Dreiteiler bilden (sic!), der sich mit der Analysetool-Suite <a href="http://www.software-dev-blog.de/gdce-2010-techsession-so-setzt-man-intel-graphics-performance-analyzers-richtig-ein/08/2010/">Intel Graphics Performance Analyzers</a> beschäftigt.</p>
<p><a href="http://www.youtube.com/watch?v=RiCCA-Osflw" target="_blank">Den Anfang macht der <strong>System Analyzer</strong></a><strong>,</strong> mit dem sich in Echtzeit analysieren lässt, was während des Gameplays alles passiert. Um das Testsystem von rechenintensiven Aufgaben zu befreien, läuft der System Analyzer auf einem anderen Rechner als das zu testende Spiel. Dabei stehen verschiedene Funktionen wie die CPU-Diagnose, das Ermitteln der Anzahl der Locks per Frame und der Framerate selbst sowie andere wichtige Parameter zur Verfügungung.</p>
<p>Praktisch am System Analyzer sind die vorhandenen Hardware-Diagnose-Tools, mit denen sich auf Intel-Systemen Dinge wie die Auslastung der vorhandenen Execution Units untersuchen lassen. Aber auch bestimmte Ansichten auf die aktuelle Spielszene erlauben das Analysieren des Spiels. So lassen sich beispielsweise mit der Gitterdarstellung verborgene Objekte entdecken, die dort gar nicht hingehören und nur überflüssige Rechenzeit verbraten.</p>
<p><a href="http://www.youtube.com/watch?v=KtF9zPxXvK8" target="_blank">Der </a><strong><a href="http://www.youtube.com/watch?v=KtF9zPxXvK8" target="_blank">Frame Analyzer</a></strong> geht dann richtig in die Tiefe und lässt jedes einzelne Bild eines Spiels analysieren. So kann man anhand der DirectX-Drawcalls feststellen, welche Bereiche eines Frames besonders viel Rechenzeit beanspruchen und diese Bereiche gegebenenfalls optimieren. So zeigen beispielsweise versteckte Objekte hohes Optimierungspotenzial, da sie zum Gameplay nichts beitragen, aber trotzdem Rechenzeit kosten. Um die möglichen &#8220;Störenfriede&#8221; zu eliminieren, kann man aber auch experimentell vorgehen, indem man einzelne Parameter ausschaltet um zu sehen, wie sich das auf die Szene und die Renderleistung auswirkt.</p>
<p>Das dritte Tool schließlich, <strong><a href="http://www.youtube.com/watch?v=KjHd36UeS1A" target="_blank">Platform View</a></strong>, ist zum einen &#8220;neu&#8221; in der Version 3.0 von Intel GPA und bietet zum anderen einen detaillierten Blick auf den Parallelisierungsgrad des Spiels. Dabei kann man sich sämtliche Threads anzeigen lassen, die gerade aktiv sind und diese in der Detailansicht genau analysieren. So lässt sich beispielsweise herausfinden, warum die CPU auf die GPU warten muss oder auch anders herum.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-3/08/2010/&via=sw_devtwits&text= Das war die GDCE 2010: Videointerviews und mehr, Teil 3&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-war-die-gdce-2010-videointerviews-und-mehr-teil-3/08/2010/&via=sw_devtwits&text= Das war die GDCE 2010: Videointerviews und mehr, Teil 3&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-war-die-gdce-2010-videointerviews-und-mehr-teil-3/08/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Das war die GDCE 2010: Videointerviews und mehr, Teil 2</title>
		<link>http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-2/08/2010/</link>
		<comments>http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-2/08/2010/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 07:05:09 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[GDCE10]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1436</guid>
		<description><![CDATA[Wie ich gestern versprochen habe, folgt heute der zweite Teil des großen GDCE-2010-Rückblicks. Waren gestern die Havok Physics Engine, das Multithreaden von Games mithilfe von DirectX 11, Netbook-Games und Intel GPA dran, folgen heute Erkenntnisse rund um die nächste Version von Intel GPA, um das Parallelisieren von Spielen mithilfe von Intel TBB und einer Task-Stealing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-1/08/2010/">Wie ich gestern versprochen habe</a>, folgt heute der zweite Teil des großen <a href="http://www.software-dev-blog.de/gdce-2010-techsession-infos-und-mehr/08/2010/">GDCE-2010-Rückblicks</a>. Waren gestern die Havok Physics Engine, das <a href="http://www.software-dev-blog.de/gdce20-x-games-mit-directx-11-und-intel-tbb-parallelisieren/08/2010/">Multithreaden von Games mithilfe von DirectX 11</a>, Netbook-Games und <a href="http://www.software-dev-blog.de/gdce-2010-techsession-so-setzt-man-intel-graphics-performance-analyzers-richtig-ein/08/2010/">Intel GPA</a> dran, folgen heute Erkenntnisse rund um die nächste Version von Intel GPA, um das Parallelisieren von Spielen mithilfe von <a href="http://software.intel.com/en-us/intel-tbb/">Intel TBB</a> und einer Task-Stealing Engine der Marke Eigenbau.</p>
<p>Zum Thema &#8220;Nächste GPA-Version&#8221; konnte wir den dafür zuständigen Intel-Mann Aaron Davies überreden, <a href="http://www.youtube.com/watch?v=FMKsNJzUZ1I" target="_blank">vor der Kamera ein wenig in seine Glaskugel zu blicken</a>. So verriet er uns, dass die nächste Version Anfang kommenden Jahres zur GDC 2011 in San Francisco vorgestellt wird. Dass Intel GPA 4.0 für die nächste Prozessorgeneration Sandy Bridge optimiert sein wird, überrascht genauso wenig wie die Tatsache, dass das Analysetool die noch in der Beta-Phase befindliche Platform View integrieren wird, da es sehr postives Feedback seitens der Entwickler gab. Die gute Nachricht: Intel GPA und andere Tools von Intel bleiben kostenlos für Entwickler, da der Chiphersteller seine große Fangemeinde weiterhin mit dieser Art der Dienstleistung beglücken will.</p>
<p>Von der Zukunft zurück in die Gegenwart ging es dann mit Mario Deilmann, der es sich zum Ziel gesetzt hatte, die anwesende Entwicklerschar <a href="http://www.software-dev-blog.de/gdce20-x-games-mit-directx-11-und-intel-tbb-parallelisieren/08/2010/">während seiner Techsession</a> davon zu überzeugen, dass mit Intel TBB ein Tool zur Verfügung steht, mit der sich Spieletitel an vielen Stellen parallelisieren lassen. Wie er anschließend <a href="http://www.youtube.com/watch?v=glkGtaEm8b0">vor unserer Kamera verriet</a>, lieben Spieleentwickler Open-Source-Tools wie Intel TBB, da sie die gesamte Kontrolle über den Sourcecode des Tools haben. Auf der anderen Seite gibt es natürlich eine kommerzielle Version von Intel TBB für diejenigen, die auf Support nicht verzichten wollen.</p>
<p>Gut an Intel TBB ist aus Marios Sicht vor allem, dass sich der zu parallelisierende Code nicht mehr als Low-Level-Threads, sondern als abstrahierte Tasks darstellen lässt, was die Parallelisierung von Spielen erheblich vereinfacht. Aber auch die verschiedenen Abstraktionsebenen machen aus Intel TBB ein echtes Gaming-Dev-Tool. So kann man mit Konstrukten wie Concurrent Container und Concurrent Allocator genauso arbeiten wie mit Low-Level-APIs wie dem TBB Scheduler, um damit die besten Ergebnisse zu erzielen. Einen weiteren Pluspunkt sieht Mario in der Plattformunabhängigkeit von Intel TBB, das von Windows, Mac OS und anderen Betriebssystemen und Plattformen unterstützt wird.</p>
<p>Last but not least hatten wir gegen Ende der GDCE 2010 die Gelegenheit mit Dierk Ohlerich zu reden. Dierk ist Head of Technology bei <a href="http://www.49games.de/" target="_blank">49Games</a> aus Hamburg, die sich vor allem auf Konsolentitel aus dem Bereich Sportsimulationen konzentrieren. <a href="http://www.youtube.com/watch?v=B6x_BcopCPA" target="_blank">In seinem Videointerview</a> erzählt er uns, dass er seine eigene Task-Stealing Engine geschrieben hat, mit deren Hilfe Spiele optimal auf unterschiedlichen Multicore-Systemen skalieren.</p>
<p>Das Hauptziel seines Projekts ist die Integration einer solchen Task-Stealing Engine in die Rendering Pipeline. Dabei galt es jedoch diverse Klippen zu umschiffen wie das genaue Vorhersagen des Datenaufkommens, wofür dynamische Datenspeicher notwenig sind. Aber auch die richtige Reihenfolge beim &#8220;Zeichnen&#8221; einer Spielszene stellt laut Dierk ein echte Herausforderung dar, wenn es um das Parallelisieren der Render Engine geht.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/das-war-die-gdce-2010-videointerviews-und-mehr-teil-2/08/2010/&via=sw_devtwits&text= Das war die GDCE 2010: Videointerviews und mehr, Teil 2&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-war-die-gdce-2010-videointerviews-und-mehr-teil-2/08/2010/&via=sw_devtwits&text= Das war die GDCE 2010: Videointerviews und mehr, Teil 2&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-war-die-gdce-2010-videointerviews-und-mehr-teil-2/08/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baue eigene 3D-Games &#8211; for free und Multicore-optimiert</title>
		<link>http://www.software-dev-blog.de/baue-eigene-3d-games-for-free-und-multicore-optimiert/07/2010/</link>
		<comments>http://www.software-dev-blog.de/baue-eigene-3d-games-for-free-und-multicore-optimiert/07/2010/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 16:07:36 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Unreal]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1424</guid>
		<description><![CDATA[Dass Intel die Software-Gemeinde schon seit vielen Jahren mit Entwicklertools, Know-how und einer eigenen Gemeinde unterstützt, ist ja nichts Neues. Dass man aber als Spiele-Entwickler die geballte Kraft des UDK (Unreal Developer Kit) kostenlos bekommt, ist schon etwas ganz Besonderes. Finde ich. Das UDK bietet so ziemlich alles, was man als ambitionierter Spieleentwickler braucht. Neben [...]]]></description>
			<content:encoded><![CDATA[<p>Dass Intel die Software-Gemeinde schon seit vielen Jahren mit Entwicklertools, Know-how und <a href="http://software.intel.com/en-us/" target="_blank">einer eigenen Gemeinde </a>unterstützt, ist ja nichts Neues. Dass man aber als Spiele-Entwickler die geballte Kraft des UDK (Unreal Developer Kit) <a href="http://software.intel.com/en-us/articles/unreal-development-kit-download/" target="_blank">kostenlos bekommt</a>, ist schon etwas ganz Besonderes. Finde ich.</p>
<p>Das UDK bietet so ziemlich alles, was man als ambitionierter Spieleentwickler braucht. Neben <a href="http://www.unrealtechnology.com/" target="_blank">Unreal Engine 3</a> bietet es beispielsweise das integrierte Beleuchtungsmodell Lightmass, mit dem sich Lichteffekte wie Reflektionen von Glanzlichtern und verstreute Lichtquellen im Offline-Modus, also vorab, berechnen lassen. Und da UE3 höchst Multicore-optimiert ist, profitieren Game-Entwickler bei der Berechnung von Spielszenen und -Leveln von den schnellen 8- oder 12-Core-Prozessor-Maschinen, in denen eine Intel-CPU werkelt.</p>
<p>Aber auch die Möglichkeit, mithilfe von Unreal Swarm komplexe 3D-Berechnungen nicht nur von einem, sondern von einem ganzen Rechnernetzwerk durchführen zu lassen, spricht für Unreal Engine 3, respektive Unreal Developer Kit. Und auch weitere Features wie das Unreal Build Tool, Navigation Meshes und der Content Browser machen aus Unreal Engine 3 eine extrem leistungsfähige Entwicklerplattform für aufwändige 3D-Spiele. Und das alles für umsonst?! Kaum zu glauben&#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/baue-eigene-3d-games-for-free-und-multicore-optimiert/07/2010/&via=sw_devtwits&text=Baue eigene 3D-Games - for free und Multicore-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/baue-eigene-3d-games-for-free-und-multicore-optimiert/07/2010/&via=sw_devtwits&text=Baue eigene 3D-Games - for free und Multicore-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/baue-eigene-3d-games-for-free-und-multicore-optimiert/07/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: So lassen sich Spiele mit Intel GPA optimieren</title>
		<link>http://www.software-dev-blog.de/video-so-lassen-sich-spiele-mit-intel-gpa-optimieren/07/2010/</link>
		<comments>http://www.software-dev-blog.de/video-so-lassen-sich-spiele-mit-intel-gpa-optimieren/07/2010/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 12:16:48 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1422</guid>
		<description><![CDATA[Zugegeben, die Develop 2010 ist mittlerweile über eine Woche alt, und doch tauchen immer wieder nützliche Infos rund um das Thema Spieleprogrammierung auf. So auch heute auf dem SoftTalk Blog, auf dem ich ein interessantes und informatives Video gefunden habe. In diesem Fast-Fünfminüter spricht Leigh Davies neben seinem Job bei Intel vor allem über die [...]]]></description>
			<content:encoded><![CDATA[<p>Zugegeben, die <a href="http://www.software-dev-blog.de/wie-sich-3d-spiele-optimieren-lassen/07/2010/">Develop 2010</a> ist mittlerweile über eine Woche alt, und doch tauchen immer wieder <a href="http://www.software-dev-blog.de/infos-zur-spieleprogrammierung-fur-netbook-und-co/07/2010/">nützliche Infos</a> rund um das Thema Spieleprogrammierung auf. So auch heute auf dem <a href="http://softtalkblog.com/" target="_blank">SoftTalk Blog</a>, auf dem ich ein interessantes und informatives Video gefunden habe. In diesem Fast-Fünfminüter spricht Leigh Davies neben seinem Job bei Intel vor allem über die Toolsuite <a href="http://software.intel.com/en-us/articles/intel-gpa/" target="_blank">Intel Graphics Performance Analyzers</a> und wie sich damit PC-Spiele verbessern und optimieren lassen. So lernt man anhand des Videos folgende Dinge:</p>
<ul>
<li>Intel GPA steht derzeit in der dritten Version kostenlos zum Download bereit, was lediglich mit einer <a href="https://ssl.software.intel.com/en-us/register/visual-adrenaline/" target="_blank">kurzen Registrierung</a> verbunden ist.</li>
</ul>
<ul>
<li>Mit Intel GPA lassen sich DirectX-Spiele untersuchen (DirectX 9 und 10), aber auch das PC-System kann zur Spiele-Laufzeit untersucht werden. Damit lassen sich beispielsweise CPU-Lasten ermitteln und wie das Spiel auf Basis der vorhandenen Ressourcen skaliert.</li>
</ul>
<ul>
<li>Mit Intel GPA lassen sich aber auch einzelne Spielszenen (Frames) untersuchen und herausfinden, wie sich diese in Sachen Funktionsaufrufe, etc. verhalten. Damit weiß man ziemlich genau, an welchen Stellen es &#8220;klemmt&#8221; und auf dieser Erkenntnis kann man probehalber einzelne Prozessorkerne &#8220;abschalten&#8221;, neue oder aufwändigere Texturen laden oder den Shader &#8220;umschreiben&#8221;, um somit eine optimierte Variante der betreffenden Szene zu erhalten. Denn oft sind es Kleinigkeiten, die ein 3D-Game ausbremsen.</li>
</ul>
<ul>
<li>Mit Intel GPA lässt sich zwar nicht nur Intel-Grafikhardware adressieren, aber aufgrund der architektonischen Unterschiede gelingt dies natürlich am besten. Damit kann man genau messen, wieviel Bandbreite die verwendeten Texturen beanspruchen, wie viel Rechenzeit die Shader verbraten, etc. Damit weiß man ganz genau, an welchen Stellen es klemmt &#8211; und was man tun sollte, um diese Flaschenhälse zu beseitigen.</li>
</ul>
<p>Tja, und den Rest schaut ihr euch am besten selbst an. Film ab!</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="312" 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/YJ16yCkkoqQ&amp;hl=de_DE&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="520" height="312" src="http://www.youtube.com/v/YJ16yCkkoqQ&amp;hl=de_DE&amp;fs=1" 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/video-so-lassen-sich-spiele-mit-intel-gpa-optimieren/07/2010/&via=sw_devtwits&text=Video: So lassen sich Spiele mit Intel GPA 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/video-so-lassen-sich-spiele-mit-intel-gpa-optimieren/07/2010/&via=sw_devtwits&text=Video: So lassen sich Spiele mit Intel GPA 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/video-so-lassen-sich-spiele-mit-intel-gpa-optimieren/07/2010/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>Intel TBB 3.0 mit neuen Funktionen und VS2010-Support</title>
		<link>http://www.software-dev-blog.de/intel-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/2010/</link>
		<comments>http://www.software-dev-blog.de/intel-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/2010/#comments</comments>
		<pubDate>Tue, 04 May 2010 14:20:00 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[TBB]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1374</guid>
		<description><![CDATA[Schon letzte Woche erreichte mich eine E-Mail, in der die aktualisierte Version der Intel Threading Building Blocks angekündigt wurde. Tja, und da genau heute Intels Bibliothekensammlung für C und C++ offiziell vorgestellt wird, gibt es dazu natürlich auch einen entsprechenden Blogbeitrag. Auf den ersten Blick bietet Intel TBB 3.0 zwei wesentliche Verbesserungen: die volle Kompatibilität [...]]]></description>
			<content:encoded><![CDATA[<p>Schon letzte Woche erreichte mich eine E-Mail, in der die aktualisierte Version der <a title="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> angekündigt wurde. Tja, und da genau heute Intels Bibliothekensammlung für C und C++ offiziell vorgestellt wird, gibt es dazu natürlich auch einen entsprechenden Blogbeitrag.</p>
<p>Auf den ersten Blick bietet Intel TBB 3.0 zwei wesentliche Verbesserungen: die volle Kompatibilität mit Visual Studio 2010 und .NET 4 sowie die Unterstützung des künftigen ISO/ANSI-Standards für C++, der noch unter dem Arbeitsnamen C++0x geführt wird. Aber auch andere Features wie eine neue Containerklasse und verbesserte Debugger-Merkmale flossen in die neue Version der Intel TBB 3.0 ein. Im Detail sieht das wie folgt aus:</p>
<p><strong>Optionaler C++0x-Support<br />
</strong></p>
<ul>
<li>die neue Funktion <em>parallel_pipeline()</em> verbessert die alte Warteschlange-Funktion mithilfe von Lambda-Support und anderen Features</li>
<li>TBB_USE_CAPTURED_EXCEPTION() verbessert das Exception Handling</li>
<li>verbesserte Synchronisierung auf Basis konditioneller Variablen</li>
</ul>
<p><strong>Handbuch &#8220;Pattern </strong><strong>Design&#8221;</strong><br />
Dieses von TBB-Entwickler Arch Robison geschriebene Handbuch zeigt, wie Pattern Design funktioniert</p>
<p><strong>Kompatibel mit Microsoft Visual Studio 2010</strong></p>
<ul>
<li>Support der <a href="http://www.software-dev-blog.de/teched09-wie-die-ccr-net-entwicklern-bei-der-parallelprogrammierung-hilft/11/2009/">Concurrency Runtime</a></li>
<li>kompatibel mit der <a href="http://www.software-dev-blog.de/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/">Parallel Pattern Library</a></li>
<li>kompatibel mit <em>reader_writer_lock()</em> and <em>critical_section_lock()</em></li>
</ul>
<p><strong>Neue Container-Klasse<br />
</strong><em>concurrent_unordered_map()</em> (natürlich C++ 0x-kompatibel)</p>
<p><strong>Verbessertes Debuggen</strong></p>
<ul>
<li>Task Scheduling, Vorhersagen und Reaktionszeiten wurden verbessert</li>
<li>voneinander unabhängiges Verwalten von Tasks für mehrere Masterthreads</li>
<li>verbesserte Vermeidung von Deadlocks</li>
<li>weiterentwickelte Hinweise für <a href="http://www.software-dev-blog.de/isc’09-intel-parallel-amplifier-im-detail/04/2009/">Parallel Amplifier</a> und <a href="http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/">Parallel Inspector</a></li>
</ul>
<p><strong>Scheduler-Support (task::enqueue)<br />
</strong></p>
<ul>
<li>unterstützt FIFO-Warteschlagen</li>
<li>nützlich für das  Emulieren von Task-Prioritäten und die Interaktion mit GUI-basierten Threads</li>
</ul>
<p><strong>Leistungsverbesserungen<br />
</strong></p>
<ul>
<li>Beschleunigung der Funktion <em>numerable_thread_specific()</em> und Kombinationen davon</li>
<li>verbesserte Speicherverteilung bei großen Speicherblöcken</li>
</ul>
<p>und einiges mehr.</p>
<p>Wer mit Intel Threading Building Blocks Software entwickeln und parallelisieren möchte, kann dies in zweierlei Hinsicht tun: entweder bezahlt man 299 Dollar für die Windows- oder Linux-Variante und erwirbt damit das <a href="http://www.threadingbuildingblocks.com" target="_blank">kommerzielle Paket von TBB 3.0</a>. Dazu gehört auch ein professioneller Support seitens Intel. Oder man begibt sich auf <a href="http://www.threadingbuildingblocks.org" target="_blank">www.threadingbuildingblocks.org</a>, besorgt sich die Open-Source-Variante des Pakets und bekommt damit eine GPLv2-Lizenz. Diese ist natürlich kostenlos.</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-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/2010/&via=sw_devtwits&text=Intel TBB 3.0 mit neuen Funktionen und VS2010-Support&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-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/2010/&via=sw_devtwits&text=Intel TBB 3.0 mit neuen Funktionen und VS2010-Support&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-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/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>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>Apps unter Mac OS X multicore-tauglich machen</title>
		<link>http://www.software-dev-blog.de/apps-unter-mac-os-x-multicore-tauglich-machen/12/2009/</link>
		<comments>http://www.software-dev-blog.de/apps-unter-mac-os-x-multicore-tauglich-machen/12/2009/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 12:30:36 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Workshop]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1262</guid>
		<description><![CDATA[Disclaimer: Dieser Beitrag ist ein Extrakt des Artikels &#8220;Mehrkern-Beschleuniger&#8221;, der in der mac-developer 1/2010 erschienen ist. Autor dieses Beitrags ist Maximilian Götzfried. Ende August war ich bei Apple, um ein wenig mehr über deren Multicore-Beschleuniger Grand Central Dispatch zu erfahren. Diese in Snow Leopard implementierte Technik erlaubt es Anwendungsentwicklern, mit relativ wenig Aufwand, ihre Anwendungen [...]]]></description>
			<content:encoded><![CDATA[<p><em>Disclaimer: Dieser Beitrag ist ein Extrakt des Artikels &#8220;Mehrkern-Beschleuniger&#8221;, der in der <a href="http://www.mac-developer.de/" target="_blank">mac-developer</a> 1/2010 erschienen ist. Autor dieses Beitrags ist Maximilian Götzfried.</em></p>
<p>Ende August war ich bei Apple, um ein wenig mehr über deren Multicore-Beschleuniger <a href="http://www.software-dev-blog.de/mac-os-x-106-erleichtert-die-multicore-programmierung/08/2009/">Grand Central Dispatch</a> zu erfahren. Diese in Snow Leopard implementierte Technik erlaubt es Anwendungsentwicklern, mit relativ wenig Aufwand, ihre Anwendungen multicore-tauglich zu machen. Und das ohne größeren Programmieraufwand, sondern lediglich mithilfe der C-API und den NSOperation-Klassen.</p>
<p>Das Tolle an GCD ist deren einfache Verwendung: Anstatt selbst Threads auf Basis von Tasks oder anderen Objekten zu erzeugen, kümmert sich GCD selbst darum. Das bedeutet aber für den Software-Entwickler, dass er sich für eine optimale Ausnutzung der vorhandenen Prozessorressourcen grundsätzlich Gedanken machen muss über die Programmlogik. Das Resultat seines überarbeiteten Programms sind einzelne Tasks, die je nach Programmablauf an die vorhandenen Multithreading-Queues übergeben werden können, wo sie von GCD bestmöglich verarbeitet werden.</p>
<p>Wie bereits angedeutet, stellt GCD zwei Möglichkeiten zur Verfügung, Programmcode zu multithreaden: Mithilfe der NSOperation-Klasse und der C-API. Beides soll kurz beleuchtet werden.</p>
<p><span style="color: #993300;"><em><strong>NSOperation: Warteschlangentechnik für asynchrone Tasks</strong></em></span><br />
Für das asynchrone, also zeitversetzte Ausführen von Anwendungen ist lediglich das Erstellen von NSOperation-konformen Objekten erforderlich, die dann an die zugehörige Warteschlange übergeben werden, die die Queue nach dem FIFO-Prinzip verarbeitet. Hierfür werden Tasks im Hintergrund ausgeführt, pausiert und zu Ende geführt. Es ist sogar möglich, die Anzahl der maximalen Threads festzulegen, was in Extremfällen ein einziger sein kann. Natürlich erlaubt GCD die ständige Rückkehr zum Main Thread.</p>
<p><span id="more-1262"></span>Sehr hilfreich ist auch das &#8220;Verketten&#8221; mehrerer Threads, um so bestimmte Abhängigkeiten zu definieren. Hierzu gehört auch die Möglichkeit, Thread zu priorisieren. Darüber hinaus lassen sich NSOperation-Threads mit Rückgabewerten definieren, die während des Programmablaufs dann weiter verwendet werden können.</p>
<p><span style="color: #993300;"><em><strong>Grand-Central-Dispatch-API</strong></em></span><br />
Neben den NSOperation-Klassen erlaubt die GCD-API das direkte Verwenden der vorhandenen Funktionen. Hierfür kann man entweder eigene Queues erzeugen oder auf die globale Warteschlange zugreifen. Es existieren drei globale Queues, die sich lediglich in ihrer Priorität unterscheiden. Daneben gibt es natürlich auch eine Main Queue, die die Steuerung des Main Threads übernimmt.</p>
<p>Im Gegensatz zu den globalen Queues funktionieren eigene Warteschlange rein seriell, womit sie beispielsweise in Bereichen eingesetzt werden können, die bis dato mit Hilfe von Locks überwacht wurden. Queues werden blockweise gefüllt, der zugehörige Code wird asynchron im Hintergrund ausgeführt. Für eine problemlos Rückkehr zur Main Queue sollte jeder Block eine Callback-Funktion aufweisen, die auf das &#8220;Hauptprogramm&#8221; verweist. Natürlich lassen sich Queues auch pausieren (suspend) und weiter ausführen (resume).</p>
<p><span style="color: #993300;"><em><strong>Weitere wichtige GCD-Techniken</strong></em></span><br />
Neben den Klassen und APIs stehen weitere Techniken in GCD zur Verfügung, die man als Entwickler kennen sollte. So ermöglichen beispielsweise Semaphore die bessere Kontrolle bgrenzter Ressourcen. Aber auch Deadlocks lassen sich dank GCD besser vermeiden, Blöcke können zeitlich gesteuert genutzt werden, Systemereignisse lassen sich effizient und einfach überwachen und vieles mehr.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/apps-unter-mac-os-x-multicore-tauglich-machen/12/2009/&via=sw_devtwits&text=Apps unter Mac OS X multicore-tauglich machen&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/apps-unter-mac-os-x-multicore-tauglich-machen/12/2009/&via=sw_devtwits&text=Apps unter Mac OS X multicore-tauglich machen&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/apps-unter-mac-os-x-multicore-tauglich-machen/12/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weitere Details zu Intels Cloud-Service &#8220;Parallel Universe&#8221;</title>
		<link>http://www.software-dev-blog.de/weitere-details-zu-intels-cloud-service-parallel-univers/11/2009/</link>
		<comments>http://www.software-dev-blog.de/weitere-details-zu-intels-cloud-service-parallel-univers/11/2009/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:50:36 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1252</guid>
		<description><![CDATA[Erst gestern habe ich darüber berichtet, dass Intel einen ganz neuen cloud-basierten Service vorgestellt hat, der sich Parallel Universe nennt. Dahinter verbirgt sich das kostenlose Angebot an Software-Entwickler, in häufiger Ermangelung eines Opto-Core-Rechners ihre parallelisierten Anwendungen auf deren Skalierbarkeit zu überprüfen. Das ist wirklich eine pfiffige Idee und könnte so manch einem Anwendungsentwickler (a) die [...]]]></description>
			<content:encoded><![CDATA[<p>Erst gestern habe ich <a href="http://www.software-dev-blog.de/multicore-testumgebung-in-der-cloud-intel-parallel-universe/11/2009/">darüber berichtet</a>, dass Intel einen ganz neuen cloud-basierten Service vorgestellt hat, der sich <a href="http://paralleluniverse.intel.com/" target="_blank">Parallel Universe</a> nennt. Dahinter verbirgt sich das kostenlose Angebot an Software-Entwickler, in häufiger Ermangelung eines Opto-Core-Rechners ihre parallelisierten Anwendungen auf deren Skalierbarkeit zu überprüfen. Das ist wirklich eine pfiffige Idee und könnte so manch einem Anwendungsentwickler (a) die Augen öffnen und (b) beim korrekten Multithreaden helfen.</p>
<p>Für ein paar weitere detaillierte Informationen rund um diesen Service hatte ich gestern Abend die Gelegenheit, an einer Telefonkonferenz mit <a href="http://www.software-dev-blog.de/isc09-die-zukunft-der-parallelen-programmierung/04/2009/">James Reinders</a> teilzunehmen. James ist Director Intel Software Development Products und beschäftigt sich schon seit vielen Jahren mit dem Thema Parallelprogrammierung. So springt er beispielsweise gerade auf der <a href="http://sc09.supercomputing.org/" target="_blank">Supercomputing Conference 2009</a> herum, um dort vermutlich unter anderem sein paralleles Universum vorstellen. Von ihm erfuhren wir ein paar sehr interessante Details zum neuen Cloud-Service:</p>
<ul>
<li>Technisch gesehen ist es nicht nur ein Cloud-Rechner, sondern es sind bis zu drei Nehalem-basierte Server, die mit jeweils zwei Quadcore-CPUs bestückt sind. Das ermöglicht inklusive Hyperthreading 16 echte und parallele Hardware-Threads. Sollte ein Parallelrechner nicht ausreichen, werden ein oder zwei weitere automatisch dazugeschaltet. Dies bleibt dem Anwender natürlich vollständig verborgen. In Zukunft werden je nach Erfolgt von Intel Parallel Universe leistungsfähigere Maschinen eingesetzt, mit denen sich auch mehr parallele Threads simulieren lassen. Aber für die aktuellen Anwendungen ist eine Skalierung von maximal 16 Threads völlig ausreichend.</li>
</ul>
<ul>
<li>Sämtliche Analysen, die von Software-Entwicklern eingereicht werden, wandern in eine Warteschlange, sodass es zwar Wartezeiten geben kann, diese allerdings kaum auffallen werden, da die Ergebnisse unmittelbar nach deren Berechnung im Webbrowser dargestellt werden.</li>
</ul>
<p><span id="more-1252"></span></p>
<ul>
<li>Aufgrund der Beschränkung von 10 Megabyte pro Zip-Datei, die man zu Analysezwecken hochladen kann, empfiehlt James eine sinnvolle &#8220;Stückelung&#8221; des zu überprüfenden ausführbaren Codes. Es sollten daher vor allem diejenigen Teile einer Anwendung getestet werden, in denen einerseits das größte Parallelisierungspotenzial steckt und andererseits mögliche Bugs in Sachen Skalierbarkeit wahrscheinlich sind. Das zwingt den Programmierer gleichzeitig dazu, über die wirklich relevanten Teile seiner Software nachzudenken, in denen es auf die maximale Performance ankommt.</li>
</ul>
<ul>
<li>Beim Bewerten der Skalierbarkeit einer App sollte man berücksichtigen, dass vor allem datenbasierte Anwendungen besonders gut von Hyperthreading profitieren.</li>
</ul>
<ul>
<li>Um mögliche Risiken von außen zur minimieren (Einschleusung von Malware auf die Cloud-Server u.ä.) hat Intel natürlich diverse Sicherheitsmaßnahmen ergriffen. Dazu gehört auch eine vollständige Protokollierung der Aktivitäten auf dem Rechner, was in Kombination mit der Intel-ID potenzielle Störversuche gut kontrollierbar macht.</li>
</ul>
<p>Falls ihr weitere Infos rund um Intel Parallel Universe braucht, könnt ihr eure Fragen jederzeit per Kommentarfunktion an mich richten. Ich leite diese gerne an James weiter.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/weitere-details-zu-intels-cloud-service-parallel-univers/11/2009/&via=sw_devtwits&text=Weitere Details zu Intels Cloud-Service "Parallel Universe"&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/weitere-details-zu-intels-cloud-service-parallel-univers/11/2009/&via=sw_devtwits&text=Weitere Details zu Intels Cloud-Service "Parallel Universe"&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/weitere-details-zu-intels-cloud-service-parallel-univers/11/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multicore-Testumgebung in der Cloud: Intel Parallel Universe</title>
		<link>http://www.software-dev-blog.de/multicore-testumgebung-in-der-cloud-intel-parallel-universe/11/2009/</link>
		<comments>http://www.software-dev-blog.de/multicore-testumgebung-in-der-cloud-intel-parallel-universe/11/2009/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 15:00:15 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1247</guid>
		<description><![CDATA[Das Entwerfen und Entwickeln parallel programmierter Anwendungen ist keine einfache Sache. Man muss nicht nur beim Entwurf der Software viele Dinge berücksichtigen, sondern will natürlich auch sicher sein, dass das Programm aufgrund der möglichen Abhängigkeiten (sowohl in der Logik als auch bei den Daten) möglichst fehlerfrei läuft. Vor allem beim Multithreaden kommt es nämlich immer [...]]]></description>
			<content:encoded><![CDATA[<p>Das Entwerfen und Entwickeln parallel programmierter Anwendungen ist keine einfache Sache. Man muss nicht nur beim Entwurf der Software viele Dinge berücksichtigen, sondern will natürlich auch sicher sein, dass das Programm aufgrund der möglichen Abhängigkeiten (sowohl in der Logik als auch bei den Daten) möglichst fehlerfrei läuft. Vor allem beim Multithreaden kommt es nämlich immer wieder zu so hässlichen Dingen wie <a href="http://www.software-dev-blog.de/isc09-intel-parallel-inspector-im-detail/04/2009/">Dead Locks und Data Races</a>, die unverhofft und völlig überraschend zur Laufzeit auftauchen.</p>
<p>Damit es erst gar nicht so weit kommt, stellt Intel <a href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">seit Ende Mai</a> dieses Jahres für C- und C++-Anwendungen <a href="http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/">Parallel Studio</a> zur Verfügung. Mit diesem Plug-in für Visual Studio lassen sich nicht nur möglichst fehlerfreie, sondern auch möglichst skalierende Programme entwickeln, die je nach Anzahl der verfügbaren Prozessorkerne möglichst linear ablaufen. Soll also heißen, dass bei zwei Kernen eine Anwendung doppelt so schnell läuft, auf vier Kernen viermal so schnell usf. &#8211; theoretisch zumindest.</p>
<p>Doch wer hat schon unbedingt einen Quadcore- oder noch leistungsfähigeren Rechner im Testlabor rumstehen, mit dem sich diese Skalierung effizient und zuverlässig testen lässt? Eben. Und hier kommt ein ganz neuer Cloud-Service von Intel zum Einsatz, der seit heute kostenlos verfügbar ist. Sein Name: <a href="http://paralleluniverse.intel.com/" target="_blank">Intel Parallel Universe</a>. Seine Idee: Das Testen parallelisierter Apps mithilfe eines 16-Core-Rechners, der via Internet zur Verfügung steht. Die Voraussetzungen: ein Internetbrowser, Zugang zum <a href="http://software.intel.com/en-us/" target="_blank">Intel Software Network</a> und Parallel Studio für weitere Auswertungen und Analysen.</p>
<p><span id="more-1247"></span>Der Weg dorthin ist recht einfach: Mit einem kompatiblen Webbrowser (Internet Explorer, Firefox, Safari oder Chrome) lädt man die lauffähige, parallelisierte Windows-Software (32 Bit only) auf <a href="http://paralleluniverse.intel.com/" target="_blank">Paralleluniverse.intel.com</a> und befolgt die entsprechenden Schritte. Dabei ist es wichtig, dass neben der Anwendung selbst sämtliche Daten und Parameter als Zip-Datei hochgeladen werden (Programme mit Benutzereingaben werden also nicht unterstützt). Sobald dies geschehen ist, wird die Software ausgiebig auf Bottlenecks untersucht. Die Resultate werden dann grafisch aufbereitet und im Webbrowser anschaulich dargestellt. So kann man auf einen Blick erkennen, wie sich die Anwendung auf 1, 2, 4, 8 und 16 Prozessorkernen verhält.</p>
<p>Man sieht also beispielsweise, wie lange die Software auf einer bestimmten Anzahl von CPUs läuft und an welchem Punkt die App nicht mehr skaliert. Aber auch die Parallelität der Anwendung lässt sich feststellen, wie viele Threads also je nach Anzahl verfügbarer Prozessorkerne parallel ausgeführt werden. Doch das ist natürlich nur der Anfang, da man jetzt zwar weiß, ob es klemmt, wo dies allerdings der Fall ist, weiß man noch nicht. Daher lässt sich das Ergebnis der cloud-basierten Analyse lokal speichern und in Parallel Studio öffnen. Der betreffende Sourcecode wird automatisch geladen und per Doppelklick landet man genau an den Stellen, die die mangelhafte Parallelität verursachen. Vermutlich war es noch nie einfacher, Bottlenecks im eigenen Programm zu finden, oder?!</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-testumgebung-in-der-cloud-intel-parallel-universe/11/2009/&via=sw_devtwits&text=Multicore-Testumgebung in der Cloud: Intel Parallel Universe&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-testumgebung-in-der-cloud-intel-parallel-universe/11/2009/&via=sw_devtwits&text=Multicore-Testumgebung in der Cloud: Intel Parallel Universe&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-testumgebung-in-der-cloud-intel-parallel-universe/11/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Intel und Rapidmind gemeinsam in Sachen Multicore</title>
		<link>http://www.software-dev-blog.de/intel-und-rapidmind-gemeinsam-in-sachen-multicore/08/2009/</link>
		<comments>http://www.software-dev-blog.de/intel-und-rapidmind-gemeinsam-in-sachen-multicore/08/2009/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:08:17 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[IDF09]]></category>
		<category><![CDATA[Kooperation]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1154</guid>
		<description><![CDATA[Intel hat kürzlich die Multicore-Schmiede Rapidmind akquiriert. Da könnte man im ersten Moment die Frage stellen: &#8220;Warum tut Intel so etwas?&#8221; Schließlich gibt der Prozessorhersteller seit vielen Jahren große Dollarbeträge für Tools aus, die Software-Entwickler dabei helfen sollen, ihre Anwendungen für die zahlreichen Intel-Plattformen zu optimieren. Sieht man sich aber das Portfolio von Rapidmind etwas [...]]]></description>
			<content:encoded><![CDATA[<p>Intel hat kürzlich die Multicore-Schmiede <a title="Rapidmind + Intel " href="http://software.intel.com/en-us/blogs/2009/08/19/rapidmind-intel/" target="_blank">Rapidmind akquiriert</a>. Da könnte man im ersten Moment die Frage stellen: &#8220;Warum tut Intel so etwas?&#8221; Schließlich gibt der Prozessorhersteller seit vielen Jahren große Dollarbeträge für <a title="GDC09: Spieletitel für integrierte Grafikchips optimieren" href="http://www.software-dev-blog.de/gdc09-spieletitel-fur-integrierte-grafikchips-optimieren/08/2009/">Tools</a> aus, die Software-Entwickler dabei helfen sollen, ihre Anwendungen für die zahlreichen Intel-Plattformen zu optimieren. Sieht man sich aber das <a title="Rapidmind-Portfolio" href="http://rapidmind.com/product.php" target="_blank">Portfolio von Rapidmind</a> etwas genauer an, wird schnell klar: Dieser Zusammenschluss folgt einer klaren Logik und bietet für beiden Seiten große Vorteile.</p>
<p>Zum einen werden die Rapidmind-Produkte und Lösungen in Zukunft von Intel vermarktet, was deren Reichweite natürlich drastisch erhöht. Zum anderen kommt Intel in den Genuss, die volle Bandbreite &#8211; sowohl technologisch als auch ressourcen-seitig &#8211; von Rapidmind zu nutzen. Und das geht meines Erachtens in diverse Richtungen.</p>
<p>Rapidmind-Tools wie Code Optimizer, Load Balancer, Data Manager und Diagnostics sind möglicherweise sehr gute Ergänzungen zu den vorhandenen Intel-Werkzeugen wie <a title="GDC09: So funktioniert Intel Parallel Studio" href="http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/">Parallel Studio,</a> <a title="Vergleich: Intel Thread Checker versus Parallel Inspector" href="http://www.software-dev-blog.de/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/">Thread Checker</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 TBB</a>. Vor allem, wenn man die Bandbreite der unterstützten Hardware seitens der Rapidmind-Tools genauer betrachtet: Ok, AMD-Prozessoren wird Intel wohl nicht im Visier haben, aber Grafiklösungen wie die kommende <a title="GDC09: Effizient und parallel mit Larrabee programmieren" href="http://www.software-dev-blog.de/gdc09-effizient-und-parallel-mit-larrabee-programmieren/08/2009/">Larrabee-Plattform</a> waren für Intel sicherlich ein wichtiger Kaufgrund.</p>
<p><span id="more-1154"></span>Auch die Nähe der Rapidmind-Werkzeuge zu Embedded Hardware ist für Intel sehr interessant. Denn das <a title="Webseite des Intel Developer Forum" href="http://www.intel.com/IDF/" target="_blank">IDF</a> steht vor der Tür, und was könnte dort angekündigt werden? Genau, die nächste Generation des Atom-Prozessors. Und der könnte ja mit zwei Prozessorkernen ausgestattet sein. Dann kommt Rapidmind erst richtig zum Zug.</p>
<p>Und nicht zuletzt der Blick auf die unterstützten Betriebssysteme lässt den Deal zwischen Intel und Rapidmind logisch erscheinen. Neben Mac OS X und Windows stehen nämlich diverse Linux-Distributionen auf der Liste der kompatiblen Rapidmind-Produkte. Unter anderen wird das Linux-Derivat Fedora unterstützt. Und wo steckt Fedora drin? Na? Stimmt, im Intel-eigenen Linuxprojekt <a title="Webseite von moblin.org" href="http://moblin.org/" target="_blank">Moblin</a>, das ja hauptsächlich auf Netbooks laufen soll, in denen möglicherweise demnächst Dualcore-Atom-CPUs werkeln. So kommt dann eins zum anderen, oder?!</p>
<p>Na, wir werden sehen, wie sich das Ganze entwickelt. Ich werde mir auf dem Intel Developer Forum auf jeden Fall die Zeit nehmen, die Rapidmind-Produkte aus nächster Nähe zu begutachten und mit den zuständigen Entwicklern über meine Vermutungen zu reden. Und vielleicht gibt&#8217;s ja dann auch schon mehr in Sachen Atom-Prozessor zu berichten.</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-und-rapidmind-gemeinsam-in-sachen-multicore/08/2009/&via=sw_devtwits&text=Intel und Rapidmind gemeinsam in Sachen 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/intel-und-rapidmind-gemeinsam-in-sachen-multicore/08/2009/&via=sw_devtwits&text=Intel und Rapidmind gemeinsam in Sachen 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/intel-und-rapidmind-gemeinsam-in-sachen-multicore/08/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mac OS X 10.6 erleichtert die Multicore-Programmierung</title>
		<link>http://www.software-dev-blog.de/mac-os-x-106-erleichtert-die-multicore-programmierung/08/2009/</link>
		<comments>http://www.software-dev-blog.de/mac-os-x-106-erleichtert-die-multicore-programmierung/08/2009/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 16:06:42 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1152</guid>
		<description><![CDATA[Anfang Dezember vorigen Jahres hab ich schon mal ein wenig über die nächste OS-Version des Apple-Betriebssytems geschrieben. Und gestern erreichte mich eine E-Mail mit folgendem Inhalt: Hallo, vor wenigen Minuten solltest Du die Pressemeldung zu Mac OS X Snow Leopard bekommen haben. Am Freitag, 28. August, etwas früher als erwartet, ist die neue Version des [...]]]></description>
			<content:encoded><![CDATA[<p>Anfang Dezember vorigen Jahres hab ich schon mal ein wenig über die nächste OS-Version des Apple-Betriebssytems <a title="Apple Mac OS X 10.6 mit hohem Multicore-Potenzial" href="http://www.software-dev-blog.de/apple-mac-os-x-106-mit-hohem-multicore-potenzial/12/2008/">geschrieben</a>. Und gestern erreichte mich eine E-Mail mit folgendem Inhalt:</p>
<blockquote><p>Hallo,</p>
<p>vor wenigen Minuten solltest Du die Pressemeldung zu Mac OS X Snow Leopard bekommen haben. Am Freitag, 28. August, etwas früher als erwartet, ist die neue Version des fortschrittlichsten Betriebssystems der Welt erhältlich!</p>
<p>Wir möchten Dich noch am selben Tag zu einem kurzen Pressebriefing zur neuen Version des Desktop-Betriebssystems einladen, um Dir einige der Wichtigsten der neuen Verbesserungen und Technologien vorzustellen &#8211; von &#8216;Grand Central Dispatch&#8217; (GCD) bis zur serienmäßigen Unterstützung für Microsoft Exchange.</p>
<p>Lust und Zeit aus erster Hand alles über Mac OS X Snow Leopard zu erfahren, mit den Fachleuten zu diskutieren und selbstverständlich im Anschluss an das Briefing eine Version der neuen Software mitzunehmen?!</p></blockquote>
<p>Ob ich Lust und Zeit habe?! Na klar habe ich. Denn ich will endlich ein wenig mehr wissen über die geplanten Features des Schneeleoparden, wenngleich es kein ganz großes Update wird. Aber eins steht schon fest: Apple spendiert seiner sechsten OS-X-Version ein neues Tool, mit dem das Programmieren von Multicore-Anwendungen einfacher werden soll: <strong>Grand Central Dispatch (GCD)</strong>.</p>
<p>GCD wird Bestandteil des OS-X-Kernels sein und damit nicht anwendungs-, sondern betriebssystem-nah arbeiten. Und das wiederum soll eine Vereinfachung der Multicore-Programmierung mit sich bringen, da nicht mehr einzelne Multithread-Anwendungen aufeinander abgestimmt werden müssen. Hierfür soll GCD die globale Verwaltung der notwendigen Threads übernehmen und nicht mehr benötigte Ressourcen automatisch freigeben.</p>
<p><span id="more-1152"></span>Aber für all diese Verbesserungen braucht es natürlich ein wenig Wissen und diverse <a title="Videocast: So funktioniert Parallel Studio" href="http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/">Tools</a>, mit denen sich vor allem das Laufzeitverhalten parallel ablaufender Anwendungen untersuchen lässt. Hiefür bietet Apple seinen Entwicklern beispielsweise ein Debugger-Tool, das in die Entwicklerumgebung Xcode integriert ist. Oder das Analysetool &#8220;Instruments&#8221;, mit dem man zur Laufzeit in GCD hineingucken kann, um mögliche Schwachstellen oder Programmierfehler aufzudecken. Damit soll es sogar möglich sein, Warteschlangen zu untersuchen, und das auf Code-Ebene.</p>
<p>Dann bin ich schon mal sehr gespannt auf den Freitag und was Apple zu Snow Leopard zu erzählen hat. Und mit etwas Glück erfahre ich vom anwesenden Produktmanager mehr über GCD und ob es <a title="Mit Intel Thread Checker und Parallel Inspector Dead Locks und Konsorten aufspüren" href="http://www.software-dev-blog.de/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/">Dinge wie Dead Locks</a> und andere fiese Sachen zur Laufzeit entdeckt. Mal sehen.</p>
<p><em><strong>Lesetipp:</strong></em> Für alle, die jetzt mehr Lust bekommen haben auf Grand Central Dispatch, hat Apple <a title="Mehr zu GCD lesen" href="http://images.apple.com/euro/macosx/technology/docs/GrandCentral_TB_brief_20090608.pdf" target="_blank">ein PDF online</a> gestellt, das schon mal die wichtigsten Fragen beantwortet. Das werde ich mir beizeiten genauer ansehen. So, stay tuned &#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/mac-os-x-106-erleichtert-die-multicore-programmierung/08/2009/&via=sw_devtwits&text=Mac OS X 10.6 erleichtert die 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/mac-os-x-106-erleichtert-die-multicore-programmierung/08/2009/&via=sw_devtwits&text=Mac OS X 10.6 erleichtert die 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/mac-os-x-106-erleichtert-die-multicore-programmierung/08/2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GDC09:  Mit CryEngine für PC, XBox und Co. entwickeln</title>
		<link>http://www.software-dev-blog.de/gdc09-mit-cryengine-fur-pc-xbox-und-co-entwickeln/08/2009/</link>
		<comments>http://www.software-dev-blog.de/gdc09-mit-cryengine-fur-pc-xbox-und-co-entwickeln/08/2009/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 06:28:42 +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[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1148</guid>
		<description><![CDATA[Am gestrigen dritten und letzten Tag der Game Developers Conference 2009 hatten wir noch ein richtiges &#8220;Wow&#8221;-Erlebnis. Und zwar am Crytek-Stand, wo wir Zeuge einer Präsentation wurden, in der es um die brandneue Entwicklungsumgebung von Crytek geht. Diese versteht sich als Komplementärprodukt zur CryEngine 3, die sich ja noch im Beta-Status befindet. Was wir von [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object width="464" height="261" data="http://www.youtube.com/v/25L1Wx97CFM&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/25L1Wx97CFM&amp;hl=de&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>Am gestrigen dritten und letzten Tag der Game Developers Conference 2009 hatten wir noch ein richtiges &#8220;Wow&#8221;-Erlebnis. Und zwar am Crytek-Stand, wo wir Zeuge einer Präsentation wurden, in der es um die brandneue Entwicklungsumgebung von Crytek geht. Diese versteht sich als Komplementärprodukt zur CryEngine 3, die sich ja noch im Beta-Status befindet. Was wir von dem CryEngine-Backend sehen konnten, war mehr als beeindruckend.</p>
<p>So wird es möglich sein, ein neues Spiel für alle drei Plattformen &#8211; also PC, PlayStation und XBox &#8211; gleichzeitig zu entwickeln. Dabei lassen sich sämtliche Veränderungen an einem Level in Echtzeit testen &#8211; auf allen drei Plattformen. Das wird natürlich die notwendigen Entwicklungszeiten drastisch reduzieren. Das geht sogar so weit, dass Veränderungen an einem Gamelevel beim Ausfall einer der drei Plattformen nach deren Neustart automatisch aktualisiert werden &#8211; ein weiterer wesentlicher Vorteil für Spieleentwickler.</p>
<p>Aber auch die Integration von weiteren Tools wie <em>Photoshop</em> in die Crytek&#8217;sche Entwicklerumgebung hat es in sich: So lassen sich beispielsweise bestehende Texturen per einfachem Drag&#8217;n'Drop in die Bildbearbeitungssoftware kopieren, verändern und wieder per Mausklick in den Gamelevel übernehmen. Wirklich sehr trivial. Aber auch das Erstellen neuer Objekte wir Inseln, Felsen etc. geschieht schnell und einfach per Maus. Es war wohl noch nie leichter, Game-Designer zu sein &#8230;</p>
<p>Auf die CryEngine-3-Spiele kann man sich also wirklich freuen, wenngleich die Unterschiede zur CryEngine 2 nicht so dramatisch ausfallen werden. Außerdem müssen wir uns noch ein wenig gedulden, bis die nächste CryEngine ansteht. Denn das kann locker 2012 werden, wie wir <a title=" GDC09: Warum die nächste CryEngine erst 2012 kommt " href="http://www.software-dev-blog.de/gdc09-warum-die-nachste-cryengine-erst-2012-kommt/08/2009/">von Cevat Yetil (CEO von Crytek) erfahren haben</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/gdc09-mit-cryengine-fur-pc-xbox-und-co-entwickeln/08/2009/&via=sw_devtwits&text=GDC09:  Mit CryEngine für PC, XBox und Co. entwickeln&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-mit-cryengine-fur-pc-xbox-und-co-entwickeln/08/2009/&via=sw_devtwits&text=GDC09:  Mit CryEngine für PC, XBox und Co. entwickeln&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-mit-cryengine-fur-pc-xbox-und-co-entwickeln/08/2009/feed/</wfw:commentRss>
		<slash:comments>0</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>GDC09: So funktioniert Intel Parallel Studio</title>
		<link>http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/</link>
		<comments>http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 14:52:06 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[GDC09]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1139</guid>
		<description><![CDATA[Am zweiten Tag der Game Developers Conference 2009 in Köln bot sich die Gelegenheit, Parallel Studio aus nächster Nähe zu betrachten. Edmund Preiss nahm sich nämlich die Zeit und weihte uns in die Geheimnisse der Entwickler-Suite ein. Ok, über Parallel Studio habe ich eigentlich schon alles gesagt und geschrieben, aber in gut vier Minuten bekommt [...]]]></description>
			<content:encoded><![CDATA[<p>Am zweiten Tag der <a title="Alle GDC09-Beiträge auf einen Blick" href="http://www.software-dev-blog.de/tag/gdc09/">Game Developers Conference 2009</a> in Köln bot sich die Gelegenheit, <a title="Happy Birthday, Parallel Studio!" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a> aus nächster Nähe zu betrachten. Edmund Preiss nahm sich nämlich die Zeit und weihte uns in die Geheimnisse der Entwickler-Suite ein. Ok, über Parallel Studio habe ich eigentlich schon alles gesagt und geschrieben, aber in gut vier Minuten bekommt ihr per Video sämtliche Infos auf einen Blick. Daher: Film ab!</p>
<p><object width="464" height="261" data="http://www.youtube.com/v/BfArU1Ee9_0&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/BfArU1Ee9_0&amp;hl=de&amp;fs=1&amp;" /><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/gdc09-so-funktioniert-intel-parallel-studio/08/2009/&via=sw_devtwits&text=GDC09: So funktioniert 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/gdc09-so-funktioniert-intel-parallel-studio/08/2009/&via=sw_devtwits&text=GDC09: So funktioniert 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/gdc09-so-funktioniert-intel-parallel-studio/08/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Von Intel TBB 2.1 auf Version 2.2 unfallfrei umsteigen</title>
		<link>http://www.software-dev-blog.de/von-intel-tbb-21-auf-version-22-unfallfrei-umsteigen/08/2009/</link>
		<comments>http://www.software-dev-blog.de/von-intel-tbb-21-auf-version-22-unfallfrei-umsteigen/08/2009/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 12:16:26 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[TBB]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1115</guid>
		<description><![CDATA[Erst am Dienstag hat Intel seine neueste Version der Threading Building Blocks vorgestellt. Und gerade mal einen Tag später hat Terry Wilmarth von Intel ein Rezept online gestellt, mit dessen Hilfe der Umstieg von 2.1 auf 2.2 halbwegs unfallfrei gelingen sollte. Zu den wichtigsten Empfehlungen zählen: Da die parallel arbeitenden Warteschlangen mit der Version 2.2 [...]]]></description>
			<content:encoded><![CDATA[<p>Erst am Dienstag hat Intel seine <a title="Mehr Infos zu Intel TBB 2.2" href="http://www.software-dev-blog.de/neue-version-der-intel-threading-building-blocks/08/2009/">neueste Version der Threading Building Blocks</a> vorgestellt. Und gerade mal einen Tag später hat Terry Wilmarth von Intel <a title="Der Umstieg von Intel TBB 2.1 auf Version 2.2" href="http://software.intel.com/en-us/blogs/2009/08/05/transitioning-from-intel-tbb-21-to-22/" target="_blank">ein Rezept online gestellt</a>, mit dessen Hilfe der Umstieg von 2.1 auf 2.2 halbwegs unfallfrei gelingen sollte. Zu den wichtigsten Empfehlungen zählen:</p>
<ul>
<li>Da die parallel arbeitenden Warteschlangen mit der Version 2.2 sowohl begrenzt (bounded) als auch unbegrenzt (unbounded) arbeiten, sollten Programmierer möglichst die begrenzten Warteschlangen benutzen.</li>
</ul>
<ul>
<li>Da sich die Rückgabewerte der Vektor-Funktionen <em>grow_by</em>, <em>grow_to_at_least </em>und<em> push_back</em> geändert haben, ist der Funktionsaufruf ein wenig einfacher geworden. So wird aus <em><strong>std::copy(begin, end, x.begin()+x.grow_by(end-begin));</strong></em> jetzt <em><strong>std::copy(begin, end, x.grow_by(end-begin));</strong></em></li>
</ul>
<ul>
<li>In Intel TBB 2.2 ist <em><strong>auto_partitioner()</strong></em> als Standard gesetzt und löst damit <strong><em>simple_partitioner()</em> </strong>ab.</li>
</ul>
<ul>
<li>Der Begriff der Task-Tiefe spielt in TBB 2.2 keine Rolle mehr. Daher sind <em><strong>depth_type</strong></em> und die Methoden <em><strong>depth()</strong></em>, <em><strong>set_depth()</strong></em> und <em><strong>add_to_depth()</strong></em>.</li>
</ul>
<p>Mehr Infos und weitere Codebeispiele sind <a title="Mehr Beispiele und Infos zum Umstieg von Intel TBB 2.1 auf 2.2" href="http://software.intel.com/en-us/blogs/2009/08/05/transitioning-from-intel-tbb-21-to-22/" target="_blank">im angegebenen Blogbeitrag</a> erhältlich.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/von-intel-tbb-21-auf-version-22-unfallfrei-umsteigen/08/2009/&via=sw_devtwits&text=Von Intel TBB 2.1 auf Version 2.2 unfallfrei umsteigen&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/von-intel-tbb-21-auf-version-22-unfallfrei-umsteigen/08/2009/&via=sw_devtwits&text=Von Intel TBB 2.1 auf Version 2.2 unfallfrei umsteigen&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/von-intel-tbb-21-auf-version-22-unfallfrei-umsteigen/08/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neue Version der Intel Threading Building Blocks</title>
		<link>http://www.software-dev-blog.de/neue-version-der-intel-threading-building-blocks/08/2009/</link>
		<comments>http://www.software-dev-blog.de/neue-version-der-intel-threading-building-blocks/08/2009/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 16:00:51 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[TBB]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1112</guid>
		<description><![CDATA[Intel hat heute anlässlich der Siggraph 2009 die neueste Version 2.2 seiner C++-Bibliothek Threading Building Blocks vorgestellt. Die wesentlichen Verbesserungen im Vergleich zur Vorgängerversion 2.1 sind zwei Dinge: Lambda-Funktionen gemäß des künftigen C++0x-Standards werden jetzt vollständig unterstützt, und das Lizenzmodell wurde erheblich vereinfacht. Das soll vor allem Software-Entwicklern die Möglichkeit geben, Intel TBB bei der [...]]]></description>
			<content:encoded><![CDATA[<p>Intel hat heute anlässlich der <a title="Intel @ Siggraph 2009" href="http://software.intel.com/en-us/articles/intel-software-network-at-siggraph-2009/" target="_blank">Siggraph 2009</a> die neueste Version 2.2 seiner C++-Bibliothek <a title="Mehr Infos zu Intel TBB" href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Threading Building Blocks</a> vorgestellt. Die wesentlichen Verbesserungen im Vergleich zur Vorgängerversion 2.1 sind zwei Dinge: Lambda-Funktionen gemäß des <a title="Heise Developer Online über C++0x" href="http://www.heise.de/newsticker/C-0x-fruehestens-2010-und-ohne-Concepts--/meldung/142523" target="_blank">künftigen C++0x-Standards</a> werden jetzt vollständig unterstützt, und das Lizenzmodell wurde erheblich vereinfacht.</p>
<p>Das soll vor allem Software-Entwicklern die Möglichkeit geben, Intel TBB bei der Programmierung und Optimierung von Multithread-Sourcecode von Anfang an einsetzen zu können. So umfasst beispielsweise die Unreal Engine von Epic Games ab sofort eine kommerzielle Lizenz der Intel TBB, Autodesk stellt in Maya Intel TBB standardmäßig zur Verfügung.</p>
<p>Neben diesen Neuerungen gibt es weitere Dinge, die hinsichtlich mehr Leistung optimiert wurden:</p>
<ul>
<li>Der Taks-Scheduler wurde erheblich überarbeitet, sodass optimierte Anwendungen auf Multicore-Plattformen besser skalieren. Dazu gehören eine automatische Initialisierung bei paralleler Ausführung bestimmter Codeabschnitte und das Zusammenfassen mehrerer Tasks zu einer Gruppe.</li>
</ul>
<ul>
<li>Der Memory Allocator wurde ebenfalls verbessert, was den standardmäßigen Allocator des Betriebssystems ersetzen kann. Folge: bessere Skalierbarkeit der vorhandenen Speicherressourcen und weniger Datenkollisionen.</li>
</ul>
<ul>
<li>Darüber hinaus gibt es neue und verbesserte Konstrukte. Neu sind <em><strong>parallel_invoke</strong></em> and <em><strong>parallel_for_each, </strong></em>mit deren Hilfe sich parallele Konstrukte noch einfacher erstellen lassen. Zudem wurde das Erstellen der häufig benutzten parallel_for-Konstrukts vereinfacht.</li>
</ul>
<p>Ach ja: Für ein besseres Verständnis, was es mit den optimierten Lambda-Funktionen auf sich hat, empfehle ich zwei Blogposts (<a title="&quot;Hello Lambdas&quot; C++ 0x, a quick guide to Lambdas in C++" href="http://software.intel.com/en-us/blogs/2009/08/03/hello-lambdas-c-0x-a-quick-guide-to-lambdas-in-c/" target="_blank">Nummer 1</a> und <a title="parallel_for is easier with lambdas, Intel Threading Building Blocks" href="http://software.intel.com/en-us/blogs/2009/08/03/parallel_for-is-easier-with-lambdas-intel-threading-building-blocks/" target="_blank">Nummer 2</a>) des Kollegen Reinders, in denen er sehr anschaulich erklärt, was es bringt und was sich dadurch ändert.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/neue-version-der-intel-threading-building-blocks/08/2009/&via=sw_devtwits&text=Neue Version der Intel Threading Building Blocks&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/neue-version-der-intel-threading-building-blocks/08/2009/&via=sw_devtwits&text=Neue Version der Intel Threading Building Blocks&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/neue-version-der-intel-threading-building-blocks/08/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cilk: parallele Programmierung mit intelligenten Ansätzen</title>
		<link>http://www.software-dev-blog.de/cilk-parallele-programmierung-mit-intelligenten-ansatzen/08/2009/</link>
		<comments>http://www.software-dev-blog.de/cilk-parallele-programmierung-mit-intelligenten-ansatzen/08/2009/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 16:08:11 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Kooperation]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1111</guid>
		<description><![CDATA[Ein Besuch der Intel-Software-Blogs brachte mich auf einen Beitrag, den Parallel-Guru James Reinders unter der Überschrift &#8220;Cilk + Intel&#8221; vor kurzem veröffentlicht hat. Cilk? Noch nie gehört. Na, dann mal flugs in Wikipedia eingetippt. Dabei kam folgender Einstiegssatz zum Vorschein: Cilk is a general-purpose programming language designed for multithreaded parallel computing. Hey, dachte ich, das [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Besuch der Intel-Software-Blogs brachte mich <a title="Blogpost auf software.intel.com zu Cilk &amp; Intel" href="http://software.intel.com/en-us/blogs/2009/07/31/cilk-intel/" target="_blank">auf einen Beitrag</a>, den Parallel-Guru <a title="James Reinders auf der Intel Software Konferenz 2009" href="http://www.software-dev-blog.de/isc09-parallele-programmierung-fur-den-mainstream/04/2009/">James Reinders</a> unter der Überschrift &#8220;Cilk + Intel&#8221; vor kurzem veröffentlicht hat. Cilk? Noch nie gehört. Na, dann mal flugs in Wikipedia eingetippt. Dabei kam folgender Einstiegssatz zum Vorschein:</p>
<blockquote><p>Cilk is a general-purpose programming language designed for multithreaded parallel computing.</p></blockquote>
<p>Hey, dachte ich, das ist doch ein prima Thema für mein Blog. Also, dann schnell mal geguckt, was Cilk und Intel gemein haben (neben der Absicht, die parallele Programmierung unter C/C++ zu vereinfachen:</p>
<blockquote><p>If you&#8217;ve visited <a href="http://cilk.com/">cilk.com</a> today, you see that the Cilk engineering team has joined Intel.</p></blockquote>
<p>Das heißt also, Intel und Cilk machen jetzt gemeinsame Sache?! Sieht ganz danach aus. Denn wie sagt James zusammenfassend:</p>
<blockquote><p>Cilk technology will complement other methods we have had great success with &#8211; including <a title="Workshop: Parallel programmieren mit OpenMP" href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a> and <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/">Intel Threading Building Blocks</a>.</p></blockquote>
<p>Aha, das bedeutet, dass Cilk++ eine prima Ergänzung zu den Intel-Tools wie <a title="Happy Birthday, Parallel Studio!" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a> oder Intel TBB  bedeutet? Soll wohl so sein. Doch was steckt hinter Cilk++ und was sind die Merkmale dieser Programmiersprache?</p>
<p><span id="more-1111"></span>Nun, ähnlich wie bei OpenMP gibt es sogenannte Keywords (bei OpenMP heißen diese &#8220;Pragmas&#8221;), mit deren Hilfe sich ein seriell programmierter Quellcodeabschnitt in ein parallel ablaufendes Konstrukt verwandelt. Ein beliebtes und oft verwendetes Beispiel ist die rekursive Berechnung von Fibonacci-Zahlen, mit deren Hilfe der Mathematiker 1202 n. Chr. das Wachstum einer Kaninchenpopulation beschreiben wollte:</p>
<p>cilk int fib (int n)<br />
02 {<br />
03     if (n &lt; 2) return n;<br />
04     else<br />
05     {<br />
06        int x, y;<br />
07<br />
08        x = <em><strong>spawn</strong></em> fib (n-1);<br />
09        y = spawn fib (n-2);<br />
10<br />
11        <em><strong>sync</strong></em>;<br />
12<br />
13        return (x+y);<br />
14     }<br />
15 }</p>
<p>Die entscheidenden Schlüsselwörter lauten <strong><em>spawn</em></strong> (Zeile 8 und 9) und <em><strong>sync</strong></em> (Zeile 11). Dies Keywords sorgen dafür, dass die Funktion parallel auf zwei oder mehreren Prozessorkernen ausgeführt wird. Den Rest übernimmt die Runtime von Cilk++, die sich um das Erstellen von Threads kümmert, um das Synchronisieren derselben und um das richtige Beenden der parallel laufenden Threads. Dies ist auch der große Unterschied zu OpenMP.</p>
<p>Darüber hinaus verfügt Cilk++ über zwei weitere Keywords: <em><strong>inlet</strong></em> und <em><strong>abort</strong></em>. Inlets sind einfache Funktionen innerhalb einer Cilk-Prozedur, die den Rückgabewert einer parallelisierten Funktion übergeben. Der Witz an Inlets ist deren atomare Struktur: Soll heißen, dass diese Funktionen vom Scheduler nicht synchronisiert werden müssen, was die Fehleranfälligkeit einer derart parallelisierten Funktion minimiert. Abort beendet diese inlet-Funktionen.</p>
<p>Cilk gibt es übrigens schon ziemlich lange: Enstanden am ehrwürdigen MIT Laboratory for Computer Science, wurde es bereits 1994 zum ersten Mal erwähnt. Kein Wunder also, dass sich Intel der Dienste von Cilk Arts bedient und Cilk++ ins eigene Portfolio aufnehmen wird, um beispielsweise Parallel Studio weiter voranzubringen.</p>
<p>Ach ja: Wer mehr Insider-Wissen zu Cilk haben will. sollte auf jeden Fall deren <a title="Multicore-Blog von Cilk Arts" href="http://www.cilk.com/multicore-blog/" target="_blank">Multicore-Blog</a> besuchen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/cilk-parallele-programmierung-mit-intelligenten-ansatzen/08/2009/&via=sw_devtwits&text=Cilk: parallele Programmierung mit intelligenten Ansätzen&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/cilk-parallele-programmierung-mit-intelligenten-ansatzen/08/2009/&via=sw_devtwits&text=Cilk: parallele Programmierung mit intelligenten Ansätzen&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/cilk-parallele-programmierung-mit-intelligenten-ansatzen/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>Warum &#8220;Empire: Total War&#8221; auf Notebooks so gut läuft</title>
		<link>http://www.software-dev-blog.de/warum-empire-total-war-auf-notebooks-so-gut-lauft/07/2009/</link>
		<comments>http://www.software-dev-blog.de/warum-empire-total-war-auf-notebooks-so-gut-lauft/07/2009/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 06:37:48 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Preview]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1099</guid>
		<description><![CDATA[Die Geburtsstunde dieses Blogs hat mit der Entwicklerkonferenz GCDC 2008 zu tun, auf der ich mich gemeinsam mit dem Kollegen Papadhimas tummelte und wichtigen Köpfen der Spiele-Industrie wichtige Fragen gestellt habe. Das war vergangenes Jahr in Leipzig. Dieses Jahr geht es nach Köln, die Veranstaltung heißt GDC&#8217;09, aber die Fragen werden wieder wichtig sein. Und die [...]]]></description>
			<content:encoded><![CDATA[<p>Die Geburtsstunde dieses Blogs hat mit der <a title="Liveberichterstattung von der GCDC 2008 aus Leipzig" href="http://software.intel.com/en-us/blogs/2008/08/21/gcdc08-good-bye-and-see-ya-at-gcdc-2009/" target="_blank">Entwicklerkonferenz GCDC 2008</a> zu tun, auf der ich mich gemeinsam mit dem Kollegen <a title="Webseite von Tpages" href="http://www.tpages.de" target="_blank">Papadhimas</a> tummelte und wichtigen Köpfen der Spiele-Industrie wichtige Fragen gestellt habe. Das war vergangenes Jahr in Leipzig.</p>
<p>Dieses Jahr geht es nach Köln, die <a title="Alles über die Game Developers Conference 2009" href="http://www.gdceurope.com/" target="_blank">Veranstaltung heißt GDC&#8217;09</a>, aber die Fragen werden wieder wichtig sein. Und die Themen natürlich auch. Eine der technischen Sessions wird sich beispielsweise mit der Frage beschäftigen, warum der Spieletitel <a title="Deutsche Webseite von Empire: Total War" href="http://www.totalwar.com/empire/?t=German" target="_blank">&#8220;Empire: Total War&#8221;</a> sogar auf Notebooks mit integriertem Grafikchip spielbar ist, ohne dass dabei auf die visuellen Effekte und den Spielspaß verzichtet werden muss.</p>
<p>Ich kann es ja schon mal ein wenig vorweg nehmen: Es wird um das <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/">Intel-Tool Graphics Performance Analyzer</a> gehen, mit dessen Hilfe die Entwickler von Creative Assembly resp. Sega ihr 3D-Epos Laptop-tauglich gemacht haben. Soll heißen, es wurden Bottlenecks und andere Dinge aufgespürt, die dazu führen, dass das 3D-Abenteuer unter normalen Umständen auf einem Notebook mit Intel-Grafikchip nur unzureichend laufen würde. Mit dem Analysetool lassen sich diese Flaschenhälse identifizieren und eliminieren.</p>
<p>Wer jetzt auf den Geschmack gekommen ist und &#8220;Empire: Total War&#8221; in Aktion sehen will, sollte sich schon mal im Kalender <a title="Sessionhinweis bezüglich der Intel-Sega-Session am 18. August auf der GDC'09" href="https://www.cmpevents.com/GDCE09/a.asp?option=C&amp;V=11&amp;SessID=9917" target="_blank">den 18. August rot markieren</a>. Dann gibt es mehr Infos zu den Optimierungsarbeiten am Sega-Spieletitel. Und die 3D-Schlachten werden in Köln sicherlich auch zu sehen sein.</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-empire-total-war-auf-notebooks-so-gut-lauft/07/2009/&via=sw_devtwits&text=Warum "Empire: Total War" auf Notebooks so gut läuft&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-empire-total-war-auf-notebooks-so-gut-lauft/07/2009/&via=sw_devtwits&text=Warum "Empire: Total War" auf Notebooks so gut läuft&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-empire-total-war-auf-notebooks-so-gut-lauft/07/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paralleltesten mit Visual Studio: Parallel Debugger Extension</title>
		<link>http://www.software-dev-blog.de/paralleltesten-mit-visual-studio-parallel-debugger-extension/07/2009/</link>
		<comments>http://www.software-dev-blog.de/paralleltesten-mit-visual-studio-parallel-debugger-extension/07/2009/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 08:51:26 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[DE]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Whitepaper]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1097</guid>
		<description><![CDATA[Klar, Microsofts Visual Studio bietet eine erprobte Debugging-Umgebung, mit der sich Anwendungen auf mögliche Fehler untersuchen lassen. Allerdings gilt dies nur für sequentiell programmierte Software, potenziellen Multithread-Problemen kommt man mit diesem Tool nicht auf die Schliche. Hierfür bietet sich ein Tool an, das Teil des Parallel Studio ist und sich Parallel Composer nennt. Teil des [...]]]></description>
			<content:encoded><![CDATA[<p>Klar, Microsofts Visual Studio bietet eine erprobte Debugging-Umgebung, mit der sich Anwendungen auf mögliche Fehler untersuchen lassen. Allerdings gilt dies nur für sequentiell programmierte Software, potenziellen Multithread-Problemen kommt man mit diesem Tool nicht auf die Schliche. Hierfür bietet sich ein Tool an, das Teil des <a title="Happy Birthday, Parallel Studio!" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a> ist und sich <a title="Mehr Infos zum Parallel Composer" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Composer</a> nennt. Teil des Composers wiederum ist die Parallel Debugger Extension, die sich als Erweiterung in die Debugger-Umgebung von Visual Studio &#8220;einklinkt&#8221;.</p>
<p>Die Parallel Debugger Extension weist folgende Hauptmerkmale auf:</p>
<ul>
<li>Das Aufspüren von Data Sharing, also der gemeinsame Datenzugriff mehrerer Threads auf eine identische Speicherzelle. Hierfür sind die Schalter <strong><em>/debug:parallel</em></strong> und <em><strong>/Qopenmp</strong></em> am Anfang des Quellcodes notwendig, die dem Compiler mitteilen, den Sourcecode entsprechend zu kompilieren.</li>
</ul>
<ul>
<li>Mit der Funktion Re-entrant Function Call Detection lässt sich die Anwendung anhalten, sobald zwei Threads gleichzeitig auf ein und dieselbe Funktion zugreifen.</li>
</ul>
<ul>
<li>Der direkte Zugriff auf sämtliche SSE-Register führt zu einem verbesserten Verständnis, was bei der Programmausführung auf Prozessorebene stattfindet.</li>
</ul>
<ul>
<li>Falls beim Kompilieren des Quellcodes der Schalter <em><strong>/Qopenmp</strong></em> gesetzt wurde, hat man per Debugger Extension Zugriff auf sämtliche Datenstrukturen wie Tasks, wartende Tasks, Task-Locks etc.</li>
</ul>
<ul>
<li>Eine mithilfe von OpenMP-Pragmas parallelisierte Anwendung lässt sich mit wenigen Mausklicks als sequentielles Programm ausführen und debuggen, was die Fehlersuche eindeutiger macht: Haben sich die Bugs beim Parallelisieren eingeschlichen oder basieren sie auf grundsätzlichen Schwächen im Programmdesign?</li>
</ul>
<p>Dies ist übrigens nur einer kleiner Auschnitt der Funktionsvielfalt der Parallel Debugger Extension. Falls ihr mehr dazu wissen wollt, <a title="Mehr Infos zur Intel Parallel Debugger Extension und Downloads diverser Dokumente" href="http://software.intel.com/en-us/articles/parallel-debugger-extension/" target="_blank">empfehle ich den Download des 29-seitigen PDF-Dokuments</a>, das sehr detailliert auf die Debugger-Erweiterung des Parallel Composer eingeht.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/paralleltesten-mit-visual-studio-parallel-debugger-extension/07/2009/&via=sw_devtwits&text=Paralleltesten mit Visual Studio: Parallel Debugger Extension&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/paralleltesten-mit-visual-studio-parallel-debugger-extension/07/2009/&via=sw_devtwits&text=Paralleltesten mit Visual Studio: Parallel Debugger Extension&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/paralleltesten-mit-visual-studio-parallel-debugger-extension/07/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vergleich: Intel Thread Checker versus Parallel Inspector</title>
		<link>http://www.software-dev-blog.de/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/</link>
		<comments>http://www.software-dev-blog.de/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 14:54:27 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1095</guid>
		<description><![CDATA[Auf dem Intel Software Network habe ich eine interessante Gegenüberstellung gefunden, die auf einen Blick zeigt, worin sich die Tools Intel Thread Checker und Intel Parallel Inspector unterscheiden. Daraus ergeben sich interessante Aspekte: Intel Parallel Inspector ist aus dem Thread Checker entstanden und jetzt ein Teil der Entwicklersuite Parallel Studio. Damit ist klar, dass sich [...]]]></description>
			<content:encoded><![CDATA[<p>Auf dem Intel Software Network habe ich <a title="Intel Thread Checker versus Parallel Inspector" href="http://software.intel.com/en-us/articles/intelr-parallel-inspector-comparison-with-intelr-thread-checker/" target="_blank">eine interessante Gegenüberstellung</a> gefunden, die auf einen Blick zeigt, worin sich die Tools <a title="Intel Thread Checker" href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Intel Thread Checker</a> und <a title=" Parallel-Studio-Serie (3): mehr Infos zum Parallel Inspector " href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Intel Parallel Inspector</a> unterscheiden. Daraus ergeben sich interessante Aspekte:</p>
<ul>
<li>Intel Parallel Inspector ist aus dem Thread Checker entstanden und jetzt ein Teil der Entwicklersuite <a title=" Happy Birthday, Parallel Studio! " href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a>. Damit ist klar, dass sich Parallel Inspector nur in Verbindung mit Visual Studio 2005 oder 2008 unter Windows nutzen lässt. Thread Checker hingegen ist ein Stand-Alone-Tool, das man sowohl unter Windows als auch mit Linux einsetzen kann.</li>
</ul>
<ul>
<li>Beide Werkzeuge eignen sich für das Aufspüren von möglichen <a title="Exkurs: Von Dead Locks und Data Races" href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Data Races und Dead Locks</a>, vor allem für parallel programmierte Anwendungen. Darüber hinaus spürt Parallel Inspector mögliche Speicherprobleme auf.</li>
</ul>
<ul>
<li>Parallel Inspector hat natürlich von den Fehlern des Thread Checkers gelernt, ist daher schneller einsetzbar, generiert bei der Analyse der Anwendung weniger Overhead und sorgt für skalierbare Tests, ohne dass die Anwendung vorher serialisiert werden muss.</li>
</ul>
<ul>
<li>Thread Checker basiert auf einem Lizenzmodell, das den Einsatz des Tools auf mehreren Rechnern erlaubt, aber immer nur auf einem PC zur selben Zeit. Zudem bietet Intel für den Checker unbegrenzten Premier-Support und für die Dauer eines Jahres kostenlose Produkt-Updates.</li>
</ul>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/&via=sw_devtwits&text=Vergleich: Intel Thread Checker versus Parallel Inspector&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/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/&via=sw_devtwits&text=Vergleich: Intel Thread Checker versus Parallel Inspector&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/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux-Debugger für C++ und Fortran mit grafischer Oberfläche</title>
		<link>http://www.software-dev-blog.de/linux-debugger-fur-c-und-fortran-mit-grafischer-oberflache/07/2009/</link>
		<comments>http://www.software-dev-blog.de/linux-debugger-fur-c-und-fortran-mit-grafischer-oberflache/07/2009/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 10:43:34 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1093</guid>
		<description><![CDATA[Es soll ja Leute geben, die (a) nicht viel von grafisch basierten Oberflächen halten und (b) nicht wissen, dass die Intel-Linux-Compiler für C/C++ und Fortran einen solchen GUI-Debugger mitbringen. Dieselben konnte ich mir vorletzte Woche während meines Besuchs bei Intel in Ulm ansehen und mir ein Bild von ihren Fähigkeiten machen. Und das kam dabei [...]]]></description>
			<content:encoded><![CDATA[<p>Es soll ja Leute geben, die (a) nicht viel von grafisch basierten Oberflächen halten und (b) nicht wissen, dass die Intel-Linux-Compiler für C/C++ und Fortran einen solchen GUI-Debugger mitbringen. Dieselben konnte ich mir vorletzte Woche <a title=" Intel Ulm und die Linux-Debugger-Tools " href="http://www.software-dev-blog.de/intel-ulm-und-die-linux-debugger-tools/07/2009/">während meines Besuchs bei Intel in Ulm</a> ansehen und mir ein Bild von ihren Fähigkeiten machen. Und das kam dabei heraus (mehr dazu folgt noch diese Woche mit weiteren Details und ein paar interessanten Bildern).</p>
<p>Das absolute Highlight des GUI-basierten Linux-Debuggers von Intel ist die Möglichkeit, einzelne Breakpoints zu setzen, zu speichern und bei Bedarf das so markierte Projekt wieder aufzurufen. Das ist vor allem dann hilfreich, wenn sich die Umgebungsentwicklung mal verabschieden sollte oder man andere Dinge zwischendurch zu tun hat, bevor man sich wieder dem Debuggen zuwendet. Ein Breakpoint wird dank der grafischen Bedieneroberfläche per doppeltem Mausklick erzeugt &#8211; und genauso schnell wieder entfernt. Das macht das Testen von C/C++ und Fortran-Projekten wirklich sehr komfortabel.</p>
<p>Aber auch das Testen parallel programmierter Projekte unter Linux geschieht mit dem Debugger von Intel recht überzeugend. So kann man in Echtzeit eine komplette Anwendung (oder Teile davon) auf mögliche Data Races hin untersuchen. Genau genommen identifiziert der Debugger Szenarien, in denen es zu gemeinsamen Datenzugriffen kommen kann, was vor allem das konkurrierende Speichern zweier Threads betrifft. Der Programmierer oder Entwickler muss dann selbst entscheiden, ob dieser parallele Schreibzugriff gewollt ist oder im schlimmsten Fall einen Absturz der Anwendung zur Folge haben kann.</p>
<p><span id="more-1093"></span>Das Aufspüren von potenziellen Data Races kann übrigens ohne Breakpoint erfolgen. In diesem Fall muss man im Debugger die Option &#8220;Stop on Event&#8221; einstellen, und schon hält das Programm genau an der Stelle an, wo der &#8220;Crash&#8221; erfolgt. Zur schnellen Fehlerfindung wird die verursachende Stelle im Quellcode angezeigt. Dies können einzelne Adressen sein, aber auch vollständige Funktionen im Sourcecode.</p>
<p>Neben der klassischen Programmierung unterstützt der Linux-Debugger von Intel auch <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a>, was immer öfter bei der parallelen Programmierung eingesetzt wird. In diesem Fall geht es vor allem um ein Überwachen des Threadpools: Sind sämtliche Threads, die sich dort befinden, thread-sicher und wenn nicht, an welchen Stellen kann es zu Data Races kommen?</p>
<p><em>Ach ja:</em> Ein wichtiger Tipp beim parallelen Programmieren lautet: <a title=" Fünf Multicore-Programmierregeln auf einen Blick " href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">Denke von Anfang an parallel</a>, entwerfe parallel, programmiere aber zuerst seriell. Dies stellt sicher, dass der sequentielle Quellcode fehlerfrei läuft und sich anschließend die parallelen Konstrukte einbauen lassen &#8211; beispielsweise mithilfe von OpenMP. In diesem Fall müssen für das serielle Debuggen nicht sämtliche OpenMP-Pragmas entfernt oder deaktiviert werden. Der Debugger führt nämlich die parallelen Konstrukte auf einem einzigen Thread aus, so als ob es sich um eine Single-Core-Maschine handeln würde.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/linux-debugger-fur-c-und-fortran-mit-grafischer-oberflache/07/2009/&via=sw_devtwits&text=Linux-Debugger für C++ und Fortran mit grafischer Oberfläche&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/linux-debugger-fur-c-und-fortran-mit-grafischer-oberflache/07/2009/&via=sw_devtwits&text=Linux-Debugger für C++ und Fortran mit grafischer Oberfläche&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/linux-debugger-fur-c-und-fortran-mit-grafischer-oberflache/07/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EXASolution ermöglicht Datenanalysen in Quasi-Echtzeit</title>
		<link>http://www.software-dev-blog.de/exasolution-ermoglicht-datenanalysen-in-quasi-echtzeit/07/2009/</link>
		<comments>http://www.software-dev-blog.de/exasolution-ermoglicht-datenanalysen-in-quasi-echtzeit/07/2009/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 14:15:39 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Referenz]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1091</guid>
		<description><![CDATA[Über Exasol habe ich in der Vergangenheit ja schon berichtet. Letzte Woche dann wurde aus der Theorie Praxis, und zwar in Form einer Roadshow, auf der Anwender zu Wort und eine kurze Demo zum Einsatz kamen. Zu den Präsentierenden gehörte Dr. Carsten Bange vom Marktforschungsunternehmen BARC, der eine Menge interessanter Fakten in Sachen Datenaufkommen der [...]]]></description>
			<content:encoded><![CDATA[<p>Über Exasol habe ich in der Vergangenheit ja schon berichtet. Letzte Woche dann wurde aus der Theorie Praxis, und zwar in Form einer <a title="Exasol Roadshow 2009 mit Multicore-Power" href="http://www.software-dev-blog.de/exasol-roadshow-2009-mit-multicore-power/06/2009/">Roadshow</a>, auf der Anwender zu Wort und eine kurze Demo zum Einsatz kamen.</p>
<p>Zu den Präsentierenden gehörte Dr. Carsten Bange vom <a title="BARC GmbH" href="http://www.barc.de/" target="_blank">Marktforschungsunternehmen BARC</a>, der eine Menge interessanter Fakten in Sachen Datenaufkommen der Gegenwart und Zukunft zu erzählen hatte. So generierte laut Bange Wal Mart im Jahr 1992 gerade mal ein Terabyte Daten, 2007 waren es schon 1.000 Terabyte &#8211; Tendenz stark steigend.</p>
<p>Die Kurzdarstellungen der Herren Michael Kempke von IMS Healthcare und Frank Stoll von Quelle gewährten ebenso interessante Einblicke in ihre Zusammenarbeit mit Exasol und den Einsatz von deren Datenbankanwendung EXASolution. So analysiert IMS beispielsweise mithilfe von EXASolution 960 Millionen Rezeptdaten innerhalb von schlappen 5 bis 12 Minuten.</p>
<p>Eines hatten die drei Referenzkunden also gemein: <a title="Mehr Infos zu EXASolution" href="http://www.exasol.com/exasolution.html" target="_blank">EXASolution</a> hat ihnen bei der Lösung ihrer Probleme wirklich weitergeholfen. Denn neben der wohl recht unproblematischen Implementierung (parallel zur bestehenden Infrastruktur) geht es bei der Exasol-Lösung vor allem um Tempo.</p>
<p><span id="more-1091"></span>So ähnelten die genannten Zahlen einander frappierend: Wartete man mit der vorherigen DB-Lösung mehrere Stunden auf ein brauchbares Ergebnis, nimmt dieselbe Operation dank EXASolution nur wenige Minuten in Anspruch. Ein erheblicher Wettbewerbsvorteil, in der Tat. Damit rückt die immer wichtiger werdende Echtzeit-Verarbeitung von großen Datenbeständen ein gutes Stück näher.</p>
<p>Woher aber kommt diese Überlegenheit von EXASolution gegenüber den Mitbewerbern? Nun, da ist zum einen die sehr gute Skalierbarkeit zu nennen. Der Datenbanklösung ist nämlich völlig egal, ob sie auf einem oder Dutzenden von Clustern läuft. Damit sind der <a title="Anwendungsbeispiele für EXASolution" href="http://www.exasol.com/anwendungsgebiete.html" target="_blank">jeweiligen Anwendung</a> so gut wie keine Grenzen gesetzt.</p>
<p>Zudem hat Exasol schon früh darauf geachtet, dass die Datenbankabfragen nicht nur innerhalb eines Clusters parallel ausgeführt werden, sondern dass EXASolution auch das Multicore-Potenzial <a title="3D-Demo “Smoke” zeigt das wahre Core i7-Potenzial" href="http://www.software-dev-blog.de/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/">heutiger und zukünftiger Prozessoren</a> optimal ausnutzt. Hierfür haben die Exasol-Entwickler sogar zu (erlaubten) Hilfsmitteln wie <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</a> gegriffen, mit dessen Hilfe Hotspots und kritische Abschnitte einer Anwendung gefunden und eliminiert werden können.</p>
<p>All diese Anstregungen haben sich offensichtlich gelohnt: Denn neben zufriedenen Kunden (zu denen übrigens auch Xing gehört) erreicht EXASolution beim anerkannten HPC-Benchmark <a title="Mehr Infos zum TPC-H-Benchmark" href="http://www.exasol.com/benchmarks.html" target="_blank">TPC-H</a> in allen Bereichen erstaunliche Bestwerte, hinter denen sich die Konkurrenz eigentlich nur beschämt verstecken kann. Und das Preis-Leistungs-Verhältnis der Datenbanklösung kann sich ebenfalls sehen lassen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/exasolution-ermoglicht-datenanalysen-in-quasi-echtzeit/07/2009/&via=sw_devtwits&text=EXASolution ermöglicht Datenanalysen in Quasi-Echtzeit&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/exasolution-ermoglicht-datenanalysen-in-quasi-echtzeit/07/2009/&via=sw_devtwits&text=EXASolution ermöglicht Datenanalysen in Quasi-Echtzeit&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/exasolution-ermoglicht-datenanalysen-in-quasi-echtzeit/07/2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GamesCamp Munich 09: 3D-Games und Multicore</title>
		<link>http://www.software-dev-blog.de/gamescamp-munich-09-3d-games-und-multicore/06/2009/</link>
		<comments>http://www.software-dev-blog.de/gamescamp-munich-09-3d-games-und-multicore/06/2009/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 12:42:22 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Techsession]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1072</guid>
		<description><![CDATA[In etwa einer halben Stunde wird Aaron Coday die Bühne betreten und eine ganze Menge über das Thema &#8220;Parallelprogrammierung und 3D-Games&#8221; erzählen. Dabei geht es um die Methoden und Techniken, die zum Einsatz kommen sollten, um ein Spiel in C++ nicht sequenziell, sondern parallel zu programmieren. Dann klappt&#8217;s nämlich auch mit den schönen Bildern, intelligenten [...]]]></description>
			<content:encoded><![CDATA[<p>In etwa einer halben Stunde wird Aaron Coday die Bühne betreten und eine ganze Menge über das Thema &#8220;Parallelprogrammierung und 3D-Games&#8221; erzählen. Dabei geht es um die Methoden und Techniken, die zum Einsatz kommen sollten, um ein Spiel in C++ nicht sequenziell, sondern parallel zu programmieren. <a title=" 3D-Demo “Smoke” zeigt das wahre Core i7-Potenzial " href="http://www.software-dev-blog.de/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/">Dann klappt&#8217;s nämlich</a> auch mit den schönen Bildern, intelligenten Gegnern, extremen Wetterverhältnissen und anderen Dingen.</p>
<p>Außerdem wird Aaron wohl das ein oder andere über <a title="Mehr Infos zu Larrabee" href="http://www.software-dev-blog.de/eurographics-2009-techsession-larrabee/04/2009/">Larrabee</a> erzählen, die zukünftige GPCPU-Lösung von Intel, mit der sich sehr parallel und sehr schnell nicht nur 3D-Berechnungen, sondern auch ganz allgemeine Aufgaben durchführen lassen.</p>
<p>Deshalb: Kommet doch alle um 15 Uhr in den Raum Quantm auf dem GamesCamp Munich 2009.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/gamescamp-munich-09-3d-games-und-multicore/06/2009/&via=sw_devtwits&text=GamesCamp Munich 09: 3D-Games und 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/gamescamp-munich-09-3d-games-und-multicore/06/2009/&via=sw_devtwits&text=GamesCamp Munich 09: 3D-Games und 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/gamescamp-munich-09-3d-games-und-multicore/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maxon-Multithreading: Darum ist Cinema 4D so performant</title>
		<link>http://www.software-dev-blog.de/maxon-multithreading-darum-ist-cinema-4d-so-performant/06/2009/</link>
		<comments>http://www.software-dev-blog.de/maxon-multithreading-darum-ist-cinema-4d-so-performant/06/2009/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 07:24:17 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Referenz]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1069</guid>
		<description><![CDATA[Maxon ist vor allem bei 3D-Designern ziemlich bekannt, denn mit Cinema 4D steht dieser Anwenderschar seit mehr als 15 20 Jahren ein Modeling- und Renderingtool zur Verfügung, mit dem sich hoch komplexe 3D-Gebilde erschaffen lassen. Aber auch Hardware-Redaktionen können mit dem Namen Maxon etwas anfangen: So kann man mit dem kostenlosen Benchmark-Tool CineBench die Rechen- [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Maxon-Webseite" href="http://www.maxon.net/index.php?id=190&amp;L=2" target="_blank">Maxon</a> ist vor allem bei 3D-Designern ziemlich bekannt, denn mit <em><a title="Mehr Infos zu Cinema 4D" href="http://www.maxon.net/index.php?id=18&amp;L=2" target="_blank">Cinema 4D</a></em> steht dieser Anwenderschar seit mehr als <span style="text-decoration: line-through;">15</span> 20 Jahren ein Modeling- und Renderingtool zur Verfügung, mit dem sich hoch komplexe 3D-Gebilde erschaffen lassen. Aber auch Hardware-Redaktionen können mit dem Namen Maxon etwas anfangen: So kann man mit dem kostenlosen Benchmark-Tool <em><a title="Mehr Infos und Download-Link zu CineBench" href="http://www.maxon.net/index.php?id=162&amp;L=2" target="_blank">CineBench</a></em> die Rechen- und Grafikleistung eines PCs oder Notebooks testen. Dabei ermittelt <em>CineBench</em> auch die Multicore-Fähigkeiten von Rechnern, indem automatisch alle verfügbaren Prozessorkerne ausgelastet werden. Ein prima Multithreading-Testtool also.</p>
<p>Um <em>Cinema 4D</em> multicore-tauglich zu machen, unternimmt Maxon schon seit vielen Jahren größte Anstrengungen. Das geschieht bereits seit Mitte der 90er Jahre, lange bevor die die ersten Prozessoren mit Hyperthreading auf den Markt kamen. Schon damals galt die Parallelprogrammierung als eine nicht ganz triviale Disziplin, da man vor allem die gemeinsamen Speicherzugriffe und die daraus resultierenden Probleme wie Dead Locks und Data Races in den Griff bekommen musste. Mit Erfolg, wie man an <em>Cinema 4D</em> gut sehen kann.</p>
<p>Doch was hat Maxon alles im Laufe der Jahre getan, damit die Anwendungen auf einem Multicore-System optimal skalieren? Dazu hat Tilo Kühn, Senior Software Developer bei Maxon, eine recht einfache Erklärung parat: Man muss als Entwickler vor allem dafür sorgen, dass die Datenstrukturen von Anfang an so angelegt werden, dass beim parallelen Ausführen der Anwendung die Anzahl der Synchronisation so gering wie möglich ausfällt und es nicht zu Data Races oder ähnlichen Verklemmungen kommen kann. Denn jede Datensynchronisation bedeutet einen Mehraufwand, der den Programmablauf unnötig stört und behindert.</p>
<p><span id="more-1069"></span>Das gilt zumindest für Systeme mit bis zu acht Prozessorkernen. Darüber hinaus weiß Maxon bereits heute, dass de Programmiertechniken weiter verbessert werden müssen, um in Zukunft auch auf Systemen zu skalieren, die mehr als acht Cores bieten. Allerdings sind die Leute bei Maxon schon eine ganze Weile an dem Thema dran, sodass möglicherweise mit der nächsten Version von <em>Cinema 4D</em> ein neues Framework zum Einsatz kommen wird. Das Ganze wird dann wohl auf Basis 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 Version 11.1 </a>geschehen.</p>
<p>Interessant ist übrigens auch die Aufwandseinschätzung, was das Parallelisieren von Schleifen betrifft, wie sie beim Rendern von 3D-Gebilden häufig angewandt werden: So benötigt man für das Umstellen von sequenziellen auf parallele For-Schleifen mit Bordmitteln (APIs, Pthreads) rund einen Tag, mithilfe von <a title="Workshop: parallel Programmieren mit OpenMP" href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP-Pragmas</a> ist dieselbe Arbeit innerhalb von gut einer Stunde erledigt &#8211; zumindest für einen ersten aussagekräftigen Test. Daher setzt Maxon bei der Anwendungsentwicklung an dedizierten Stellen auf OpenMP.</p>
<p>Daneben verwendet Maxon schon seit langem <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 bestimmte Aspekte des Programmablaufs besser verstehen zu können. Hier kommt unter anderem der CallGraph zum Einsatz, um die Zusammenhänge des objektorientierten Programmierens transparenter und damit greifbarer zu machen. VTune würde bei Maxon sogar noch öfter genutzt, wenn der Overhead, der beim Sampling des Sourcecodes entsteht, geringer wäre. Wie gut, dass sich Intel dieser Herausforderung in Form des <a title="Happy Birthday, Parallel Studio!" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studios</a> und des darin enthaltenen <a title="Parallel-Studio-Serie (3): mehr Infos zum Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Parallel Inspectors</a> erfolgreich gestellt hat. Der Inspector basiert nämlich auf VTune, allerdings in einer schlanken Fassung, die deutlich weniger Overhead produziert.</p>
<p>Ebenfalls zum Einsatz kommt bei Maxon der <a title="Thread Profiler: Parallelisierte Anwendungen grafisch testen" href="http://www.software-dev-blog.de/thread-profiler-parallelisierte-anwendungen-grafisch-testen/02/2009/">Thread Profiler</a>. Was Tilo Kühn an dem Tool besonders mag ist die sehr anschauliche, grafische Darstellung der zeitbasierten Thread-Abhängigkeiten. Auf diesem Weg lassen sich ganz spezielle Codeabschnitte untersuchen, indem man dem Profiler mitteilt, an welcher Stelle mehrere Theads parallel ausgeführt werden. Damit lassen sich relativ einfach mögliche Verklemmungen während des Programmablaufs aufspüren. Aber auch gegenseitige Abhängigkeiten von Threads kann man mit dem Thread Checker grafisch darstellen.</p>
<p>Das verlangt doch geradezu nach einem Einsatz des Parallel Studio bei Maxon, oder?! Was auch passieren wird, wie mir Tilo Kühn glaubhaft versicherte. Na dann: Go parallel!</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-multithreading-darum-ist-cinema-4d-so-performant/06/2009/&via=sw_devtwits&text=Maxon-Multithreading: Darum ist Cinema 4D so performant&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-multithreading-darum-ist-cinema-4d-so-performant/06/2009/&via=sw_devtwits&text=Maxon-Multithreading: Darum ist Cinema 4D so performant&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-multithreading-darum-ist-cinema-4d-so-performant/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Surf-Tipp: Parallel-Studio-Artikel kostenlos downloaden</title>
		<link>http://www.software-dev-blog.de/surftipp-parallel-studio-artikel-kostenlos-downloaden/06/2009/</link>
		<comments>http://www.software-dev-blog.de/surftipp-parallel-studio-artikel-kostenlos-downloaden/06/2009/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 16:50:48 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Basics]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1068</guid>
		<description><![CDATA[Der werte Kollege Preiss von Intel war mal wieder fleißig und hat zur Parallelisierungssuite Parallel Studio einen kleinen, aber feinen Artikel erstellt. Und zwar für das Fachmagazin Elektronik Industrie, das den Beitrag kostenlos zum Download anbietet. Für aufmerksame Leser des Software Dev Blogs werden sich nicht sonderlich viele Neuigkeiten aus dem Beitrag ableiten lassen, aber [...]]]></description>
			<content:encoded><![CDATA[<p>Der werte Kollege Preiss von Intel <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">war mal wieder fleißig</a> und hat zur Parallelisierungssuite <a title="Mehr Infos zu Parallel Studio" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a> einen kleinen, aber feinen Artikel erstellt. Und zwar für das Fachmagazin <em>Elektronik Industrie</em>, das den Beitrag <a title="Hier könnt ihr den Parallel-Studio-Artikel kostenlos downloaden" href="http://www.all-electronics.de/article/39611.html" target="_blank">kostenlos zum Download</a> anbietet.</p>
<p>Für aufmerksame Leser des Software Dev Blogs werden sich nicht sonderlich viele Neuigkeiten aus dem Beitrag ableiten lassen, aber in seiner Abgeschlossenheit trägt der Artikel doch sehr zum Verständnis von Parallel Studio bei. Zudem handelt es sich um ein PDF-Dokument, das sich sogar ausdrucken lässt. Für die analogen Zeitgenossen unter uns.</p>
<p>Der Artikel umfasst drei Seiten und geht recht detailliert auf die einzelnen Komponenten ein, also <a title="mehr Infos zum Parallel Composer" href="../serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Composer</a>, <a title="ISC’09: Intel Parallel Inspector im Detail" href="../isc09-intel-parallel-inspector-im-detail/04/2009/">Parallel Inspector</a> und <a title="ISC’09: Intel Parallel Amplifier im Detail" href="../isc%E2%80%9909-intel-parallel-amplifier-im-detail/04/2009/">Parallel Amplifier</a>. Lustigerweise beginnt der Beitrag mit dem <a title=" Parallel Studio: Das leistet der Parallel Advisor Lite " href="http://www.software-dev-blog.de/parallel-studio-das-leistet-der-parallel-advisor-lite/05/2009/">Parallel Advisor</a>. Dieses Tool wird erst in der nächsten Version zum Parallel Studio gehören, kann allerdings heute schon als eine Art Techdemo <a title="Hier könnt ihr Parallel Advisor Lite kostenlos downloaden" href="http://software.intel.com/en-us/articles/intel-parallel-advisor-lite/" target="_blank">kostenlos ausprobiert</a> werden.</p>
<p>Schön an dem Parallel-Studio-Beitrag sind die praxisorientierten Einblicke, die man anhand der eingefügten Bilder gewinnen kann. Schade ist allerdings, dass diese teilweise recht klein geraten sind. Und ein, zwei Codebeispiele hätten dem Artikel zu ein wenig mehr Pfiff verholfen. Na ja, beim nächsten Mal dann, ok?!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/surftipp-parallel-studio-artikel-kostenlos-downloaden/06/2009/&via=sw_devtwits&text=Surf-Tipp: Parallel-Studio-Artikel kostenlos downloaden&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/surftipp-parallel-studio-artikel-kostenlos-downloaden/06/2009/&via=sw_devtwits&text=Surf-Tipp: Parallel-Studio-Artikel kostenlos downloaden&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/surftipp-parallel-studio-artikel-kostenlos-downloaden/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Event-Preview: Parallel Tech Talk und GameCamp in München</title>
		<link>http://www.software-dev-blog.de/event-preview-parallel-tech-talk-und-gamecamp-in-munchen/06/2009/</link>
		<comments>http://www.software-dev-blog.de/event-preview-parallel-tech-talk-und-gamecamp-in-munchen/06/2009/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 09:50:49 +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[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1063</guid>
		<description><![CDATA[Der Monat Mai war in Sachen Veranstaltung aus Sicht dieses Blogs äußerst ruhig (mal vom offiziellen Verkaufsstart der Toolsuite Parallel Studio abgesehen). Dafür rührt sich im Juni wieder so einiges, und zwar in doppelter Hinsicht. Den Anfang macht der heutige Abend mit einem TechTalk im Tryp Hotel zu München. Dort werden Darius Parys von Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Der Monat Mai war in Sachen Veranstaltung aus Sicht dieses Blogs äußerst ruhig (mal vom offiziellen <a title="Parallel Studio erblickt das Licht der Welt" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Verkaufsstart der Toolsuite Parallel Studio</a> abgesehen). Dafür rührt sich im Juni wieder so einiges, und zwar in doppelter Hinsicht. Den Anfang macht der heutige Abend mit einem <a title=" Microsoft und Intel zeigen paralleles Programmieren " href="http://www.software-dev-blog.de/microsoft-und-intel-zeigen-paralleles-programmieren/04/2009/">TechTalk im Tryp Hotel zu München</a>. Dort werden <a title=" Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten " href="../interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/">Darius Parys von Microsoft</a> und Mario Deilmann von Intel eine Menge zum Thema parallele Programmierung zu erzählen haben.</p>
<p>Klar, dass es dabei vor allem um <a title=" Visual Studio 2010 Beta zum kostenlosen Download " href="http://www.software-dev-blog.de/visual-studio-2010-beta-zum-kostenlosen-download/05/2009/">Visual Studio 2010 samt .NET 4</a> gehen wird, aber natürlich auch um Parallel Studio mit <a title="mehr Infos zum Parallel Composer" href="../serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Composer</a>, <a title="ISC’09: Intel Parallel Inspector im Detail" href="../isc09-intel-parallel-inspector-im-detail/04/2009/">Parallel Inspector</a> und <a title="ISC’09: Intel Parallel Amplifier im Detail" href="../isc%E2%80%9909-intel-parallel-amplifier-im-detail/04/2009/">Parallel Amplifier</a>. Ich bin schon sehr gespannt, wer alles dort zugegen sein wird, um sich höchstpersönlich die Infos aus erster Hand zu holen.</p>
<p>Am übernächsten Wochenende folgt dann das <a title="GameCamp Munich 2009" href="http://www.gamecampmunich.de/" target="_blank">GameCamp Munich 2009</a>, auf dem ich ebenfalls anwesend sein werde, um vor Ort zu bloggen, zu netzwerken und das ein oder andere Video zu drehen. Doch ich werde nicht allein sein: Intel wird sich als Sponsor betätigen und wohl am Sonntag eine eigene Session zum Thema Visual Computing und Multicore abhalten. Das wird bestimmt sehr spannend. Außerdem wird der Kollege hoffentlich einen <a title=" 3D-Demo “Smoke” zeigt das wahre Core i7-Potenzial " href="http://www.software-dev-blog.de/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/">Demo-PC</a> dabei haben, mit dessen Hilfe er das Thema <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/">Multicore-Programmierung für 3D-Spiele</a> anschaulich vorführen kann.</p>
<p>Ach ja: Das GameCamp Munich 2009 findet in Unterschleißheim bei Microsoft statt, die ihre Räumlichkeiten für die Konferenz zur Verfügung stellen. Und was ich so gehört habe, sind noch Plätze frei. Also, worauf wartet ihr noch <a title="Hier könnt ihr euch für das GameCamp Munich 2009 anmelden" href="http://www.gamecampmunich.de/gamecamp/gamecamp-teilnehmer/" target="_blank">mit der Anmeldung</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/event-preview-parallel-tech-talk-und-gamecamp-in-munchen/06/2009/&via=sw_devtwits&text=Event-Preview: Parallel Tech Talk und GameCamp in München&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/event-preview-parallel-tech-talk-und-gamecamp-in-munchen/06/2009/&via=sw_devtwits&text=Event-Preview: Parallel Tech Talk und GameCamp in München&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/event-preview-parallel-tech-talk-und-gamecamp-in-munchen/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallel Studio: Das sagen die Betatester</title>
		<link>http://www.software-dev-blog.de/parallel-studio-das-sagen-die-beta-tester/06/2009/</link>
		<comments>http://www.software-dev-blog.de/parallel-studio-das-sagen-die-beta-tester/06/2009/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 12:37:35 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[OpenMP]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1059</guid>
		<description><![CDATA[Parallel Studio ist jetzt etwas mehr als eine Woche alt. Das schreit förmlich nach ein paar interessanten Infos rund um die Entwicklersuite. So zeigt beispielsweise ein interne Umfrage unter Betatestern: 75 Prozent aller teilnehmenden Entwickler konnten bereits nach 15 Minuten sinnvolle und nachvollziehbare Ergebnisse produzieren. Ebenfalls 75 Prozent haben Parallel Studio als &#8220;empfehlenswert&#8221; eingestuft (8 [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Happy Birthday, Parallel Studio!" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a> ist jetzt etwas mehr als eine Woche alt. Das schreit förmlich nach ein paar interessanten Infos rund um die Entwicklersuite. So zeigt beispielsweise ein interne Umfrage unter Betatestern:</p>
<ul>
<li>75 Prozent aller teilnehmenden Entwickler konnten bereits nach 15 Minuten sinnvolle und nachvollziehbare Ergebnisse produzieren.</li>
</ul>
<ul>
<li>Ebenfalls 75 Prozent haben Parallel Studio als &#8220;empfehlenswert&#8221; eingestuft (8 von 10 Sternen im Mittel).</li>
</ul>
<ul>
<li>86 Prozent der teilnehmenden Betatester glauben, dass die Threading-Methoden von Parallel Studio (<a title="OpenMP" href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a>, <a title="Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">Intel TBB</a>, etc.) für ihre Zwecke völlig ausreichend sind.</li>
</ul>
<ul>
<li>71 Prozent der Betatest-Entwickler konnten einen Geschwindigkeitszuwachs bei ihren Anwendungen messen, und das nur wegen des Umstiegs auf den integrierten <a title="Intel C++-Compiler" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel-C++-Compiler</a>, der natürlich äußerst multithreading-tauglich ist.</li>
</ul>
<p>Und es gibt sogar schon erste Referenzgeschichten, die den Einsatz von Parallel Studio in ein bestehendes Projekt verdeutlichen sollen. Dazu gehört beispielsweise die in Paris ansässige Firma <a title="Die offzielle Pressemeldung von Open Cascade bzgl. ihrer Parallel-Studio-Erfahrungen" href="http://www.opencascade.org/about/news/issue144/" target="_blank">Open Cascade</a>, die die gleichnamige Opensource-Software entwickelt hat und für Kunden <a title="Beispiele von Open-Cascade-Anwendungen" href="http://www.opencascade.org/showroom/screenshots/" target="_blank">in deren Anwendungen integriert</a>. Mit <em>Open Cascade</em> lassen sich komplexe und sehr aufwendige 3D-Modelle erstellen, wie sie beim Produktdesign, in der Simulationstechnik und in anderen Bereichen verwendet werden.</p>
<p>Da die Berechnung und grafische Umsetzung solcher 3D-Modelle sehr rechenintensiv und <em>Open Cascade</em> zudem C++-basiert ist, kam für mehr Leistung und schnellere Berechnungen Parallel Studio zum Einsatz. Schnell zeigte sich, dass der <a title="Parallel Amplifier" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/">Parallel Amplifier</a> typische Hotspots mit wenig Aufwand entdecken konnte. So ließ sich beispielsweise die Berechnung von geometrischen Flächen drastisch beschleunigen, indem dem betreffenden Algorithmus ein eigener Thread zugewiesen werden konnte, der bei Bedarf immer wieder parallel ausgeführt werden kann.</p>
<p>Aber auch der <a title="Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Parallel Inspector</a> half dabei, Open Cascade zu verbessern und schneller zu machen. Das führte insgesamt zu einer doppelt so schnellen Rechengeschwindigkeit und einer Reduzierung von Speicherproblemen (Meomory Leaks).</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-das-sagen-die-beta-tester/06/2009/&via=sw_devtwits&text=Parallel Studio: Das sagen die Betatester&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-das-sagen-die-beta-tester/06/2009/&via=sw_devtwits&text=Parallel Studio: Das sagen die Betatester&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-das-sagen-die-beta-tester/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reminder: Intel-Webinar zum Thema Statische Fehleranalyse</title>
		<link>http://www.software-dev-blog.de/reminder-intel-webinar-zum-thema-statische-fehleranalyse/06/2009/</link>
		<comments>http://www.software-dev-blog.de/reminder-intel-webinar-zum-thema-statische-fehleranalyse/06/2009/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 11:57:30 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1054</guid>
		<description><![CDATA[Anfang Februar habe ich eine lange Liste aller bekannten Online-Seminare veröffentlicht, die mit dem Thema Parallel Studio und deren Komponenten zu tun haben. Heute Abend ist es mal wieder soweit: Unter dem Titel &#8220;Static Analysis and Intel C++ Compilers&#8221; werden Intel-Experten live zeigen, wie sich mithilfe des C++-Compiler des Parallel Composers und des Source Checkers [...]]]></description>
			<content:encoded><![CDATA[<p>Anfang Februar habe ich eine lange Liste <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/">aller bekannten Online-Seminare</a> veröffentlicht, die mit dem Thema <a title="Parallel Studio erblickt das Licht der Welt" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">Parallel Studio</a> und deren Komponenten zu tun haben. Heute Abend ist es mal wieder soweit: Unter dem Titel &#8220;Static Analysis and Intel C++ Compilers&#8221; werden Intel-Experten live zeigen, wie sich mithilfe des C++-Compiler des Parallel Composers und des Source Checkers statische Quellcode-Analysen durchführen lassen.</p>
<p>Dabei geht es im Gegensatz zur dynamischen Fehlersuche um das Aufspüren potenzieller Fehler im Sourcecode selbst und nicht um Bugs, die erst zur Laufzeit auftreten. Damit lassen sich unter anderem Speicherprobleme, fehlerhafte Variablendefinitionen, Fehler bei den OpenMP-Deklarationen und vieles mehr aufspüren.</p>
<p>Und, interessiert? Dann solltet ihr ganz schnell <a title="Hier für die Intel-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">auf die Intel-Webinar-Seite gehen</a> und euch flugs für das Online-Seminar anmelden. Es findet nämlich in gut vier Stunden statt.</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-intel-webinar-zum-thema-statische-fehleranalyse/06/2009/&via=sw_devtwits&text=Reminder: Intel-Webinar zum Thema Statische Fehleranalyse&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-intel-webinar-zum-thema-statische-fehleranalyse/06/2009/&via=sw_devtwits&text=Reminder: Intel-Webinar zum Thema Statische Fehleranalyse&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-intel-webinar-zum-thema-statische-fehleranalyse/06/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallel Studio: Das leistet der Parallel Advisor Lite</title>
		<link>http://www.software-dev-blog.de/parallel-studio-das-leistet-der-parallel-advisor-lite/05/2009/</link>
		<comments>http://www.software-dev-blog.de/parallel-studio-das-leistet-der-parallel-advisor-lite/05/2009/#comments</comments>
		<pubDate>Thu, 28 May 2009 17:05:06 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1052</guid>
		<description><![CDATA[Erst gestern habe ich darüber berichtet, dass Intel seinen jüngsten Spross, Parallel Studio, der Öffentlichkeit vorgestellt hat. Daneben gibt es eine sogenannte Tech Preview des Parallel Advisor Lite, der in der nächsten Version von Parallel Studio vollwertiges Mitglied der Toolsuite werden soll. Und ich habe gestern versprochen, ein paar Infos zum Advisor online zu stellen. [...]]]></description>
			<content:encoded><![CDATA[<p>Erst gestern habe ich <a title="Happy Birthday, Parallel Studio!" href="http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/">darüber berichtet</a>, dass Intel seinen jüngsten Spross, Parallel Studio, der Öffentlichkeit vorgestellt hat. Daneben gibt es eine sogenannte Tech Preview des Parallel Advisor Lite, der in der nächsten Version von Parallel Studio vollwertiges Mitglied der Toolsuite werden soll. Und ich habe gestern versprochen, ein paar Infos zum Advisor online zu stellen. Was hiermit geschieht.</p>
<p>Zunächst einmal: Mit dem Parallel Advisor stellt Intel ein Tool zur Verfügung, das Entwicklern und Programmierern dabei helfen soll, Parallelisierungspotenzial ihrer Anwendungen zu identifizieren. Und das nicht per Trial-and-Error, sondern mit erprobten Messverfahren, die diejenigen Codeabschnitte ermitteln, bei denen sich das Multithreaden am ehesten lohnt. Hierfür unterstützt Parallel Advisor Lite diverse Ansätze:</p>
<p><strong>Flexible Handhabung:</strong> Der Advisor kann zu jedem beliebigen Zeitpunkt der Anwendungsentwicklung laufen. Entscheidend ist nur, dass Microsoft Visual Studio 2005 oder 2008 samt einer C++-Entwicklungsumgebung und Parallel Studio zum Einsatz kommen.</p>
<p><strong>Eingebaute Skalierbarkeit:</strong> Der Parallel Advisor sorgt für skalierende Anwendungen, die auf den kommenden Intel-Plattformen &#8220;mitwachsen&#8221;.</p>
<p><strong>Einsatz von Industriestandards:</strong> Dank des Einsatzes von <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a> und anderer Techniken orientiert sich Parallel Studio und damit auch der Parallel Advisor an anerkannten Industriestandards, was die Software-Entwicklung mit diesen Tools zukunftssicher macht.</p>
<p><span id="more-1052"></span></p>
<p><strong>Vereinfachte Parallelprogrammierung:</strong> Der Parallel Advisor erfordert laut Intel relativ wenig Vorwissen in Sachen Parallelprogrammierung. Gleichzeitig soll sich das Erfolgserlebnis recht schnell einstellen.</p>
<p><strong>Bekannte Programmiermethoden:</strong> Parallel Advisor unterstützt sowohl <a title=" Programmiermethoden: Daten- und Aufgabenparallelität " href="http://www.software-dev-blog.de/programmiermethoden-daten-und-aufgabenparallelitat/12/2008/">Daten- als auch Aufgabenparallelismus</a>.</p>
<p>Um eine sequenziell programmierte Software-Anwendung effizient und ohne größere Kopfschmerzen zu parallelisieren, sind mithilfe des Parallel Advisors folgende Schritte notwendig:</p>
<ul>
<li>Die laufende Anwendung wird auf mögliche parallelisierbare Abschnitte hin untersucht. Hierbei handelt es sich um eine <a title="Parallel Advisor baisert auf dem VTune Performance Analyser" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">Hotspot-Analyse</a>, die potenzielle Konstrukte wie <a title=" OpenMP: fünf Bedingungen für parallele Schleifen " href="http://www.software-dev-blog.de/openmp-funf-bedingungen-fur-parallele-schleifen/04/2009/">Schleifen</a> für die Parallelisierung identifiziert.</li>
</ul>
<ul>
<li>In Frage kommende Abschnitte der Anwendung werden entsprechend markiert, sodass ein späteres Einfügen von Parallelkonstrukten mithilfe von OpenMP, <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/">Intel TBB</a> und Co. möglichst einfach vonstatten geht.</li>
</ul>
<ul>
<li>Anschließend werden diejenigen Programmabschnitte identifiziert, die Dead Locks und ähnliche Probleme verursachen können.</li>
</ul>
<ul>
<li>Es werden an denjenigen Sourcecode-Stellen entsprechende Programmierzeilen eingefügt, die dabei helfen sollen, Datenprobleme mithilfe passender Konstrukte zu beseitigen.</li>
</ul>
<ul>
<li>Nach ausführlichen Tests des seriellen Quellcodes werden abschließend alle markierten Stellen durch Multithread-Konstrukte ersetzt. Das macht aus dem sequenziell programmierten Software-Titel eine parallel ablaufende Anwendung, die die vorhandenen Multicore-Ressourcen hoffentlich optimal nutzt.</li>
</ul>
<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-das-leistet-der-parallel-advisor-lite/05/2009/&via=sw_devtwits&text=Parallel Studio: Das leistet der 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/parallel-studio-das-leistet-der-parallel-advisor-lite/05/2009/&via=sw_devtwits&text=Parallel Studio: Das leistet der 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/parallel-studio-das-leistet-der-parallel-advisor-lite/05/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy Birthday, Parallel Studio!</title>
		<link>http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/</link>
		<comments>http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/#comments</comments>
		<pubDate>Wed, 27 May 2009 08:01:58 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1051</guid>
		<description><![CDATA[Gestern Abend (mitteleuropäischer Sommerzeit) erblickte Parallel Studio von Intel offiziell das Licht der Welt, und ich möchte es natürlich nicht versäumen, dem jüngsten Spross der Intel-Tools meine besten Glückwünsche auszusprechen. Wish you all the best, PS! Zugegeben, ganz unvorbereitet bin ich nicht auf das gestrige Ereignis. So findet Parallel Studio auf dem Software Dev Blog [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern Abend (mitteleuropäischer Sommerzeit) erblickte <a title="Offizielle Parallel-Studio-Webseite von Intel" href="http://software.intel.com/en-us/intel-parallel-studio-home/" target="_blank">Parallel Studio von Intel</a> <a title="Pressenews zu Parallel Studio" href="http://www.intel.com/pressroom/chipshots/chipshots.htm#052609a" target="_blank">offiziell</a> das Licht der Welt, und ich möchte es natürlich nicht versäumen, dem jüngsten Spross der Intel-Tools meine besten Glückwünsche auszusprechen. Wish you all the best, PS!</p>
<p>Zugegeben, ganz unvorbereitet bin ich nicht auf das gestrige Ereignis. So findet Parallel Studio auf dem Software Dev Blog schon seit dem 24. Oktober statt. Damals habe ich das Parallelisierungstool <a title="Mehr Leistung mit mehreren CPUs: Multicore Computing" href="http://www.software-dev-blog.de/mehr-leistung-mit-mehreren-cpus-multicore-computing/10/2008/">in einem Nebensatz </a>zum ersten Mal erwähnt. Die <a title="Intel @ Microsoft TechEd EMEA Developers 2008 Preview" href="http://www.software-dev-blog.de/intel-microsoft-teched-emea-developers-2008-preview/10/2008/">erste echte Erwähnung</a> fand das C++-Werkzeug am vorletzten Tag des Oktobers 2008, und zwar in Vorbereitung auf die Microsoft-Entwicklerkonferenz TechEd im schönen Barcelona. Tja, und einen Tag später habe ich dann <a title="Multicore-Turbo für Visual Studio: Intel Parallel Studio" href="http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/">ein wenig mehr verraten</a> über Parallel Studio und habe es ziemlich kühn &#8220;Multicore-Turbo&#8221; genannt.</p>
<p>Seitdem folgten diverse Beiträge rund um das Entwicklertool, das sich nahtlos in Visual Studio 2005 und 2008 von Microsoft einbetten lässt. Highlights waren zweifellos zwei Interviews mit <a title="Videochat mit Steve Teixeira, Microsoft-Parallel-Guru" href="http://www.software-dev-blog.de/videochat-mit-steve-teixeira-microsoft-parallel-guru/11/2008/">Steve Teixeira</a> und <a title=" Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten " href="http://www.software-dev-blog.de/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/">Dariusz Parys</a> von Microsoft, ein Vierteiler zu Parallel Studio mit ersten Einblicken in die Toolsuite (<a title="Serie: Mit Parallel Studio Anwendungen multithreaden (1)" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Teil 1</a>, <a title="Serie: Mit Parallel Studio Anwendungen multithreaden, Teil 2" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/">Teil 2</a>, <a title="Parallel-Studio-Serie (3): mehr Infos zum Parallel Inspector " href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Teil 3</a> und<a title="Parallel-Studio-Serie (4): mehr Infos zum Parallel Amplifier " href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/"> Teil 4</a>) und die <a title="Nach der Konferenz ist vor der Konferenz" href="http://www.software-dev-blog.de/nach-der-konferenz-ist-vor-der-konferenz/04/2009/">Liveberichterstattung</a> von der Intel Software Conference 2009 aus Salzburg.</p>
<p>Unerwähnt sollten aber auch nicht die zahlreichen <a title="Alle Infos zu Webinar-Hinweisen auf Software Dev Blog" href="http://www.software-dev-blog.de/wp-admin/edit.php?tag=webinar">Onlineseminare</a> bleiben, die Intel rund um Parallel Studio im Angebot hatte bzw. noch hat.</p>
<p><strong>Ach ja:</strong> Teil des Parallel Studio wird ein viertes Tool sein, der <a title="Intel Parallel Advisor Lite" href="http://software.intel.com/en-us/articles/intel-parallel-advisor-lite/" target="_blank">Parallel Advisor</a>. Mit diesem Parallel-Studio-Add-On soll Software-Entwicklern dabei geholfen werden, ihre Anwendungen schneller, effizienter und mit weniger Aufwand zu parallelisieren. Da der Advisor erst mit der nächsten Version des Parallel Studio Teil der Suite wird, stellt Intel <a title="Hier Mitglied des Intel Software Network werden" href="http://software.intel.com/en-us/?cid=ISPP:99GER017SS9978" target="_blank">registrierten Mitgliedern des ISN</a> den Advisor Lite als TechPreview auf <a title="whatif.intel.com" href="http://software.intel.com/en-us/whatif/" target="_blank">Whatif.com</a> zum kostenlosen Download zur Verfügung. Damit alle interessierten Entwickler und Programmierer schon mal damit herumspielen und ihr Feedback an Intel weiterleiten können. Mehr Infos zum Advisor gibt es morgen auf diesem Sender!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/happy-birthday-parallel-studio/05/2009/&via=sw_devtwits&text=Happy Birthday, 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/happy-birthday-parallel-studio/05/2009/&via=sw_devtwits&text=Happy Birthday, 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/happy-birthday-parallel-studio/05/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>Visual Studio 2010 Beta zum kostenlosen Download</title>
		<link>http://www.software-dev-blog.de/visual-studio-2010-beta-zum-kostenlosen-download/05/2009/</link>
		<comments>http://www.software-dev-blog.de/visual-studio-2010-beta-zum-kostenlosen-download/05/2009/#comments</comments>
		<pubDate>Wed, 20 May 2009 11:12:22 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1047</guid>
		<description><![CDATA[Seit Montag können alle registrierten MSDN-Mitglieder die Beta 1 von Visual Studio 2010 samt .NET 4 ausgiebig testen. Und ab heute Abend steht die Betaversion der künftigen Entwicklerumgebung aus dem Hause Microsoft allen anderen zum Download zur Verfügung. Für diejenigen, die noch nicht genau wissen, was es mit Visual Studio 2010 und .NET 4 auf [...]]]></description>
			<content:encoded><![CDATA[<p>Seit Montag können alle registrierten MSDN-Mitglieder die Beta 1 von Visual Studio 2010 samt .NET 4 ausgiebig testen. Und ab heute Abend steht die Betaversion der künftigen Entwicklerumgebung aus dem Hause Microsoft allen anderen <a title="Visual Studio 2010 und .NET 4 kostenlos downloaden" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;DisplayLang=en" target="_blank">zum Download zur Verfügung</a>. Für diejenigen, die noch nicht genau wissen, was es mit Visual Studio 2010 und .NET 4 auf sich hat, folgen hier ein paar Lesetipps:</p>
<ul>
<li>Eine <a title="ISC’09: Microsoft und die parallele Programmierung" href="http://www.software-dev-blog.de/isc09-microsoft-und-die-parallele-programmierung/04/2009/">kleine Einführung</a> in Sachen VS 2010 und .NET 4 von der Intel Software Conference 2009.</li>
</ul>
<ul>
<li>Microsoft und Intel veranstalten im Juni 2009 rund um das Thema parallele Programmierung <a title="Microsoft und Intel zeigen paralleles Programmieren" href="http://www.software-dev-blog.de/microsoft-und-intel-zeigen-paralleles-programmieren/04/2009/">diverse Seminare</a>, in denen es auch um VS2010 und .NET 4 gehen wird.</li>
</ul>
<ul>
<li><a title="Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten" href="http://www.software-dev-blog.de/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/">Ein Interview mit Dariusz Parys</a> von Microsoft zum Thema VS 2010 und dessen Multithread-Fähigkeiten.</li>
</ul>
<ul>
<li>Ein Dreiteiler in Sachen Multicore-Programmierung im .NET (4)-Umfeld (<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/">Teil 1</a>, <a title="Multicore-Programmierung im .NET-Umfeld - Teil 2" href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-2/01/2009/">Teil 2</a>, <a title="Multicore-Programmierung im .NET-Umfeld - Teil 3" href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-3/02/2009/">Teil 3</a>).</li>
</ul>
<ul>
<li>Ein <a title="prio.powerday: Parallele Programmierung unter .NET 3.5" href="http://www.software-dev-blog.de/priopowerday-parallele-programmierung-unter-net-35/04/2009/">Workshop</a> live von der Multicore-Konferenz anlässlich des prio.powerday. Thema: &#8220;Parallele Programmierung unter .NET 3.5&#8243;, was erahnen lässt, was später unter .NET 4 alles möglich sein wird.</li>
</ul>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/visual-studio-2010-beta-zum-kostenlosen-download/05/2009/&via=sw_devtwits&text=Visual Studio 2010 Beta zum kostenlosen Download&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/visual-studio-2010-beta-zum-kostenlosen-download/05/2009/&via=sw_devtwits&text=Visual Studio 2010 Beta zum kostenlosen Download&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/visual-studio-2010-beta-zum-kostenlosen-download/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>Intel-Softwaretools kostenlos 30 Tage lang testen</title>
		<link>http://www.software-dev-blog.de/intel-softwaretools-kostenlos-30-tage-lang-testen/04/2009/</link>
		<comments>http://www.software-dev-blog.de/intel-softwaretools-kostenlos-30-tage-lang-testen/04/2009/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 12:09:33 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Evaluation]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1033</guid>
		<description><![CDATA[Über was hab ich hier nicht schon alles berichtet: Intel C++ Compiler 11.0 Intel VTune Performance Analyzer 9.1 Intel Thread Checker 3.1 Intel Thread Profiler 3.1 Intel Threading Building Blocks 2.1 Intel Integrated Performance Primitives 6.0 und über vieles andere mehr. Das Praktische an all diesen Entwicklerwerkzeugen: Ihr könnt sie völlig kostenlos testen, und das [...]]]></description>
			<content:encoded><![CDATA[<p>Über was hab ich hier nicht schon alles berichtet:</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>und über vieles andere mehr.</p>
<p>Das Praktische an all diesen Entwicklerwerkzeugen: Ihr könnt sie <a title="Hier geht's zum Software-Testcenter von Intel" href="http://software.intel.com/en-us/articles/intel-software-evaluation-center/" target="_blank">völlig kostenlos testen</a>, und das 30 Tage lang. Und zwar nicht nur die Linux- und Mac-OS-Varianten, sondern auch die komplette Windows-Suite. Daneben gibt es auch Linux-Tools, die gar nichts kosten und keiner zeitlichen Beschränkung unterliegen. Einzige Bedingung hierfür: Die Linux-Anwendungen, die damit geschrieben werden, dürfen nicht zu kommerziellen Zwecken eingesetzt oder gar verkauft werden.</p>
<p>Und falls ihr euch den kostenlosen Intel-Support während des Testmonats nicht entgehen lassen wollt, müsst ihr euch einmal einen <a title="Mehr Infos zum Intel Premier Support Account" href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-premier-support/" target="_blank">Premier Support Account</a> zulegen. Und schon könnt ihr Intel mit euren Fragen zutexten, bis die DSL-Leitung glüht.</p>
<p>Ach ja: Bevor ihr die Tools auf euren Rechner packt, solltet ihr <a title="Die Systemvoraussetzungen der Intel-Tools" href="http://software.intel.com/en-us/articles/intel-software-products-system-requirements/" target="_blank">einen Blick auf die Softwarevoraussetzungen</a> werfen. Damit ihr die Werkzeuge auch ohne Probleme einsetzen könnt.</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-softwaretools-kostenlos-30-tage-lang-testen/04/2009/&via=sw_devtwits&text=Intel-Softwaretools kostenlos 30 Tage lang 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/intel-softwaretools-kostenlos-30-tage-lang-testen/04/2009/&via=sw_devtwits&text=Intel-Softwaretools kostenlos 30 Tage lang 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/intel-softwaretools-kostenlos-30-tage-lang-testen/04/2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ISC’09: Intel Parallel Amplifier im Detail</title>
		<link>http://www.software-dev-blog.de/isc%e2%80%9909-intel-parallel-amplifier-im-detail/04/2009/</link>
		<comments>http://www.software-dev-blog.de/isc%e2%80%9909-intel-parallel-amplifier-im-detail/04/2009/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 13:38:56 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1012</guid>
		<description><![CDATA[So, genug genetzwerkt, jetzt wird es wieder ernst auf der Intel Software Conference 2009 in Salzburg. Vor der Pause hat Akyil Levent eine Menge über Parallel Inspector erzählt, jetzt ist er mit Parallel Amplifier dran. Ein sehr schöner Einstieg in das Thema Tuning ist folgendes Zitat: &#8220;Ich weiß, wie ich vier Pferde dazu bringe, einen [...]]]></description>
			<content:encoded><![CDATA[<p>So, genug genetzwerkt, jetzt wird es wieder ernst auf der <a title="Onsite-Blogging: Intel Software Conference 2009" href="http://www.software-dev-blog.de/onsite-blogging-intel-software-conference-2009/04/2009/">Intel Software Conference 2009</a> in Salzburg. Vor der Pause hat Akyil Levent eine Menge über <a title="Parallel Inspector" href="http://www.software-dev-blog.de/isc09-intel-parallel-inspector-im-detail/04/2009/">Parallel Inspector</a> erzählt, jetzt ist er mit Parallel Amplifier dran.</p>
<p>Ein sehr schöner Einstieg in das Thema Tuning ist folgendes Zitat: &#8220;Ich weiß, wie ich vier Pferde dazu bringe, einen Wagen zu ziehen. Wie aber geht das mit 1024 Hühnern?&#8221; Das ist eine wirklich passende Analogie zur Optimierungsarbeit beim parallelen Programmieren. Denn es gibt so viele Fallen, in die man beim Multithreading tappen kann: nicht-skalierender Code, Deadlocks oder Data Races zur Laufzeit und vieles mehr.</p>
<p>Dafür gibt es den Parallel Amplifier, der Flaschenhälse findet, die Skalierbarkeit der Anwendung ermittelt und mehr. Es hilft also Entwicklern und Programmierern, die parallele Struktur und das parallele Verhalten ihrer Anwendung besser zu verstehen.</p>
<p>Wie schon der Composer und Inspector, integriert sich Parallel Amplifier in Visual Studio und findet folgende Probleme:</p>
<ul>
<li>Wo verbraucht meine Anwendung die meiste Zeit?</li>
</ul>
<ul>
<li>Wann gehen die Prozessoren in den Idle-Modus?</li>
</ul>
<ul>
<li>Wo gibt es ungewollte Wartezeiten?</li>
</ul>
<p>Sobald Amplifier die möglichen Fehler gefunden hat, lassen sich die entsprechenden Quellcode-Stellen per Mausklick öffnen und auf die Fehler hin überprüfen.</p>
<p><span id="more-1012"></span>Parallel Amplifier findet aber auch Unter- und Überschäftigung der vorhandenen Prozesorkerne, zeigt also sehr anschaulich, in welchem Umfang die Ressourcen genutzt werden.</p>
<p>Praktisch ist auch die Vergleichsfunktion, die es ermöglicht, die Ergebnisse zweier Durchläufe grafisch darstellen zu lassen. Also vor und nach der Optimierung und deren Auswirkung auf die Ausnutzung der Ressourcen.</p>
<p>Jetzt folgt eine Livedemo, die den Amplifier präsentiert. Und auch hier muss ich leider sagen, dass sich das geschriebene Wort nicht dafür eignet, das Gesehehene vernünftig zu beschreiben. Aber ich versuche auch in diesem Fall, etwas Anschauliches nachzuliefern. Interessant dabei ist die Tatsache, dass der Amplifier die EXE-Datei zur Laufzeit analysiert und anschließend innerhalb von Visual Studio die Ergebnisse darstellt. Das macht das Aufspüren der betreffenden Quellcodestellen ziemlich einfach.</p>
<p>Überraschend war übrigens der Wechsel des Compilers, um in diesem Anwendungsfall eine spezielle Bibliothek nutzen zu können. Die Laufzeit reduzierte sich von 15 Sekunden auf unter eine Sekunde. Dies ist auf den Intel-C++-Compiler zurückzuführen, der diese Bibliothek bereithält und die Laufzeit dramatisch verringert.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/isc%e2%80%9909-intel-parallel-amplifier-im-detail/04/2009/&via=sw_devtwits&text=ISC’09: Intel Parallel Amplifier im Detail &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/isc%e2%80%9909-intel-parallel-amplifier-im-detail/04/2009/&via=sw_devtwits&text=ISC’09: Intel Parallel Amplifier im Detail &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/isc%e2%80%9909-intel-parallel-amplifier-im-detail/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webinar-Reminder: Fehler mit Parallel Inspector aufspüren</title>
		<link>http://www.software-dev-blog.de/webinar-reminder-fehler-mit-parallel-inspector-aufspuren/04/2009/</link>
		<comments>http://www.software-dev-blog.de/webinar-reminder-fehler-mit-parallel-inspector-aufspuren/04/2009/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 08:49:04 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=988</guid>
		<description><![CDATA[Anfang Februar hatte ich über die Online-Seminare berichtet, die Intel rund um das Thema Parallel Studio kostenlos anbietet. Tja, und heute ist das nächste Webinar an der Reihe, und das sogar völlig überraschend, da außerhalb der Reihe. Das Thema: Parallel Inspector, also das Debugging-Tool der Entwicklungssuite des künftigen Programmiertools für Parallelprogrammierer, die unter C++ und [...]]]></description>
			<content:encoded><![CDATA[<p>Anfang Februar hatte ich über die <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/">Online-Seminare berichtet</a>, die Intel rund um das Thema <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> kostenlos anbietet. Tja, und heute ist das nächste Webinar an der Reihe, und das sogar völlig überraschend, da außerhalb der Reihe. Das Thema: <a title="Mehr Infos zum Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Parallel Inspector</a>, also das Debugging-Tool der Entwicklungssuite des künftigen Programmiertools für Parallelprogrammierer, die unter C++ und Visual Studio optimal skalierende Anwendungen &#8220;bauen&#8221; wollen.</p>
<p>Los geht das Ganze um 9 Uhr kalifornischer Zeit (PDT), also um 18:00 unserer Sommerzeit. Hoffen wir mal, dass das so stimmt, da bisher die Webinars bereits um 17:00 MEZ losgingen. Kann also nicht schaden, schon mal um fünf Uhr vorbeizuschauen. Und zwar <a title="Hier geht's zum kostenlosen Parallel-Insector-Seminar" href="http://w.on24.com/r.htm?e=133885&amp;s=1&amp;k=6A8CF2F83D3A22240DBA16205193C956" target="_blank">per Mausklick auf diesen Link</a>.</p>
<p><strong>Ach ja:</strong> Wer den Inspector schon mal live und in Farbe sehen will, sollte sich das dazu <a title="Intel-Video live von der GDC'09 zum Parallel Inspector und Parallel Amplifier" href="http://www.youtube.com/watch?v=qfw-AEg7aFk" target="_blank">passende Video ansehen</a>, das die Kollegen während der GDC&#8217;09 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/webinar-reminder-fehler-mit-parallel-inspector-aufspuren/04/2009/&via=sw_devtwits&text=Webinar-Reminder: Fehler mit Parallel Inspector 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/webinar-reminder-fehler-mit-parallel-inspector-aufspuren/04/2009/&via=sw_devtwits&text=Webinar-Reminder: Fehler mit Parallel Inspector 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/webinar-reminder-fehler-mit-parallel-inspector-aufspuren/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: Parallelisierungsgrad von C#-Anwendungen messen</title>
		<link>http://www.software-dev-blog.de/video-parallelisierungsgrad-von-c-anwendungen-messen/04/2009/</link>
		<comments>http://www.software-dev-blog.de/video-parallelisierungsgrad-von-c-anwendungen-messen/04/2009/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 10:59:55 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=987</guid>
		<description><![CDATA[Über den Concurrency Checker von Intel habe ich schon zweimal berichtet: In Form eines Anwendungsberichtes und als Hintergrundgeschichte. Heute folgt Teil drei, und zwar in Form eines sehr anschaulichen Videos, das Gaston C. Hillar per Screencasting aufgenommen hat. Zwar weist Gastons Englisch einen kleinen, französischen Akzent auf, aber das ist nicht weiter tragisch, denn es [...]]]></description>
			<content:encoded><![CDATA[<p>Über den Concurrency Checker von Intel habe ich schon zweimal berichtet: In Form eines <a title="Multicore-Fähigkeiten mit Spezialtool herausfinden" href="http://www.software-dev-blog.de/multicore-fahigkeiten-mit-spezialtool-herausfinden/02/2009/">Anwendungsberichtes</a> und als <a title="Concurrency Checker: Wie parallel ist parallel?" href="http://www.software-dev-blog.de/concurrency-checker-wie-parallel-ist-parallel/02/2009/">Hintergrundgeschichte</a>. Heute folgt Teil drei, und zwar in Form eines sehr anschaulichen Videos, das Gaston C. Hillar per Screencasting aufgenommen hat. Zwar weist Gastons Englisch einen kleinen, französischen Akzent auf, aber das ist nicht weiter tragisch, denn es ist alles gut verständlich und die Bilder sprechen für sich.</p>
<p>Interessant an dem Video sind mehrere Sachen: Zum einen kann man gut sehen, wie sich der Testrechner konfigurieren lässt. Zum anderen kann man sogar kompilierte Dateien testen, die in C# programmiert worden sind. Da soll noch einer sagen, in die Executables der Microsoft Concurrency Runtime könne man nicht &#8220;hineinschauen&#8221;. Concurrency Checker kann. Und wie.</p>
<p>Denn wie das Video sehr anschaulich zeigt, sieht man nicht nur die Skalierbarkeit des gestesteten Tools, sondern kann auch die einzelnen Threads ansehen und wie diese auf die vorhandenen Prozessorkerne verteilt werden. Wenn man jetzt noch weiß, welche Programmabschnitte der Anwendung in welche Threads zerlegt werden, kann man die weniger gut performenden Programmabschnitte entsprechend &#8220;tunen&#8221; und damit bessere Multithread-Ergebnisse erzielen.</p>
<p>Und das Tollste daran: <a title="Hier den Intel Concurrency Checker kostenlos downloaden" href="http://software.intel.com/en-us/articles/intel-concurrency-checker-icchecker-10/" target="_blank">Concurrency Checker kostet keinen Cent</a>. Also los, macht doch mal die Probe aufs Exempel und überprüft mithilfe des Tools, wie gut euer selbst Programmiertes auf Intel-Plattformen läuft. Die Ergebisse dürft ihr natürlich hier als Kommentar hinterlassen &#8211; oder auch nicht.<br />
<object width="425" height="344" data="http://www.youtube.com/v/rhVbi8G0XeQ&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/rhVbi8G0XeQ&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/video-parallelisierungsgrad-von-c-anwendungen-messen/04/2009/&via=sw_devtwits&text=Video: Parallelisierungsgrad von C#-Anwendungen messen&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/video-parallelisierungsgrad-von-c-anwendungen-messen/04/2009/&via=sw_devtwits&text=Video: Parallelisierungsgrad von C#-Anwendungen messen&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/video-parallelisierungsgrad-von-c-anwendungen-messen/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reminder: Online-Training zum Parallel Composer</title>
		<link>http://www.software-dev-blog.de/reminder-online-training-zum-parallel-composer/03/2009/</link>
		<comments>http://www.software-dev-blog.de/reminder-online-training-zum-parallel-composer/03/2009/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 11:43:11 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=967</guid>
		<description><![CDATA[Damit keiner sagen kann, wir hätten ihn nicht daran erinnert: Heute findet um 17:00 Uhr unserer Zeit ein weiteres der angekündigten Online-Trainings statt, und zwar zum Thema Parallel Composer. Dieses Tool ist Bestandteil der künftigen Entwicklungsumgebung Parallel Studio, das sich gerade in der Beta-Phase befindet und noch im ersten Halbjahr als fertiges Produkt auf den [...]]]></description>
			<content:encoded><![CDATA[<p>Damit keiner sagen kann, wir hätten ihn nicht daran erinnert: <em><strong>Heute findet um 17:00 Uhr unserer Zeit</strong></em> ein weiteres der angekündigten Online-Trainings statt, und zwar zum Thema <a title="Mehr Infos zum Parallel Composer" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Composer</a>. Dieses Tool ist Bestandteil der künftigen Entwicklungsumgebung <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>, das sich gerade in der Beta-Phase befindet und noch im ersten Halbjahr als fertiges Produkt auf den Markt kommen soll.</p>
<p>Damit ihr euch schon mal einen ersten lebendigen Eindruck vom Parallel Conposer verschaffen könnt, ist die Teilnahme an dem kostenlosen Webinar sicherlich eine gute Idee. Also, <a title="Hier geht's zur Anmeldung für das Webinar &quot;Parallel Composer&quot;" href="http://w.on24.com/r.htm?e=133884&amp;s=1&amp;k=356D5CF6D1E8096B7139A60DA65F29DD" target="_blank">hierher klicken</a>, anmelden und um 17:00 MEZ einwählen. 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/reminder-online-training-zum-parallel-composer/03/2009/&via=sw_devtwits&text=Reminder: Online-Training zum Parallel Composer&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-online-training-zum-parallel-composer/03/2009/&via=sw_devtwits&text=Reminder: Online-Training zum Parallel Composer&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-online-training-zum-parallel-composer/03/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multithread your Games: Intel auf der GDC 2009</title>
		<link>http://www.software-dev-blog.de/multithread-your-games-intel-auf-der-gdc-2009/03/2009/</link>
		<comments>http://www.software-dev-blog.de/multithread-your-games-intel-auf-der-gdc-2009/03/2009/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 09:03:23 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=966</guid>
		<description><![CDATA[Gestern Abend unserer Zeitrechnung öffneten sich mal wieder die Pforten des Moscone Center in San Francisco, der heiligen Messehallen der großen Stadt an der Bay. Dort trifft sich an genau fünf Tagen (also bis Freitag) bei frühlingshaften Temperaturen auf der GDC&#8217;09 die Gaming-Industrie, um sich mit den neuesten Spieleentwicklungen zu beschäftigen. Mit dabei ist natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern Abend unserer Zeitrechnung öffneten sich mal wieder die Pforten des <a title="Januar 2008 war ich in SFO anlässlich der Macworld Expo" href="http://www.it-techblog.de/sj-keynote-macbook-air-und-mehr-%e2%80%93-macworld-expo-2008/01/2008/">Moscone Center in San Francisco</a>, der heiligen Messehallen der großen Stadt an der Bay. Dort trifft sich an genau fünf Tagen (also bis Freitag) bei frühlingshaften Temperaturen auf der <a title="Mehr Infos zur Games Developer Conference 2009" href="http://www.gdconf.com/index.html" target="_blank">GDC&#8217;09</a> die Gaming-Industrie, um sich mit den neuesten Spieleentwicklungen zu beschäftigen.</p>
<p>Mit dabei ist <a title="Mehr Infos zu Intel @ GDC'09" href="http://software.intel.com/en-us/articles/intel-at-gdc/" target="_blank">natürlich auch Intel</a>, das in diesem Segment eine maßgebliche Rolle spielt &#8211; und nicht erst seit Bekanntwerden der geplanten <a title="Mehr Infos zu Larrabee" href="http://software.intel.com/en-us/blogs/2008/08/11/gcdc08-larrabee-will-push-3d-into-new-dimesions/" target="_blank">GPCPU-Technik Larrabee</a>. Denn vor allem die <a title="Mehr Infos zu integrierten Grafikchips von Intel" href="http://software.intel.com/en-us/blogs/2008/08/14/gcdc08-turn-your-game-into-a-real-mobile-app/" target="_blank">integrierten Grafikchips</a> ermöglichen immer <a title="Bewegtbilder von Sacred 2, auf einem Notebook laufend" href="http://software.intel.com/en-us/blogs/2008/08/18/gcdc08-optimized-games-on-intel-platform/" target="_blank">realistischere 3D-Bilder</a> &#8211; und das sogar auf Notebooks. Gerade dort sind spezielle Features wie eine dauerhafte <a title="Videocast und Infos zum Thema mobiles Gaming-Desgin" href="http://software.intel.com/en-us/blogs/2008/08/19/gcdc08-adopt-your-games-for-the-laptop-platform/" target="_blank">In-Game-Akkuanzeige</a> wichtig, aber auch so Spezialitäten wie Ad-hoc-Netze für Multiplayer-Spiele erfordern ein wenig Know-how, um diese in Spieletitel zu implementieren.</p>
<p>Richtig &#8220;insight&#8221;-mäßig wird es gleich am heutigen Dienstag (24.3.): Dann geht es nämlich um das Thema &#8220;Multithreading von 3D-Spielen&#8221;. Zwischen 10 und 18 Uhr lokaler Zeit zeigen<span class="bodytext"><strong> </strong> <span class="bodytext">Paul  Lindberg</span>, <span class="bodytext">Brad  Werth</span> und <span class="bodytext">Orion  Granatir</span> von Intel acht Stunden lang, wie man <a title="Fünf Programmierregeln auf einen Blick" href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">parallel denken muss</a>, wie man ein neues Multithread-System in ein bestehendes Framework implementiert, wie man <a title=" Programmiermethoden: Daten- und Aufgabenparallelität " href="http://www.software-dev-blog.de/programmiermethoden-daten-und-aufgabenparallelitat/12/2008/">Datenabhängigkeiten</a> findet und wie man diese mit den <a title="Intel 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/">passenden Tools</a> eliminiert.</span></p>
<p><span id="more-966"></span>Aber auch der Mittwoch (25.3.) hat es in sich: Es geht um neue Intel-Tools, mit deren Hilfe Spiele noch einfacher, schneller und effizienter optimiert werden können für den Einsatz auf Multicore-Systemen, Notebooks und Co. Darüber hinaus gibt es exklusive Tipps &amp; Tricks rund um integrierte Grafikchips, einen Workshop zum Thema &#8220;Echtzeit-Effekte in 3D-Welten&#8221;, viele Infos zum Multithreaden von Künstlicher Intelligenz in Spieletiteln und einiges mehr.</p>
<p>Und was der Mittwoch kann, hat der Donnerstag schon lange drauf: Wie optimiert man Spieletitel mithilfe der <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</a>? Welche Hardware-Anforderungen erfüllen die <a title="Mehr Multithread-Leistung mit dem Core i7 Prozessor" href="http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/">aktuellen Intel-Plattformen</a> und was muss ich bei der Spieleentwicklung berücksichtigen?  Und welche Tools stehen mir zur Verfügung, um neue Spiele schnell und effizient zu entwickeln?</p>
<p>Der Freitag schließlich hält ein echtes Schmankerl für alle <strong>Larrabee-Neugierigen</strong> parat: In zwei separaten Workshops erfährt man alles über den neuen <strong>Befehlssatz LRBni</strong> und wie sich dieser für die Rastererisierung und die SIMD-Programmierung eignet. Abgerundet wird das Ganze mithilfe eines Beispiels aus der Spieleindustrie, und zwar anhand der brandneuen <a title="Mehr Infos zu Substance Air auf allegorithmic.com" href="http://www.allegorithmic.com/" target="_blank">Middleware Substance Air von Allegorithmic</a>, mit der eine neue Ära des Oberflächendesigns (Texturing Design) eingeläutet werden soll. Spieleentwickler, die in Zukunft auf Substance Air setzen, werden dabei nämlich von der vollen Multicore-Power profitieren, da die Middleware im höchsten Maße multihreaded 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/multithread-your-games-intel-auf-der-gdc-2009/03/2009/&via=sw_devtwits&text=Multithread your Games: Intel auf der GDC 2009&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/multithread-your-games-intel-auf-der-gdc-2009/03/2009/&via=sw_devtwits&text=Multithread your Games: Intel auf der GDC 2009&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/multithread-your-games-intel-auf-der-gdc-2009/03/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mehr Infos zur Intel Software Conference 2009</title>
		<link>http://www.software-dev-blog.de/mehr-infos-zur-intel-software-conference-2009/03/2009/</link>
		<comments>http://www.software-dev-blog.de/mehr-infos-zur-intel-software-conference-2009/03/2009/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:11:42 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=964</guid>
		<description><![CDATA[Erst vorgestern habe ich über die Intel Software Conference 2009 berichtet, die Mitte April im schönen Salzburg stattfinden wird. Und ich hatte am Schluss versprochen, weitere Infos nachzuschieben, sobald mir diese vorliegen. Und genau das geschieht jetzt. Der Morgen beginnt ganz gemütlich mit ein paar einleitenden Worten des Gastgebers. Anschließend macht sich James Reinders, Oberchef [...]]]></description>
			<content:encoded><![CDATA[<p>Erst vorgestern habe ich über die <a title="Intel Software Conference 2009" href="http://www.software-dev-blog.de/alles-uber-multicore-intel-software-conference-2009/03/2009/">Intel Software Conference 2009 berichtet</a>, die Mitte April im schönen Salzburg stattfinden wird. Und ich hatte am Schluss versprochen, weitere Infos nachzuschieben, sobald mir diese vorliegen. Und genau das geschieht jetzt.</p>
<p>Der Morgen beginnt ganz gemütlich mit ein paar einleitenden Worten des Gastgebers. Anschließend macht sich <a title="James Reinders ist in diversen Videocasts auf ZDNet zu sehen" href="http://www.software-dev-blog.de/videocast-reihe-zum-thema-parallele-programmierung-auf-zdnet/03/2009/">James Reinders</a>,  Oberchef der Software Developer Group bei Intel, ein paar Gedanken zu der Frage, wie es Programmierer und Entwickler schaffen können, ihren Anwendungen paralleles Leben einzuhauchen. Denn in Zeiten fallender Taktraten pro CPU und steigender Prozessorkerne pro System wird es immer wichtiger, sich mit dem Thema Multithreading und Multicore-Optimierung zu beschäftigen. Wie dies am Beispiel <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/">Parallel Studio</a> funktioniert, verrät er auch schon mal ein wenig.</p>
<p>Nach der ersten kurzen Pause geht es dann interessant weiter. <strong>Eric Vernié</strong>, einer der führenden Software-Evangelisten bei Microsoft, wird sich mit Visual Studio 2010 und .NET 4.0 beschäftigen und anhand dieser zukünftigen Entwicklungsumgebung zeigen, wie sich Redmond das Thema Parallelprogrammierung vorstellt. Wer wissen will, wie Erics Vortrag in etwa aussehen könnte, sollte sich das Interview zu Gemüte führen, das ich mit  <a title="Das Blog von Dariusz Parys" href="http://blogs.msdn.com/dparys/default.aspx" target="_blank">Dariusz Parys</a> anlässlich der <a title="Multicore-Programmierung auf der OOP 2009" href="../multicore-programmierung-auf-der-oop-2009/01/2009/">OOP 2009 </a> geführt und hier veröffentlicht habe.</p>
<p><span id="more-964"></span>Anschließend wird es praxisorientierter: <strong>Charly Lippoth</strong>, Chief Technology and Strategy Officer der <a title="Youtube-Video mit Nero zum Core i7" href="http://www.youtube.com/watch?v=WPv-32UbBG8" target="_blank">Nero AG</a>, plaudert aus dem Nähkästchen und wird den Anwesenden verraten, wie die Zusammenarbeit zwischen Intel und Nero funktioniert und wie es möglich ist, dass die Multimedia-Suite Nero 9 derart gut auf Multicore-Plattformen wie dem <a title="Mehr Multithread-Leistung mit dem Core i7 Prozessor" href="http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/">Core i7</a> von Intel skaliert. Dass so etwas nicht automatisch geschieht, dürfte klar sein. Klar ist auch, dass Nero unter anderem <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune</a> und die aktuellen <a title="Info zu Intel Compilern" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel Compiler</a> eingesetzt hat, um ein Optimum bei der Multicore-Programmierung zu erzielen. Ach ja, und <a title="Jetzt Beta-Tester des Parallel Studio werden!" href="http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/">Beta-Tester</a> von Parallel Studio ist Nero auch.</p>
<p><strong>Heinz Bast</strong>, mit dem ich selbst schon sprechen durfte, verschafft dann einen &#8211; alles andere als oberflächlichen &#8211; Einblick in den <a title="Parallel Composer" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Composer</a>. Mit diesem Tool soll es selbst weniger erfahrenen Parallelprogrammierern gelingen, Multithread-Quellcode zu erzeugen und damit bestehenden oder neuen Software-Titeln den Turbo zu verpassen. Heinz wird im Detail über <a title="Workshop: parallel Programmieren mit OpenMP" href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a>, Intel TBB, <a title="Mehr Infos zur Intel Parallel Debugger Extension" href="http://www.software-dev-blog.de/paralleltesten-mit-visual-studio-parallel-debugger-extension/07/2009/">Intel Parallel Debugger Extension</a> und einiges mehr reden.</p>
<p>Was Heinz kann, beherrscht <strong>Levent Akyil</strong> natürlich genauso: technische Zusammenhänge so aufzubereiten, dass diese auch von weniger erfahrenen Zuhörern im Kopf zu einer Geschichte zusammengesetzt werden können. Levent bekommt zu diesem Zweck sogar zwei Sessions zur Verfügung gestellt, in denen er sowohl über den <a title="Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Parallel Inspector</a> als auch den <a title="Parallel Amplifier" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/">Parallel Amplifier</a> reden wird.</p>
<p>Der <strong>Inspector</strong> überprüft parallelisierten Quellcode und findet kleinere und größere Bugs zur Laufzeit, was mit herkömmlichen Testtools kaum oder nur mit großem Aufwand möglich ist. Der <strong>Amplifier</strong> hingegen ist das Tuning-Tool des Parallel Studio, mit dem sich Hotspots aufspüren lassen, der Anteil des Multithread-Codes erhöhen lässt und überflüssige Wartezeiten gefunden werden können.</p>
<p>Nach so viel &#8220;tough stuff&#8221; können wir dann ab vier Uhr wieder etwas verschnaufen und erneut den Worten von <strong>James Reinders</strong> lauschen, wenn er kurzzeitig die Gegenwart verlässt, um über die <strong>Zukunft der Parallelprogrammierung</strong> zu reden. Dabei geht es natürlich um die Weiterentwicklung des Parallel Studio dank des Parallel Advisor, eines fast schon revolutionär anmutenden Tools, das Entwicklern bei der Parallelisierung helfen soll. Und was es mit &#8220;Ct&#8221; auf sich hat, werden wir ebenfalls lernen.</p>
<p>Tja, und zu all diesen Themen werde ich am 22. April live und exklusiv bloggen. Also, am besten schon mal den <a title="RSS-Feed abonnieren und wiederkommen ..." href="http://www.software-dev-blog.de/feed/" target="_blank">RSS-Feed abonnieren</a> oder mir <a title="mir via Twitter folgen" href="http://www.twitter.com/mhuelskoetter" target="_blank">via Twitter folgen</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/mehr-infos-zur-intel-software-conference-2009/03/2009/&via=sw_devtwits&text=Mehr Infos zur Intel Software Conference 2009&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-infos-zur-intel-software-conference-2009/03/2009/&via=sw_devtwits&text=Mehr Infos zur Intel Software Conference 2009&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-infos-zur-intel-software-conference-2009/03/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alles über Multicore: Intel Software Conference 2009</title>
		<link>http://www.software-dev-blog.de/alles-uber-multicore-intel-software-conference-2009/03/2009/</link>
		<comments>http://www.software-dev-blog.de/alles-uber-multicore-intel-software-conference-2009/03/2009/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 14:38:44 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=961</guid>
		<description><![CDATA[Was fällt euch zu Salzburg ein? Österreich!? Gut! Mozart?! Auch gut! Multicore?! Nicht!? Doch, doch, denn heute habe ich eine exklusive Einladung erhalten, in der steht, dass am 20. und 21. April die volle Ladung Multicore-Programmierung in Salzburg, Österreich vorgesehen ist. Wow, wie schön! Salzburg, meine ich. Und natürlich auch die Konferenz. Der wesentliche Tag [...]]]></description>
			<content:encoded><![CDATA[<p>Was fällt euch zu Salzburg ein? Österreich!? Gut! Mozart?! Auch gut! Multicore?! Nicht!? Doch, doch, denn heute habe ich eine exklusive Einladung erhalten, in der steht, dass am 20. und 21. April die volle Ladung Multicore-Programmierung in Salzburg, Österreich vorgesehen ist. Wow, wie schön! Salzburg, meine ich. Und natürlich auch die Konferenz.</p>
<p>Der wesentliche Tag ist der Dienstag (21.4.), an dem es eine Menge Infos rund um <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">Multithreading</a>, <a title=" Software-Projekte mit Intel-Tools optimieren " href="http://www.software-dev-blog.de/software-projekte-mit-intel-tools-optimieren/10/2008/">Multicore-Tools</a> und mehr geben wird. Die Agenda sieht unter anderem Vorträge vor von James Reinders (Intel), Eric Vernié (Microsoft), Charly Lippoth (Nero), Heinz Bast (Intel) und Levent Akyil (Intel). Dabei geht es vor allem um <a title="Teil eins der Parallel-Studio-Serie" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Studio</a>, die brandneue Toolsuite von Intel, mit deren Hilfe in Zukunft Software-Parallelität einfacher implementiert werden kann.</p>
<p>Was im Detail alles auf der Entwicklerkonferenz passieren wird, gibt es demnächst hier nachzulesen. Versprochen!</p>
<p><strong>Ach ja:</strong> Ich werde natürlich nicht nur zu meinem Vergnügen nach Salzburg reisen. So will und werde ich den ganzen Tag von der Intel Software Conference 2009 live und exklusiv auf diesem Sender <a title="Vom prio Multicore-Powerday am 23. April werde ich ebenfalls live bloggen" href="http://www.software-dev-blog.de/multicore-powerday-preise-und-weitere-infos/01/2009/">bloggen</a>. So wahr mir Wifi helfe &#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/alles-uber-multicore-intel-software-conference-2009/03/2009/&via=sw_devtwits&text=Alles über Multicore: Intel Software Conference 2009&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/alles-uber-multicore-intel-software-conference-2009/03/2009/&via=sw_devtwits&text=Alles über Multicore: Intel Software Conference 2009&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/alles-uber-multicore-intel-software-conference-2009/03/2009/feed/</wfw:commentRss>
		<slash:comments>2</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>Nützliche Online-Infos rund ums Parallele Programmieren</title>
		<link>http://www.software-dev-blog.de/nutzliche-online-infos-rund-ums-parallele-programmieren/03/2009/</link>
		<comments>http://www.software-dev-blog.de/nutzliche-online-infos-rund-ums-parallele-programmieren/03/2009/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 09:30:31 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Surftipp]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=959</guid>
		<description><![CDATA[Über das künftige Multithread-Programmiertool Parallel Studio von Intel habe ich an dieser Stelle ja schon öfter berichtet. Und heute erreichte mich die Nachricht, dass es ab sofort eine komplett neu eingerichtete Webseite gibt, auf der es eine Menge Infos zu diesem Programmierwerkzeug gibt. Klar, dass ich mir das mal genauer ansehen musste. Mein erster Gedanke [...]]]></description>
			<content:encoded><![CDATA[<p>Über das künftige Multithread-Programmiertool <a title="Teil eins der Parallel-Studio-Serie" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Studio</a> von Intel habe ich an dieser Stelle ja schon öfter berichtet. Und heute erreichte mich die Nachricht, dass es ab sofort eine komplett neu eingerichtete <a title="Neue Webseite zum Thema parallel Programmierung" href="http://software.intel.com/en-us/intel-sdp-home/" target="_blank">Webseite</a> gibt, auf der es eine Menge Infos zu diesem Programmierwerkzeug gibt. Klar, dass ich mir das mal genauer ansehen musste.</p>
<p>Mein erster Gedanke zur neuen Webseite rund um die parallele Programmierung: sehr aufgeräumt. Denn die Seite besteht lediglich aus einer Handvoll von Verweisen auf Informationen, die sich mit den unterschiedlichen Aspekten des Parallel Computing befassen.</p>
<p>Dazu gehören nützliche Infos zu Parallel Studio, die nur einen Mausklick entfernt sind. Dort könnt ihr euch über die einzelnen Tools der Suite informieren (<a title="mehr Infos zum Parallel Composer" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Composer</a>, <a title="Mehr Infos zum Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Inspector</a> und <a title="Mehr Infos zum Parallel Amplifier" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/">Amplifier</a>). Ihr könnt euch aber auch für das <a title="Intel Parallel Studio ab sofort als Beta erhältlich" href="http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/">Beta-Programm</a> eintragen oder sogar bei <a title="Parallel Studio bei der QT software GmbH vorbestellen" href="http://www.qtsoftware.de/vertrieb/cetc/ipst.htm" target="_blank">QT software</a> oder der <a title="Parallel Studio bei der SOS Software Service GmbH vorbestellen" href="http://www.sos-software.com/parallel_studio" target="_blank">SOS Software Service GmbH</a> bereits heute ein Paket von Parallel Studio vorbestellen. Oder seht euch einfach mal das Video an, dass Intel mit dem Parallel-Guru James Reinders gedreht hat.</p>
<p>Aber die Webseite hält auch eine Menge an Informationen für alle HPC-Enthusiasten (High Performance Computing) bereit. Hier geht es primär um die ganzen anderen Tools, die Intel für das Multithreaden und Optimieren von Hochleistungsanwendungen bietet. Die Rede ist also von <a title="Infos zu Intel-Compilern" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Compilern</a>, <a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Threading Building Blocks</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/">Integrated Performance Primitives, Math Kernel Library</a>, <a title="Thread Checker" href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Thread Checker</a> und anderen Tools.</p>
<p>Übrigens: All diese Produkte können ausprobiert und auch gekauft werden. Und einige dieser Software-Pakete kann man sogar kostenlos nutzen, solange man damit keine kommerzielle Anwendungen baut.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/nutzliche-online-infos-rund-ums-parallele-programmieren/03/2009/&via=sw_devtwits&text=Nützliche Online-Infos rund ums Parallele Programmieren&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/nutzliche-online-infos-rund-ums-parallele-programmieren/03/2009/&via=sw_devtwits&text=Nützliche Online-Infos rund ums Parallele Programmieren&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/nutzliche-online-infos-rund-ums-parallele-programmieren/03/2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reminder: Webcast-Session am 10. März zu Parallel Studio</title>
		<link>http://www.software-dev-blog.de/reminder-webcast-session-am-10-marz-zu-parallel-studio/03/2009/</link>
		<comments>http://www.software-dev-blog.de/reminder-webcast-session-am-10-marz-zu-parallel-studio/03/2009/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 15:53:27 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=949</guid>
		<description><![CDATA[Anfang Februar habe ich schon mal darüber berichtet: Intel bringt interessierten Software-Entwicklern die künftige Entwicklungsumgebung Parallel Studio näher. Und zwar in Form diverser Webinars, also Online-Videosessions. Im allerersten Webcast, das nächste Woche am Dienstag (10.3.) stattfindet, stellt Parallel-Guru James Reinders Parallel Studio umfassend vor. Er wird also viel erzählen über Parallel Inspector, Composer, Amplifier und [...]]]></description>
			<content:encoded><![CDATA[<p>Anfang Februar habe ich schon mal <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/">darüber berichtet</a>: Intel bringt interessierten Software-Entwicklern die künftige Entwicklungsumgebung Parallel Studio näher. Und zwar in Form diverser Webinars, also Online-Videosessions. Im allerersten Webcast, das nächste Woche am Dienstag (10.3.) stattfindet, stellt Parallel-Guru James Reinders Parallel Studio umfassend vor. Er wird also viel erzählen über <a title="Mehr Infos zum Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Parallel Inspector</a>, <a title="mehr Infos zum Parallel Composer" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Composer</a>, <a title="Mehr Infos zum Parallel Amplifier" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/">Amplifier</a> und Co. <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">Hier geht&#8217;s</a> übrigens direkt zur Anmeldung &#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/reminder-webcast-session-am-10-marz-zu-parallel-studio/03/2009/&via=sw_devtwits&text=Reminder: Webcast-Session am 10. März zu 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-webcast-session-am-10-marz-zu-parallel-studio/03/2009/&via=sw_devtwits&text=Reminder: Webcast-Session am 10. März zu 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-webcast-session-am-10-marz-zu-parallel-studio/03/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Videocasts zum Thema parallele Programmierung auf ZDNet</title>
		<link>http://www.software-dev-blog.de/videocast-reihe-zum-thema-parallele-programmierung-auf-zdnet/03/2009/</link>
		<comments>http://www.software-dev-blog.de/videocast-reihe-zum-thema-parallele-programmierung-auf-zdnet/03/2009/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 13:05:13 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=941</guid>
		<description><![CDATA[Intel und ZDNet haben mal wieder zugeschlagen: In der mittlerweile dritten Staffel lehrreicher Trainingsvideos geht es in insgesamt fünf Lektionen um das Thema Parallele Programmierung im Allgemeinen und Parallel Studio im Speziellen. So erfährt der interessierte Entwickler in Video Nummer 1 alles über die zur Disposition stehenden Fachbegriffe und wie diese in den fünf anderen [...]]]></description>
			<content:encoded><![CDATA[<p>Intel und ZDNet haben mal wieder zugeschlagen: In der mittlerweile dritten Staffel lehrreicher Trainingsvideos geht es in insgesamt fünf Lektionen um das Thema Parallele Programmierung im Allgemeinen und Parallel Studio im Speziellen.</p>
<p>So erfährt der interessierte Entwickler in <a title="Video #1: Wichtige Begriffe zum Thema Paralelle Programmierung" href="http://intel.zdnet.co.uk/parallelism/?id=260632239" target="_blank">Video Nummer 1</a> alles über die zur Disposition stehenden Fachbegriffe und wie diese in den fünf anderen Videoclips verwendet werden. Es geht also um so Dinge wie Multicores, Manycores, Threads und andere Begrifflichkeiten, mit denen man sich zunächst beschäftigen sollte, um die anderen vier Videos besser zu verstehen.</p>
<p><a title="Video Nummer 2: Parallel Studio im Detail" href="http://intel.zdnet.co.uk/parallelism/?id=260632243" target="_blank">Video Nummer 2</a> verschafft einen guten Überblick, was das in der <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/">Beta-Phase</a> befindliche Entwicklertool <a title="Erster Teil der Miniserie &quot;Mit Parallel Studio effizient programmieren&quot;" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Studio</a> alles leistet und welche Funktionen es umfasst. Also <a title="Trainingsvideo zum Inspector" href="http://intel.zdnet.co.uk/parallelism/?id=260632242" target="_blank">Inspector</a>, <a title="Trainingsvideo zum Composer" href="http://intel.zdnet.co.uk/parallelism/?id=260632241" target="_blank">Composer</a> und <a title="Trainingsvideo zum Advisor" href="http://intel.zdnet.co.uk/parallelism/?id=260632241" target="_blank">Advisor</a>. Wobei dieser derzeit noch nicht Teil von Parallel Studio ist. Kommt aber noch &#8230;</p>
<p><strong>Übrigens:</strong> Die ins Deutsche transkribierten Trainingsvideos gibt es voraussichtlich ab nächster Woche <a title="Die in Deutsch transkribierten Videos auf zdnet.de" href="http://www.zdnet.de/specials/intel-multicore/0,39040749,41001311,00.htm" target="_blank">auf zdnet.de!</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/videocast-reihe-zum-thema-parallele-programmierung-auf-zdnet/03/2009/&via=sw_devtwits&text=Videocasts zum Thema parallele Programmierung auf ZDNet&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/videocast-reihe-zum-thema-parallele-programmierung-auf-zdnet/03/2009/&via=sw_devtwits&text=Videocasts zum Thema parallele Programmierung auf ZDNet&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/videocast-reihe-zum-thema-parallele-programmierung-auf-zdnet/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>Concurrency Checker: Wie parallel ist parallel?</title>
		<link>http://www.software-dev-blog.de/concurrency-checker-wie-parallel-ist-parallel/02/2009/</link>
		<comments>http://www.software-dev-blog.de/concurrency-checker-wie-parallel-ist-parallel/02/2009/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 11:36:02 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=896</guid>
		<description><![CDATA[Anfang Februar habe ich schon mal darüber berichtet: Mit dem kostenlosen Intel-Tool Concurrency Checker kann man ohne größere Mühen herausfinden, ob und in welchem Umfang eine parallelisierte Anwendung skaliert. Hierfür beherrscht das Tool einige wichtige Dinge: Es stellt die Anzahl der vorhandenen CPU-Ressourcen fest, also Prozessoren und Prozessorkerne (und sogar virtuelle CPUs). Es stellt fest, [...]]]></description>
			<content:encoded><![CDATA[<p>Anfang Februar habe ich schon mal <a title=" Multicore-Fähigkeiten mit Spezialtool herausfinden " href="http://www.software-dev-blog.de/multicore-fahigkeiten-mit-spezialtool-herausfinden/02/2009/">darüber berichtet</a>: Mit dem kostenlosen Intel-Tool Concurrency Checker kann man ohne größere Mühen herausfinden, ob und in welchem Umfang eine parallelisierte Anwendung skaliert. Hierfür beherrscht das Tool einige wichtige Dinge:</p>
<ul>
<li>Es stellt die Anzahl der vorhandenen CPU-Ressourcen fest, also Prozessoren und Prozessorkerne (und sogar virtuelle CPUs).</li>
<li>Es stellt fest, wie viele Threads jeweils parallel ausgeführt werden und wie lange dies insgesamt dauert.</li>
<li>Es berechnet den prozentualen Anteil des parallelisierten Quellcodes.</li>
</ul>
<p>Der Concurrency Checker kann aber noch mehr: So stellt er fest, ob die Multithread-Anwendung anhand der vorhandenen Prozessorkerne <strong>skaliert</strong>, diese also vollständig ausnutzt. Dies geschieht übrigens zur Laufzeit der Software. Schön an dem Tool ist aber auch die Tatsache, dass es <strong>nicht erst aufwendig installiert</strong> werden muss und damit sofort zur Verfügung steht. Und zwar mittels einer <strong>grafischen Bedieneroberfläche</strong> oder im simplen Zeileneditormodus.</p>
<p>Das Werkzeug kann aber auch auch zu <strong>Vergleichszwecken</strong> eingesetzt werden: Zunächst lässt man sein serielles Programm einmal mit dem Tool durchlaufen, um so die benötigte Laufzeit herauszufinden. Nach der Parallelisierung geschieht das Ganze noch einmal, womit man einen guten Indikator dafür erhält, wie gut das Multithreaden der Anwendung geklappt hat.</p>
<p>Was der Concurrency Checker allerdings <strong>nicht kann</strong> ist zweierlei: Es gibt keine Hinweise darauf, welche Stellen der sequenziell programmierten Anwendung das höchste Parallelisierungspotenzial aufweisen. Und zum anderen lassen sich <strong>Hotspots und andere Probleme</strong> der parallelisierten Software mit dem Tool nicht herausfinden. Wie gut aber, dass es hierfür Werkzeuge wie den <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> und den <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> gibt.</p>
<p><strong>Ach ja:</strong> Den Concurrency Checker bekommt ihr <a title="Intel Concurrency Checker: Infos und Download" href="http://software.intel.com/en-us/articles/intel-concurrency-checker-icchecker-10/" target="_blank">auf dieser Webseite</a>, und das gratis!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/concurrency-checker-wie-parallel-ist-parallel/02/2009/&via=sw_devtwits&text=Concurrency Checker: Wie parallel ist parallel?&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/concurrency-checker-wie-parallel-ist-parallel/02/2009/&via=sw_devtwits&text=Concurrency Checker: Wie parallel ist parallel?&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/concurrency-checker-wie-parallel-ist-parallel/02/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Workshop: parallel Programmieren mit OpenMP</title>
		<link>http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/</link>
		<comments>http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 14:39:36 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[OpenMP]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=880</guid>
		<description><![CDATA[Über OpenMP habe ich hier schon des öfteren gebloggt, aber noch nie so wirklich im Detail. Das wird sich heute schlagartig ändern, denn ein lieber Kollege (danke, Edmund!) hat mir am Wochenende einen sehr anschaulichen Artikel zukommen lassen, der mir als Grundlage für das heutige Posting dient. Den kompletten Beitrag samt Programmierbeispiel anhand der Kreiszahl [...]]]></description>
			<content:encoded><![CDATA[<p>Über OpenMP habe ich hier schon des öfteren <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/">gebloggt</a>, aber noch nie so wirklich im Detail. Das wird sich heute schlagartig ändern, denn ein lieber Kollege (danke, Edmund!) hat mir am Wochenende einen sehr anschaulichen Artikel zukommen lassen, der mir als Grundlage für das heutige Posting dient. Den kompletten Beitrag samt Programmierbeispiel anhand der Kreiszahl Pi gibt es <a title="Artikel vollstänidg als PDF laden" href="http://www.all-electronics.de/track?p=1&amp;ci=38244&amp;ct=article&amp;l=http://imperia.mi-verlag.de/imperia/md/content/ai/ae/fachartikel/ei/2009/02/ei09_02_028.pdf" target="_blank">als PDF zum Download</a>.</p>
<p>Zunächst einmal: <a title="OpenMP.org" href="http://www.OpenMP.org" target="_blank">OpenMP</a> liegt in der Version 3.0 vor und stellt eine <strong>standardisierte Programmierungsmethode</strong> dar. In Sachen Komplexität bewegt sie sich zwischen den herkömmlichen Threads &#8211; also API-Threads, PThreads oder WinThreads &#8211; und den höher entwickelten <a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Intel TBB</a> oder der geplanten Parallel Pattern Library (PPL), die von Microsoft kommen wird.</p>
<p>Daraus ergeben sich zwei wesentliche Aspekte: OpenMP ist weitaus <strong>einfacher</strong> zu verstehen, zu implementieren und zu testen als die Low-Level-Threads, bei denen sich der Programmierer um viele Dinge selbst kümmern muss, was das Ganze natürlich extrem fehleranfällig macht.</p>
<p>Die Kehrseite von OpenMP ergibt sich aus der <strong>geringeren Komplexität</strong>: Nicht alle Programmieraufgaben lassen sich mit OpenMP erledigen, was den Entwickler natürlich ein wenig einschränkt. OpenMP versteht sich vor allem sehr gut auf das Parallelisieren von rechenintensiven <strong>Schleifenkonstrukten</strong>.</p>
<p><span id="more-880"></span>Doch für welche Projekte eignet sich OpenMP am besten? Nun, hier ist vor allem der <strong>inkrementelle Ansatz</strong> zu nennen. Hierbei wird Stück für Stück ein bestehendes seriell programmiertes Programm mit einem geeigneten Tool wie dem <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> auf sein Parallelisierungspotenzial hin untersucht, um so schrittweise sequenziellen Programmcode in parallelen zu überführen. Das Gute dabei ist die Tatsache, dass es einen <strong>Masterthread</strong> gibt, der die sequenzielle Programmausführung steuert.</p>
<p>Sobald die Anwendung an einen Punkt kommt, wo es simultan werden kann, <strong>verzweigt</strong> die Ausführung in eine feste Anzahl von Threads. Wenn dieser Programmteil beendet ist, verzweigt die Anwendung wieder in den sequenziellen Masterthread. Ein weiterer Vorteil von OpenMP ist die Möglichkeit, bei der Programmausführung die parallelen Code-Abschnitte per &#8220;Schalter&#8221; zu deaktivieren, um somit aufgetretene Fehler <strong>im Seriellmodus zu debuggen</strong>. Das erleichtert das Auffinden vorhandener Bugs ungemein.</p>
<p>Die Implementierung von parallelem Code auf OpenMP-Basis ist übrigens recht einfach: Hierzu stehen dem Programmierer bestimmte <strong>Derektiven (Pragmas)</strong>, die <strong>OpenMP-Bibliothek und Umgebungsvariablen</strong> zur Verfügung. Bei der Überführung von seriellem in parallelen Programmcode müssen dann nur ein paar Programmzeilen eingefügt werden. Das ist unter anderem die Bibliothek <strong><em>omp.h</em></strong>, die passende Anzahl von Threads sowie einer Umgebungsvariablen und die <strong>Pragma-Anweisung</strong> selbst, die sich um das Parallelisieren des vormals seriellen Programmcodes kümmert.</p>
<p>Das nachfolgende Beispiel berechnet <strong>mithilfe einer Integralfunktion die Kreiszahl Pi</strong>. Die blau eingefärbten Programmzeilen sind die hinzugefügten OpenMP-Variablen sowie das zugehörige Pragma. Übrigens: Nur der in den geschweiften Klammern stehende Programmteil wird parallel ausgeführt. In diesem Fall also die Formel, die iterativ Pi ermittelt.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-883" style="margin: 5px 10px;" title="Simualtane Berechnung der Kreiszahl Pi mithilfe zweier parallel ablaufender Threads" src="http://www.software-dev-blog.de/wp-content/images/2009/02/openmp-pi.jpg" alt="Simualtane Berechnung der Kreiszahl Pi mithilfe zweier parallel ablaufender Threads" width="441" height="395" /></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-programmieren-mit-openmp/02/2009/&via=sw_devtwits&text=Workshop: parallel Programmieren mit OpenMP &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-programmieren-mit-openmp/02/2009/&via=sw_devtwits&text=Workshop: parallel Programmieren mit OpenMP &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-programmieren-mit-openmp/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>Parallel-Studio-Serie (3): mehr Infos zum Parallel Inspector</title>
		<link>http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/</link>
		<comments>http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 12:40:25 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Debugger]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=847</guid>
		<description><![CDATA[In den ersten beiden Teilen der Serie &#8220;Mit Parallel Studio Anwendungen multithreaden&#8221; ging es um die drei aktuellen Komponenten des Entwicklungstools: Parallel Composer, Parallel Inspector und Parallel Amplifier. Heute werde ich mir den Inspector noch mal ein wenig genauer ansehen. Im Parallel Inspector steckt ein erprobtes Tool, und zwar der Thread Checker. Daher ist der [...]]]></description>
			<content:encoded><![CDATA[<p>In den <a title="Teil eins der Serie" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">ersten</a> <a title="Zweiter Teil" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/">beiden</a> Teilen der Serie &#8220;Mit Parallel Studio Anwendungen multithreaden&#8221; ging es um die drei aktuellen Komponenten des Entwicklungstools: Parallel Composer, Parallel Inspector und Parallel Amplifier. Heute werde ich mir den Inspector noch mal ein wenig genauer ansehen.</p>
<p>Im Parallel Inspector steckt ein erprobtes Tool, und zwar 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>. Daher ist der Inspector primär für das Auffinden von Fehlern zuständig, die sich in Multithread-Code eingeschlichen haben. Um dies alles erledigen zu können, beherrscht das Debug-Tool eine Menge Dinge:</p>
<ul>
<li>Es entdeckt Speicherprobleme und -fehler, findet also fehlerhafte Speicherzuweisungen und korrupte Speicherdaten, die möglicherweise zu schwerwiegenden Fehlern während der Laufzeit führen würden.</li>
</ul>
<ul>
<li>Die bekannten Threading-Fehler wie Deadlocks und Race Conditions spürt der Inspector zuverlässig auf. Gerade diese nicht-deterministischen Laufzeitprobleme können mit herkömmlichen Debug-Tools kaum oder nur mit größtem Aufwand gefunden werden.</li>
</ul>
<ul>
<li>Der gesamte Multithread-Code wird nach Fehlern durchforstet. Vor allem die zur Laufzeit auftretenden Probleme erkennt der Inspector und führt den Programmierer direkt zu der betroffenenen Stelle. Dabei wird auch der zugehörige Call Stack angezeigt und die betroffenen Speicherstellen. Warnhinweise und Fehlermarkierungen helfen dabei, die aufgetretenen Probleme besser und schneller zu verstehen.</li>
</ul>
<ul>
<li>Das alles findet dank der Integration in Visual Studio unter einer einheitlichen und vertrauten Entwicklerumgebung statt. Damit lassen sich Fehler schneller erkennen, verifizieren und eliminieren. Das Gute daran: Es muss nicht jedesmal ein &#8220;Rebuild&#8221; des Quellcodes durchgeführt werden.</li>
</ul>
<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-inspector/02/2009/&via=sw_devtwits&text=Parallel-Studio-Serie (3): mehr Infos zum Parallel Inspector&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-inspector/02/2009/&via=sw_devtwits&text=Parallel-Studio-Serie (3): mehr Infos zum Parallel Inspector&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-inspector/02/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Serie: Mit Parallel Studio Anwendungen multithreaden (2)</title>
		<link>http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/</link>
		<comments>http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 12:55:23 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[OpenMP]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=834</guid>
		<description><![CDATA[Am Freitag habe ich eine kleine Serie um Parallel Studio gestartet. Im ersten Teil geht es um den Parallel Composer, mit dessen Hilfe paralleler Quellcode erzeugt werden kann. Das heutige zweite Kapitel handelt von den Komponenten Parallel Inspector und Parallel Amplifier. Mit dem Parallel Inspector lassen sich Multithread-Anwendungen in vielfältiger Weise debuggen. Es  geht allerdings [...]]]></description>
			<content:encoded><![CDATA[<p>Am Freitag habe ich eine kleine Serie um Parallel Studio gestartet. <a title="Hier geht's zum ersten Teil der Parallel-Studio-Serie" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Im ersten Teil</a> geht es um den Parallel Composer, mit dessen Hilfe paralleler Quellcode erzeugt werden kann. Das heutige zweite Kapitel handelt von den Komponenten Parallel Inspector und Parallel Amplifier.</p>
<p>Mit dem Parallel Inspector lassen sich Multithread-Anwendungen in vielfältiger Weise debuggen. Es  geht allerdings um weit mehr als das bloße Aufspüren von Quellcode-Fehlern:</p>
<ul>
<li>Es spielt keine Rolle, welche <a title="Multithreading-Konzepte OpenMP und Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">Programmiermethode</a> eingesetzt wird. Parallel Inspector unterstützt nämlich OpenMP (besser: er basiert darauf), kommt aber auch mit <a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Intel TBB</a> und Windows Threads klar.</li>
</ul>
<ul>
<li>Fehler wie Dead Locks und Race Conditions werden zur Laufzeit gefunden, bevor sie der Kunde findet.</li>
</ul>
<ul>
<li>Das Laufzeitverhalten wird vollständig aufgezeichnet, um so nachträglich und detailliert mögliche Fehler und Probleme innerhalb der parallelisierten Anwendung zu identifizieren.</li>
</ul>
<ul>
<li>Im Gegensatz zu anderen Testtools können schwer auffindbare, nicht-deterministische Fehler mit Parallel Inspector aufgespürt werden.</li>
</ul>
<ul>
<li>Pate des Parallel-Debuggers ist der <a title="Intel 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>. Damit bekommt man ein zuverlässiges, weil erprobtes Tool an die Hand zum Debuggen seiner Anwendungen.</li>
</ul>
<ul>
<li>Parallel Inspector fügt sich nahtlos in Visual Studio ein.</li>
</ul>
<p><span id="more-834"></span>Sobald die parallelisierte Anwendung auf Fehler hin überprüft und von denselben befreit werden konnte, schlägt die Stunde des Parallel Amplifier. Mit diesem Optimierungstool lassen sich folgende Dinge anstellen:</p>
<ul>
<li>Es bildet die zu optimierenden Quellcode-Bereiche grafisch so ab, dass sich das Skalierungspotenzial mit wenigen Blicken erfassen lässt.</li>
</ul>
<ul>
<li>Kein Trail-and-Error mehr, da das Laufzeitverhalten zuverlässig vermessen und bewertet werden kann.</li>
</ul>
<ul>
<li>Die Optimierungen finden auf einer abstrakten Ebene statt. Damit sind Kenntnisse über die zugrundeliegende Prozessorarchitektur oder des Assemblercodes überflüssig.</li>
</ul>
<ul>
<li>Das Tool ist entstanden auf <a title="whatif.intel.com" href="http://wwww.whatif.intel.com" target="_blank">whatif.intel.com</a> im Dialog zwischen Endanwendern und Intel-Ingenieuren.</li>
</ul>
<ul>
<li>Parallel Inspector basiert auf dem Thread Profiler und <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> und steht damit für ein zuverlässiges Tool, das auf rund 15 Jahre Entwicklungsarbeit made by Intel zurückblickt.</li>
</ul>
<ul>
<li>Vollständige Visual-Studio-Integration.</li>
</ul>
<p>Und, immer noch wissenshungrig in Sachen Parallel Studio?! Dann solltet ihr morgen wieder vorbeischaun. Dann gibt es mehr dazu &#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/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/&via=sw_devtwits&text= Serie: Mit Parallel Studio Anwendungen multithreaden (2)&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/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/&via=sw_devtwits&text= Serie: Mit Parallel Studio Anwendungen multithreaden (2)&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/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serie: Mit Parallel Studio Anwendungen multithreaden (1)</title>
		<link>http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/</link>
		<comments>http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 17:28:20 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[OpenMP]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=828</guid>
		<description><![CDATA[Heute beginnt auf dem Software Dev Blog die Serie &#8220;Mit Parallel Studio Anwendungen multithreaden&#8221;. In den geplanten Folgen geht es im Einzelnen um die Komponenten Parallel Composer, Parallel Inspector und Parallel Amplifier. Der erste Teil handelt vom Parallel Composer, der mit einer Reihe nützlicher Tools die Parallelisierung serieller Anwendungen erleichtern soll. Hierfür bietet er vereinfachte [...]]]></description>
			<content:encoded><![CDATA[<p>Heute beginnt auf dem Software Dev Blog die Serie &#8220;Mit <a title="Intel Parallel Studio ab sofort als Beta erhältlich " href="http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/">Parallel Studio</a> Anwendungen multithreaden&#8221;. In den geplanten Folgen geht es im Einzelnen um die Komponenten Parallel Composer, Parallel Inspector und Parallel Amplifier.</p>
<p>Der erste Teil handelt vom Parallel Composer, der mit einer Reihe nützlicher Tools die Parallelisierung serieller Anwendungen erleichtern soll. Hierfür bietet er</p>
<ul>
<li>vereinfachte Multithread-Funktionen, die allesamt auf OpenMP 3.0 basieren und als solche im Hintergrund eingesetzt werden</li>
</ul>
<ul>
<li>Vektorisierungspragmas in Kombination mit den SSE2-/SSE3-/SSSE3- und SSE4-Befehlen</li>
</ul>
<ul>
<li><a title="Multithreading-Konzepte OpenMP und Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">OpenMP 3.0</a></li>
</ul>
<ul>
<li>einfache Integration in die Entwicklungsumgebung von Microsoft Visual Studio</li>
</ul>
<ul>
<li>Intel Parallel Debugger Extensions als Plugin für Visual Studio</li>
</ul>
<ul>
<li> <a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Intel Threading Building Blocks</a></li>
</ul>
<ul>
<li> Lambda-Funktionen (nur C++) für den vereinfachten Austausch mit Intel TBB</li>
</ul>
<ul>
<li><a title="Software-Projekte mit Multithread-Bibliotheken optimieren" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel Integrated Performance Primitives</a></li>
</ul>
<ul>
<li>Unterstützung der Vektorschreibweise (arr[i])</li>
</ul>
<ul>
<li>automatische Parallelisierung von Quellcode</li>
</ul>
<ul>
<li>Diagnosetools, die beim Entwickeln von Multithread-Quellcode helfen</li>
</ul>
<ul>
<li>zahlreiche Multithread-Beispiele mit dem entsprechenden Quellcode</li>
</ul>
<p>Und am Montag gibt es dann <a title="Mehr Infos zu Parallel Inspector und Parallel Amplifier" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden-2/02/2009/">mehr Infos zu Parallel Inspector und Parallel Amplifier</a> <span style="text-decoration: line-through;">ein anschauliches Beispiel, Infos zu OpenMP 3.0 und einiges mehr</span>. Und die zusätzlichen Infos zu OpenMP und Co. gibt es am Dienstag &#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/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/&via=sw_devtwits&text=Serie: Mit Parallel Studio Anwendungen multithreaden (1)&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/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/&via=sw_devtwits&text=Serie: Mit Parallel Studio Anwendungen multithreaden (1)&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/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online-Seminare rund um Intel Parallel Studio</title>
		<link>http://www.software-dev-blog.de/online-seminare-rund-um-intel-parallel-studio/02/2009/</link>
		<comments>http://www.software-dev-blog.de/online-seminare-rund-um-intel-parallel-studio/02/2009/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 16:07:33 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=800</guid>
		<description><![CDATA[Kaum ist das Entwicklertool für parallele Programmierung, Intel Parallel Studio, in die Beta-Phase eingestiegen, hagelt es massenhaft Online-Webinars zu diesem Thema. Wer sich also für Parallel Studio im Detail interessiert, sollte sich für die Internetschulungen anmelden, die Intel gratis anbietet. Die Termine und Themen sehen wie folgt aus: 10. März 2009: Go-Parallelism! Ease the Onramp [...]]]></description>
			<content:encoded><![CDATA[<p>Kaum ist das Entwicklertool für parallele Programmierung, <a title="Intel Parallel Studio ab sofort als Beta erhältlich" href="http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/">Intel Parallel Studio,</a> in die Beta-Phase eingestiegen, hagelt es massenhaft Online-Webinars zu diesem Thema. Wer sich also für Parallel Studio im Detail interessiert, sollte sich für die Internetschulungen anmelden, die Intel gratis anbietet. Die Termine und Themen sehen wie folgt aus:</p>
<p><strong>10. März 2009: Go-Parallelism! Ease the Onramp for C/C++ Windows Development</strong> Hier erfährt man alles Wissenswerte über Parallel Studio aus erster Hand von einem der Parallelexperten aus dem Hause Intel, nämlich James Reinders persönlich. Dieses Webinar ist ein erster, guter Überblick für alle <a title="In der Parallelprogrammierung steckt die Zukunft" href="http://www.software-dev-blog.de/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/">angehenden Parallelentwickler</a>.</p>
<p><strong>17. März 2009: Solve Parallelism with Intel Parallel Studio</strong> In seinem Webinar weiht Joe Wolf künftige Multithread-Entwickler in das <a title="Wikiinfos zum Damenproblem" href="http://de.wikipedia.org/wiki/Damenproblem">mathematische Damenproblem (N-Queens) </a>ein und zeigt, wie es sich mithilfe von Parallel Studio lösen lässt. Hierzu sollte man das Entwicklertool am besten schon auf seinem Rechner <a title="Hier geht's zur Anmeldung für das Parallel-Studio-Beta-Programm" href="https://registrationcenter.intel.com/RegCenter/AutoGen.aspx?ProductID=1261&amp;AccountID=&amp;EmailID=&amp;ProgramID=&amp;RequestDt=&amp;rm=BETA&amp;lang=" target="_blank">installiert haben,</a> um die notwendigen Programmierschritte während der Session durchführen zu können.</p>
<p><strong>31. März 2009: Parallel Implementation Methods with Intel Parallel Composer</strong> Intel-Mann Ganesh Rao wird eine Menge über <a title="Multithreading-Konzepte OpenMP und Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">Programmiermethoden</a> wie OpenMP und <a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Intel TBB</a> erzählen, die sich in Parallel Studio einbinden und nutzen lassen. Es geht aber auch um multithread-optimierte Bibliotheken wie <a title=" Software-Projekte mit Multicore-Bibliotheken optimieren " href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel IPP</a> und Debugger-Tools wie Intel Parallel Debugger Extension und den Parallel Inspector, der ja Teil von Parallel Studio ist.</p>
<p><span id="more-800"></span><strong>14. April 2009: Find Errors in Windows C++ Parallel Applications</strong> Mitte April geht&#8217;s ans Eingemachte: So lernt man anhand entsprechender Beispiele, wie man mithilfe des Tools Parallel Debugger Extension Programmierfehler im C++-Quellcode aufspürt, um diese bereinigen zu können.</p>
<p><strong>28. April 2009: The Good, the Bad, and the Ugly: Improve Parallel Application Quality and Performance</strong> Am Anfang war die <a title=" Fünf Multicore-Programmierregeln auf einen Blick " href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">Konzeption</a> und das Software-Design, und genau darum geht es im Webinar von Eric Moore. Denn nur mit den richtigen Ansätzen lassen sich parallel programmierbare Anwendungen realisieren. Außerdem gibt es diverse Fallbeispiele bekannter (und unbekannter) Software-Entwickler, die Multithread-Tools erfolgreich einsetzen.</p>
<p><strong>12. Mai 2009: Identify and Address Threading Opportunities</strong> Caroline Davidson zeigt, wie sich mit Parallel Studio multithread-taugliche Programmabschnitte identifizieren lassen, wie man anhand virtueller Tests mögliche Schwachstellen im Quellcode aufspürt und wie man diese elegant behebt. Darüber hinaus werden OpenMP und Intel TBB ein Thema in Carolines Webinar sein.</p>
<p><strong>26. Mai 2009: Simplifying Parallelism Implementation with Intel Threading Building Blocks</strong> In seinem Webinar gewährt Mike D&#8217;Mello tiefe Einblicke in die parallele Programmierung mithilfe der Intell TBB, des Parallel Composers und deren Lambda-Funktionen. Daneben geht es um weitere Themen wie <a title=" Programmiermethoden: Daten- und Aufgabenparallelität" href="http://www.software-dev-blog.de/programmiermethoden-daten-und-aufgabenparallelitat/12/2008/">Daten- und Aufgabenparallelität</a>, Pipelining und parallele Warteschlangen.</p>
<p><strong>2. Juni 2009: Static Analysis and Intel C++ Compilers</strong> Anfang Juni geht es um das Thema Statische Fehlersuche und darum, wie man damit Laufzeitfehler, Ressourcenprobleme und Sicherheitsmängel aufspürt. Und zwar mit den Tools Parallel Composer und Source Checker.</p>
<p>Darüber hinaus gibt es viele weitere Online-Seminare zu Themen rund um Parallel Studio. Hierfür ist allerdings eine bestimmte Anzahl an Anmeldungen notwendig. Also, worauf wartet ihr noch: <a title="Hier geht's zur Anmeldung für die Intel-Webinars" 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">Seite ansurfen</a>, Webinar(s) mit der Maus aussuchen, registrieren &#8211; fertig. Die Anmeldebestätigung  gibt dann weitere Details zum Webinar preis: Uhrzeit (9:00 am PDT, was 18:00 Uhr unserer Zeitrechnung entspricht), Dauer (eine Stunde) und den Link, mit dem man das Online-Training starten kann.</p>
<p>Ach ja: Um herauszufinden, ob die eigene Plattform Intel-Webinar-tauglich ist, sollte man vorher am besten mal die zugehörige Sektion &#8220;System Setup &amp; Compatibility Check&#8221; aufsuchen. Nicht, dass man kurz vor Trainigsbeginn sein graues Wunder erlebt &#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/online-seminare-rund-um-intel-parallel-studio/02/2009/&via=sw_devtwits&text=Online-Seminare rund um 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/online-seminare-rund-um-intel-parallel-studio/02/2009/&via=sw_devtwits&text=Online-Seminare rund um 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/online-seminare-rund-um-intel-parallel-studio/02/2009/feed/</wfw:commentRss>
		<slash:comments>2</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>Intel Parallel Studio ab sofort als Beta erhältlich</title>
		<link>http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/</link>
		<comments>http://www.software-dev-blog.de/intel-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 10:15:19 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=766</guid>
		<description><![CDATA[Seit Ende November gibt es eine Light-Variante des Intel Parallel Studio, nämlich den Parallel Composer als Beta, die man sich als interessierter Entwickler auf seinen Rechner ziehen kann, um damit schon mal ein wenig Paralleles Programmieren zu üben. Tja, und ab sofort steht das komplette Paket Parallel Studio zum Beta-Testen bereit. Das Tool besteht aus [...]]]></description>
			<content:encoded><![CDATA[<p>Seit Ende November gibt es eine Light-Variante des <a title="Mehr Infos zum Intel Parallel Studio" href="http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/">Intel Parallel Studio,</a> nämlich den <a title=" Jetzt Beta-Tester des Intel Parallel Composer werden " href="http://www.software-dev-blog.de/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/">Parallel Composer als Beta</a>, die man sich als interessierter Entwickler auf seinen Rechner ziehen kann, um damit schon mal ein wenig Paralleles Programmieren zu üben.</p>
<p>Tja, und ab sofort steht das komplette Paket Parallel Studio <strong>zum Beta-Testen</strong> bereit. Das Tool besteht aus den drei Programmteilen Composer, Inspector und Amplifier. Was der Composer kann, muss ich nicht noch mal erklären. Der Inspector untersucht ähnlich wie der <a title="Intel 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> parallelisierten Code auf mögliche Fehler hin. Das sind vor allem schlimme Dinge wie Deadlocks und Race Conditions, die sich meist erst zur Laufzeit erkennen geben und mit herkömmlichen Testmethoden oder Debuggern kaum aufspürbar sind.</p>
<p>Der Amplifier schließlich ist für das Finetuning der parallelisierten Anwendung zuständig. So findet er beispielsweise selbstständig seriellen Quellcode, der noch parallelisiert werden könnte. Aber auch Engstellen im Programmablauf, die sich durch die Parallelisierung ergeben haben, stöbert der Amplifier auf.</p>
<p>Um am Betaprogramm von Parallel Studio teilnehmen zu können, sollte man Microsoft Visual Studio 2005 oder 2008 einsetzen (außer Express), in C oder C++ programmieren, und das unter Windows XP, Vista, Windows Server 2003 oder 2008. Mac- und Linux-Anwender bleiben leider (erst mal) außen vor.</p>
<p>Und hier geht es zur <a title="Hier geht's zur Anmeldung" href="https://registrationcenter.intel.com/RegCenter/AutoGen.aspx?ProductID=1261&amp;AccountID=&amp;EmailID=&amp;ProgramID=&amp;RequestDt=&amp;rm=BETA&amp;lang=" target="_blank">Teilnahme am Betaprogramm</a> (für die Anmeldung ist lediglich eine gültige E-Mail-Adresse erforderlich). Viel Spaß beim Testen!</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-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/&via=sw_devtwits&text=Intel Parallel Studio ab sofort als Beta erhältlich&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-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/&via=sw_devtwits&text=Intel Parallel Studio ab sofort als Beta erhältlich&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-parallel-studio-ab-sofort-als-beta-erhaltlich/02/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>In der Parallelprogrammierung steckt die Zukunft!</title>
		<link>http://www.software-dev-blog.de/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/</link>
		<comments>http://www.software-dev-blog.de/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 12:28:09 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Vision]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=647</guid>
		<description><![CDATA[Die Überschrift dieses Beitrags ist das Fazit eines sehr interessanten Artikels von Walter F. Tichy, seines Zeichens Professor für Softwaretechnik an der Uni Karlsruhe. In seinem Gastbeitrag auf Computerzeitung.de spricht er nämlich von der Herausforderung Multicore-Programmierung und den Chancen, die sich daraus ergeben. Dabei nennt er einerseits ein paar sehr wichtige Aspekte, andererseits vermisst er [...]]]></description>
			<content:encoded><![CDATA[<p>Die Überschrift dieses Beitrags ist das Fazit eines sehr interessanten Artikels von Walter F. Tichy, seines Zeichens Professor für Softwaretechnik an der Uni Karlsruhe. In seinem <a title="Der Artikel in voller Länge" href="http://www.computerzeitung.de/articles/multicore-herausforderung_liegt_in_der_programmierung:/2009005/31800939_ha_CZ.html?thes=&amp;tp=/themen/forschung/&amp;page=1" target="_blank">Gastbeitrag auf Computerzeitung.de</a> spricht er nämlich von der Herausforderung Multicore-Programmierung und den Chancen, die sich daraus ergeben. Dabei nennt er einerseits ein paar sehr wichtige Aspekte, andererseits vermisst er ein, zwei Dinge, die jedoch entgegen seiner Aussagen bereits existieren. Aber der Reihe nach.</p>
<p>Wichtig erscheint mir auf jeden Fall die Feststellung, dass &#8220;in Zukunft [...] Parallelrechner ungefragt und flächendeckend zur Verfügung stehen&#8221; werden. Ganz klar, das ist der Trend, und wenn man sich die Roadmap von Intel ansieht, wird schnell klar, dass der <a title="Das Multithread-Potenzial des Core i7-Prozessors" href="http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/">Core i7</a> nur der Anfang der Multicore-Ära ist.</p>
<p>Ebenso wichtig sind die potenziellen Multicore-Anwendungen, die Professor Tichy aufzählt: Dazu gehören natürlich Medienprogramme wie <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> und 3D-Spiele wie <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/">Crysis</a> oder <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/">Sacred 2</a> (und Bildbearbeitungstools wie <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/">Silver Efex Pro</a> von Nik Software). Aber auch weniger spektakuläre Anwendungen wie Logistikplaner, Tabellenkalkulation, Suchalgorithmen und Sicherheitsüberprüfungen profitieren vom Multithread-Code. Zusammengefasst könnte man mit Tichys Worten sagen:</p>
<blockquote><p><em>Diejenigen Firmen, die jetzt die richtigen Anwendungen identifizieren und parallelisieren, werden in Zukunft zu den Gewinnern gehören, zumal Beschleunigung durch Abwarten – das heißt: das Setzen auf weiter steigende Taktfrequenzen – nicht mehr funktioniert.</em></p></blockquote>
<p><span id="more-647"></span>Aber Professor Tichy weist zu Recht auch darauf hin, dass es große Hemmschwellen seitens der Software-Entwickler gibt, da sie sich durchaus dessen bewusst sind, dass es beim Parallelisieren von Anwendungen so <a title="Beliebte Fehler bei der Parallelprogrammierung " href="http://www.software-dev-blog.de/beliebte-fehler-bei-der-parallelprogrammierung/12/2008/">hässliche Dinge</a> wie Race Conditions, Dead Locks, Reihenfolgeprobleme und andere Synchronisationstücken gibt. Außerdem lassen sich bestimmte Fehler einfach nicht reproduzieren, da sie oft erst zur Laufzeit auftreten.</p>
<p>An dieser Stelle gibt es übrigens ein erstes &#8220;Hm?!&#8221;. Denn Testtools wie 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>sind durchaus in der Lage, potenzielle Fehler aufzuspüren, bevor ein einziger Betatester oder Endanwender die Software in den Händen hält. Dies ist naturgemäß nicht trivial, aber es sind entsprechende Tools vorhanden.</p>
<p>Ein weiterer wichtiger Punkt in seinem Vortrag hat mit den sequenziellen Algorithmen zu tun, die immer noch zu einem Großteil in existierenden Anwendungen implementiert sind. Die große Herausforderung hierbei ist natürlich das <a title=" Vier Schritte zum optimierten Multicore-Quellcode " href="http://www.software-dev-blog.de/vier-schritte-zum-optimierten-multicore-quellcode/12/2008/">Aufspüren des Parallelisierungspotenzials</a>. Dies lässt sich zum einen mit Tools wie <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> oder <a title="Infos zum Thread Profiler" href="http://www.intel.com/cd/software/products/asmo-na/eng/threading/winthreadprofiler/286749.htm" target="_blank">Thread Profiler</a> erledigen. Zum anderen muss man als Entwickler noch <a title="Fünf Multicore-Programmierregeln" href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">einen wichtigen Schritt</a> weiter gehen: Wie mache ich aus einem sequenziellen ein paralleles Software-Konzept? Und genau an diesem Punkt scheitern immer noch ganz viele.</p>
<p>Jetzt ist übrigens die Gelegenheit gekommen für ein zweites &#8220;Hm?!&#8221;. Und zwar bezüglich Professor Tichys Aussage, dass es derzeit keine vernünftigen Compiler und Bibliotheken gibt, die ein gewisses Maß an Parallelimus in sich bergen. So stecken beispielsweise im <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> eine ganze Menge an parallelen Konstrukten und Bibliotheken, die mit wenigen Hangriffen in den Quellcode übernommen werden können. Und <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/">Programmiermethoden</a> wie OpenMP erledigen dies sogar automatisch – von 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> und den multicore-optimierten <a title=" Software-Projekte mit Multicore-Bibliotheken optimieren " href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Bibliotheken</a> ganz zu schweigen.</p>
<p>Aber für Professor Tichy steht außer Frage, dass es hierzulande kluge Köpfe gibt, die durchaus in der Lage sind, mit den richtigen Tools und den richtigen Konzepten die Multicore-Programmierung voranzutreiben und für Anwendungen zu sorgen, die auf 4, 8, 16 oder gar <a title="Windows 7 skaliert auf bis zu 256 Prozessorkernen" href="http://www.software-dev-blog.de/ist-fur-windows-7-ein-neuer-taskmanager-notwendig/01/2009/">256 Prozessorkernen</a> skalieren. Und dann wird es auch so kommen, wie Professor Tichy abschließend scheibt:</p>
<blockquote><p><em>Bessere Produkte mit intuitiveren Schnittstellen, Sprach- und Videoverarbeitung, mehr Intelligenz und eingehender Modellierung des Nutzers und der Umgebung werden entstehen.</em></p></blockquote>
<p><strong>Ach ja:</strong> Ich werde mir nächste Woche auf der <a title="Infos zur OOP 2009" href="http://www.software-dev-blog.de/entwicklergemeinde-trifft-sich-auf-der-oop-2009/01/2009/">OOP 2009</a> den Vortrag von Professor Tichy zum Thema &#8220;Herausforderung Mehrkernsysteme&#8221; anhören – und dazu mit ihm ein Interview führen. Darauf bin ich schon sehr gespannt!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/&via=sw_devtwits&text=In der Parallelprogrammierung steckt die Zukunft!&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/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/&via=sw_devtwits&text=In der Parallelprogrammierung steckt die Zukunft!&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/in-der-parallelprogrammierung-steckt-die-zukunft/01/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ist für Windows 7 ein neuer Taskmanager notwendig?</title>
		<link>http://www.software-dev-blog.de/ist-fur-windows-7-ein-neuer-taskmanager-notwendig/01/2009/</link>
		<comments>http://www.software-dev-blog.de/ist-fur-windows-7-ein-neuer-taskmanager-notwendig/01/2009/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 14:33:28 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=608</guid>
		<description><![CDATA[Gerade eben habe ich einen interessanten Blog-Beitrag zum Thema Windows 7 und dessen Multicore-Fähigkeiten gefunden. Da das nächste Betriebssystem aus dem Hause Microsoft (das eigentlich gar nicht so richtig neu ist) mit bis zu 256 Prozessorkernen zurechtkommen wird, stellt sich Blog-Autor Doug Holland die Frage, ob der Windows Taskmanager noch das passende Tool ist für [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade eben habe ich einen <a title="Wie sehen 256 Prozessorkerne aus?" href="http://software.intel.com/en-us/blogs/2009/01/05/what-does-256-cores-look-like/" target="_blank">interessanten Blog-Beitrag</a> zum Thema <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 und dessen Multicore-Fähigkeiten</a> gefunden. Da das nächste Betriebssystem aus dem Hause Microsoft (das eigentlich gar nicht so richtig neu ist) mit bis zu 256 Prozessorkernen zurechtkommen wird, stellt sich Blog-Autor Doug Holland die Frage, ob der Windows Taskmanager noch das passende Tool ist für solch eine Fülle an CPUs.</p>
<p>Das ist sicherlich nicht ganz ernst gemeint, macht aber die Herausforderungen sehr anschaulich, vor der die Entwicklergemeinde stehen wird, sobald Windows 7 auf dem Markt ist und das Programmieren von neuer Software für maximal 256 Cores ansteht. Dann gibt es nämlich nur noch eins: die richtigen Tools kaufen und parallelisieren, was das Zeug hält. Andernfalls wird aus dem Multicore-Riesen ein lahmer Singlecore-Zwerg, der von der sequenziell programmierten Anwendung jämmerlich ausgebremst wird.</p>
<p>Wie gut, dass es hierfür schon einiges gibt und weitere Tools kommen werden. Die Rede ist beispielsweise von den <a title="Threading Building Blocks" href="http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/">Threading Building Blocks</a>, <a title="Thread Checker hilft, mögliche Dead Locks und Race Conditions aufzuspüren" href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">Thread Checker</a>, <a title=" Beta-Tester des Intel Parallel Composer werden" href="http://www.software-dev-blog.de/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/">Parallel Studio</a>, <a title="Videochat mit Steve Teixeira, Microsoft-Parallel-Guru über VS 2010 und mehr" href="http://www.software-dev-blog.de/videochat-mit-steve-teixeira-microsoft-parallel-guru/11/2008/">Visual Studio 2010</a> und weiteren nützlichen Hilfsmitteln, mit denen die Parallelprogrammierung zwar kein Klacks wird, vieles sich aber vereinfachen lässt.</p>
<p>Ach ja: Für das Problem mit dem unterdimensionierten Windows Taskmanager hat einer der Kommentatoren einen nützlichen Tipp parat: <a title="Wenn Hard- und Software verschmelzen: Virtualisierung" href="http://www.software-dev-blog.de/wenn-hard-und-software-verschmelzen-virtualisierung/10/2008/">Virtualisierung</a>. Soll heißen, dass sich einfach mehrere Prozessorkerne zu einem virtuellen Prozessor zusammenfassen lassen. Dann passt die Taskmanager-Anzeige auch wieder auf einen 19-Zöller und die Anschaffung eines 30-Zoll-Monitors kann noch einmal verschoben werden &#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/ist-fur-windows-7-ein-neuer-taskmanager-notwendig/01/2009/&via=sw_devtwits&text=Ist für Windows 7 ein neuer Taskmanager notwendig?&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/ist-fur-windows-7-ein-neuer-taskmanager-notwendig/01/2009/&via=sw_devtwits&text=Ist für Windows 7 ein neuer Taskmanager notwendig?&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/ist-fur-windows-7-ein-neuer-taskmanager-notwendig/01/2009/feed/</wfw:commentRss>
		<slash:comments>0</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 Parallel-Programmiersprachen braucht das Land</title>
		<link>http://www.software-dev-blog.de/optimierte-parallel-programmiersprachen-braucht-das-land/12/2008/</link>
		<comments>http://www.software-dev-blog.de/optimierte-parallel-programmiersprachen-braucht-das-land/12/2008/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 08:17:13 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[TBB]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=523</guid>
		<description><![CDATA[Gerade habe ich auf Technologyreview.com einen sehr interessanten Artikel zum Thema Multicore gefunden. Bereits sein Untertitel zeigt, worunter die Multicore-Programmierer derzeit am meisten leiden: We need languages that take full advantage of multicore processing Genau darum geht es heute. Nicht die Hardware ist der Hemmschuh, sondern die Software, sprich die Programmiersprachen, die derzeit zur Verfügung [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade habe ich auf Technologyreview.com einen <a title="via technologyreview.com" href="http://www.technologyreview.com/computing/21822/?a=f" target="_blank">sehr interessanten Artikel</a> zum Thema Multicore gefunden. Bereits sein Untertitel zeigt, worunter die Multicore-Programmierer derzeit am meisten leiden:</p>
<blockquote><p>We need languages that take full advantage of multicore processing</p></blockquote>
<p>Genau darum geht es heute. Nicht die Hardware ist der Hemmschuh, sondern die Software, sprich die Programmiersprachen, die derzeit zur Verfügung stehen. Oder wie es der Autor passend formuliert:</p>
<blockquote><p>Computer evolution, however, is now headed down an entirely new path: instead of simply becoming faster, our computer processors are being conjoined to work together. That new computer architecture requires a serious evolution in computer programming. Without it, we can only scratch the surface of what multicore computing can really do.</p></blockquote>
<p>Das ist die Kernthese, mit der sich auch dieses Blog immer wieder beschäftigt, denn die Zeiten der GHz-Spirale sind endgültig vorbei, und eine neue Ära des &#8220;Parallel Computing&#8221; ist angebrochen – sogar im Mainstream-Markt. Denn was die <a title="HPC by Intel" href="http://www.intel.com/cd/products/services/emea/deu/server/hpc/405548.htm" target="_blank">HPC-Gemeinde</a> seit Jahren vormacht, ist auf dem gemeinen Desktop-PC und Notebook jetzt auch möglich, wird nur zu selten richtig eingesetzt.</p>
<p>Eine weitere interessante These stellt der TR-Artikel in Sachen &#8220;Umdenken&#8221; auf: So wie seinerzeit diverse Software-Entwickler den Trend der objektorientierten Programmierung verschlafen haben, droht heute die Gefahr erneut, da das Schreiben von parallel-orientiertem Sourcecode ebenfalls einen völlig neuen Denkansatz erfordert. Dies betrifft vor allem den <a title=" Programmiermethoden: Daten- und Aufgabenparallelität " href="http://www.software-dev-blog.de/programmiermethoden-daten-und-aufgabenparallelitat/12/2008/">gemeinsamen Zugriff auf Daten</a>, dessen Koordinierung in parallelen Systemen bedeutend anspruchsvoller ist als im seriellen Universum.</p>
<p><span id="more-523"></span>Aber es gibt laut Paul Tyma, dem Autor des zitierten Beitrags, auch gute Nachrichten: Denn Sprachen wie C++ und Java, die von ihrer Anlage her ja seriell sind, haben große Änderungen erfahren und sind mittlerweile durchaus in der Lage, in Multicore-Umgebungen zu skalieren. Dies machen Tools wie 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/">Intel Threading Building Blocks</a> oder die <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> deutlich, in denen ein ganze Menge an Multithread-Potenzial steckt. Mit diesen Hilfsmitteln gelingt auch weniger erfahrenen Parallel-Programmierern der Einstieg in die Multicore-Welt. Was die Entwickler allerdings nicht davon abhalten sollte, ihre Software-Projekte in Zukunft akribisch vorzubereiten und über bestimmte Dinge <a title=" Fünf Multicore-Programmierregeln auf einen Blick " href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">gründlich nachzudenken</a>.</p>
<p>Fazit: Mit den gegebenen Tools könnte der Wechsel von der seriellen zur parallelen Programmierung bald in großem Maßstab gelingen. Oder wie es Paul Tyma zusammenfasst:</p>
<blockquote><p>With these new languages and programmers&#8217; development of new skills, the acceleration of computing power that we&#8217;ve almost come to take for granted will soon be back on track.</p></blockquote>
<p>Übrigens: Paul war früher bei Google, hat sich dort intensiv mit dem Thema Multicore-Programmierung beschäftigt. Er sollte also wissen, worüber er spricht &#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/optimierte-parallel-programmiersprachen-braucht-das-land/12/2008/&via=sw_devtwits&text=Optimierte Parallel-Programmiersprachen braucht das Land&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-parallel-programmiersprachen-braucht-das-land/12/2008/&via=sw_devtwits&text=Optimierte Parallel-Programmiersprachen braucht das Land&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-parallel-programmiersprachen-braucht-das-land/12/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beliebte Fehler bei der Parallelprogrammierung</title>
		<link>http://www.software-dev-blog.de/beliebte-fehler-bei-der-parallelprogrammierung/12/2008/</link>
		<comments>http://www.software-dev-blog.de/beliebte-fehler-bei-der-parallelprogrammierung/12/2008/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 10:30:28 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=500</guid>
		<description><![CDATA[Parallelprogrammierung ist keine einfache Disziplin und birgt eine Menge Fehlerquellen. Das beginnt beim grundsätzlichen Design der Anwendung und endet bei falsch gesetzten &#8220;Locks&#8221;. Daher folgen an dieser Stelle die beliebtesten Fehler der Multicore-Programmierung. Und was man dagegen tun kann, erfahren Sie hier auch. Zunächst einmal helfen unsere fünf Multicore-Regeln, die wir Ende letzten Monats aufgestellt [...]]]></description>
			<content:encoded><![CDATA[<p>Parallelprogrammierung ist keine einfache Disziplin und birgt eine Menge Fehlerquellen. Das beginnt beim grundsätzlichen Design der Anwendung und endet bei falsch gesetzten &#8220;Locks&#8221;. Daher folgen an dieser Stelle die beliebtesten Fehler der Multicore-Programmierung. Und was man dagegen tun kann, erfahren Sie hier auch.</p>
<p>Zunächst einmal helfen unsere <a title=" Fünf Multicore-Programmierregeln auf einen Blick " href="http://www.software-dev-blog.de/funf-multicore-programmierregeln-auf-einen-blick/11/2008/">fünf Multicore-Regeln</a>, die wir Ende letzten Monats aufgestellt haben. Die wichtigste davon lautet beim Software-Design: Denke parallel! Denn nur so hält man am Schluss eine Anwendung in den Händen, die sich mithilfe der <a title=" Nützliche und kostenlose Entwickler-Tools " href="http://www.software-dev-blog.de/nutzliche-und-kostenlose-entwickler-tools/11/2008/">passenden Tools</a> bestmöglich parallelisieren lässt.</p>
<p>Eine beliebte Fehlerquelle ist ein <strong>Überangebot an Threads</strong>, vor allem dann, wenn Sie diese &#8220;manuell&#8221; programmieren, so wie im Falle von Pthreads. Daher sollte man durchaus sparsam mit dem Erstellen von Threads umgehen, denn nur eine ausgewogene Balance von parallelem und seriellem Quellcode bringt die erwünschten Leistungsschübe. Oder man bedient sich nützlicher Tools wie <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/">Intel TBB</a>, die Threads automatisch generieren.</p>
<p><span id="more-500"></span>Ebenfalls sehr wichtig ist die optimale Granularität der zum Einsatz kommenden <strong>Locks und Unlocks</strong>, denn jedes Sperren und Entsperren von parallelem Programmcode erfordert einen hohen Verwaltungsaufwand. Werden Locks zu lange ausgeführt, können sie andere Threads unnötig blockieren, was die Anwendung insgesamt ausbremst. Und auch die gemeinsam genutzten Speicherressourcen müssen bestmöglich aufeinander abgestimmt sein, denn ein übertriebener Synchronisierungsaufwand macht sich negativ bemerkbar.</p>
<p>Ein weiterer Hemmschuh parallel programmierter Software ist die <strong>schlechte Verteilung der notwendigen Tasks</strong> auf die vorhandenen Prozessorkerne beziehungsweise Threads. Denn nur wenn Sie diese optimal ausnutzen, indem Sie Leerlaufzeiten einzelner Cores vermeiden, skaliert die Anwendung auf einem Multicore-System in entsprechender Weise.</p>
<p>All diese Fehler können Sie übrigens von Anfang an vermeiden, indem Sie Tools wie den <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>einsetzen, der Ihnen genau die Stellen zeigt, die man am besten parallelisieren kann. Aber auch das Laufzeitverhalten einer fertigen Anwendung kann mit VTune erforscht werden. Und wenn Sie dann mal ein parallel programmiertes Programm vorliegen haben, hilft 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> dabei, mögliche Fehler aufzuspüren. Hierbei sind Dead Locks und Race Conditions eine häufig auftretende Fehlerquelle, die sich mithilfe des Tools lokalisieren lassen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/beliebte-fehler-bei-der-parallelprogrammierung/12/2008/&via=sw_devtwits&text=Beliebte Fehler bei der Parallelprogrammierung&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/beliebte-fehler-bei-der-parallelprogrammierung/12/2008/&via=sw_devtwits&text=Beliebte Fehler bei der Parallelprogrammierung&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/beliebte-fehler-bei-der-parallelprogrammierung/12/2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mac OS X 10.5 (Leopard) fährt voll auf Multicore ab</title>
		<link>http://www.software-dev-blog.de/mac-os-x-105-leopard-fahrt-voll-auf-multicore-ab/12/2008/</link>
		<comments>http://www.software-dev-blog.de/mac-os-x-105-leopard-fahrt-voll-auf-multicore-ab/12/2008/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 09:48:44 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=474</guid>
		<description><![CDATA[J, ja, es ist schon ein paar Tage her, dass Mac OS X 10.5, auch bekannt als Leopard, das Licht der Welt erblickt hat. Aber ich habe gerade ein paar sehr interessante Details bezüglich der Multicore-Affinität des Apple-Betriebssystems entdeckt. Und so richtig viel darüber habe ich im Web nicht gefunden. Hardware-seitig bietet Apple ja mit [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-485" style="margin-left: 10px; margin-right: 0px;" title="In Mac OS X 10.5 Leopard steckt eine Menge Multicore-Potenzial" src="http://www.software-dev-blog.de/wp-content/images/2008/12/apple-logo1.jpg" alt="In Mac OS X 10.5 Leopard steckt eine Menge Multicore-Potenzial" height="180" /></p>
<p>J, ja,  es ist schon ein paar Tage her, dass Mac OS X 10.5, auch bekannt als Leopard, das <a title="Die wichtigsten Leopard-Funktionen auf einen Blick" href="http://www.it-techblog.de/frisch-vom-apple-event-leopards-beste-funktionen/10/2007/" target="_blank">Licht der Welt</a> erblickt hat. Aber ich habe gerade ein paar sehr interessante Details bezüglich der Multicore-Affinität des Apple-Betriebssystems entdeckt. Und so richtig viel darüber habe ich im Web nicht gefunden.</p>
<p>Hardware-seitig bietet Apple ja mit dem <a title="Mehr Infos zum Mac Pro von Apple" href="http://www.it-techblog.de/neuer-mac-pro-und-xserve-mit-8-core-ab-sofort-bei-apple/01/2008/" target="_blank">Mac Pro</a> die volle Mehrkerntechnik von Intel: Acht Prozessorkerne beschleunigen vor allem die Bild- und Videobearbeitung, aber auch für Apple-eigene Anwendungen ist der Intel Xeon Prozessor, eine Quadcore-CPU mit maximal 3,2 GHz, nützlich.</p>
<p>Von dieser Mehrkern-Architektur profitieren unter anderem Programme wie Mail, das Adressbuch und die Verwaltung der Schriftensammlung, indem anfallende Aufgaben auf die vorhandenen Ressourcen möglichst optimal verteilt werden. Darum kümmert sich übrigens die neu programmierte Ablaufsteuerung von Leopard.</p>
<p>In Sachen Netzwerk hat sich Apple ebenfalls Gedanken gemacht: So wurde ein multithreading-fähiger Netzwerkstapel implementiert, der die Ein- und Ausgabeanfragen des LANs schneller verarbeiten kann. Außerdem wurde die indizierte Suchfunktion Spotlight beschleunigt, genauso wie die Wörterbuchfunktion von Mac OS X 10.5. Dies hat vor allem mit der <a title="Wiki-Infos zu Cocoa" href="http://de.wikipedia.org/wiki/Cocoa" target="_blank">objektorientierten API Cocoa</a> zu tun, die ebenfalls für den Multicore-Betrieb optimiert wurde.</p>
<p><span id="more-474"></span>Um all diese Verbesserungen hinsichtlich der parallelen Datenverarbeitung zu erzielen, hat Apple seinem Betriebssystem eine ganz neue Klasse an APIs spendiert, die sogenannten NSOperationen. Dabei werden unabhängig voneinander berechenbare Operationen einer Warteschleife hinzugefügt, die automatisch und sehr dynamisch die Verarbeitung der Befehle oder Operationen steuert, je nach Auslastung der vorhandenen Prozessorkerne.</p>
<p>Interessant daran ist auch die Tatsache, dass man als Entwickler die erforderlichen Threads nicht selbst erstellen und wieder schließen muss. Dies erledigt Cocoa automatisch, indem es die Operationen selbstständig auf die Ressourcen effizient verteilt.</p>
<p>Darüber hinaus lassen sich Leopard-basierte Macs (vor allem der bereits erwähnte Mac Pro) für wissenschaftliche Zwecke einsetzen, da Apple auch hier auf die Multicore-Fähigkeiten seiner Rechner setzt. Das Zauberwort heißt <a title="Wiki-Infos zu MPI" href="http://de.wikipedia.org/wiki/Message_Passing_Interface" target="_blank">OpenMPI</a>, was eine Vernetzung mehrerer Rechner ermöglicht. Dabei kommen mediumseitig IP-Verbindungen wie LAN oder WLAN zum Einsatz, die Software für den eigenen Mac-Cluster nennt sich <a title="Apple-Infos zu Xgrid" href="http://www.apple.com/de/server/macosx/technology/xgrid.html" target="_blank">Xgrid</a> und stammt ebenfalls von Apple. Selbst in der Entwicklerumgebung <a title="Apple-Infos zu Xcode" href="http://developer.apple.com/Tools/xcode/" target="_blank">Xcode</a> steckt eine Menge Multicore-Potenzial, wie wir ja bereits in einem <a title="Apple-Software mit Intel-Tools optimieren " href="http://www.software-dev-blog.de/apple-software-mit-intel-tools-optimieren/11/2008/">früheren Beitrag</a> gezeigt haben. Parallel Computing aus dem Hause Apple von A bis Z eben &#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/mac-os-x-105-leopard-fahrt-voll-auf-multicore-ab/12/2008/&via=sw_devtwits&text=Mac OS X 10.5 (Leopard) fährt voll auf Multicore 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/mac-os-x-105-leopard-fahrt-voll-auf-multicore-ab/12/2008/&via=sw_devtwits&text=Mac OS X 10.5 (Leopard) fährt voll auf Multicore 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/mac-os-x-105-leopard-fahrt-voll-auf-multicore-ab/12/2008/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>Mit Intel Threading Building Blocks parallel programmieren</title>
		<link>http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/</link>
		<comments>http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 18:43:44 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[TBB]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=450</guid>
		<description><![CDATA[Über die Intel Threading Building Blocks haben wir schon das ein oder andere Mal berichtet, aber eine gründliche Betrachtung stand bisher noch aus. Bisher! Die Intel TBB lassen sich in sechs fundamentale Einzelteile zerlegen: 1. Algorithmen 2. Container 3. Memory Allocator 4. Mutual Exclusion 5. Timer 6. Task Scheduler 1. Die TBB-Algorithmen richten sich vor [...]]]></description>
			<content:encoded><![CDATA[<p>Über die Intel Threading Building Blocks haben wir schon <a title="Intel TBB parallel_for mithilfe von C++0x-Lambda-Ausdrücken implementieren" href="http://www.software-dev-blog.de/intel-tbb-parallel_for-mithilfe-von-c0x-lambda-ausdrucken-implementieren/05/2011/">das ein</a> oder <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/" target="_self">andere Mal berichtet</a>, aber eine gründliche Betrachtung stand bisher noch aus. Bisher!</p>
<p>Die Intel TBB lassen sich in sechs fundamentale Einzelteile zerlegen:</p>
<p>1. Algorithmen<br />
2. Container<br />
3. Memory Allocator<br />
4. Mutual Exclusion<br />
5. Timer<br />
6. Task Scheduler</p>
<p>1. Die <strong>TBB-Algorithmen</strong> richten sich vor allem an parallel ausführbare Schleifenkonstrukte, aber auch Sortieralgorithmen lassen sich mithilfe der TBB recht problemlos parallelisieren. Die zugehörigen Funktionen nennen sich <em>parallel_for</em>, <em>parallel_reduce</em>, <em>parallel_scan</em>, <em>parallel_while</em>, <em>parallel_pipeline</em> und <em>parallel_sort</em>. Eine genauere Betrachtung dieser Funktionen findet auf dem Software Dev Blog in einem späteren Beitrag statt.</p>
<p>2. Die Intel TBB setzen sich aus <strong>drei Containern</strong> zusammen: <em>queue</em>, <em>vector</em> und <em>hash table</em>. Diese Container findet man zwar auch in den Standard Template Libraries von C++ und Fortran, diese sind allerdings weniger thread-sicher als die der Intel TBB.</p>
<p>3. Der <strong>Memory Allocator</strong> der Intel TBB ist äußerst skalierbar und daher in der Lage, gemeinsam genutzten Speicher auf mehrere Threads so zu verteilen, dass sich diese nicht gegenseitig behindern. Damit kümmert sich der Allocator der TBB um das gleichzeitige Ausführen der wichtigsten Funktionen wie <em>malloc</em>, <em>new</em> und <em>delete</em>.</p>
<p>4. Die <strong>Mutual Exclusions</strong> der Intel TBB kümmern sich um konsistente Daten bei der Ausführung paralleler Funktionen. Es geht also um das Sperren und Freigeben von Daten (Lock und Unlock) während der Ausführung verschiedener Threads. Somit ist gewährleistet, dass sich Threads bei der Manipulation von Daten nicht ins Gehege kommen, was zu richtigen Ergebnissen führen soll.</p>
<p>5. Die in den Intel TBB implementierte <strong>Timing-Funktion</strong> &#8211; also das Ermitteln der Programmdauer per Subtraktion zweier Uhrzeiten &#8211; ist für viele Entwickler ein wichtiger Aspekt. Von Bedeutung dabei ist aber auch ein Ergebnis, auf das man sich selbst dann verlassen kann, wenn der zugehörige Thread auf mehreren Prozessorkernen parallel ausgeführt wird.</p>
<p>6. Eine Kernfunktion der Intel TBB ist der <strong>Task Scheduler</strong>, der die Vielzahl unterschiedlicher Aufgaben, die mithilfe der Algorithmen aus Punkt 1 definiert werden, auf die vorhandenen Threads, also Prozessorkerne, optimal verteilt. Um dies zu garantieren, beherrscht der Task Scheduler das Load Balancing, was dazu führt, dass parallele Aufgaben möglichst effizient von den vorhandenen CPU-Cores ausgeführt werden. Folge: Maximale Performance der Anwendung!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/&via=sw_devtwits&text=Mit Intel Threading Building Blocks parallel programmieren&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/mit-intel-threading-building-blocks-parallel-programmieren/12/2008/&via=sw_devtwits&text=Mit Intel Threading Building Blocks parallel programmieren&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/mit-intel-threading-building-blocks-parallel-programmieren/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>Fehler im Multithread-Code aufspüren: Thread Checker</title>
		<link>http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/</link>
		<comments>http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 09:49:31 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=332</guid>
		<description><![CDATA[Beim Erstellen von parallel programmiertem Quellcode treten im Gegensatz zu seriellem Sourcecode zwei mögliche Probleme sehr viel häufiger auf: Race Conditions und Dead Locks. Beide sind mit herkömmlichen Mitteln nicht aufspürbar, so dass ein spezielles Tool erforderlich ist, dass diese Aufgaben erledigen kann. Dieses Software-Werkzeug nennt sich Thread Checker und ist Bestandteil des VTune Performance [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Erstellen von parallel programmiertem Quellcode treten im Gegensatz zu seriellem Sourcecode zwei mögliche Probleme sehr viel häufiger auf: Race Conditions und Dead Locks. Beide sind mit herkömmlichen Mitteln nicht aufspürbar, so dass ein spezielles Tool erforderlich ist, dass diese Aufgaben erledigen kann. Dieses Software-Werkzeug nennt sich <a title="Intel Software Analyse Tools" href="http://www.software-dev-blog.de/software-projekte-mit-intel-tools-optimieren/10/2008/">Thread Checker</a> und ist Bestandteil des <a title="VTune Performance Analyser" href="http://www.intel.com/cd/software/products/asmo-na/eng/vtune/239144.htm" target="_blank">VTune Performance Analyzer</a>, der sich wiederum vollständig in Visual Studio integrieren lässt.</p>
<p>Damit steht der Thread Checker in der bekannten Entwicklungsumgebung zur Verfügung. Eine Einschränkung gibt es allerdings: Es lassen sich nur nativ programmierte Anwendungen mit dem Thread Checker überprüfen, also nur C++ und Visual Fortran. .NET-Entwickler bleiben derzeit leider außen vor. Dies wird sich allerdings mit Visual Studio 2010 ändern, das ja Ende nächsten Jahres auf den Markt kommen soll.</p>
<p><strong>Exkurs: Race Conditions und Dead Locks</strong><br />
Race Conditions treten vor allem dann auf, wenn ein parallel programmiertes Programm zur Laufzeit zwei Thread generiert, die beide auf ein gemeinsames Datum zugreifen und davon nichts wissen. So erzeugt Thread A beispielsweise ein Datum X und speichert es, was Thread B genauso tut, ohne darüber Bescheid zu wissen, dass Thread A das Datum X gerade geändert. Dies kann natürlich zu unvorhergesehenen Problemen und Fehlern im weiteren Programmablauf führen.</p>
<p><span id="more-332"></span>Bei Dead Locks hingegen verhält es sich genau umgekehrt: Dort warten zwei Threads gemeinsam auf eine bestimmtes Ereignis, das aber niemals eintreten wird. Folge: Das Programm begibt sich in eine Endlosschleife, aus der es nicht mehr herausfindet.</p>
<p>Der Intel Thread Checker ist also ein hoch entwickelter Debugger, der Multithread-Fehler aufspürt, die mithilfe von Windows-, POSIX- und OpenMP-Thread-Tools sowie den Threading Building Blocks erzeugt wurden. Und das gilt nicht nur für aktuelle Fehler, sondern auch für potenzielle, die der Thread Checker bei seinen Untersuchungen finden kann. Das Intel-Analysetool gibt es sowohl für Windows XP und Vista in der 32- und 64-Bit-Variante als auch für Linux, allerdings nicht für Itanium-Plattformen.</p>
<p><strong>Webast-Tipp:</strong> Auf der Webseite der SOS Software Service GmbH findet sich ein sehr fundiertes <a title="Videocast Nummer zwei beschäftigt sich intensiv mit dem Thread Checker" href="http://www.software-dev-blog.de/kostenlose-webcasts-zur-multicore-programmierung/11/2008/">Videotutorial</a> zum Thema Thread Checker. In diesem Webcast wird auch ein weiteres Analyse-Tool von Intel besprochen, nämlich der <a title="Webinfos zum Thread Profiler" href="http://www.intel.com/cd/software/products/asmo-na/eng/threading/winthreadprofiler/286749.htm" target="_blank">Thread Profiler</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/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/&via=sw_devtwits&text=Fehler im Multithread-Code aufspüren: Thread Checker&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/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/&via=sw_devtwits&text=Fehler im Multithread-Code aufspüren: Thread Checker&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/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jetzt Beta-Tester des Intel Parallel Composer werden</title>
		<link>http://www.software-dev-blog.de/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/</link>
		<comments>http://www.software-dev-blog.de/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 10:21:19 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Beta]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=328</guid>
		<description><![CDATA[Ende Oktober hatte ich schon mal über das Intel Parallel Studio berichtet. Hierbei handelt es sich um eine komplette Entwicklungsumgebung für C++-Projekte, die mithilfe von Microsoft Visual Studio realisiert werden. Parallel Studio erlaubt es, vorhandenen oder neuen Code so zu tunen, dass er maximale Parallelität aufweist und somit optimal auf Multiprozessor-Systemen wie dem Intel Core [...]]]></description>
			<content:encoded><![CDATA[<p>Ende Oktober hatte ich schon mal über das <a title="Infos zum Intel Parallel Studio" href="http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/">Intel Parallel Studio</a> berichtet. Hierbei handelt es sich um eine komplette Entwicklungsumgebung für C++-Projekte, die mithilfe von Microsoft Visual Studio realisiert werden. Parallel Studio erlaubt es, vorhandenen oder neuen Code so zu tunen, dass er maximale Parallelität aufweist und somit optimal auf Multiprozessor-Systemen wie dem <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/">Intel Core i7</a> skaliert.</p>
<p>Einer der vier Teilprogramme von Parallel Studio nennt sich Parallel Composer, der es Software-Entwicklern dank vorgefertigter Bibliotheken, Funktionen und Programmschnipseln relativ einfach machen soll, ihrem Quellcode paralleles Leben einzuhauchen. Und mit dem gestrigen Tag wurde das Beta-Programm für den Parallel Composer gestartet. Wer also unter C++ programmiert, hierfür Windows Visual Studio 2005 oder 2008 einsetzt und seine Anwendungen für Intel-Multicore-CPUs optimieren will, sollte sich eine <a title="Hier kann man sich für das Beta-Programm bewerben" href="http://www.intel.com/go/parallel" target="_blank">Beta-Version des Parallel Composers</a> besorgen.</p>
<p>Neben dem Beta-Programm für den Parallel Composer stellt Intel eine Menge <a title="Tipps &amp; Tricks rund um den Intel Parallel Composer" href="http://software.intel.com/en-us/articles/intel-parallel-composer/all/1" target="_blank">Hilfe, Tipps und Tricks</a> rund um das parallele Programmieren mit dem neuen Tool zur Verfügung. Ob das Hilfestellungen bei Installationsproblemen sind oder nützliche Tipps, wie sich der Intel C++-Compiler innerhalb des Microsoft Visual Studio Team Foundation Server einsetzen lässt – hier findet man eine Menge Antworten auf seine Fragen rund um den Intel Parallel Composer.</p>
<p><strong>Hinweis:</strong> Ich muss noch eines klar stellen: Die Beta-Phase des Intel Parallel Studio hat entgegen früherer Ankündigungen noch nicht begonnen, was aber nur einen kurzen Aufschub bedeutet. Daher wird das Ganze mit einem Teilprogramm, dem Parallel Composer, gestartet.</p>
<p>Videotipp: Wer mehr in Bild und Ton zum Intel Parallel Studio im Speziellen und zum parallelen Programmieren unter Windows im Allgemeinen lernen will, sollte sich mal die Videochats mit <a title="Videochat mit Ralph de Wargny zu Multithread-Tools von Intel" href="http://www.software-dev-blog.de/tech-ed08-videochat-intel-multicore-tools/11/2008/">Ralph de Wargny von Intel</a> und <a title="Videochat mit Steve Teixeira von Microsoft zu Redmondern Parallel-Plänen" href="http://www.software-dev-blog.de/videochat-mit-steve-teixeira-microsoft-parallel-guru/11/2008/">Steve Teixeira</a>, Parallel-Guru von Microsoft, ansehen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/&via=sw_devtwits&text=Jetzt Beta-Tester des Intel Parallel Composer werden&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/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/&via=sw_devtwits&text=Jetzt Beta-Tester des Intel Parallel Composer werden&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/jetzt-beta-tester-des-intel-parallel-composer-werden/11/2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>3D-Demo &#8220;Smoke&#8221; zeigt das wahre Core i7-Potenzial</title>
		<link>http://www.software-dev-blog.de/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/</link>
		<comments>http://www.software-dev-blog.de/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 09:11:16 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Demo]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=310</guid>
		<description><![CDATA[Was funktioniert am allerbesten, wenn man eine neue Technologie oder ein neues Produkt präsentieren will? Richtig, eine Live-Demo. Zwar ist ein Videoclip nicht wirklich live, aber wenn es eindeutig ist, dass am Inhalt nicht herumgeschraubt wurde, ist die Beweiskraft dieses Mediums sehr hoch. So verhält es sich auch mit der 3D-Demo, die ich gerade auf [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" 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/fet-TrNssjQ&amp;hl=de&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/fet-TrNssjQ&amp;hl=de&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Was funktioniert am allerbesten, wenn man eine neue Technologie oder ein neues Produkt präsentieren will? Richtig, eine Live-Demo. Zwar ist ein Videoclip nicht wirklich live, aber wenn es eindeutig ist, dass am Inhalt nicht herumgeschraubt wurde, ist die Beweiskraft dieses Mediums sehr hoch.</p>
<p>So verhält es sich auch mit der <a title="Das 3D-Video zum Download" href="http://software.intel.com/file/7881" target="_blank">3D-Demo</a>, die ich gerade auf der <a title="via software.intel.com" href="http://software.intel.com/en-us/articles/smoke-game-technology-demo" target="_blank">ISN-Webseite gefunden</a> habe. Ihr Name: Smoke. Ihr Ziel: das Leistungspotenzial des neuen Core i7 Prozessors demonstrieren. Die Zutaten: eine hochkomplexe 3D-Szene mit einem brennenden Haus und diversen AI-Objekten wie herumfliegenden Vögeln, im Wind schwankenden Bäumen und einigem mehr.</p>
<p>Das Beeindruckende an der Demo ist deren Skalierbarkeit: Ausgelegt auf einen <a title="Mehr Infos zum Core i7 Prozessor" href="http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/">Core i7 Quadcore-Prozessor</a> laufen gleichzeitig acht Threads ab, und das mit nahezu voller Auslastung. Sobald sieben der acht Threads abgeschaltet werden, geht die 3D-Szene erkennbar in die Knie: Das Feuer verkommt zu Pixelwolken, sämtliche AI-Objekte wirken schlagartig unnatürlich und mit dem 3D-Erlebnis ist insgesamt Schluss.</p>
<p><span id="more-310"></span>Gesteigert wird das Ganze übrigens durch eine Löschaktion, die ins Spiel kommt und die die Komplexität der gesamten Demo weiter erhöht. Doch dem Core i7 ist das egal: Er verrichtet unbeirrt seinen Dienst, als ob nichts geschehen  wäre.</p>
<p>Intel wäre natürlich nicht Intel, wenn der gesamten Demo nicht Intel-Technologien zugrunde lägen: Das Parallelisieren des Demo-Codes geschah mithilfe der <a title="Mehr Infos zu Intel TBB" href="http://www.software-dev-blog.de/multithreading-konzepte-openmp-apis-und-intel-tbb/11/2008/">Threading Building Blocks</a>, die physikalische Simulation basiert auf der <a title="Havok-Webseite" href="http://www.havok.com/component/option,com_frontpage/Itemid,1/" target="_blank">Havok-Technik</a> und sämtliche 3D-Szenen werden mit <a title="Die deutschsprachige Webseite zu Ogre3D" href="http://www.ogre3d.de/start/" target="_blank">Ogre3D</a> verwaltet.</p>
<p>Das Gute an der Demo: Sie steht zum <a title="Der Installer zur 3D-Demo" href="http://software.intel.com/en-us/articles/smoke-game-technology-demo-download" target="_blank">kostenlosen Download</a> bereit, und den <a title="Der Quellcode zur Demo gibt's hier zum Download" href="http://software.intel.com/en-us/articles/smoke-game-technology-demo-download" target="_blank">Sourcecode</a> gibt es natürlich auch gleich dazu. Inklusive interessanter Kommentare, wie diese komplexe 3D-Szene mithilfe geeigneter Multithreading-Techniken parallelisiert wurde. Lernen mit Intel, quasi!</p>
<p>Ach ja: Smoke läuft nicht auf jedem x-beliebigen Rechner, man sollte schon mindestens einen Core 2 Quad-Core im PC stecken haben. Das gilt auch für die Grafikkarte: Eine Nvidia 8800 GTS ist empfehlenswert, auf der wurde die 3D-Demo auch entwickelt.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/&via=sw_devtwits&text=3D-Demo "Smoke" zeigt das wahre Core i7-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/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/&via=sw_devtwits&text=3D-Demo "Smoke" zeigt das wahre Core i7-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/3d-demo-smoke-zeigt-das-wahre-core-i7-potenzial/11/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Tech-Ed EMEA 2008, wir kommen!</title>
		<link>http://www.software-dev-blog.de/microsoft-tech-ed-emea-2008-wir-kommen/11/2008/</link>
		<comments>http://www.software-dev-blog.de/microsoft-tech-ed-emea-2008-wir-kommen/11/2008/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 11:11:01 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=167</guid>
		<description><![CDATA[Sodala, jetzt sitze ich hier in der S-Bahn gen Flughafen, um in den Flieger einzusteigen, der mich und meinen Videocaster Tom nach Barcelona auf die große Entwicklerkonferenz Microsoft Tech-Ed EMEA 2008 bringen wird. Unsere Mission: Intel dabei begleiten, wie dessen Software &#38; Marketing Spezialisten über das Thema Multicore-Programmierung in Windows-Umgebungen sprechen werden. Dabei geht es [...]]]></description>
			<content:encoded><![CDATA[<p>Sodala, jetzt sitze ich hier in der S-Bahn gen Flughafen, um in den Flieger einzusteigen, der mich und meinen Videocaster Tom nach Barcelona auf die große Entwicklerkonferenz <a title="Microsoft Tech-Ed EMEA Developers 2008" href="http://www.microsoft.com/emea/teched2008/developer/default.aspx" target="_blank">Microsoft Tech-Ed EMEA 2008</a> bringen wird. Unsere Mission: Intel dabei begleiten, wie dessen Software &amp; Marketing Spezialisten über das Thema Multicore-Programmierung in Windows-Umgebungen sprechen werden.</p>
<p>Dabei geht es vor allem um das im Frühjahr nächsten Jahres erscheinende Tool <a title="Intel Parallel Studio" href="http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/">Intel Parallel Studio</a>. Es handelt sich um ein Plugin für Microsofts Entwicklungsumgebung Visual Studio. Parallel Studio soll vor allem C++-Entwicklern dabei helfen, ihre Anwendungen im Hinblick auf Multicore-Prozessoren wie den Intel Core 2 Duo zu optimieren.</p>
<p>Daher werden wir unter anderem C++-Programmierer vor der Kamera zu Wort kommen lassen, die sich für Parallel Studio begeistern können. Aber auch die Intel-Vorträge zu diesem Thema werden wir in Ton und Bewegtbildern festhalten und hier online stellen. Und klar, um ein wenig &#8220;Atmo&#8221; geht es auf der Tech-Ed EMEA 2008 natürlich auch. Mal sehen, was uns dort alles erwartet.</p>
<p>Apropos: Die Besucher der Intel-Vorträge, die im Presentation Pavillon in der Nähe des Intel-Standes (E5/E6) jeweils nachmittags (DI, MI und DO) stattfinden werden, sollten gut aufpassen. Denn es gibt im Falle richtig beantworteter Fragen ein Notebook mit Dual-Core-Proezessor zu gewinnen. Wenn das mal kein Anreiz ist! Und was sich hinter dem <a title="Mehr Infos zum Intel Black Belt Software Developer" href="http://software.intel.com/sites/blackbelt/" target="_blank">Intel Black Belt Software Developer</a> verbirgt, erfahren Sie am Intel-Stand ebenfalls. Man sieht sich also &#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/microsoft-tech-ed-emea-2008-wir-kommen/11/2008/&via=sw_devtwits&text=Microsoft Tech-Ed EMEA 2008, wir kommen!&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/microsoft-tech-ed-emea-2008-wir-kommen/11/2008/&via=sw_devtwits&text=Microsoft Tech-Ed EMEA 2008, wir kommen!&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/microsoft-tech-ed-emea-2008-wir-kommen/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>
	</channel>
</rss>

