<?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; C++</title>
	<atom:link href="http://www.software-dev-blog.de/tag/c/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>Android NDK öffnet zwei Türchen für C++</title>
		<link>http://www.software-dev-blog.de/android-ndk-offnet-zwei-turchen-fur-c/11/2011/</link>
		<comments>http://www.software-dev-blog.de/android-ndk-offnet-zwei-turchen-fur-c/11/2011/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 16:36:40 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1835</guid>
		<description><![CDATA[Schau an, Google adressiert nun verstärkt auch C++/C-Entwickler für Android-Apps. Der Internetriese hat heute sein neues Android Native Development Kit (NDK) für Android 4.0 veröffentlicht. Die nunmehr siebte Version des so genannten NDKr7 bietet zwei neue APIs, die sich nativ ansprechen lassen. Dabei handelt es sich zum einen um eine auf Khronos OpenMAX AL 1.0.1 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.software-dev-blog.de/wp-content/images/2011/11/android.png"><img class="size-full wp-image-1836 alignright" title="Android" src="http://www.software-dev-blog.de/wp-content/images/2011/11/android.png" alt="Android" width="229" height="273" /></a>Schau an, Google adressiert nun verstärkt auch C++/C-Entwickler für Android-Apps. Der Internetriese hat heute sein neues <a href="http://developer.android.com/sdk/ndk/index.html" target="_blank">Android Native Development Kit (NDK)</a> für Android 4.0 veröffentlicht. Die nunmehr siebte Version des so genannten NDKr7 bietet zwei neue APIs, die sich nativ ansprechen lassen. Dabei handelt es sich zum einen um eine auf Khronos OpenMAX AL 1.0.1 basierende Low-level Streaming Multimedia-Schnittstelle, die eine bessere Kontrolle der Multimedia-Funktionen beziehungsweise Inhalte ermöglichen soll. Die Google-Ankündigung dazu liest sich verheißungsvoll, ist aber leider nicht sehr konkret: <em>„For example, media applications can now retrieve data from any source, apply proprietary encryption/decryption, and then send the data to the platform for display.“</em></p>
<p>Darüber hinaus ist jetzt eine Audio-Schnittstelle an Bord, die über native Apps komprimierte Audio-Elemente in das PCM-Format umwandeln kann.<br />
Die weiterführenden Erklärungen dazu können Sie <a href="http://android-developers.blogspot.com/2011/11/updated-ndk-for-android-40.html" target="_blank">hier nachschlagen</a>.<br />
Das neue NDK ist für alle Programmierer interessant, die sich nicht mit den Beschränkungen von Googles Java Virtual Machine abfinden möchten und in Verbindung mit dem Android SDK leistungsfähigere Apps schreiben möchten.</p>
<p>Hier gibt’s den <a href="http://developer.android.com/sdk/ndk/index.html" target="_blank">Download des neuen NDK</a>, und das <a href="http://developer.android.com/sdk/installing.html" target="_blank">SDK</a> finden Sie auf <a href="http://developer.android.com/sdk/installing.html" target="_blank">dieser Seite</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/android-ndk-offnet-zwei-turchen-fur-c/11/2011/&via=sw_devtwits&text=Android NDK öffnet zwei Türchen für 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/android-ndk-offnet-zwei-turchen-fur-c/11/2011/&via=sw_devtwits&text=Android NDK öffnet zwei Türchen für 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/android-ndk-offnet-zwei-turchen-fur-c/11/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kostenloser Microsoft C++ Tag: Experten von Microsoft und Intel berichten über News &amp; Trends</title>
		<link>http://www.software-dev-blog.de/kostenloser-ms-c-tag-experten-von-microsoft-und-intel-berichten-uber-news-trends/09/2011/</link>
		<comments>http://www.software-dev-blog.de/kostenloser-ms-c-tag-experten-von-microsoft-und-intel-berichten-uber-news-trends/09/2011/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 10:40:54 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1780</guid>
		<description><![CDATA[Am 19. Oktober 2011 (13:00 bis 18:00 Uhr) findet der  C++ Tag im schicken MACE Restaurant in Unterföhring bei München statt. Hier erfahren 50 C++-Developer exklusiv alles zu den Angeboten und Neuerungen von Microsoft und Intel im Bereich C++. Die Teilnahme ist kostenlos aber es sind nur 50 Plätze verfügbar! Unter anderem erwarten Sie die folgenden [...]]]></description>
			<content:encoded><![CDATA[<p>Am 19. Oktober 2011 (13:00 bis 18:00 Uhr) findet der  <a href="http://www.microsoft.com/germany/events/eventdetail.aspx?EventID=1032493900" target="_blank">C++ Tag</a> im schicken <a href="http://www.mace-restaurant.de/kontakt" target="_blank">MACE Restaurant</a> in Unterföhring bei München statt. Hier erfahren 50 C++-Developer exklusiv alles zu den Angeboten und Neuerungen von Microsoft und Intel im Bereich C++.</p>
<p>Die Teilnahme ist kostenlos aber es sind nur 50 Plätze verfügbar!</p>
<p>Unter anderem erwarten Sie die folgenden Sessions:</p>
<p><strong>Keynote: Visual Studio 11 and Windows – Powering the Next Wave of Innovation</strong><br />
Visual Studio C++ Program-Manager Boris Jabes und Visual Studio Architect Jean-Pierre Duplessis stellen die neuesten Entwicklungen und Ausblicke für C++ in Visual Studio und auf der Microsoft-Plattform vor.</p>
<p><strong>Effective C++ Programming with Visual Studio 11 Ultimate</strong><br />
Programmer productivity in the era of agile development is no longer something we can count with lines of code. Visual Studio brings together a slew of lifecycle management tools—from architecture analysis to unit testing—that dramatically improve the productivity of C++ developers everywhere. Come learn how the next version Visual Studio will help you embrace agile methodologies like never before!</p>
<p><strong>Unleash Parallel Performance with C++ in Visual Studio 11</strong><br />
Parallelism is everywhere. The upcoming version of Visual C++ enables native developers to remain the kings of performance across all form-factors. With new compiler technology, we will show how every developer can take advantage of multi-core CPUs. With C++ AMP, we bring the cheap &amp; awesome power of GPUs to every C++ programmer. Finally, we bring it all together with enhancements to the debugging and profiling experiences across VS.</p>
<p><strong>Graphics &amp; Game development tools in Visual Studio 11</strong><br />
Visual Studio 11 brings the most significant set of improvements for developing graphics-intensive apps in over a decade. Whether you are just getting started with 2D/3D games or a self-proclaimed “Guru”, there&#8217;s something for you in this talk. We will walkthrough a slew of new tools integrated into Visual Studio that will make your life better.</p>
<p>Für Intel ist Bev Bachmayer am Start, Senior Software Engineer der Software and Solutions Gruppe. Nutzen Sie die Gelegenheit, mit einer erfahrenen Entwicklerin über aktuelle Trends und Herausfoderungen der C++-Programmierung zu diskutieren.</p>
<p><a href="http://www.microsoft.com/germany/events/eventdetail.aspx?EventID=1032493900" target="_blank">Melden Sie sich umgehend an, um das Event nicht zu versäumen</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/kostenloser-ms-c-tag-experten-von-microsoft-und-intel-berichten-uber-news-trends/09/2011/&via=sw_devtwits&text=Kostenloser Microsoft C++ Tag: Experten von Microsoft und Intel berichten über News & Trends&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/kostenloser-ms-c-tag-experten-von-microsoft-und-intel-berichten-uber-news-trends/09/2011/&via=sw_devtwits&text=Kostenloser Microsoft C++ Tag: Experten von Microsoft und Intel berichten über News & Trends&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/kostenloser-ms-c-tag-experten-von-microsoft-und-intel-berichten-uber-news-trends/09/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft kündigt neue C++-Bibliothek für Parallel Computing an</title>
		<link>http://www.software-dev-blog.de/microsoft-kundigt-neue-c-bibliothek-fur-parallel-computing-an/06/2011/</link>
		<comments>http://www.software-dev-blog.de/microsoft-kundigt-neue-c-bibliothek-fur-parallel-computing-an/06/2011/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 07:17:22 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Accelerated Massive Parallelism]]></category>
		<category><![CDATA[AMP]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1641</guid>
		<description><![CDATA[Überraschende Kunde aus Redmond: Microsoft bietet Parallel-Programmieren künftig mehr Unterstützung. Einer der verantwortlichen Softwarearchitekten, Herb Sutter, hat unlängst die neue C++-Bibliothek C++ AMP (Accelerated Massive Parallelism) vorgestellt, die speziell auf parallele Prozesse ausgerichtet ist. Entwickler können damit besser auf CPU und vor allem die GPU zugreifen und die Ressourcen optimal auf die Recheneinheiten verteilen. In [...]]]></description>
			<content:encoded><![CDATA[<p>Überraschende Kunde aus Redmond: Microsoft bietet Parallel-Programmieren künftig mehr Unterstützung. Einer der verantwortlichen Softwarearchitekten, Herb Sutter, hat unlängst die neue<a href="http://herbsutter.com/2011/06/16/c-amp-keynote/" target="_blank"> C++-Bibliothek C++ AMP (Accelerated Massive Parallelism)</a> vorgestellt, die speziell auf parallele Prozesse ausgerichtet ist. Entwickler können damit besser auf CPU und vor allem die GPU zugreifen und die Ressourcen optimal auf die Recheneinheiten verteilen.</p>
<p>In einer Demonstration zeigte Sutter, dass vor allem grafisch anspruchsvolle Anwendungen wie Simulationen oder Spiele mit Hilfe des neuen Befehlssatzes besser auf die Leistungsressourcen der Hardware ausgerichtet werden können.</p>
<p><center><br />
<iframe style="height:384px;width:512px" src="http://channel9.msdn.com/Events/AMD-Fusion-Developer-Summit/AMD-Fusion-Developer-Summit-11/KEYNOTE/player?w=512&#038;h=384" frameBorder="0" scrolling="no" ></iframe><br />
</center></p>
<p>Das Video zur Keynote von Sutter können Sie <a href="http://channel9.msdn.com/Events/AMD-Fusion-Developer-Summit/AMD-Fusion-Developer-Summit-11/KEYNOTE" target="_blank">auf dieser Seite abrufen</a>. Zudem empfehlen wir Ihnen das<a href="http://channel9.msdn.com/posts/Daniel-Moth-Blazing-fast-code-using-GPUs-and-more-with-C-AMP" target="_blank"> Video von Daniel Moth</a>.</p>
<p>AMP soll ab der nächsten Version Bestandteil von Visual C++ werden. Auch für C# und .NET sind AMP-Extensions angedacht. Das ist aber nur der erste Schritt: AMP will sich künftig auch auf virtuellen Maschinen und Cloud-Anwendungen als nützlich erweisen. Microsoft wird zudem die Spezifikationen offenlegen, so dass AMP auch in andere Compiler integriert werden kann.</p>
<p>Weitere Informationen lesen Sie im <a href="http://www.danielmoth.com/Blog/C-Accelerated-Massive-Parallelism.aspx" target="_blank">The Moth-Blog</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/microsoft-kundigt-neue-c-bibliothek-fur-parallel-computing-an/06/2011/&via=sw_devtwits&text=Microsoft kündigt neue C++-Bibliothek für Parallel Computing an&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-kundigt-neue-c-bibliothek-fur-parallel-computing-an/06/2011/&via=sw_devtwits&text=Microsoft kündigt neue C++-Bibliothek für Parallel Computing an&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-kundigt-neue-c-bibliothek-fur-parallel-computing-an/06/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel TBB parallel_for mithilfe von C++0x-Lambda-Ausdrücken implementieren</title>
		<link>http://www.software-dev-blog.de/intel-tbb-parallel_for-mithilfe-von-c0x-lambda-ausdrucken-implementieren/05/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-tbb-parallel_for-mithilfe-von-c0x-lambda-ausdrucken-implementieren/05/2011/#comments</comments>
		<pubDate>Tue, 31 May 2011 13:17:40 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Intel TBB]]></category>
		<category><![CDATA[Lambda]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1621</guid>
		<description><![CDATA[Ende März hatte ich darüber berichtet, dass noch in diesem Jahr der nächste C++-Standard verabschiedet werden soll. Und gerade finde ich einen dazu passenden Artikel auf dem Intel Software Network, der großen Community-Plattform des Chipherstellers. In diesem Blogbeitrag geht es um die effiziente Einbindung des Intel TBB-Konstrukts parallel_for mithilfe von Lambda-Ausdrücken, die Teil des künftigen Standards [...]]]></description>
			<content:encoded><![CDATA[<p>Ende März hatte ich <a title="Neuer C++-Standard steht kurz vor Verabschiedung" href="http://www.software-dev-blog.de/neuer-c-standard-steht-kurz-vor-verabschiedung/03/2011/">darüber berichtet</a>, dass noch in diesem Jahr <a href="http://www2.research.att.com/~bs/C%2B%2B0xFAQ.html" target="_blank">der nächste C++-Standard</a> verabschiedet werden soll. Und gerade finde ich einen <a href="http://software.intel.com/en-us/blogs/2011/05/27/easier-intelr-tbb-parallel_for-with-c0x-lambda-expressions/" target="_blank">dazu passenden Artikel</a> auf dem Intel Software Network, der großen Community-Plattform des Chipherstellers. In diesem Blogbeitrag geht es um die effiziente Einbindung des Intel TBB-Konstrukts <strong><em>parallel_for</em></strong> mithilfe von Lambda-Ausdrücken, die Teil des künftigen Standards C++ 2011 sein werden.</p>
<p><em>Kleiner Exkurs:</em> Lambda-Ausdrücke kommen bisher nur in funktionalen Programmiersprachen vor, also in <a href="http://de.wikipedia.org/wiki/Haskell_%28Programmiersprache%29" target="_blank">Haskell</a> oder <a href="http://www.scala-lang.org/" target="_blank">Scala</a>. Da aber solch eine &#8220;anonyme Funktion&#8221; viele Vorteile mit sich bringt (einfacher Aufruf, weniger fehleranfällig wegen falsch eingesetzter Variablen, etc.), werden in C++ 2011 Lambda-Ausdrücke Teil der imperativen Programmiersprache C++ sein. Wer mehr zum Thema Lambda-Ausdrücke erfahren will, sollte sich <a href="http://www.roth-soft.de/blog/34-c-plus-plus/94-einfuehrung-in-lambda-ausdruecke.html" target="_blank">mit diesem Artikel</a> beschäftigen.</p>
<p>Zurück zum ISN-Beitrag. Dieser zeigt sehr anschaulich anhand eines Code-Beispiels, wie in Zukunft parallel_for-Konstrukte der <a href="http://threadingbuildingblocks.org/" target="_blank">Intel Threading Building Blocks</a> von den Lambda-Ausdrücken des künftigen C++-Standards profitieren werden. Unterstützt werden dabei die Compiler GNU g++ Version 4.5, Intel C++ Compiler V12 und Microsoft C++ Compiler V16.</p>
<p>Ohne Lambda-Expression und parallel_for sieht ein möglicher Funktionsaufruf wie folgt aus:</p>
<p><code>class ChangeArray{<br />
<span style="color: #ffffff;">...</span>int* array;<br />
public:<br />
<span style="color: #ffffff;">...</span>ChangeArray (int* a): array(a) {}<br />
<span style="color: #ffffff;">...</span>void operator()( const blocked_range&amp; r ) const{<br />
<span style="color: #ffffff;">......</span>for (int i=r.begin(); i!=r.end(); i++ ){<br />
<span style="color: #ffffff;">.........</span>foo (array[i]);<br />
<span style="color: #ffffff;">......</span>}<br />
<span style="color: #ffffff;">...</span>}<br />
};</code></p>
<p>Derselbe Funktionsaufruf mithilfe von parallel_for und einem Lambda-Ausdruck stellt sich folgendermaßen dar:</p>
<p><code>void ChangeArrayParallel (int* a, int n )<br />
{<br />
<span style="color: #ffffff;">...</span>parallel_for (0, n, 1,<br />
<span style="color: #ffffff;">......</span>[=](int i) {<br />
<span style="color: #ffffff;">.........</span>Foo (a[i]);<br />
<span style="color: #ffffff;">......</span>});</code></p>
<p>}</p>
<p>Was man anhand dieses sehr kleinen Beispiels gut erkennen kann, sind zweierlei Dinge: das parallel_for-Konstrukt ist zum einen wesentlich kompakter und damit effizienter, und zum anderen kommen ausschließlich lokale Variablen zum Einsatz, was zu thread-sicherem Code führt.</p>
<p>Innerhalb des Blogbeitrags auf ISN ist übrigens ein kurzes Video eingebettet, das die gesamte Geschichte anschaulich zusammenfasst.</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-parallel_for-mithilfe-von-c0x-lambda-ausdrucken-implementieren/05/2011/&via=sw_devtwits&text=Intel TBB parallel_for mithilfe von C++0x-Lambda-Ausdrücken implementieren&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-parallel_for-mithilfe-von-c0x-lambda-ausdrucken-implementieren/05/2011/&via=sw_devtwits&text=Intel TBB parallel_for mithilfe von C++0x-Lambda-Ausdrücken implementieren&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-parallel_for-mithilfe-von-c0x-lambda-ausdrucken-implementieren/05/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neuer C++-Standard steht kurz vor Verabschiedung</title>
		<link>http://www.software-dev-blog.de/neuer-c-standard-steht-kurz-vor-verabschiedung/03/2011/</link>
		<comments>http://www.software-dev-blog.de/neuer-c-standard-steht-kurz-vor-verabschiedung/03/2011/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 06:23:15 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Standard]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1535</guid>
		<description><![CDATA[Lange hat es gedauert, doch schon sehr bald, also nach fast fünfzehn Jahren, steht für Mitte dieses Jahres wohl endlich die nächste Version von C++ an. Unter der Bezeichnung C++ 2011 (besser bekannt unter dem Codenamen C++0x) wird die ISO/IEC Information Technology Task Force (ITTF) wohl endgültig die nächste Generation der objektorientierten Programmiersprache freigeben. Natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Lange hat es gedauert, doch schon sehr bald, also nach fast fünfzehn Jahren, steht für Mitte dieses Jahres wohl endlich die nächste Version von C++ an. Unter der Bezeichnung C++ 2011 (besser bekannt unter dem Codenamen C++0x) wird die <a href="http://www2.research.att.com/~bs/C%2B%2B0xFAQ.html" target="_blank">ISO/IEC Information Technology Task Force (ITTF)</a> wohl endgültig die nächste Generation der objektorientierten Programmiersprache freigeben.</p>
<p>Natürlich werden die Grundzüge von C++ mit C++ 2011 weitgehend erhalten bleiben, allerdings werden Teile so zusammengefasst sein, dass sich das Ganze als verbesserte Einheit darstellt und sich auf höherer Programmierebene natürlicher und effizienter verhalten wird. Wichtigstes neues Feature für Entwickler ist die nebenläufige Programmierung, mit der sich parallel ablaufende Programmabschnitte effizienter programmieren lassen. So können beispielsweise mit Lambda-Funktionen Variablen von Thread zu Thread übergeben werden, was zu verbesserten Parallelkonstrukten führen wird.</p>
<p>Aber auch die direkte Datenfeld-Initialisierung und eine verbesserte Bibliothek werden Teil des neuen C++-Standards sein. Wir werden uns das Ganze zu gegebener Zeit noch ein wenig genauer ansehen und hier veröffentlichen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/neuer-c-standard-steht-kurz-vor-verabschiedung/03/2011/&via=sw_devtwits&text=Neuer C++-Standard steht kurz vor Verabschiedung&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/neuer-c-standard-steht-kurz-vor-verabschiedung/03/2011/&via=sw_devtwits&text=Neuer C++-Standard steht kurz vor Verabschiedung&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/neuer-c-standard-steht-kurz-vor-verabschiedung/03/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Early-Bird-Rabatt für die C++ Advanced Developer Conference</title>
		<link>http://www.software-dev-blog.de/early-bird-rabatt-fur-die-c-advanced-developer-conference/03/2011/</link>
		<comments>http://www.software-dev-blog.de/early-bird-rabatt-fur-die-c-advanced-developer-conference/03/2011/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 13:47:04 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Workshop]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1532</guid>
		<description><![CDATA[Die ppedv AG veranstaltet am 5. und 6. Mai 2011 die  C++ Advanced Developer Conference (ADC). Tagungsort wird das beschauliche Prien am Chiemsee sein. Für ISVs und Software-Entwickler ist dieser Termin eine gute Gelegenheit, sich vor Ort detailliert über aktuelle Entwickler-Tools zu informieren, in Trainings, Workshops und Schulungen das eigene Wissen zu erweitern und Lösungen [...]]]></description>
			<content:encoded><![CDATA[<p>Die ppedv AG veranstaltet am 5. und 6. Mai 2011 die <a href="http://cpp.adc2011.de/Default.aspx" target="_blank"> C++ Advanced Developer Conference (ADC)</a>. Tagungsort wird das beschauliche Prien am Chiemsee sein.</p>
<p>Für ISVs und Software-Entwickler ist dieser Termin eine gute Gelegenheit, sich vor Ort detailliert über aktuelle Entwickler-Tools zu informieren, in Trainings, Workshops und Schulungen das eigene Wissen zu erweitern und Lösungen für typische Programmierprobleme zu finden. Und da das Ganze in einer der der schönsten Regionen Deutschlands stattfindet, lässt sich der Termin prima mit einem Kurzurlaub in die bayerischen Alpen verbinden.</p>
<p>Die Advanced Developers Conference bietet 20 (zumeist deutsche) Vorträge hochkarätiger C++-Experten von Intel, Microsoft und weiteren Firmen. Das Motto der Veranstaltung lautet “aus der Praxis für die Praxis“ und verknüpft die traditionellen Vorteile von C++ mit den heutigen Anforderungen in Entwicklungsprojekten.</p>
<p>Zu den Topthemen zählen das Erstellen leistungsstarker Software mit nativem C++-Code, Performancesteigerung sowie Möglichkeiten der Fehlersuche und -behebung in C++-Programmen. Weitere Schwerpunkte bilden Design und Einsatz von MFC-Anwendungen und die Frage, wie sich durch die Ausnutzung der seriellen und parallelen Prozessoreigenschaften eine maximale Leistung erzielen lässt. Ein Highlight wird dabei sicherlich die Session &#8220;Parallelprogrammierung mit native C++ und <a title="Workshop: parallel Programmieren mit OpenMP" href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP 3.0</a>&#8221; von und mit <a title="Review: Multicore-Programmierung auf den dotnetpro.powerdays, Teil 2" href="http://www.software-dev-blog.de/review-multicore-programmierung-auf-den-dotnetpro-powerdays-teil-2/07/2010/">Bernd Marquardt</a> sein.</p>
<p>Übrigens: Am Vortag der Veranstaltung (4.5.) vermittelt Dr. Michael Klemm von Intel in dem ganztägigen Hands-on-Training  “C/C++ Code-Performanceoptimierung für Intel-Prozessoren“ tiefgreifendes Wissen mit praktischen Beispielen an bereitgestellten PCs mit Multicore-CPUs.</p>
<p>Hier die weiteren Infos zur Veranstaltung:</p>
<ul>
<li><a href="http://cpp.adc2011.de/Workshops.aspx" target="_blank">Überblick der Workshops</a></li>
</ul>
<ul>
<li><a href="http://cpp.adc2011.de/Sessions.aspx" target="_blank">Überblick der Sessions</a></li>
</ul>
<ul>
<li><a href="http://cpp.adc2011.de/Sprecher.aspx" target="_blank">Überblick der Speaker</a></li>
</ul>
<p>Sichern Sie sich bis 8. April Ihre Teilnahme und <strong>sparen Sie dabei bis zu 250 Euro, indem sie sich den Frühbucherrabatt mit dem Promocode „Cpp-i0411X“ sichern</strong>. Bei gleichzeitiger Anmeldung zur Konferenz mit zwei weiteren Kollegen bekommen Sie auch noch einen 10-prozentigen Kollegenrabatt on top!</p>
<p><a href="http://cpp.adc2011.de/Anmeldung.aspx" target="_blank">Und hier geht es zur Anmeldung.</a> Wir sehen uns&#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/early-bird-rabatt-fur-die-c-advanced-developer-conference/03/2011/&via=sw_devtwits&text=Early-Bird-Rabatt für die C++ Advanced Developer Conference&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/early-bird-rabatt-fur-die-c-advanced-developer-conference/03/2011/&via=sw_devtwits&text=Early-Bird-Rabatt für die C++ Advanced Developer Conference&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/early-bird-rabatt-fur-die-c-advanced-developer-conference/03/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python angepasst für Multicore-Systeme &amp; Windows Azure testweise einsetzen</title>
		<link>http://www.software-dev-blog.de/python-angepasst-fur-multicore-systeme-windows-azure-testweise-einsetzen/02/2011/</link>
		<comments>http://www.software-dev-blog.de/python-angepasst-fur-multicore-systeme-windows-azure-testweise-einsetzen/02/2011/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 09:16:56 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1496</guid>
		<description><![CDATA[Python hat die neue Version 3.2 seiner Skriptsprache freigegeben, bei der zwar keine Änderungen an der Sprache, wohl aber an den Datentypen vorgenommen wurden. Ziel war es, die viel kritisierten Probleme mit dem Global Interpreter Lock (GIL) zu beheben. Zum Verständnis: Pythons GIL war für die Parallelisierung auf Multicore-Systemen zuständig. Das klappte aber nicht zuverlässig. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://python.org/" target="_blank">Python</a> hat die neue Version 3.2 seiner Skriptsprache freigegeben, bei der zwar keine Änderungen an der Sprache, wohl aber an den Datentypen vorgenommen wurden. Ziel war es, die viel kritisierten Probleme mit dem Global Interpreter Lock (GIL) zu beheben. Zum Verständnis:</p>
<p>Pythons GIL war für die Parallelisierung auf Multicore-Systemen zuständig. Das klappte aber nicht zuverlässig. So bemängelten viele Entwickler bei Python-Anwendungen Zugriffsprobleme der Threads bei Nutzung mehrere Kerne und eine Verlangsamung der Prozesse.</p>
<p>Das <a href="http://www.dabeaz.com/python/GIL.pdf " target="_blank">Problem</a> war seit über einem Jahr ungelöst und hat zu heftiger Kritik an der Sprache CPython geführt. Programmierer behalfen sich damit, statt Threads mehrere, miteinander kommunizierende Prozesse zu verwenden. Das war natürlich nicht im Sinne des Erfinders.</p>
<p>Jython (Java) und IronPython (.NET) sind übrigens nicht betroffen, da dort kein GIL implementiert ist. Das Problem tritt also ausnahmslos bei Programmen im Python C-Code auf.</p>
<p>Gelöst wird der Konflikt nun durch ein neues, so genanntes „concurrent.futures“-Modul, das eine einheitliche Schnittstelle zur Verwaltung paralleler Threads bietet. <a href="http://www.python.org/dev/peps/pep-3148/" target="_blank">Details und technische Spezifikationen zu dem PEP 3148</a> können Sie <a href="http://www.python.org/dev/peps/pep-3148/" target="_blank">hier</a> abrufen. Den <a href="http://python.org/download/releases/3.2/" target="_blank">kostenlosen Download erhalten Sie auf der Python-Seite</a>.</p>
<p>Für C++-Programmierer ist Python vor allem als Skriptsprache interessant. Hierbei spielt die Boost.Python-Bibliothek eine wichtige Rolle. Dahinter verbirgt sich eine kostenlose C++-Bibliothek inklusive zahlreicher Unterbibliotheken. Boost-Bibliotheken werden von <a href="http://www.boost.org/" target="_blank">boost.org</a> laufend erweitert.</p>
<p>Und noch ein Software-Geschenk an Entwickler:</p>
<p><strong>Windows Azure kostenlos nutzen</strong></p>
<p>Microsoft bietet Entwicklern seine Cloud-Plattform <a href="http://blogs.msdn.com/b/windowsazure/archive/2011/02/21/announcing-new-windows-azure-platform-introductory-special-includes-750-free-hours-of-windows-azure-extra-small-instance-and-more.aspx" target="_blank">Windows Azure für 750 Stunden zur kostenlosen Nutzung</a> an. Wer es nicht so mit dem Kopfrechnen hat: das entspricht gut 31 Tagen.</p>
<p>Im Zuge des Angebots stehen 500 MByte Online-Speicherplatz und 500 MByte für Datentransfers zur Verfügung sowie die Nutzung einer SQL-Azure-Datenbank mit bis zu 1 GByte (auf 90 Tage begrenzt). Wenn Sie das Testangebot nutzen wollen und sich anmelden, lesen Sie bitte auch das Kleingedruckte: Wer das Angebot über den kostenlosen Testzeitraum hinaus nutzt, muss automatisch für die Nutzung der Vollversion zahlen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/python-angepasst-fur-multicore-systeme-windows-azure-testweise-einsetzen/02/2011/&via=sw_devtwits&text=Python angepasst für Multicore-Systeme & Windows Azure testweise einsetzen&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/python-angepasst-fur-multicore-systeme-windows-azure-testweise-einsetzen/02/2011/&via=sw_devtwits&text=Python angepasst für Multicore-Systeme & Windows Azure testweise einsetzen&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/python-angepasst-fur-multicore-systeme-windows-azure-testweise-einsetzen/02/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>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>Parallelprogrammieren lernen mit Schach</title>
		<link>http://www.software-dev-blog.de/parallelprogrammieren-lernen-mit-schach/07/2010/</link>
		<comments>http://www.software-dev-blog.de/parallelprogrammieren-lernen-mit-schach/07/2010/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 14:42:11 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Workshop]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1411</guid>
		<description><![CDATA[Der werte Kollege Deilmann von Intel hat mir ein paar Internetlinks zukommen lassen, deren Inhalte sich mit dem Thema Parallelprogrammierung beschäftigen. Ein Beitrag hierzu ist auf den ersten Blick zwar ziemlich oberflächlich, bietet aber auf den zweiten Blick viele nützliche Infos zum Thema Multicore und Multithreading. In Form eines 34-seitigen pdfs wird nämlich das N-Queens-Problem [...]]]></description>
			<content:encoded><![CDATA[<p>Der werte Kollege <a href="http://www.software-dev-blog.de/infos-aus-erster-hand-zu-cilk/07/2010/">Deilmann von Intel</a> hat mir ein paar Internetlinks zukommen lassen, deren Inhalte sich mit dem Thema Parallelprogrammierung beschäftigen. <a href="http://software.intel.com/en-us/articles/solve-the-n-queens-problem-in-parallel/" target="_blank">Ein Beitrag hierzu</a> ist auf den ersten Blick zwar ziemlich oberflächlich, bietet aber auf den zweiten Blick viele nützliche Infos zum Thema Multicore und Multithreading. In Form eines 34-seitigen pdfs wird nämlich das N-Queens-Problem detailliert dargestellt und gezeigt, wie sich dieses per Parallelprogrammierung lösen lässt.</p>
<p>Zur Erinnerung: das sogenannte <a href="http://de.wikipedia.org/wiki/Damenproblem" target="_blank">&#8220;Damenproblem&#8221;</a> stammt aus der Mathematik und beschäftigt sich mit der Frage, wie viele Damen auf einem Schachbrett so aufgebaut werden können, dass sie sich gemäß der Schachregeln nicht gegenseitig schlagen können. Auf einem 8&#215;8-Schachbrett gibt es übrigens 12 eindeutige Lösungen.</p>
<p>Nur, wie lässt sich das für eine größere Zahl n berechnen, und wie geschieht das auf einem Parallelrechner möglichst schnell? Genau damit beschäftigt sich der pdf-Workshop, der sehr anschaulich und anhand vieler Codebeispiele mögliche Ansätze und Konzepte miteinander vergleicht und natürlich auch verrät, welche Lösung die beste ist, wenn man solche Probleme möglichst elegant und parallel lösen möchte.</p>
<p>Der <a href="http://software.intel.com/en-us/articles/solve-the-n-queens-problem-in-parallel/" target="_blank">Download ist kostenlos</a> und jedem Einsteiger in die Parallelprogrammierung sehr zu empfehlen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/parallelprogrammieren-lernen-mit-schach/07/2010/&via=sw_devtwits&text=Parallelprogrammieren lernen mit Schach&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/parallelprogrammieren-lernen-mit-schach/07/2010/&via=sw_devtwits&text=Parallelprogrammieren lernen mit Schach&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/parallelprogrammieren-lernen-mit-schach/07/2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aus seriell mach parallel: Intel Parallel Advisor Lite</title>
		<link>http://www.software-dev-blog.de/aus-seriell-mach-parallel-intel-parallel-advisor-lite/03/2010/</link>
		<comments>http://www.software-dev-blog.de/aus-seriell-mach-parallel-intel-parallel-advisor-lite/03/2010/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 12:38:50 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Tutorial]]></category>

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

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1145</guid>
		<description><![CDATA[Vor einer Woche hatte ich angekündigt, dass wir uns die Session &#8220;Dual Numbers: Simple Math, Easy C++ Coding and Lots of Tricks&#8221; ansehen werden. Und genau das haben wir heute getan. Nur so viel: Tough stuff! Damit wir hier nix Falsches erzählen, konnten wir Gino van den Bergen zu einem Interview überreden, damit er uns [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einer Woche hatte ich <a title=" Wichtige Techsessions der GDC09 auf einen Blick " href="http://www.software-dev-blog.de/wichtige-techsessions-der-gdc09-auf-einen-blick/08/2009/">angekündigt</a>, dass wir uns die Session &#8220;Dual Numbers: Simple Math, Easy C++ Coding and Lots of Tricks&#8221; ansehen werden. Und genau das haben wir heute getan. Nur so viel: Tough stuff!</p>
<p>Damit wir hier nix Falsches erzählen, konnten wir Gino van den Bergen zu einem Interview überreden, damit er uns etwas über Duale Zahlen erzählt: Worum es in seinem Vortrag ging, warum Spieleentwickler auf Duale Zahlen setzen sollten und was das Ganze mit Larrabee zu tun hat.</p>
<p>Nur soviel: Es geht um &#8220;Clean Code&#8221;, um die Vereinfachung der Differentialrechnung, und andere schöne Dinge, mit denen vor allem Spieleprogrammierer zu tun haben.</p>
<p>Und jetzt: Film ab!</p>
<p style="text-align: center;">
<p style="text-align: center;"><object width="464" height="261" data="http://www.youtube.com/v/RlcbyOdvRZA&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/RlcbyOdvRZA&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-wie-programmierer-von-dualen-zahlen-profitieren/08/2009/&via=sw_devtwits&text=GDC09: Wie Programmierer von Dualen Zahlen profitieren&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-wie-programmierer-von-dualen-zahlen-profitieren/08/2009/&via=sw_devtwits&text=GDC09: Wie Programmierer von Dualen Zahlen profitieren&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-wie-programmierer-von-dualen-zahlen-profitieren/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>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>Webcast-Reminder: Anwendungen optimal parallelisieren</title>
		<link>http://www.software-dev-blog.de/webcast-reminder-anwendungen-optimal-parallelisieren/04/2009/</link>
		<comments>http://www.software-dev-blog.de/webcast-reminder-anwendungen-optimal-parallelisieren/04/2009/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 10:14:33 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Webinar]]></category>

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

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1017</guid>
		<description><![CDATA[Sodala, jetzt bin ich wieder im Büro, nachdem ich mich zwei Tage lang in Salzburg herumgetrieben habe, um auf der Intel Software Conference 2009 die Trends und Tools des Jahres 2009 aus Intel-Sicht kennenzulernen. Ok, Parallel Studio war hier schon das ein oder andere Mal Thema, aber aus erster Hand Infos rund um die geplante [...]]]></description>
			<content:encoded><![CDATA[<p>Sodala, jetzt bin ich wieder im Büro, nachdem ich mich zwei Tage lang in Salzburg herumgetrieben habe, um auf der <a title="Mehr Infos zur Intel Software Conference 2009" href="http://www.software-dev-blog.de/onsite-blogging-intel-software-conference-2009/04/2009/">Intel Software Conference 2009</a> die Trends und Tools des Jahres 2009 aus Intel-Sicht kennenzulernen. Ok, <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> war hier schon das ein oder andere Mal Thema, aber aus erster Hand Infos rund um die geplante Entwickler-Suite präsentiert zu bekommen, ist schon ein Unterschied.</p>
<p>Auf der Konferenz habe ich auch James Reinders zum ersten Mal live erlebt, und in Echt ist er noch authentischer als in seinen Videos. Zu erzählen hat er sowieso eine ganze Menge <a title="ISC’09: Parallele Programmierung für den Mainstream" href="http://www.software-dev-blog.de/isc09-parallele-programmierung-fur-den-mainstream/04/2009/">über Parallel Studio</a>, das übrigens am 26. Mai 2009 auf den Markt kommen soll. Zunächst zwar ohne <a title="Videocast zum Parallel Advisor" href="http://www.zdnet.de/specials/intel-multicore/0,39040749,41001314,00.htm" target="_blank">Parallel Advisor</a>, aber dafür inklusive <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>, <a title="ISC’09: Intel Parallel Inspector im Detail" href="http://www.software-dev-blog.de/isc09-intel-parallel-inspector-im-detail/04/2009/">Parallel Inspector</a> und <a title="ISC’09: Intel Parallel Amplifier im Detail" href="http://www.software-dev-blog.de/isc’09-intel-parallel-amplifier-im-detail/04/2009/">Parallel Amplifier</a>. Und was es mit dem ominösen Ct-Projekt auf sich hat, haben wir <a title="ISC’09: die Zukunft der parallelen Programmierung" href="http://www.software-dev-blog.de/isc09-die-zukunft-der-parallelen-programmierung/04/2009/">von James ebenfalls erfahren</a>.</p>
<p>Ansonsten gab es detaillierte Infos zu den Tools (samt Demos, die ich hoffentlich noch nachliefern kann) sowie <a title="ISC’09: Microsoft und die parallele Programmierung" href="http://www.software-dev-blog.de/isc09-microsoft-und-die-parallele-programmierung/04/2009/">eine kleine Einführung in Visual Studio 2010</a>. Und warum Nero pro Jahr rund 50 Millionen Software-Titel verkauft, haben wir <a title="ISC’09: Warum Intel und Nero gut harmonieren" href="http://www.software-dev-blog.de/isc09-warum-intel-und-nero-gut-harmonieren/04/2009/">ebenfalls gelernt</a>.</p>
<p>Ach ja: Nicht, dass es mir langweilig würde diese Woche. Am morgigen Donnerstag findet hier in München der <a title="Mehr Infos zum prio.powerday &quot;Multicore-Programmierung im .NET-Umfeld" href="http://www.software-dev-blog.de/f-und-co-priopowerday-multicore-im-net-umfeld/03/2009/">prio.powerday</a> zum Thema Multicore-Programmierung im .NET-Umfeld statt. Ich werde auch von dort Livebloggen und bin schon sehr gespannt, was Rami, Don, Bernd und Ralf zu erzählen haben. So, <a title="Software Dev Blog als RSS-Feed abonnieren" href="http://www.software-dev-blog.de/feed/" target="_blank">stay tuned</a> &#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/nach-der-konferenz-ist-vor-der-konferenz/04/2009/&via=sw_devtwits&text=Nach der Konferenz ist vor der Konferenz&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/nach-der-konferenz-ist-vor-der-konferenz/04/2009/&via=sw_devtwits&text=Nach der Konferenz ist vor der Konferenz&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/nach-der-konferenz-ist-vor-der-konferenz/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ISC&#8217;09: die Zukunft der parallelen Programmierung</title>
		<link>http://www.software-dev-blog.de/isc09-die-zukunft-der-parallelen-programmierung/04/2009/</link>
		<comments>http://www.software-dev-blog.de/isc09-die-zukunft-der-parallelen-programmierung/04/2009/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 14:12:24 +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[Preview]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1014</guid>
		<description><![CDATA[Wie im richtigen Leben gehört dem Chef das letzten Wort. Daher kommt James Reinders nochmals auf die Bühne und wagt einen Blick in seine Glaskugel. Status quo aus Intel-Sicht sind die HPC-basierten Tools der Gegenwart, die permanent weiterentwickelt werden. Daneben wird es sehr bald (wohl im Mai) Parallel Studio geben für den Mainstream-Entwickler. Und drittens [...]]]></description>
			<content:encoded><![CDATA[<p>Wie im richtigen Leben gehört dem Chef das letzten Wort. Daher kommt <a title="James Reinders spricht über Parallel Studio als Mainstream-Tool der Zukunft" href="http://www.software-dev-blog.de/isc09-parallele-programmierung-fur-den-mainstream/04/2009/">James Reinders nochmals</a> auf die Bühne und wagt einen Blick in seine Glaskugel.</p>
<p>Status quo aus Intel-Sicht sind die HPC-basierten Tools der Gegenwart, die permanent weiterentwickelt werden. Daneben wird es sehr bald  (wohl im Mai) Parallel Studio geben für den Mainstream-Entwickler. Und drittens sind die vorhandenen Tools einer ständigen Evolution unterworfen (so kommt ein verbesserter Compiler irgendwann im Juni auf den Markt).</p>
<p>Die Evolution des Parallel Studio umfasst folgende Dinge:</p>
<ul>
<li>der Parallel Advisor wird wichtiger Bestandteil der Suite</li>
<li>beste Kompatibilität mit Windows 7 und Visual Studio</li>
<li>Unterstützung der nächsten Microsoft Concurrency Runtime</li>
<li>Ergänzungen (was immer das bedeutet)</li>
</ul>
<p>Den dritten Teil seines Vortrags leitet James mit einem Traum ein:</p>
<blockquote><p>If you focused on &#8220;data parallel programming&#8221;, could you make it easier for the program to be deterministic and scale?</p></blockquote>
<p><span id="more-1014"></span>Die Antwort lautet natürlich &#8220;Yes&#8221; und mündet in der Vorstellung des Ct-Projekts, das Ende 2009 eine Beta-Version eines neuen Produkts gebären soll. Das Thema ist die datenbasierte Parallelprogrammierung unter C++. Die Hauptmerkmale sehen wie folgt aus:</p>
<ul>
<li>eine höchst abstrahierte, beschreibende Programmiersprache, die nicht mehr in Aufgaben &#8220;denkt&#8221;</li>
<li>hoch skalierend</li>
<li>C++ wird um neue Templates erweitert (vergleichbar mit <a title="Intel Threading Building Blocks" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel TBB</a>). Es sind keinerlei Änderungen an den bekannten Compilern erforderlich.</li>
</ul>
<p>Ct wird beispielsweise die Programmierung von Bild- und Videobearbeitungstools erheblich vereinfachen, da nicht mehr sämtliche Varianten der datenorientierten Programmierung berücksichtigt werden müssen (Threading auf SSE- und einer höheren Ebene). Die Beschleunigung mittels Ct geschieht quasi im Hintergrund und entlastet den Programmierer bei seiner Arbeit.</p>
<p>Ct wird also die parallele Programmierung von datenbasierten Anwendungen deutlich vereinfachen und eines Tages in sämtlichen Intel-Softwaretools integriert 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/isc09-die-zukunft-der-parallelen-programmierung/04/2009/&via=sw_devtwits&text=ISC'09: die Zukunft der parallelen 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/isc09-die-zukunft-der-parallelen-programmierung/04/2009/&via=sw_devtwits&text=ISC'09: die Zukunft der parallelen 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/isc09-die-zukunft-der-parallelen-programmierung/04/2009/feed/</wfw:commentRss>
		<slash:comments>1</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>ISC&#8217;09: Intel Parallel Inspector im Detail</title>
		<link>http://www.software-dev-blog.de/isc09-intel-parallel-inspector-im-detail/04/2009/</link>
		<comments>http://www.software-dev-blog.de/isc09-intel-parallel-inspector-im-detail/04/2009/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 12:34:11 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Debugger]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1010</guid>
		<description><![CDATA[Nach Heinz Basts sehr interessantem Beitrag über Parallel Composer ist Levent Akyil von Intel dran, um zunächst über Parallel Inspector zu reden, später dann über Parallel Amplifier. Parallel Inspector ist, einfach gesagt, eine Kombination aus Threading- und Speicher-Checktool, und das sogar &#8220;proaktiv&#8221;. Proaktiv bedeutet in diesem Zusammenhang eine Fehlersuche zur Laufzeit der Anwendung. Darüber hinaus [...]]]></description>
			<content:encoded><![CDATA[<p>Nach Heinz Basts sehr interessantem Beitrag über Parallel Composer ist Levent Akyil von Intel dran, um zunächst über Parallel Inspector zu reden, später dann über Parallel Amplifier.</p>
<p>Parallel Inspector ist, einfach gesagt, eine Kombination aus Threading- und Speicher-Checktool, und das sogar &#8220;proaktiv&#8221;. Proaktiv bedeutet in diesem Zusammenhang eine Fehlersuche zur Laufzeit der Anwendung. Darüber hinaus integriert sich der Inspector in Visual Studio und macht damit die Bedienung ziemlich einfach. Der Programmierer muss sich nur für eine der beiden Optionen entscheiden: Finde Threadfehler oder Speicherfehler.</p>
<p><strong>Speicherfehler:</strong> Hier geht es um so unschöne Dinge wie Memory Leaks, Speicherüberläufe und Zeigerprobleme. Schön daran ist die Möglichkeit, irrelevante gefundene Probleme auszublenden. Dies macht das Aufspüren der wichtigen Fehler einfacher.</p>
<p><strong>Threading-Fehler:</strong> Stichworte sind Deadlocks, Data Races und andere Synchronisationsprobleme, und das zur Laufzeit der Anwendung. Auch hier lassen sich unwichtige Probleme direkt ausblenden.</p>
<p><span id="more-1010"></span>Ein schöner Nebenaspekt des Parallel Inspector ist dessen Compiler-Unabhängigkeit: Man kann also sowohl den Intel-C++- als auch den Microsoft-Compiler oder jeden anderen kompatiblen Compiler verwenden.</p>
<p>Sehr hübsch: Je nach gewünschter Intensität lässt sich der Inspector-Test (Speicher oder Threading) mithilfe eines virtuellen Zeigers einstellen. Das macht die Wahl des passenden Tests sehr intuitiv.</p>
<p>Die abschließende Demo ist wirklich sehr anschaulich und zeigt die einfache Handhabung des Inspectors aus Visual Studio heraus. Leider lässt sich das an dieser Stelle nur schlecht darstellen. Ich überlege mir aber etwas, wie ich das nachträglich zeigen kann. Versprochen!</p>
<p><strong>Fazit:</strong> Parallel Inspector ist ein wirkliche gutes Tool, mit dem sich mögliche Threading- und Speicherprobleme identifizieren lassen, und das mit wenigen Mausklicks. Zudem geschieht dies aus der gewohnten Visual-Studio-Umgebung heraus.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/isc09-intel-parallel-inspector-im-detail/04/2009/&via=sw_devtwits&text=ISC'09: Intel Parallel Inspector 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/isc09-intel-parallel-inspector-im-detail/04/2009/&via=sw_devtwits&text=ISC'09: Intel Parallel Inspector 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/isc09-intel-parallel-inspector-im-detail/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ISC&#8217;09: Microsoft und die parallele Programmierung</title>
		<link>http://www.software-dev-blog.de/isc09-microsoft-und-die-parallele-programmierung/04/2009/</link>
		<comments>http://www.software-dev-blog.de/isc09-microsoft-und-die-parallele-programmierung/04/2009/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 09:04:55 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1004</guid>
		<description><![CDATA[Die Pause ist vorbei und auf der Bühne steht Eric Vernié von Microsoft und präsentiert sehr launig das Thema &#8220;Microsoft und Multicore-Programmierung&#8221;. Den Anfang macht eine Demo mithilfe einer Mandelbrot-Berechnung, die auf einem Prozessor und auf 24 Prozessorkernen läuft &#8211; und das signifikant schneller! Das überrascht nicht wirklich &#8230; Eines der Hauptprobleme beim parallelen Programmieren [...]]]></description>
			<content:encoded><![CDATA[<p>Die Pause ist vorbei und auf der Bühne steht Eric Vernié von Microsoft und präsentiert sehr launig das Thema &#8220;Microsoft und Multicore-Programmierung&#8221;.</p>
<p>Den Anfang macht eine Demo mithilfe einer Mandelbrot-Berechnung, die auf einem Prozessor und auf 24 Prozessorkernen läuft &#8211; und das signifikant schneller! Das überrascht nicht wirklich &#8230;</p>
<p>Eines der Hauptprobleme beim parallelen Programmieren ist laut Eric &#8211; und das ist <a title="Ausbildungslücken bei der Multicore-Programmierung" href="http://www.software-dev-blog.de/ausbildungslucken-bei-der-multicore-programmierung/12/2008/">nicht nur seine Ansicht</a> &#8211; die bestehende Ausbildung der aktuellen Studentengeneration, da diese nicht entsprechend ausgebildet werden.</p>
<p>Die Integration von Intel Parallel Studio in Visual Studio 2010 hat laut Eric diverse Vorteile: Load Balancing und Task Scheduling geschehen sehr ausgewogen. Außerdem werden die vorhandenen Ressourcen wie Intel TBB und Microsoft PPL optimal gemeinsam genutzt.</p>
<p>Eine weitere Demo zeigt den Unterschied zwischen LINQ und PLINQ, mit deren Hilfe ein Datensatz in einer Datenbank gefunden werden kann. Überraschung: Dank der Parallelisierung von PLING wird derselbe Datensatz in vier Sekunden identifiziert anstatt in 27 Sekunden auf LINQ-Basis.</p>
<p>Interessante Aussage: <em>&#8220;The manycore is a disruption for developers but also a high opportunity!&#8221;</em></p>
<p><span id="more-1004"></span>Eric stellt jetzt letztlich dieselbe Fragen wie James Reinders: Wie können Entwickler parallel entwickeln? Wie können sie dabei unterstützt werden, dies effizient und skalierend zu tun? Und wie können Entwickler möglichst einfach Programme erstellen und testen?</p>
<p>So, jetzt geht es um <a title="Interview mit Dariusz Parys zu VS 2010 und .NET 4.0" href="http://blogs.msdn.com/dparys/default.aspx">Visual Studio 2010</a>. Eric stellt <a title="Mehr Infos zu PLINQ" href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-3/02/2009/">PLINQ im Detail</a> vor.</p>
<p>Ein weitere Demo zeigt die Lösung des <a title="Wiki-Infos zu POI zum Monte-Carlo-Algorithmus" href="http://de.wikipedia.org/wiki/Monte-Carlo-Algorithmus" target="_blank">Monte-Carlo-Problems</a> mithilfe einer parallelen Anweisung, die sich in wenigen Sekunden in den Sourcecode einfügen lässt. Und tatsächlich: Dank der Parallelisierung steht die Lösung auf einer Dualcore-Maschine nach knapp sieben Sekunden zur Verfügung (im Vergleich: Im seriellen Modus dauerte die Berechnung rund zwölf Sekunden).</p>
<p>Die Concurrency Runtime zeichnet sich durch zwei Hauptmerkmale aus: Load Balancing Scheduler (LBS) und Dynamic Resource Management (DRM).</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/isc09-microsoft-und-die-parallele-programmierung/04/2009/&via=sw_devtwits&text=ISC'09: Microsoft und die parallele 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/isc09-microsoft-und-die-parallele-programmierung/04/2009/&via=sw_devtwits&text=ISC'09: Microsoft und die parallele 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/isc09-microsoft-und-die-parallele-programmierung/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ISC&#8217;09: Parallele Programmierung für den Mainstream</title>
		<link>http://www.software-dev-blog.de/isc09-parallele-programmierung-fur-den-mainstream/04/2009/</link>
		<comments>http://www.software-dev-blog.de/isc09-parallele-programmierung-fur-den-mainstream/04/2009/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 07:40:22 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1002</guid>
		<description><![CDATA[James Reinders widmet sich dem Thema Parallelprogrammierung aus Intel-Sicht. Das hat vor allem mit den Tools zu tun, die der Chiphersteller seit vielen Jahren im Programm hat, seinerzeit vor allem auf HPC spezialisiert. Ohne große Umschweife kommt James auf Parallel Studio zu sprechen. Das Feedback der Beta-Tester ist wohl sehr gut. Gleichzeitig ist es aber [...]]]></description>
			<content:encoded><![CDATA[<p>James Reinders widmet sich dem Thema Parallelprogrammierung aus Intel-Sicht. Das hat vor allem mit den Tools zu tun, die der Chiphersteller seit vielen Jahren im Programm hat, seinerzeit vor allem auf HPC spezialisiert.</p>
<p>Ohne große Umschweife kommt James auf Parallel Studio zu sprechen. Das Feedback der Beta-Tester ist wohl sehr gut. Gleichzeitig ist es aber wichtig, so Reinders, dass die Segmentierung der Tools klar ist: Parallel Studio wird in Zukunft den Mainstream der C++-Programmierer adressieren, während sich die anderen Softwarewerkzeuge eher an Highend-Entwickler wenden &#8211; unter anderem an diejenigen, die nicht in C++ unter Windows programmieren.</p>
<p>Klar, dass James auch über geplante Produkte redet. Zum einen über die nächsten Multicore-Prozessoren, die ein Vielfaches an Threads wie die aktuellen CPUs parallel verarbeiten können. Aber auch Larrabee kommt kurz ins Gespräch.</p>
<p>Jetzt liegt gerade eine interessante Folie auf, die das ganze Dilemma vieler Programmierer aufzeigt: Mehr Prozessorkerne bedeuten nicht zwangsläufig mehr Leistung, da die Taktraten nicht weiter nach oben gehen und aus diesem Grund die Anwendungen für parallel ablaufende Threads optimiert werden müssen. Und zwar so, dass die Software auch dann skaliert, wernn die Hardware nicht nur vier Prozessorkerne bietet, sondern 8, 16, 32 oder mehr.</p>
<p>Auf die Bühne kommt &#8211; Intel Threading Building Blocks, übrigens Teil des Parallel Studio.</p>
<p><span id="more-1002"></span>&#8220;Tools must help&#8221; &#8211; sowohl in vergangenen Zeiten als Hilfsmittel als auch heute und morgen für korrekt und skalierend programmierte Anwendungen.</p>
<p>Ok, jetzt wird&#8217;s parallel: James spricht über Parallel Studio und stellt die vier Stufen der parallelen Programmierung vor: Design, Programmierung/Testen, Verifizierung, Tuning.</p>
<p><strong>Design:</strong> Hiefür wird es eines schönen Tages den Parallel Advisor geben, der aber zunächst nicht Bestandteil von Parallel Studio sein wird.</p>
<p><strong>Programmierung/Testen:</strong> Hierfür gibt es Parallel Composer, der verschiedene Tools in sich vereint: OpenMP 3.0, C++-Compiler, Parallel Debugger Plug-in, Integrated Performance Primitives, Threading Building Blocks, Lambda-Funktionen etc.</p>
<p><strong>Verifizierung:</strong> Parallel Inspector kümmert sich um die Fehler und Bugs, die sich bei der parallelen Programmierung eingeschlichen haben. Letztlich ist der Inspector eine verbesserte Variante des Thread Checker, den es ja schon eine ganze Weile gibt. Was der Inspector besser macht ist das Aufspüren von Speicherproblemen, und das natürlich zur Laufzeit. Daneben findet Inspector Fehler in Multithreading-Segementen wie Dead Locks Data Races &#8211; und gleich die passenden Programmzeilen dazu.</p>
<p><strong>Tuning:</strong> Parallel Amplifier spürt ähnlich wie VTune und Thread Profiler Flaschenhälse und Hotspots innerhalb einer parallel programmierten Anwendungen auf. Hierfür kann man sich beispielsweise seine Software benchmarken, indem man die vorhandenen Funktionen unterschiedlich anordnet und mithilfe des Amplifier herausfindet, welche Anordnung am besten ist.</p>
<p>Jetzt kommt James doch noch mal auf <strong>Parallel Advisor</strong> zu sprechen, der im Laufe des Jahres allen Studio-Anwendern zur Verfügung stehen wird. Dieses Tool wird Entwicklern dabei helfen, den besten Ansatz für die Parallelisierung seiner Anwendung zu finden.</p>
<p>Auch ein wichtiges Thema ist die geplante Version von Microsoft Visual Studio 2010, die eine Menge an Parallelismus eingebaut haben wird. Interssant an der Folie ist der Hinweis, dass Intel die Microsoft Concurrency Runtime in Zukunft unterstützen wird. Bisher ist es nämlich vor allem für .NET-Entwickler recht schwierig, Multithread-Code zu &#8220;überwachen&#8221;. Das betrifft hauptsächlich den Task Scheduler, der sich um das Verteilen der anfallenden Threads auf die vorhandenen Prozessoren kümmert.</p>
<p>Interessanter Einwurf eines anwesenden Teilnehmers: Warum sollte man nicht einfach auf Visual Studio 2010 warten, anstatt Parallel Studio einzusetzen? Antwort von James Reinders: Parallel Studio setzt auf OpenMP und hat vor allem mit dem Parallel Inspector ein Debugger-Tool &#8220;onboard&#8221;, das zur Laufzeit Data Races und Deadlocks finden kann!</p>
<p>Und jetzt noch zwei schöne Schlussworte:</p>
<blockquote><p>C- und C++-Entwickler benötigen ALLE Parallel Studio!</p></blockquote>
<blockquote><p>Parallel Studio ist das absolut beste Tool für die parallel Programmierung!</p></blockquote>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/isc09-parallele-programmierung-fur-den-mainstream/04/2009/&via=sw_devtwits&text=ISC'09: Parallele Programmierung für den Mainstream&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/isc09-parallele-programmierung-fur-den-mainstream/04/2009/&via=sw_devtwits&text=ISC'09: Parallele Programmierung für den Mainstream&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/isc09-parallele-programmierung-fur-den-mainstream/04/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Intel Software Conference: erste Worte</title>
		<link>http://www.software-dev-blog.de/intel-software-conference-erste-worte/04/2009/</link>
		<comments>http://www.software-dev-blog.de/intel-software-conference-erste-worte/04/2009/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 07:25:07 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1000</guid>
		<description><![CDATA[Ziel der Veranstaltung hier: Was ist Parallel Studio? Intels zukünftige Pläne Das erinnert mich gerade ein wenig an die Verleihung der bekannten Hollywood-Statue: Anwesende werden begrüßt, Special Guests werden erwähnt und kleine Geschichten werden ausgetauscht. Ein sehr launiger Auftakt für solch eine Veranstaltung &#8230; Dann wird&#8217;s aber doch technisch und die geplanten Redner werden vorgestellt: [...]]]></description>
			<content:encoded><![CDATA[<p>Ziel der Veranstaltung hier:</p>
<ul>
<li>Was ist Parallel Studio?</li>
<li>Intels zukünftige Pläne</li>
</ul>
<p>Das erinnert mich gerade ein wenig an die Verleihung der bekannten Hollywood-Statue: Anwesende werden begrüßt, Special Guests werden erwähnt und kleine Geschichten werden ausgetauscht. Ein sehr launiger Auftakt für solch eine Veranstaltung &#8230;</p>
<p>Dann wird&#8217;s aber doch technisch und die geplanten Redner werden vorgestellt: Microsoft, Nero und Intel werden den heutigen Tag inhaltlich gestalten. Daneben wird das Intel Software Network vorgestellt, die Plattform für technische Informationen rund um Intel-Softwareprodukte. Goparallel.com wird kurz erwähnt sowie die MSDN-Verlinkung, die geplante Microsoft-Intel-Roadshow und diverse Veranstaltungen.</p>
<p>Jetzt gibt Christian ein kurzes Update in Sachen Parallel Studio und dass es sogar auf der weltweiten Marketing- und Sales-Konference im Januar Erwähnungen gefunden hat. Weitere Tools werden im Juni vorgestellt, die vor allem für Apple- und Linux-Entwickler interessant sein werden.</p>
<p>Ein Video lässt verschiedene Menschen zu Wort kommen (Citrix, Microsoft, Novell, Red Hat, Autodesk etc.), die Intel-Tools wie VTune Performance und Intel Compiler Analyzer in den höchsten Tönen loben.</p>
<p>Und jetzt heißt es: Bühne frei für James Reinders!</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-software-conference-erste-worte/04/2009/&via=sw_devtwits&text=Intel Software Conference: erste Worte&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-software-conference-erste-worte/04/2009/&via=sw_devtwits&text=Intel Software Conference: erste Worte&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-software-conference-erste-worte/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Onsite-Blogging: Intel Software Conference 2009</title>
		<link>http://www.software-dev-blog.de/onsite-blogging-intel-software-conference-2009/04/2009/</link>
		<comments>http://www.software-dev-blog.de/onsite-blogging-intel-software-conference-2009/04/2009/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 10:21:32 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=999</guid>
		<description><![CDATA[Jetzt sitze ich also in Salzburg in einem netten Kaffeehaus an der Salzach und warte darauf, dass heute Abend um Punkt 18:00 MESZ die Intel Software Conference 2009 für die anwesende Journaille aus ganz Europa offiziell eröffnet wird. Ok, richtig beginnen wird die Veranstaltung erst morgen früh, aber der heutige Abend steht ganz im Zeichen [...]]]></description>
			<content:encoded><![CDATA[<p>Jetzt sitze ich also in <a title="Wiki-Infos zu Salzburg" href="http://de.wikipedia.org/wiki/Salzburg" target="_blank">Salzburg</a> in einem netten Kaffeehaus an der Salzach und warte darauf, dass heute Abend um Punkt 18:00 MESZ die <a title="Mehr Infos zur Intel Software Conference 2009" href="http://www.software-dev-blog.de/mehr-infos-zur-intel-software-conference-2009/03/2009/">Intel Software Conference 2009</a> für die anwesende Journaille aus ganz Europa offiziell eröffnet wird. Ok, richtig beginnen wird die Veranstaltung erst morgen früh, aber der heutige Abend steht ganz im Zeichen des Netzwerkens. Und das ist ja genauso wichtig wie die Entwicklerkonferenz selbst.</p>
<p>Für alle, die bisher noch nicht mitbekommen haben, was hier am morgigen Dienstag in der <a title="Wiki-Infos zu Wolgang Amadeus Mozart" href="http://de.wikipedia.org/wiki/Wolfgang_Amadeus_Mozart" target="_blank">Geburtsstadt Mozarts</a> im Namen von Intel stattfinden wird, folgt jetzt die ultimative Stichwortsammlung:</p>
<p>James Reinders, Obersoftwareguru bei Intel, wird zeigen, dass sich Multicore-Plattformen vom Nischendasein emanzipiert haben und im Massengeschäft angekommen sind. Und dass es für Softwareentwickler noch ein Menge zu tun gibt, um ihre oftmals sequenziell programmierten Anwendungen an die aktuellen und zukünftigen Prozessorgenerationen anzupassen, die es gerne parallel mögen.</p>
<p>Eric Vernié, Softwarevordenker bei Microsoft in Frankreich, macht sich dann daran, die gemeinsamen Anstrengungen von Intel und Microsoft in Sachen Multicore-Programmierung vorzustellen. Stichworte sind <a title="Interview mit Dariusz Parys zu VS 2010 und .NET 4.0" href="http://blogs.msdn.com/dparys/default.aspx">Visual Studio 2010 samt .NET 4.0</a> einerseits und <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> andererseits. Es wird aber auch um <a title="Mehr Infos zu F# und der Multicore-Konferenz in München am 23.4.2009" href="http://www.software-dev-blog.de/f-und-co-priopowerday-multicore-im-net-umfeld/03/2009/">künftige Programmiersprachen wie F#</a> gehen, die für noch mehr automatischen Parallelismus in Anwendungen sorgen sollen.</p>
<p><span id="more-999"></span>Charly Lippoth, <a title="Youtube-Video mit Nero zum Core i7" href="http://www.youtube.com/watch?v=WPv-32UbBG8">Chefstratege der Nero AG</a>, kommt anschließend zu Wort und wird über die Erfolgsgeschichte referieren, warum Nero-Software und Intel-Multicore-Plattformen wie der <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> so gut harmonieren und was seine Programmierer und Entwickler alles dafür tun mussten. Stichworte in diesem Zusammenhang sind <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 <a title="Infos zu Intel Compilern" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel Compiler</a>.</p>
<p>Nach soviel Übersichtsinfos geht es dann ans Eingemachte: Heinz Bast und Levent Akyil nehmen sich im Detail des Parallel Studios an. Stichworte hierbei sind <a title="Parallel Composer" href="http://www.software-dev-blog.de/serie-mit-parallel-studio-anwendungen-multithreaden/02/2009/">Parallel Composer</a>, <a title="Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Parallel Inspector</a> und <a title="Parallel Amplifier" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-amplifier/02/2009/">Parallel Amplifier</a>. Da sollten eine ganze Menge Einblicke dabei sein.</p>
<p>Und was ist sehr beliebt am Ende solch einer Konferenz? Genau, ein Blick in die Glaskugel: Was kommt, was können wir noch alles erwarten, was wird in Zukunft benötigt. Das erledigt natürlich der Chef selbst: James Reinders wird also noch einmal die Bühne erklimmen und einen kurzen Ausblick verschaffen, was Parallel Studio noch alles zu bieten haben wird und was es mit dem Forschungsprojekt Ct auf sich hat.</p>
<p>Jetzt fehlt nur noch der Hinweis, den <a title="RSS-Feed abonnieren und wiederkommen ..." href="http://www.software-dev-blog.de/feed/">RSS-Feed des Software Dev Blogs</a> zu abonnieren, 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/onsite-blogging-intel-software-conference-2009/04/2009/&via=sw_devtwits&text=Onsite-Blogging: 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/onsite-blogging-intel-software-conference-2009/04/2009/&via=sw_devtwits&text=Onsite-Blogging: 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/onsite-blogging-intel-software-conference-2009/04/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenMP: Schleifen anpassen für Multithreading-Ausführung</title>
		<link>http://www.software-dev-blog.de/openmp-schleifen-anpassen-fur-multithreading-ausfuhrung/04/2009/</link>
		<comments>http://www.software-dev-blog.de/openmp-schleifen-anpassen-fur-multithreading-ausfuhrung/04/2009/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 14:32:24 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[OpenMP]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=993</guid>
		<description><![CDATA[Gestern habe ich mit einer neuen Serie angefangen, die sich intensiv mit dem Thema OpenMP beschäftigt. Im ersten Teil ging es sehr fundamental um die Voraussetzungen, die eine Schleife erfüllen muss, um per OpenMP multithreading-tauglich zu sein. Heute geht es um die Frage, welche Dinge zu beachten sind, damit eine Schleife ordnungsgemäß in mehrere Threads [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern habe ich mit einer neuen Serie angefangen, die sich intensiv mit dem Thema OpenMP beschäftigt. <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/">Im ersten Teil</a> ging es sehr fundamental um die Voraussetzungen, die eine Schleife erfüllen muss, um per OpenMP multithreading-tauglich zu sein. Heute geht es um die Frage, welche Dinge zu beachten sind, damit eine Schleife ordnungsgemäß in mehrere Threads aufgeteilt werden kann.</p>
<p>Zunächst einmal: Das Threaden von Schleifenkonstrukten bedeutet nichts anderes, als dass unabhängige Schleifeniterationen auf mehreren Threads gleichzeitig ausgeführt werden können, was natürlich Rechenzeit pro Takt spart. Hierzu wird die Schleife in eine neue Form gebracht, die das Parallelisieren derselben überhaupt erst ermöglicht. Dies ist aber nur umsetzbar, wenn die Schleife <strong>keine Abhängigkeiten</strong> aufweist.</p>
<p>Daher muss man als Entwickler zunächst einmal mit einem passenden Tool wie <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> diejenige Schleife finden, die insgesamt die meiste Rechenzeit verschlingt. Anschließend wird diese umstrukturiert, um festzustellen, dass keine iterationsübergreifenden Abhängigkeiten bestehen. Erst dann sollte diese Schleife mithilfe eines OpenMP-Pragmas parallelisiert werden.</p>
<p><span id="more-993"></span>Dabei geht es um <a title="Mit dem Thead Checker lassen sich Data Races und Dead Lock in Multithread-Code aufspüren" href="http://www.software-dev-blog.de/fehler-im-multithread-code-aufspuren-thread-checker/11/2008/">bereits dargestellte Datenabhängigkeiten</a>, die in Data Race Conditions oder Dead Locks münden können. Man unterscheidet zwischen drei wesentlichen Abhängigkeiten:</p>
<p><strong>Flussabhängigkeit (Schreiben-vor-Lesen):</strong> Eine Anweisung ist von einer anderen abhängig, wenn der erste Befehl ein Datum speichert, das der nachfolgende lesen will.</p>
<p><strong>Ausgabeabhängigkeit:</strong> Zwei Befehle speichern in dieselbe Speicherzelle ihre Daten.</p>
<p><strong>Antiabhängigkeit (Lesen-vor-Schreiben): </strong>Ein Befehl liest ein Datum, bevor dieses überhaupt gespeichert wird.</p>
<p>Um zu zeigen, wie sich das Umstellen von Schleifencode auf die richtige Ausführung des gesamten Programms auswirkt, folgen an dieser Stelle zwei Beispiele: ein nicht-funktionierendes und ein OpenMP-taugliches.</p>
<p><strong>Nicht-funktionierende OpenMP-Schleife wegen einer iterationsübergreifenden Abhängigkeit!</strong></p>
<p><em><strong>x[0]  = 0;<br />
y[0] = 1;<br />
#pragma omp parallel for private(k)</strong></em></p>
<p><em><strong><span style="color: #ffffff;">&#8230;&#8230;</span></strong></em><em><strong>for ( k = 1; k &lt; 100; k++ ) {<br />
<span style="color: #ffffff;">&#8230;&#8230;</span></strong></em><em><strong><span style="color: #ffffff;">&#8230;.</span></strong></em><em><strong>x[k] = y[k-1] + 1; // Operation 1<br />
<span style="color: #ffffff;">&#8230;&#8230;</span></strong></em><em><strong><span style="color: #ffffff;">&#8230;.</span></strong></em><em><strong>y[k] = x[k-1] + 2; // Operation 2</strong></em></p>
<p><em><strong><span style="color: #ffffff;">&#8230;..</span> }</strong></em></p>
<p><strong>OpenMP-basiertes Threading mittels einer Strip-Mining-Transformation</strong></p>
<p><em><strong>x[0]  = 0;<br />
y[0] = 1;<br />
x[49] = 74; // abgeleitet von der Gleichung x(k)=x(k-2)+3<br />
</strong></em><em><strong>y[49] = 74; // abgeleitet von der Gleichung y(k)=y(k-2)+3</strong></em></p>
<p><em><strong>#pragma omp parallel for private(m, k)</strong></em></p>
<p><em><strong><span style="color: #ffffff;">&#8230;..</span></strong></em><em><strong></strong></em><em><strong>for ( m=0; m&lt;2; m++ ) {<br />
</strong></em><em><strong></strong></em><em><strong></strong></em><em><strong><span style="color: #ffffff;">&#8230;&#8230;</span></strong></em><em><strong><span style="color: #ffffff;">&#8230;.</span></strong></em><em><strong>for ( k = M*49+1;  k &lt; m*50+50; k++)</strong></em> {</p>
<p><em><strong><span style="color: #ffffff;">&#8230;&#8230;&#8230;.</span></strong></em><em><strong><span style="color: #ffffff;">&#8230;.</span></strong></em><em><strong>x[k] = y[k-1] + 1; // Operation 1<br />
<span style="color: #ffffff;">&#8230;&#8230;</span></strong></em><em><strong><span style="color: #ffffff;">&#8230;&#8230;..</span></strong></em><em><strong>y[k] = x[k-1] + 2; // Operation 2</strong></em><em><strong><span style="color: #ffffff;"><br />
</span></strong></em><em><strong><span style="color: #ffffff;">&#8230;&#8230;</span></strong></em><em><strong><span style="color: #ffffff;">..</span></strong></em><em><strong></strong></em><em><strong>}<br />
</strong></em><em><strong><span style="color: #ffffff;">&#8230;.</span></strong></em><em><strong></strong></em><em><strong>}</strong></em></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/openmp-schleifen-anpassen-fur-multithreading-ausfuhrung/04/2009/&via=sw_devtwits&text=OpenMP: Schleifen anpassen für Multithreading-Ausführung&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/openmp-schleifen-anpassen-fur-multithreading-ausfuhrung/04/2009/&via=sw_devtwits&text=OpenMP: Schleifen anpassen für Multithreading-Ausführung&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/openmp-schleifen-anpassen-fur-multithreading-ausfuhrung/04/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenMP: fünf Bedingungen für parallele Schleifen</title>
		<link>http://www.software-dev-blog.de/openmp-funf-bedingungen-fur-parallele-schleifen/04/2009/</link>
		<comments>http://www.software-dev-blog.de/openmp-funf-bedingungen-fur-parallele-schleifen/04/2009/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 13:14: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[Tutorial]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=992</guid>
		<description><![CDATA[Das Thema OpenMP steht bei vielen Lesern dieses Blogs hoch im Kurs. Das liegt zum einen an der Parallel-Computing-Seite von MSDN, auf der ein entsprechender Beitrag lange verlinkt war. Zum anderen findet Google meine OpenMP-Bemühungen wohl ganz nett, zumindest steht besagter Artikel im deutschsprachigen Index auf dem fünften Platz. Daher starten wir heute mit einer [...]]]></description>
			<content:encoded><![CDATA[<p>Das Thema OpenMP steht bei vielen Lesern dieses Blogs hoch im Kurs. Das liegt zum einen an der <a title=" Infos rund ums Parallele Programmieren auf MSDN " href="http://www.software-dev-blog.de/infos-rund-ums-parallele-programmieren-auf-msdn/03/2009/">Parallel-Computing-Seite von MSDN</a>, auf der ein entsprechender Beitrag lange verlinkt war. Zum anderen findet Google meine OpenMP-Bemühungen wohl ganz nett, zumindest steht <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">besagter Artikel</a> im deutschsprachigen Index auf dem fünften Platz.</p>
<p>Daher starten wir heute mit einer Serie, die sich mit kleineren und größeren Aspekten der OpenMP-basierten Programmierung beschäftigt. Also mit solchen Fragen wie:</p>
<ul>
<li>Welche Bedingungen müssen erfüllt sein, damit OpenMP-basierende Schleifen überhaupt in parallelen Threads ausgeführt werden können?</li>
<li>Welche Dinge sind zu beachten, damit eine Schleife ordnungsgemäß in mehrere Threads aufgeteilt werden kann?</li>
<li>Wie lässt sich möglicher Threading-Overhead vermeiden?</li>
<li>Wie kann man das Optimum aus OpenMP herausholen?</li>
<li>Wie lassen sich sinnvoll OpenMP-Bibliotheksfunktionen und -Umgebungsvariablen einsetzen?</li>
<li>Wie geschieht das Kompilieren und Debuggen mithilfe von OpenMP?</li>
<li>Wovon hängt eine maximale Multithread-Leistung auf OpenMP-Basis ab?</li>
</ul>
<p><strong>Welche Bedingungen müssen erfüllt sein, damit OpenMP-basierende Schleifen überhaupt in parallelen Threads ausgeführt werden können?</strong></p>
<p>1. In der Version 2.5 müssen Schleifenvariablen vom Typ <em><strong>vorzeichenbehafteter Integer</strong></em> sein. Mit der OpenMP-Spezifikation 3.0 ist diese Beschränkung weggefallen.</p>
<p>2. Die Vergleichsoperation muss in der Form <em><strong>loop_variable </strong><strong>&lt;, &lt;=</strong></em> oder <em><strong>&gt;=</strong><strong> loop_invariant_integer</strong></em> sein.</p>
<p>3. Der Inkrementteil (z.B. <em><strong>i++</strong></em>) der for-Schleife muss additiv oder substraktiv sein, und zwar mit einem schleifeninvarianten Wert.</p>
<p>4. Ist die Vergleichsoperation vom Typ <em><strong>&lt;</strong></em> oder <em><strong>&lt;=</strong></em>, muss die die Schleifenvariable bei jeder Iteration erhöht werden. Umgekehrt muss die Variable dekrementiert werden (also bei &gt; oder &gt;=).</p>
<p>5. Die Schleife muss zwingend einen Eintritt und einen Austritt haben. Daher sind nicht erlaubt: Sprünge aus der Schleife heraus bzw. von außen in die Schleife hinein. Das gilt beispielsweise für <em><strong>goto</strong></em>- oder <em><strong>break</strong></em>-Anweisungen oder für Ausnahmebehandlungen. Eine Ausnahme dieser Regel stellt die <em><strong>exit</strong></em>-Anweisung dar, die die komplette Anwendung beendet.</p>
<p>Diese Bedingungen müssen aus Kompilierungsgründen eingehalten werden. Andernfalls kann keine automatische Parallelisierung erfolgen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/openmp-funf-bedingungen-fur-parallele-schleifen/04/2009/&via=sw_devtwits&text=OpenMP: fünf Bedingungen für parallele Schleifen&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/openmp-funf-bedingungen-fur-parallele-schleifen/04/2009/&via=sw_devtwits&text=OpenMP: fünf Bedingungen für parallele Schleifen&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/openmp-funf-bedingungen-fur-parallele-schleifen/04/2009/feed/</wfw:commentRss>
		<slash:comments>1</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>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>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>Infos rund ums Parallele Programmieren auf MSDN</title>
		<link>http://www.software-dev-blog.de/infos-rund-ums-parallele-programmieren-auf-msdn/03/2009/</link>
		<comments>http://www.software-dev-blog.de/infos-rund-ums-parallele-programmieren-auf-msdn/03/2009/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 16:24:37 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Basics]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[dotNET]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=954</guid>
		<description><![CDATA[Heute Morgen habe ich nicht schlecht gestaunt, als mich Google Alert darüber informiert hat, dass es eine externe Verlinkung zu einem meiner Blogbeiträge gibt. Dabei handelt es sich um einen Workshop, der sich mit den Methoden der parallelen Programmierung mithilfe von OpenMP beschäftigt. Besonders bemerkenswert daran fand ich übrigens die Seite, die den Beitrag verlinkt [...]]]></description>
			<content:encoded><![CDATA[<p>Heute Morgen habe ich nicht schlecht gestaunt, als mich Google Alert darüber informiert hat, dass es eine externe Verlinkung zu einem meiner Blogbeiträge gibt. Dabei handelt es sich um einen <a title=" Workshop: parallel Programmieren mit OpenMP " href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">Workshop</a>, der sich mit den Methoden der parallelen Programmierung mithilfe von OpenMP beschäftigt.</p>
<p>Besonders bemerkenswert daran fand ich übrigens die Seite, die den Beitrag verlinkt hat: Es handelt sich um niemand geringeres als <a title="Parallele Programmierung auf MSDN" href="http://msdn.microsoft.com/de-de/concurrency/default.aspx" target="_blank">MSDN</a>, also das Entwicklerportal von Microsoft, die dem Thema Parallele Programmierung eine eigene Webseite spendiert haben. Und genau dort findet man den Link auf meinen OpenMP-Beitrag. Daneben gibt es noch weitere interessante Einstiege in die Welt der Multithreading-Entwicklung. Da erfährt man eine Menge über die Grundlagen der Parallelprogrammierung, aber auch Tools und Downloads werden dort vorgestellt.</p>
<p>Des Weiteren können interessierte Entwickler nützliche Artikel abgreifen, Webcasts und Videos angucken und Blogs lesen. Und klar, dass es auf der Webseite auch um die Themen <a title="Multicore-Programmierung unter .NET auf dem prio Powerday 2009" href="http://www.software-dev-blog.de/multicore-powerday-preise-und-weitere-infos/01/2009/">Paralleles Programmieren mit .NET</a> geht. Besonders bemerkenswert finde ich auch die Tatsache, dass MSDN für Intel eine eigene Sektion mit Namen &#8220;Intel Developer Network&#8221; spendiert hat. Dort findet man Wissenswertes zum Parallel Studio und zu anderen Themen.</p>
<p><em><strong>Fazit:</strong></em> Parallel Computing auf MSDN ist eine bookmark-taugliche Webseite, wenn man in Sachen Parallele Programmierung auf dem Laufenden bleiben will.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/infos-rund-ums-parallele-programmieren-auf-msdn/03/2009/&via=sw_devtwits&text=Infos rund ums Parallele Programmieren auf MSDN&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/infos-rund-ums-parallele-programmieren-auf-msdn/03/2009/&via=sw_devtwits&text=Infos rund ums Parallele Programmieren auf MSDN&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/infos-rund-ums-parallele-programmieren-auf-msdn/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-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>Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten</title>
		<link>http://www.software-dev-blog.de/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/</link>
		<comments>http://www.software-dev-blog.de/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 12:23:12 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[dotNET]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=779</guid>
		<description><![CDATA[Während der OOP 2009 gab es die Möglichkeit, mit Microsoft zusammenzusitzen und ein wenig über Visual Studio 2010 und das zugehörige .NET Framework 4.0 zu plaudern. So der Plan! Leider kam es anders, was dazu führte, dass ich am vorigen Mittwoch via Festnetz mit einem der Technikgurus, Dariusz Parys, über diverse Aspekte der Parallelprogrammierung mithilfe [...]]]></description>
			<content:encoded><![CDATA[<p>Während der <a title="Multicore-Programmierung auf der OOP 2009" href="http://www.software-dev-blog.de/multicore-programmierung-auf-der-oop-2009/01/2009/">OOP 2009</a> gab es die Möglichkeit, mit Microsoft zusammenzusitzen und ein wenig über <a title="Multicore-Programmierung im .NET-Umfeld" href="Multicore-Programmierung im .NET-Umfeld - Teil 1 ">Visual Studio 2010</a> und das zugehörige .NET Framework 4.0 zu plaudern. So der Plan! Leider kam es anders, was dazu führte, dass ich am vorigen Mittwoch via Festnetz mit einem der Technikgurus, <a title="Das Blog von Dariusz Parys" href="http://blogs.msdn.com/dparys/default.aspx" target="_blank">Dariusz Parys</a>, über diverse Aspekte der Parallelprogrammierung mithilfe des .NET-Framework in der Version 4.0 sprach. Und das ist dabei herausgekommen.</p>
<p><em><strong>Wie unterstützt das .NET Framework 4.0 die parallele Programmierung?</strong></em><strong><br />
</strong>Hierfür gibt es diverse Komponenten. Es wird sowohl für den Bereich &#8220;Managed Applications&#8221; &#8211; also C# und Konsorten &#8211; als auch für  native Programmiersprachen (Fortran, C++ etc.) Bibliotheken und ähnliche Dinge geben. Für beide Programmiermodelle wurde die Concurrency Runtime entsprechend aufgebohrt.</p>
<p>Für die .NET-Entwickler gibt es dann zwei neue Modelle, und zwar die <a title=" Multicore-Programmierung im .NET-Umfeld" href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-2/01/2009/">Task Parallel Library</a> (TPL) und PLING. Mit der TPL lassen sich Aufgaben abstrahieren, was unter der Oberfläche und mithilfe der Concurrency Runtime zu Threads führt, um deren Verteilung auf die einzelnen Prozessorkerne sich der Entwickler nicht mehr kümmern muss. PLINQ stellt eine parallelisierte Erweiterung von LINQ dar. Und LINQ wiederum ist &#8220;eine Komponente von Microsofts .NET-Framework, mit der SQL-, XLink- und XQuery-Anfragen direkt in .NET-Programmiersprachen wie C# 3.0 oder <span class="mw-redirect">VB.Net</span> 9.0 als Code statt als String eingebunden werden können&#8221; (Quelle: Wikipedia).</p>
<p>Aber auch bei den nativen Sprachen gibt es neue Ansätze bezüglich der Concurrency Runtime: Dies ist zum einen die Parallel Pattern Library, die sich mit den <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> vergleichen lässt. Zum anderen bietet Visual Studio 2010 eine Agent Library für C++ und Co, die bestimmte Aufgaben verwalten und ausführen kann.</p>
<p><em><strong>Was sagen Sie Entwicklern, wenn Sie mit ihnen über die parallele Programmierung reden?</strong></em><br />
Das hängt davon ab, mit wem ich spreche. Entwickler, die sich zum Beispiel schon länger mit serviceorientierten Anwendungen beschäftigen, in denen separate Aufgaben durch Dienste erledigt werden, verstehen das Konzept der parallelen Programmierung oft schneller als Programmierer, die nur die rein serielle Entwicklung kennen. Wichtig dabei ist die Erkenntnis, dass es in den meisten Anwendungen Programmteile gibt, die man loslösen kann von der restlichen Programmlogik. Ein Beispiel hierfür ist die parallele Speicherung von Daten.</p>
<p><span id="more-779"></span>Für viele Entwickler stellt aber die Parallelisierung von Bedieneroberflächen ein großes Problem dar, da hier vieles noch vom Betriebssystem mithilfe von Nachrichtenschlangen verwaltet wird. Hierfür wird es in .NET 4.0 entsprechende Bibliotheken geben, die diese Aufgaben automatisch übernehmen.</p>
<p><em><strong>Welche Anwendungsgruppen werden von der Parallelisierung hauptsächlich profitieren?</strong></em><br />
Da sind zum einen die algorithmus-basierten Anwendungen zu nennen (<a title="Optimierte Filter von Nik Software" href="http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/">Bildbearbeitung</a>, <a title="Darum skaliiert DivX 7 besonders gut auf Multicore-Plattformen" href="http://www.software-dev-blog.de/how-to-deshalb-skaliert-divx-7-auf-multicore-plattformen/01/2009/">Encoder</a> etc.), aber auch klassische Geschäftsanwendungen wie CRM-Systeme bergen viel paralleles Potenzial. Hier können beispielsweise Anfragen an das Backend simultan ausgeführt werden, was die Wartezeiten auf das Ergebnis verkürzt. Allerdings liegt allen parallelisierten Anwendungen eine bestimmte Arbeit <strong><em>vor</em></strong> dem eigentlichen Kodieren zugrunde: Welche Programmbereiche kann ich logisch zusammenfassen und daraus einzelne Aufgaben machen, die als Tasks abstrahiert werden können und sich dann von der Concurrency Runtime als separate Threads ausführen lassen.</p>
<p><em><strong>Wie unterstützt Microsoft die Community in Sachen Visual Studio 2010, .NET 4.0 und Parallelprogrammierung?</strong></em><br />
Neben den kommerziellen Konferenzen wie der <a title="Infos und Videos rund um die Microsoft Tech-Ed" href="http://www.software-dev-blog.de/tag/tech-ed/">Microsoft Tech-Ed</a> oder dem <a title="Intel auf dem Tech Summit 2008" href="http://www.software-dev-blog.de/intel-auf-der-microsoft-technical-summit-2008/11/2008/">Tech Summit</a> gibt es beispielsweise die Möglichkeit, über Microsoft in ein Early-Adopter-Programm hineinzukommen, um auf diesem Weg Betatester zu werden. Darüber hinaus kann man <a title="So kommt man an die Techgurus von Microsoft heran" href="http://www.microsoft.com/germany/msdn/kontakt/devevangelists.mspx" target="_blank">uns auch direkt</a> auf gewünschte Workshops und ähnliche Dinge ansprechen. Und natürlich nutzen wir die gesamte Online-Vielfalt wie <a title="MSDN ist die zentrale Anlaufstelle für Entwickler" href="http://msdn.microsoft.com/de-de/default.aspx">Webcasts und Blogs</a>, um unsere Themen zu kommunizieren. Aber auch viele Microsoft-nahe Communities stehen derlei Themen offen gegenüber. Dort trägt Microsoft an und ab selbst zur Aufklärung in Sachen Multicore und ähnlichen Dingen bei.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/&via=sw_devtwits&text=Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten&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/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/&via=sw_devtwits&text=Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten&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/interview-visual-studio-2010-und-seine-multicore-fahigkeiten/02/2009/feed/</wfw:commentRss>
		<slash:comments>2</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>Skalierende Filter: Nik Software setzt auf Multicore</title>
		<link>http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/</link>
		<comments>http://www.software-dev-blog.de/skalierende-filter-nik-software-setzt-auf-multicore/01/2009/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 15:01:52 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>
		<category><![CDATA[Referenz]]></category>

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

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=585</guid>
		<description><![CDATA[Anfang Dezember haben Crytek und Ascaron den Deutschen Entwicklerpreis 2008 verliehen bekommen. Acscaron für Sacred 2 &#8211; Fallen Angel und Crytek für Crysis. Beiden Spielen liegt eine Menge an Optimierungsarbeit zugrunde. Soll heißen, dass beide Softwareschmieden ihre Erfolgstitel intensiv auf Multicore-Plattformen abgestimmt haben, damit diese bestmöglich auf zwei, vier, acht oder mehr Prozessorkernen skalieren. In [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-592" style="margin-left: 10px; margin-right: 0px;" title="Director of Technology, Mister Mark Atkinson von Crytek" src="http://www.software-dev-blog.de/wp-content/images/2009/01/mark_atkinson.jpg" alt="Director of Technology, Mister Mark Atkinson von Crytek" height="250" />Anfang Dezember haben Crytek und Ascaron den <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/">Deutschen Entwicklerpreis 2008 verliehen</a> bekommen. Acscaron für <em>Sacred 2 &#8211; Fallen Angel</em> und Crytek für <em>Crysis</em>. Beiden Spielen liegt eine Menge an Optimierungsarbeit zugrunde. Soll heißen, dass beide Softwareschmieden ihre Erfolgstitel intensiv auf Multicore-Plattformen abgestimmt haben, damit diese bestmöglich auf zwei, vier, acht oder mehr Prozessorkernen skalieren.</p>
<p>In beiden Fällen wollten wir natürlich wissen, welche Anstrengungen unternommen wurden, um die Spieletitel zu parallelisieren. Tja, und heute haben wir Teil eins unserer Fragen zurückbekommen, und zwar von Crysis. Geantwortet hat der Director of Technology höchstpersönlich, Mister <a title="LinkedIn-Profile von Mark Atkinson" href="http://www.linkedin.com/in/markatkinson99" target="_blank">Mark Atkinson</a>. Mark zeichnet übrigens verantwortlich für erfolgreiche Titel wie <em>Burnout Revenge</em> und <em>Football Manager 2009,</em> die er vor seiner Zeit bei Crytek mitentwickelt hat.</p>
<p><span style="color: #000080;"><em>Software Dev Blog: Mit welchen Tools haben Sie </em>Crysis <em>für Multicore-Plattformen optimiert?</em></span><strong><br />
Mark Atkinson:</strong> Wir setzen im Wesentlichen eigene Tools ein, um den Quellcode unserer Spieletitel wie <em>Crysis </em>für Multicore-Plattformen zu optimieren. Aber auch externe Anwendungen wie 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> kommen bei uns zum Einsatz. Dieser ist für uns vor allem wegen des Thread Profilers interessant, mit dessen Hilfe wir überprüfen können, in welchem Umfang und in welcher Qualität die Parallelisierung des Spieletitels gelungen ist.</p>
<p><span id="more-585"></span><span style="color: #000080;"><em> Welche Hürden mussten Sie bei der </em></span><span style="color: #000080;"><em>Multicore</em></span><span style="color: #000080;"><em>-Optimierung überwinden?</em></span><strong><br />
Atkinson:</strong> Die wesentliche Arbeit bestand darin, die Game-Engine völlig umzukrempeln. Wir mussten nämlich große Teile des sequenziell programmierten Quellcodes parallelisieren, damit bestimmte Aufgaben wie die KI, Effekte etc. gleichzeitig ablaufen. Nur so konnten wir das optimale Spielerlebnis erreichen, das <em>Crysis </em>auszeichnet.</p>
<p><span style="color: #000080;"><em>Welche Tipps würden Sie Entwicklern geben, wenn diese parallelen Programmcode schreiben wollen?</em></span><br />
<strong>Atkinson:</strong> Die Hauptregel lautet: Erstelle fehlerfreien Sourcecode vom ersten Moment an. Denn parallel programmierte Anwendungen und Spiele lassen sich nur sehr aufwändig testen und debuggen. Daher sollte man von Anfang an darauf achten, dass sich erst gar keine Fehler in den Code einschleichen. Wir setzen hierfür erprobte <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/">Methoden</a>, <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> und Hilfesysteme ein, die uns dabei unterstützen. Außerdem sorgen wir dafür, dass unsere Software-Entwickler bestens in Sachen Paralellprogrammierung <a title="Ausbildungslücken bei der Multicore-Programmierung" href="http://www.software-dev-blog.de/ausbildungslucken-bei-der-multicore-programmierung/12/2008/">ausgebildet</a> sind. Denn nichts erfordert mehr Know-how als der Umstieg von der sequenziellen auf die parallele Programmierung.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/lernen-mit-crytek-deshalb-ist-crysis-erfolgreich/01/2009/&via=sw_devtwits&text=Lernen mit Crytek: Deshalb ist Crysis erfolgreich&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/lernen-mit-crytek-deshalb-ist-crysis-erfolgreich/01/2009/&via=sw_devtwits&text=Lernen mit Crytek: Deshalb ist Crysis erfolgreich&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/lernen-mit-crytek-deshalb-ist-crysis-erfolgreich/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>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>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>Apple-Software mit Intel-Tools optimieren</title>
		<link>http://www.software-dev-blog.de/apple-software-mit-intel-tools-optimieren/11/2008/</link>
		<comments>http://www.software-dev-blog.de/apple-software-mit-intel-tools-optimieren/11/2008/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 12:19:58 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Symbiose]]></category>
		<category><![CDATA[TBB]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=146</guid>
		<description><![CDATA[Seit dem Prozessor-Switch seitens Apple von IBM- auf Intel-CPUs Anfang 2006 ist Stück für Stück eine kleine, aber sehr exquisite Entwicklergemeinde in den Fokus von Intel gerückt: Mac-Programmierer, die mithilfe von Xcode und Cocoa neue Anwendungen erschaffen. Mit dabei sind natürlich auch Intel-Tools, die diesen Software-Entwicklern dabei helfen sollen, ihre Programme bestmöglich auf die Intel-Plattform [...]]]></description>
			<content:encoded><![CDATA[<p>Seit dem <a title="Apple kündigt den erste iMac mit Intel-Prozessor an" href="http://www.apple.com/de/pr/pr-infos2006/januar/imac.html" target="_blank">Prozessor-Switch</a> seitens Apple von IBM- auf Intel-CPUs Anfang 2006 ist Stück für Stück eine kleine, aber sehr exquisite Entwicklergemeinde in den Fokus von Intel gerückt: Mac-Programmierer, die mithilfe von <a title="Mehr Infos zu den Apple-Entwicklertools" href="http://developer.apple.com/technology/" target="_blank">Xcode und Cocoa</a> neue Anwendungen erschaffen. Mit dabei sind natürlich auch <a title="Intel Software-Tools für Mac-Entwickler" href="http://www.intel.com/cd/software/products/asmo-na/eng/227389.htm" target="_blank">Intel-Tools</a>, die diesen Software-Entwicklern dabei helfen sollen, ihre Programme bestmöglich auf die Intel-Plattform abzustimmen.</p>
<p>Dazu zählt beispielsweise der <a title="Mehr Infos zum Intel C++ Compiler für den Mac" href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/cmac/index.htm" target="_blank">C++-Compiler</a>, den es in einer Professional und Standard Edition gibt. Vor allem die Profi-Variante hat es in sich: Volle Multithread-Unterstützung für paralleles Programmieren, was zum Beispiel automatisches Multithreading umfasst, aber auch Vektorisierung, <a title="Mehr Infos zu OpenMP" href="http://openmp.org/wp/" target="_blank">OpenMP</a> oder Loop Unrolling. Darüber hinaus bietet die Compiler-Suite leistungsstarke C++-Bibliotheken für noch mehr Parallelismus, mathematische Funktionen und Multimediaanwendungen.</p>
<p>Aber nicht nur den Mac-kompatiblen C++-Compiler hat Intel zu bieten, sondern auch <a title="Mehr Infos zu Intel TBB" href="http://www.intel.com/cd/software/products/asmo-na/eng/threading/threadbuildblocks/294797.htm" target="_blank">Intel Threading Building Blocks</a>, <a title="Mehr Infos zu Intel IPP" href="http://www.intel.com/cd/software/products/asmo-na/eng/perflib/ipp/index.htm" target="_blank">Intel Integrated Performance Primitives</a> und <a title="Mehr Infos zu Intel MKL" href="http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm" target="_blank">Intel Math Kernel Library</a>, die allesamt perfekt auf den Intel C++-Compiler für Mac OS X abgestimmt sind.</p>
<p><span id="more-146"></span>Das Beste daran ist jedoch die volle Integration der Intel-Tools in die Apple-eigene Entwicklerumgebung Xcode, mit der sich Mac-Programme sehr intuitiv und sehr elegant schreiben lassen. Darüber hinaus kann man sich als Entwickler sicher sein, dass die eigenen Anwendungen optimal auf Intel-basierten Apple-Rechnern laufen und das Multithread-Potenzial bestmöglich ausschöpfen.</p>
<p>Übrigens: Neben dem C++-Compiler bietet Intel auch einen <a title="Mehr Infos zum Intel Fortran Compiler" href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/fmac/index.htm" target="_blank">Fortran-Compiler</a> für die Mac-OS-X-Entwicklergemeinde. Damit diese nicht zu kurz kommt.</p>
<p>Falls Sie sich jetzt fragen, ob Sie das Ganze erst mal ausprobieren können, bevor Sie die Intel-Mac-Dev-Tools kaufen &#8211; ja, Sie können. Hierfür brauchen Sie sich lediglich für den kostenlosen Intel Premier Support <a title="Hier können Sie sich für den Intel Premier Support anmelden" href="http://support.intel.com/support/performancetools/sb/CS-017156.htm" target="_blank">anzumelden</a> und können anschließend das entsprechende Tool aus dem <a title="Link zum Intel Evaluation Center" href="http://www.intel.com/cd/software/products/asmo-na/eng/download/eval/219690.htm" target="_blank">Evaluation Center</a> auf Ihren Mac laden und dort ausgiebig testen. Kommerzielle Anwendungen lassen sich damit aber nicht erstellen!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/apple-software-mit-intel-tools-optimieren/11/2008/&via=sw_devtwits&text=Apple-Software mit Intel-Tools 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/apple-software-mit-intel-tools-optimieren/11/2008/&via=sw_devtwits&text=Apple-Software mit Intel-Tools 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/apple-software-mit-intel-tools-optimieren/11/2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multicore-Turbo für Visual Studio: Intel Parallel Studio</title>
		<link>http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/</link>
		<comments>http://www.software-dev-blog.de/multicore-turbo-fur-visual-studio-intel-parallel-studio/10/2008/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 15:46:38 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Optimieren]]></category>

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

