<?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; Liveblogging</title>
	<atom:link href="http://www.software-dev-blog.de/tag/liveblogging/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.software-dev-blog.de</link>
	<description>Multicore-Programmierung, Multithreading &#38; Visual Computing</description>
	<lastBuildDate>Thu, 09 Feb 2012 19:54:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Live-Berichterstattung von der dotnet Cologne 2011 – Teil 3</title>
		<link>http://www.software-dev-blog.de/live-berichterstattung-von-der-dotnet-cologne-2011-%e2%80%93-teil-3/05/2011/</link>
		<comments>http://www.software-dev-blog.de/live-berichterstattung-von-der-dotnet-cologne-2011-%e2%80%93-teil-3/05/2011/#comments</comments>
		<pubDate>Fri, 06 May 2011 15:11:44 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[ArBB]]></category>
		<category><![CDATA[Cilk]]></category>
		<category><![CDATA[dnc11]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[TBB]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1593</guid>
		<description><![CDATA[Und nun zu den Developer-Tools, die jeder Parallel-Programmierer kennen sollte. Zumindest deren Unterschiede, Stärken und Schwächen, denn so fällt es nicht nur leichter, sich für das richtige Werkzeug zu entscheiden, sondern auch Fehler im Code zu minimieren. Aber natürlich lassen sich die Tools im Einsatz auch kombinieren. Merken Sie sich auf jeden Fall diesen Namen: [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1594" class="wp-caption alignleft" style="width: 160px"><a href="http://www.software-dev-blog.de/wp-content/images/2011/05/bild_2.png"><img class="size-thumbnail wp-image-1594" title="Intel-Ausstellungsbereich mit Florian und Monika" src="http://www.software-dev-blog.de/wp-content/images/2011/05/bild_2-150x150.png" alt="Intel-Ausstellungsbereich mit Florian und Monika" width="150" height="150" /></a><p class="wp-caption-text">Intel-Ausstellungsbereich mit Florian und Monika</p></div>
<p>Und nun zu den Developer-Tools, die jeder Parallel-Programmierer kennen sollte. Zumindest deren Unterschiede, Stärken und Schwächen, denn so fällt es nicht nur leichter, sich für das richtige Werkzeug zu entscheiden, sondern auch Fehler im Code zu minimieren. Aber natürlich lassen sich die Tools im Einsatz auch kombinieren.</p>
<p>Merken Sie sich auf jeden Fall diesen Namen: <a href="http://software.intel.com/en-us/articles/intel-parallel-building-blocks/" target="_blank">Parallel Building Blocks</a>. Denn diese Toolsuite vereint drei der wichtigsten Werkzeuge für Parallel-Programmierer: <a href="http://software.intel.com/en-us/articles/intel-cilk-plus/" target="_blank">Cilk Plus</a>, <a href="http://software.intel.com/en-us/articles/intel-tbb/" target="_blank">Threading Building Blocks</a> (TBB) und die neuen <a href="http://software.intel.com/en-us/articles/intel-array-building-blocks/" target="_blank">Intel Array Building Blocks </a>(ArBB), die derzeit noch in der Beta-Phase sind.</p>
<p>Cilk und Intel Array Building Blocks (ArBB) werde ich hier näher vorstellen.</p>
<h4>Cilk Plus</h4>
<p>Cilk Plus ist unbestritten das einfachste Tool und auch für Einsteiger sicher gut geeignet. Streng genommen sind sich Cilk und <a title="AVX mit Visual Studio 2010 und OpenMP optimal einsetzen" href="http://www.software-dev-blog.de/avx-mit-visual-studio-2010-und-openmp-optimal-einsetzeni/01/2011/">OpenMP</a> recht ähnlich. Beide produzieren schnellen, parallelen Code ohne viel Overhead. Und beide werden von Intel Compilern unterstützt. Das gilt im Übrigen auch für OpenMP in der Version 3. Es gibt aber auch gravierende Unterschiede, die Cilk für Entwickler deutlich attraktiver machen als OpenMP.</p>
<p>Das beginnt schon bei der Bedienung. Wer sich jemals mit Cilk auseinandergesetzt hat, wird sich an das Schlüsselwörter-Prinzip erinnern. Mit den drei Kommandos <em>cilk_spawn</em>, <em>cilk_sync</em>, <em>cilk_for</em> erledigen Sie die wichtigsten Aufgaben im Code. Dabei kontrolliert die Cilk Plus Runtime die Threads und deren zeitliche Ausführung. Gerade dieser sehr zuverlässige Cilk Runtime Scheduler hebt sich wohltuend von OpenMP ab. Die Zahl der Threads im Code wird hierbei automatisch den vorhandenen Prozessorkernen angepasst. Der Entwickler kann dies aber auch korrigieren, wenn er das möchte.</p>
<p>Auch auf <a title="Know-How und Programmiertipps: Data Races" href="http://www.software-dev-blog.de/know-how-und-programmiertipps-data-races/02/2011/">Data Races</a> hat Cilk Plus eine Antwort. Natürlich lassen sich Variablen auch mit der Mutex-Methode schützen, aber Cilk Plus geht hier deutlich eleganter vor, indem es Hyperobjects nutzt. Das sorgt für eine deutliche bessere Performance.</p>
<p>Herauszuheben sind last but not least die Array Notations in Cilk Plus. Darüber freut sich der Compiler, der Vektoranweisungen viel besser verarbeiten kann als Schleifen. Weitere Infos gibt es übrigens auf der sehr guten Seite <a href="http://www.cilk.com/" target="_blank">www.cilk.com</a>.</p>
<h4>Intel Threading Building Blocks (TBB)</h4>
<p>Die <a href="http://software.intel.com/en-us/articles/intel-tbb/" target="_blank">Intel Threading Building Blocks</a> (TBB) bieten eine C++-Laufzeitbibliothek und sind als Open Source oder per Compiler verfügbar. Sie sind plattform- und sprachenunabhängig und adressieren vor allem fortgeschrittene Developer. Mit anfängertauglichen Parallelfunktionen wie „parallel_for“ statt „for“ werden die TBB aber auch zunehmend für Einsteiger interessant.</p>
<h4>Intel Array Building Blocks (ArBB)</h4>
<p>Die jüngste Sprössling der Parallel Building Blocks heißt Intel Array Building Blocks (ArBB).<br />
Vereinfacht ausgedrückt erledigen die ArBB folgenden Job für Code in C++: Sie parallelisieren und optimieren nativen Code, und zwar genau für die Hardware, für die er konzipiert wurde und geben den Code an den Compiler zurück.</p>
<p>Vorteil für den Entwickler: Er muss den Code auch für unterschiedliche Pattformen nur ein einziges Mal schreiben, kann ihn mit ArBB neu kompilieren und dann automatisch auf die Ziel-Hardware ausrichten. Wer es selber ausprobieren möchte: <a href="http://software.intel.com/en-us/forums/intel-array-building-blocks/" target="_blank">ArBB steht als Beta zum kostenlosen Download bereit</a>.</p>
<p>So, das war’s aus Köln. In der nächsten Woche werde ich wieder live berichten – dann vom <a href="http://www.software-dev-blog.de/entwickler-event-am-10-mai-in-munchen-know-how-interessante-kontakte-und-leckeres-essen-gratis/04/2011/">ISN Black Belt Event in München</a>. Schönes Wochenende!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/live-berichterstattung-von-der-dotnet-cologne-2011-%e2%80%93-teil-3/05/2011/&via=sw_devtwits&text=Live-Berichterstattung von der dotnet Cologne 2011 – Teil 3&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/live-berichterstattung-von-der-dotnet-cologne-2011-%e2%80%93-teil-3/05/2011/&via=sw_devtwits&text=Live-Berichterstattung von der dotnet Cologne 2011 – Teil 3&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/live-berichterstattung-von-der-dotnet-cologne-2011-%e2%80%93-teil-3/05/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel Software Conference 2011 (I) –  Erste Eindrücke und Ausblicke [Upd]</title>
		<link>http://www.software-dev-blog.de/intel-software-conference-2011-i-%e2%80%93-erste-eindrucke-und-ausblicke/04/2011/</link>
		<comments>http://www.software-dev-blog.de/intel-software-conference-2011-i-%e2%80%93-erste-eindrucke-und-ausblicke/04/2011/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 10:00:25 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1546</guid>
		<description><![CDATA[Vor wenigen Stunden ist die Intel Software Conference 2011 in Dubrovnik gestartet. Für die wohl wichtigste Intel-eigene, europaweite Veranstaltung für Reseller und Software-Entwickler wurde eine wunderbare Location direkt am Meer mit Blick auf die Altstadt von Dubrovnik ausgewählt. Wohl dem, der die Möglichkeit hat, hier noch ein paar Tage Urlaub dranzuhängen. Ich werde später ein [...]]]></description>
			<content:encoded><![CDATA[<p>Vor wenigen Stunden ist die <a title="Ausblick auf die Intel Software Conference 2011 in Dubrovnik" href="http://www.software-dev-blog.de/ausblick-auf-die-intel-software-conference-2011-in-dubrovnik/03/2011/">Intel Software Conference 2011</a> in Dubrovnik gestartet. Für die wohl wichtigste Intel-eigene, europaweite Veranstaltung für Reseller und Software-Entwickler wurde eine wunderbare Location direkt am Meer mit Blick auf die Altstadt von Dubrovnik ausgewählt. Wohl dem, der die Möglichkeit hat, hier noch ein paar Tage Urlaub dranzuhängen. Ich werde später ein paar Bilder einstellen, die hoffentlich die tolle Atmosphäre rund um die Konferenz rüberbringen.</p>
<p><a href="http://www.software-dev-blog.de/wp-content/images/2011/04/kaffepause_klein_winzig1.jpg"><img class="aligncenter size-full wp-image-1550" title="Kaffeepause" src="http://www.software-dev-blog.de/wp-content/images/2011/04/kaffepause_klein_winzig1.jpg" alt="Kaffeepause" width="409" height="307" /></a></p>
<p>Nun aber zum Inhalt der Konferenz: Zu Beginn hat Aaaron Coday, Intel-Experte für Visual Computing, Graphics and Gaming, einen erweiterten Überblick zu den aktuellen Prozessorgenerationen gegeben und die Vorteile für Entwickler verdeutlicht. Eine kleine &#8220;Überraschung&#8221; zu Beginn: Von <a title="Wie Entwickler von neuen Sandy-Bridge-Registern und -Ops profitieren" href="http://www.software-dev-blog.de/wie-entwickler-von-neuen-sandy-bridge-registern-und-ops-profitieren/02/2011/">„Sandy Bridge“</a> will Intel künftig nicht mehr sprechen, sondern nur noch von der offiziellen Bezeichnung „2nd Generation Intel Core Processor Family“. Das finde ich ein „bisschen“ sperrig und bleibe dann doch lieber bei der geläufigen Bezeichnung „Sandy Bridge“.</p>
<p>Sandy Bridge ist zu Beginn des Jahres mit den Zielen gestartet, energieeffizienter zu arbeiten, mehr Leistung bereitzustellen (nicht nur, aber vor allem für grafisch anspruchsvolle Anwendungen) und Multimedia-Inhalte wie Videos schneller und besser zu en- und dekodieren, indem das Preprocessing und Encoding nicht mehr software-basiert, sondern von der Hardware vorgenommen wird.</p>
<p>Aus Developer-Sicht ist in diesem Zusammenhang auch die Bedeutung des <a title="Video-Apps mit Intel Media SDK beschleunigen" href="http://www.software-dev-blog.de/video-apps-mit-intel-media-sdk-beschleunigen/02/2011/">Intel Media SDK</a> hervorzuheben. Es gibt Codeschreibern die Möglichkeit, über nunmehr nur noch eine API auf die optimierten Libraries des Intel Compilers zuzugreifen und Videos damit schneller und vor allem einfacher zu berechnen.</p>
<p>Aaron verdeutlichte, dass der SSE-Nachfolger <a href="http://www.software-dev-blog.de/sandy-bridge-schnellere-apps-dank-breiteren-avx-registern/01/2011/ ">AVX mit der doppelten Registerbreite</a> (nun 256 Bit gegenüber 128 Bit bei SSE 4.0) sowohl Spielern als auch Game-Programmierern deutlich mehr Komfort und Möglichkeiten eröffnet. So lassen sich grafisch sehr anspruchsvolle Spiele auch auf ressourcenschwachen Netbooks flüssiger abspielen, weil dank AVX die einzelnen Bilder schneller geladen und synchronisiert werden. Zu diesem Thema habe ich ja in der Vergangenheit ebenfalls <a href="http://www.software-dev-blog.de/?s=avx&amp;x=0&amp;y=0">sehr ausführlich berichtet</a>.</p>
<p>Interessant in diesem Zusammenhang: Aaron prophezeite, dass schon im übernächsten Jahr die Zahl der Single-Core-Systeme fast auf null sinken werde, hingegen werde jeder zweite, weltweit eingesetzte PC vier oder mehr Prozessor-Kerne besitzen.</p>
<p>Einen Blick in die Zukunft wagte auch James Reinders in seinem Vortrag über „Software Ecosystems“. Im kommenden Jahr werde Intel eine Reihe neuer Tools veröffentlichen, die den aktuellen und kommenden technischen Standard der Prozessortechnologie berücksichtigen und damit bereits auf <a title="Games: Cloud-basiertes Raytracing über die Intel MIC-Architektur" href="http://www.software-dev-blog.de/games-cloud-basiertes-raytracing-uber-die-intel-mic-architektur/03/2011/">Knight Ferry/Knighs Corner</a> ausgerichtet werden. Dazu gehören:</p>
<ul>
<li><a href="http://software.intel.com/en-us/articles/intel-cilk-plus/" target="_blank">Intel Cilk Plus</a> für weitere Compiler</li>
</ul>
<ul>
<li><a href="http://software.intel.com/en-us/articles/intel-array-building-blocks/" target="_blank">Intel Array Building Blocks</a></li>
</ul>
<ul>
<li><a title="Intel TBB 3.0 mit neuen Funktionen und VS2010-Support" href="http://www.software-dev-blog.de/intel-tbb-3-0-mit-neuen-funktionen-und-vs2010-support/05/2010/" target="_blank">Intel Threading Building Blocks</a> 4.0</li>
</ul>
<p>Am morgigen Mittwoch werde ich ein Video-Interview mit James Reinders führen und sicherlich noch das eine oder andere Detail zu den künftigen Tools erfahren.</p>
<p><em><strong>Update:</strong></em> Das Videointerview mit James <a title="[Videochat] James Reinders von Intel über Entwicklertools, 2012 und MeeGo" href="http://www.software-dev-blog.de/videochat-james-reinders-von-intel-uber-entwicklertools-2012-und-meego/04/2011/">steht ab sofort zum Anschauen</a> bereit.</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-2011-i-%e2%80%93-erste-eindrucke-und-ausblicke/04/2011/&via=sw_devtwits&text=Intel Software Conference 2011 (I) –  Erste Eindrücke und Ausblicke [Upd]&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-2011-i-%e2%80%93-erste-eindrucke-und-ausblicke/04/2011/&via=sw_devtwits&text=Intel Software Conference 2011 (I) –  Erste Eindrücke und Ausblicke [Upd]&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-2011-i-%e2%80%93-erste-eindrucke-und-ausblicke/04/2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TechEd09: Wie die CCR .NET-Entwicklern bei der Parallelprogrammierung hilft</title>
		<link>http://www.software-dev-blog.de/teched09-wie-die-ccr-net-entwicklern-bei-der-parallelprogrammierung-hilft/11/2009/</link>
		<comments>http://www.software-dev-blog.de/teched09-wie-die-ccr-net-entwicklern-bei-der-parallelprogrammierung-hilft/11/2009/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 13:31:29 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[teched09]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1243</guid>
		<description><![CDATA[Die erste Session, die ich hier am vierten Tag der Microsoft TechEd besucht habe, wurde von Ralf Westphal gehalten, der in gewohnt unterhaltsamer und fundierter Weise das Thema asynchrone Programmierung vorstellte. Hauptsächlich auf Basis der Concurrency Coordination Runtime (CCR), die Microsoft mit Einführung des .NET-Frameworks 3.5 implementiert hat. Für alle, die mit dem Begriff CCR nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Die erste Session, die ich hier am vierten Tag der Microsoft TechEd besucht habe, wurde von <a href="http://www.ralfw.de/default.html" target="_blank">Ralf Westphal</a> gehalten, der <a href="http://www.software-dev-blog.de/priopowerday-concurrency-coordination-runtime/04/2009/">in gewohnt unterhaltsamer und fundierter Weise</a> das Thema asynchrone Programmierung vorstellte. Hauptsächlich auf Basis der Concurrency Coordination Runtime (CCR), die Microsoft mit Einführung des .NET-Frameworks 3.5 implementiert hat. Für alle, die mit dem Begriff CCR nicht so viel anfangen können, <a href="http://msdn.microsoft.com/en-us/library/bb648752.aspx" target="_blank">gibt&#8217;s auf MSDN einen kurzen Überblick</a>.</p>
<p>Die erste interessante Aussage, die Ralf während seiner 75-Minuten-Session abgefeuert hat, war die Erkenntnis, dass Software-Entwickler sich selbst um das Parallelisieren ihrer Anwendungen kümmern müssen und dies nicht nur dem Betriebssystem oder anderen Instanzen überlassen dürfen. Ein weiterer Satz war nicht ganz überraschend und auch nicht neu, dafür umso wichtiger: &#8220;The free lunch is over!&#8221; Dieser Ausspruch stammt übrigens nicht von Ralf, sondern <a href="http://www.gotw.ca/publications/concurrency-ddj.htm" target="_blank">von Herb Sutter</a>, der das bereits 2005 formuliert hat. Die Grundaussage dahinter lautet:</p>
<blockquote><p>Künftige Prozessoren werden nicht mehr unendlich schneller, sind dafür mit immer mehr CPU-Kernen ausgestattet. Daher müssen Programmierer umdenken, um ihre Anwendungen in Zukunft zu beschleunigen.</p></blockquote>
<p><object width="520" height="292"><param name="movie" value="http://www.youtube.com/v/uoQ2vbyU8b0&#038;hl=de_DE&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/uoQ2vbyU8b0&#038;hl=de_DE&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="520" height="292"></embed></object><br />
<span id="more-1243"></span>Schenkt man Ralf Glauben (und das tue ich), steht die Parallelprogrammierung im Wesentlichen für folgende Dinge:</p>
<blockquote><p>Reduced latency, higher performance, hiding latency, higher responsivness and increased throughput.</p></blockquote>
<p>Dann folgten zwei eher rhetorische Fragen, deren Antworten man mit ein wenig Nachdenken sehr schnell selbst beantworten konnte:</p>
<blockquote><p>Does firing up as many threads as cores are available help to accelerate apps? No, because this will cause threads waiting!</p>
<p>Does firing up as many threads as needed helps to accelerate apps? No, because it doesn&#8217;t scale!</p></blockquote>
<p>Mit einem sehr schönen Vergleich leitete Ralf dann den Abschnitt &#8220;CCR&#8221; ein, indem er die digitale Kommunikation via E-Mail mit der asynchronen Programmierung verglich. Denn wie beim Verteilen von Aufgaben per Mail erfolgt das Ausführen von Tasks mithilfe der CCR genauso asynchron, indem ständig priorisiert und verteilt wird. Sehr anschaulich, oder?!</p>
<p>Dazu passen auch folgende Aussagen:<span><a id="status_star_5645710433" title="favorite this tweet"> </a></span></p>
<blockquote>
<div><span>Concurrency Coordination Runtime (CCR) helps to let data flow around and make thus asynchronous apps possible.</span></div>
<div></div>
<div>Parallel Computing is all about cooperative multitasking where you have to think about small processes and steps.</div>
</blockquote>
<p id="status_5645647581">Anschließend folgte die sehr anschauliche Demo, die den Einsatz der CCR in Form eines Programmierbeispiels zeigte. Dies hier wiederzugeben, wäre ein wenig zu umfangreich und auch kaum hilfreich. Allerdings stellt Microsoft angeblich sämtliche Sessions als Webcast online. Sobald Ralfs verfügbar ist, werde ich sie hier verlinken.</p>
<p>Natürlich haben wir Ralf nicht gehen lassen, ohne ihm drei Fragen zu stellen, die mit seinen Vorträgen auf der TechEd zu tun haben, mit der CCR und einer ganz exklusiven Geschichte, die er am Ende seiner Session zum ersten Mal in der Öffentlichkeit vorgestellt hat. Sobald das Videointerview online ist, werden ich es hier reinstellen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/teched09-wie-die-ccr-net-entwicklern-bei-der-parallelprogrammierung-hilft/11/2009/&via=sw_devtwits&text=TechEd09: Wie die CCR .NET-Entwicklern bei der Parallelprogrammierung hilft&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/teched09-wie-die-ccr-net-entwicklern-bei-der-parallelprogrammierung-hilft/11/2009/&via=sw_devtwits&text=TechEd09: Wie die CCR .NET-Entwicklern bei der Parallelprogrammierung hilft&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/teched09-wie-die-ccr-net-entwicklern-bei-der-parallelprogrammierung-hilft/11/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Videochat: Die Zukunft der Parallelprogrammierung</title>
		<link>http://www.software-dev-blog.de/videochat-die-zukunft-der-parallelprogrammierung/11/2009/</link>
		<comments>http://www.software-dev-blog.de/videochat-die-zukunft-der-parallelprogrammierung/11/2009/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 13:53:47 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1240</guid>
		<description><![CDATA[Jetzt weiß ich zumindest, was eine &#8220;Birds of a feather&#8221;-Session ist: Viele interessierte Menschen kommen in einem mittelgroßen Raum zusammen, hören einem gut informierten Spezialisten bei seinen Ausführungen zu und mittendrin entsteht eine lebhafte Diskussion, die viele neue (aber auch bekannte) Erkenntnisse bringt. So geschehen heute Mittag am dritten Tag der Microsoft TechEd Europe 2009, [...]]]></description>
			<content:encoded><![CDATA[<p>Jetzt weiß ich zumindest, was eine &#8220;Birds of a feather&#8221;-Session ist: Viele interessierte Menschen kommen in einem mittelgroßen Raum zusammen, hören einem gut informierten Spezialisten bei seinen Ausführungen zu und mittendrin entsteht eine lebhafte Diskussion, die viele neue (aber auch bekannte) Erkenntnisse bringt. So geschehen heute Mittag am dritten Tag der <a href="http://www.software-dev-blog.de/teched09-erste-videoeindrucke-aus-berlin/11/2009/">Microsoft TechEd Europe 2009</a>, wo ich der Techsession von Tiberiu Covaci beiwohnte, auf der er eine Menge zum Thema<a href="http://www.software-dev-blog.de/isc09-die-zukunft-der-parallelen-programmierung/04/2009/"> &#8220;Zukunft der Parallelprogrammierung&#8221;</a> beizutragen hatte.</p>
<p>Sein Vortrag hatte allerdings eher den Charakter eines technischen Workshops, indem er selbst zunächst eine Menge zum Thema Intel, Microsoft und Multicore-Shift inklusive .NET 4 und Visual Studio 2010 erzählt hat. Auszüge gefällig?</p>
<blockquote><p>TPL of .NET 4 delivers the right number of threads regarding the available number of cores/threads.</p></blockquote>
<blockquote><p>Needs around 200.000 instruction cycles to create a thread and 100.000 for releasing it again. As a developer you have take this into account!</p></blockquote>
<blockquote><p>TPL delivers several parallel classes like Parallel.For() and Parallel.Invoke which abstracts threads to tasks.</p></blockquote>
<blockquote><p>Visual Studio 2010 will deliver the appropriate debugger tools for parallelized applications.</p></blockquote>
<p>Was seiner Techsession allerdings ein wenig fehlte war der Blick in seine Glaskugel, die uns Anwesenden etwas über die Zukunft der Parallelprogrammierung hätte erzählen können. Zumindest war ich genau aus diesem Grund in seinem Vortrag. Das ließ sich allerdings ganz schnell nachholen, indem wir unsere Videokamera aufgebaut und Tiberiu drei schlaue Fragen gestellt haben. Die erste handelt vom Inhalt seiner Präsentation, Nummer zwei beschäftigt sich mit seiner Podiumsdiskussion vom Montag und mit der Beantwortung von Frage drei ließ er uns in die Zukunft der Parallelprogrammierung blicken.</p>
<p>Nur so viel dazu: Laut Tiberiu müssen sich Software-Entwickler ab sofort mit Multithreading und Co. auseinander setzen, denn der Multicore-Shift hat schon längst begonnen. Und den Rest schaut ihr euch am besten selbst an, sobald unser Videointerview fertig und online ist.</p>
<p><strong>Update:</strong> Das Video ist fertig!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="292" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/b-2GA2SJbdE&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="520" height="292" src="http://www.youtube.com/v/b-2GA2SJbdE&amp;hl=de&amp;fs=1&amp;" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/videochat-die-zukunft-der-parallelprogrammierung/11/2009/&via=sw_devtwits&text=Videochat: Die Zukunft der Parallelprogrammierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/videochat-die-zukunft-der-parallelprogrammierung/11/2009/&via=sw_devtwits&text=Videochat: Die Zukunft der Parallelprogrammierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/videochat-die-zukunft-der-parallelprogrammierung/11/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Videochat: Wie .NET-Entwickler von Multithreading profitieren</title>
		<link>http://www.software-dev-blog.de/videochat-wie-net-entwickler-von-multihreading-profitieren/11/2009/</link>
		<comments>http://www.software-dev-blog.de/videochat-wie-net-entwickler-von-multihreading-profitieren/11/2009/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 10:54:33 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[teched09]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1238</guid>
		<description><![CDATA[Der dritte Tag der Microsoft TechEd Europe 2009 begann mit der sehr anschaulichen und technisch höchst anspruchsvollen Techsession von Rami Radi, der bei Intel als Software-Ingenieur arbeitet und anderen Entwicklern hilft, ihre Anwendungen multicore-tauglich zu machen. Zunächst einmal muss festgehalten werden, dass die Session genauso gut besucht war wie die gestrige von Steve Teixeira. Darüber [...]]]></description>
			<content:encoded><![CDATA[<p>Der dritte Tag der <a href="http://www.software-dev-blog.de/teched09-erste-videoeindrucke-aus-berlin/11/2009/" target="_self">Microsoft TechEd Europe 2009</a> begann mit der sehr anschaulichen und technisch höchst anspruchsvollen Techsession von Rami Radi, der bei Intel als Software-Ingenieur arbeitet und anderen Entwicklern hilft, ihre Anwendungen multicore-tauglich zu machen.</p>
<p>Zunächst einmal muss festgehalten werden, dass die Session genauso gut besucht war wie die gestrige <a href="http://www.software-dev-blog.de/videochat-mit-steve-teixeira-uber-parallelprogrammierung/11/2009/">von Steve Teixeira</a>. Darüber hinaus wurde schnell klar, dass die meisten Anwesenden weder wussten, dass Intel noch etwas anderes produziert als Mikroprozessoren, noch die Intel-Tools wie <a href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a> kannten (was angesichts des &#8220;weder&#8221; keine Überrraschung war).</p>
<p>Ramis Präsentation befasste sich mit drei Kerngebieten: Intels aktuelle und zukünftige Mikroprozessor-Architekturen, .NET-4-Verbesserungen in Sachen Multithreading und wie Intel-Tools wie der besagte VTune Performance Analyzer Software-Entwicklern helfen können, ihre Apps auf Korrekheit hin zu überprüfen. Zu diesem Behufe sagte Rami einige bemerkenswerte Dinge:</p>
<blockquote><p>Moore&#8217;s law doesn&#8217;t help software developers anymore as frequencies aren&#8217;t going up anymore. The good news: the number of core does!</p></blockquote>
<blockquote><p>With Nehalem you get Non Uniform Memory Acess (NUMA) which connects every CPU and memory to each other which has huge advantages.</p></blockquote>
<blockquote><p>Come to Intel booth in hall 4.2 to see one of the first desktop PCs which is able to run 128 threads in parallel!</p></blockquote>
<blockquote><p>Multithreading is not equal parallelism!</p></blockquote>
<blockquote><p>Poor scaling .NET applications can be powered up with the help of Intel VTune Performance Analyzer and Visual Studio 2010 / .NET 4</p></blockquote>
<blockquote><p>.NET 4 provides the Background Garbage Collection which speeds up managed code significantly.</p></blockquote>
<blockquote><p>Worker stealing within .NET 4 will help to achieve better multithreaded balanced managed applications.</p></blockquote>
<blockquote><p>VTune profiles and samples .NET applications in order to find critical code sections where a lot of computing time is being wasted</p></blockquote>
<blockquote><p>Vtune also helps identifying false sharing problems. Means VTune will detect and solve cache line misses.</p></blockquote>
<blockquote><p>To eliminate  false sharing problems helps to speed up your .NET apps on 8 core system by 70x!</p></blockquote>
<p><span id="more-1238"></span>Sehr anschaulich und beeindruckend war auch die Maze-Solving-Demo, die Rami dabei hatte. Ziel solch eines Maze Solvers ist das Aufspüren des optimalen Pfades innerhalb einer zweidimensionalen Umgebung, wie dies beispielsweise in Logistikanwendungen häufig notwendig ist. Um die Leistungsfähigkeit von .NET 4 und Multithreading zu demonstrieren, startete Rami die Demo zunächst unter .NET 3.5 im seriellen Modus. Das Problem wurde unter .NET 3.5 in 14 Sekunden gelöst, unter .NET 4 hingegen in 12, und das nur wegen der architekturellen Verbesserungen im .NET-4-Framework. Und klar, dass die Multithreading-Variante in .NET 4 das Problem blitzschnell in wenigen Sekunden löste.</p>
<p>Spannend fand ich auch seine Ausführungen bezüglich VTune und .NET. Denn dieses Tool wird vorwiegend zur Fehlersuche in nativ programmierten Anwendungen eingesetzt. Umso überraschender war die Erkenntnis, dass VTune auch .NET-Entwicklern bei ihrer Arbeit helfen kann. Hierzu erstellt VTune ein Profil der laufenden Anwendung und generiert dabei eine große Zahl an Samples, die dann kumuliert und gewichtet werden. Das Ergebnis zeigt auf einen Blick, wo sich mögliche Hotspots innerhalb des Codes befinden.</p>
<p>Natürlich hatten wir während Ramis Präsentation die Kamera aufgebaut und diese bis zum Schluss mitlaufen lassen. Klar ist aber auch, dass wir daraus keinen 75-Minüter bauen. Tom schneidet gerade die besten Szenen zusammen, mischt diese mit dem Interview, das wir mit Rami nach seinem Vortrag geführt haben, und wenn das Video fertig auf Youtube steht, werden wir es hier veröffentlichen. Freut euch schon mal auf sehr anschaulichen Content.</p>
<p>Update: Das Video ist fertig!<br />
<object width="520" height="292"><param name="movie" value="http://www.youtube.com/v/QS92kZGy958&#038;hl=de_DE&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/QS92kZGy958&#038;hl=de_DE&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="520" height="292"></embed></object></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/videochat-wie-net-entwickler-von-multihreading-profitieren/11/2009/&via=sw_devtwits&text=Videochat: Wie .NET-Entwickler von Multithreading 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/videochat-wie-net-entwickler-von-multihreading-profitieren/11/2009/&via=sw_devtwits&text=Videochat: Wie .NET-Entwickler von Multithreading 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/videochat-wie-net-entwickler-von-multihreading-profitieren/11/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Intel-Session &#8220;Parallel Studio&#8221; und eine Netbook-Verlosung</title>
		<link>http://www.software-dev-blog.de/intel-session-parallel-studio-und-eine-netbook-verlosung/11/2009/</link>
		<comments>http://www.software-dev-blog.de/intel-session-parallel-studio-und-eine-netbook-verlosung/11/2009/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 16:20:20 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[teched09]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1235</guid>
		<description><![CDATA[Um 16:30 Uhr betrat Ralph de Wargny die Bühne des Visual Studio Partner-Theaters, um ein wenig über Intel Parallel Studio zu erzählen und um ein Netbook zu verlosen, für das gestern und heute eine Menge Leute Frageb beantwortet haben. Ralphs Präsentation gibt es wie gewohnt als Twitter-Stream-Auszug: Intel Parallel Studio = Amplifier + Inspector + [...]]]></description>
			<content:encoded><![CDATA[<p>Um 16:30 Uhr betrat Ralph de Wargny die Bühne des Visual Studio Partner-Theaters, um ein wenig über Intel Parallel Studio zu erzählen und um ein Netbook zu verlosen, für das gestern und heute eine Menge Leute Frageb beantwortet haben. Ralphs Präsentation gibt es wie gewohnt als Twitter-Stream-Auszug:</p>
<blockquote><p>Intel Parallel Studio = Amplifier + Inspector + Composer + Advisor = Multicore optimization</p></blockquote>
<blockquote><p>Parallel Advisor helps you to parallelize your native code. But from 2010 onwards only.</p></blockquote>
<blockquote><p>With Parallel Inspector you find memory errors before they happen. Works on serial AND threaded code.</p></blockquote>
<blockquote><p>Intel Parallel Amplifier is a child of VTune Performance Analyzer, but easier and more intuitively to use. Profile you parallel code.</p></blockquote>
<blockquote><p>On <a href="http://wwwintel.com/go/parallel"><span style="text-decoration: underline;"><span style="color: #0000ff;">http://wwwintel.com/go/para&#8230;</span></span></a> you&#8217;ll find more information about Parallel Studio and more.</p></blockquote>
<p>Nach der Parallel-Studio-Session gab es das dann das lang ersehnte Netbook, ein Sony Vaio. Sehr schickes Teil. Der Durchgang zwischen Theater und Intel-Stand war entsprechend für eine kurze Zeitspanne komplett verstopft. Kein Wunder: Netbooks sind gerade der große Renner.</p>
<p>Für alle, die nicht dabei sein konnten, haben wir Ralphs Vortrag und die Netbook-Verlosung mit unserer JVC-Kamera auf SD-Karte gespeichert. Sobald Tom die besten Bilder zusammengeschnitten hat, geht das Video hier online.</p>
<p><strong>Update:</strong> Hier ist das Video. Viel Spaß damit!</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="292" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/etDSIkAWkm0&amp;hl=de_DE&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="520" height="292" src="http://www.youtube.com/v/etDSIkAWkm0&amp;hl=de_DE&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/intel-session-parallel-studio-und-eine-netbook-verlosung/11/2009/&via=sw_devtwits&text=Intel-Session "Parallel Studio" und eine Netbook-Verlosung&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-session-parallel-studio-und-eine-netbook-verlosung/11/2009/&via=sw_devtwits&text=Intel-Session "Parallel Studio" und eine Netbook-Verlosung&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-session-parallel-studio-und-eine-netbook-verlosung/11/2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Videochat mit Steve Teixeira über Parallelprogrammierung</title>
		<link>http://www.software-dev-blog.de/videochat-mit-steve-teixeira-uber-parallelprogrammierung/11/2009/</link>
		<comments>http://www.software-dev-blog.de/videochat-mit-steve-teixeira-uber-parallelprogrammierung/11/2009/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 08:10:08 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[teched09]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1233</guid>
		<description><![CDATA[Steve Teixeira von Microsoft ist ein gern gesehener Gast auf den großen Konferenzen dieser Welt. Wenn es sich zudem um die Hauskonferenz handelt, ist es nicht wirklich überraschend, dass er hier mehrfach über sein Lieblingsthema spricht, nämlich über die parallele Programmierung. So wie heute morgen um 9:00 Uhr in der Früh, was aber die anwesenden [...]]]></description>
			<content:encoded><![CDATA[<p>Steve Teixeira von Microsoft ist ein gern gesehener Gast auf den großen Konferenzen dieser Welt. Wenn es sich zudem um die Hauskonferenz handelt, ist es nicht wirklich überraschend, dass er hier mehrfach über sein <a href="http://www.software-dev-blog.de/teched09-erste-videoeindrucke-aus-berlin/11/2009/">Lieblingsthema </a>spricht, nämlich über die parallele Programmierung.</p>
<p>So wie heute morgen um 9:00 Uhr in der Früh, was aber die anwesenden Software-Entwickler nicht davon abgehalten hat, den Raum bis auf den letzten Platz zu füllen. Das zeigt zweierlei: Erstens hat das Thema Multithreading viele Leute schon erreicht, und zweitens besteht offensichtlich noch eine Menge an Informationsbedarf. Und da ist Steve genau der richtige, um vorhandene Wissenslücken zu füllen.</p>
<p>Für alle, die es nicht mitbekommen haben: Ich saß in der Session und habe mir die Seele aus dem Leib <a href="http://twitter.com/mhuelskoetter" target="_blank">getwittert</a>. Ein paar Kostproben gefällig?</p>
<blockquote><p>First demo: LINQ versus PLINQ. Guess who is faster? Got it?! Yes, PLINQ is 3.3x faster.</p></blockquote>
<blockquote><p>The only difference between LINQ &amp; PLINQ is a little &#8220;AsParallel()&#8221;. Very easy, very intuitive!</p></blockquote>
<blockquote><p>ParallelEnumarable() fits perfectly for parallel computing with huge data. Think of financial applications, e.g.</p></blockquote>
<blockquote><p>There&#8217;s one important advice by Steve: Don&#8217;t use threads but tasks. .NET 4 is supporting with Parallel.Invoke() e.g.</p></blockquote>
<blockquote><p>With .NET 4 you can delay tasks in order to run them later as soon you need them.</p></blockquote>
<p>Diese und andere Aussagen ergaben ein klares Bild: .NET 4 soll und wird die Parallelprogrammierung verbessern, und das mit einem klaren Konzept, mit Tasks statt Threads und den passenden Tools wie einem Debugger, der viele Informationen über die laufenden Threads und Tasks liefert.</p>
<p>Direkt nach der Session konnten wir übrigens Steve Teixeira dazu überreden, uns vor der Kamera ein paar Fragen zu beantworten. Kollege Papadhimas ist gerade am Schnitt dran. Sobald das Video fertig und auf Youtube gestellt ist, kommt hier der Embedcode rein. Damit ihr auch etwas davon habt.</p>
<p>Update: Das Video ist fertig geschnitten, gerendert und auf Youtube. Und hier. So, Film ab.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="295" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/cWSAg7yls_0&amp;hl=de&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="295" src="http://www.youtube.com/v/cWSAg7yls_0&amp;hl=de&amp;fs=1" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/videochat-mit-steve-teixeira-uber-parallelprogrammierung/11/2009/&via=sw_devtwits&text=Videochat mit Steve Teixeira über Parallelprogrammierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/videochat-mit-steve-teixeira-uber-parallelprogrammierung/11/2009/&via=sw_devtwits&text=Videochat mit Steve Teixeira über Parallelprogrammierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/videochat-mit-steve-teixeira-uber-parallelprogrammierung/11/2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TechEd09: Erste Videoeindrücke aus Berlin</title>
		<link>http://www.software-dev-blog.de/teched09-erste-videoeindrucke-aus-berlin/11/2009/</link>
		<comments>http://www.software-dev-blog.de/teched09-erste-videoeindrucke-aus-berlin/11/2009/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 16:11:47 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Preview]]></category>
		<category><![CDATA[teched09]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1228</guid>
		<description><![CDATA[Wir sind also in Berlin, auf der Microsoft TechEd Europe 2009. Das sollte sich ja allmählich herumgesprochen haben. Damit ihr es auch wirklich glaubt, ist Tom heute erst mal allein mit seiner Kamera losgezogen, um erste Eindrücke einzufangen. Und ab morgen bin ich dann mit dabei, um ein paar Videointerviews und -demos zu drehen. Mit [...]]]></description>
			<content:encoded><![CDATA[<p>Wir sind also in Berlin, auf der Microsoft TechEd Europe 2009. Das sollte sich ja allmählich herumgesprochen haben. Damit ihr es auch wirklich glaubt, ist Tom heute erst mal allein mit seiner Kamera losgezogen, um erste Eindrücke einzufangen. Und ab morgen bin ich dann mit dabei, um ein paar Videointerviews und -demos zu drehen. Mit auf der Liste stehen:</p>
<ul>
<li>Steve Teixeira wird morgen früh (Di, 9:00) etwas zu &#8220;Parallel Computing for Managed Developers&#8221; erzählen. Hoffentlich bekommen wir Steve hinterher für ein Interview vor die Kamera.</li>
<li>Um 15:15 Uhr geht es dann um das Thema HPC und Virtualisierung. Auch hier planen wir ein anschließendes Videointerview.</li>
<li>Intel-Kollege Rami, der am Mittwoch seine Techsession hat, wird uns in seiner Demo zeigen, wie Managed Code mithilfe von VTune optimiert werden kann.</li>
<li>Natürlich werden wir auch Bilder von der Parallel-Studio-Session inklusive Netbook-Verlosung zeigen.</li>
<li>Am Mittwoch hat dann Rami seine besagte Techsession. Hinterher stellen wir im ein paar schlaue Fragen.</li>
<li>Um 10:15 Uhr geht es direkt weiter mit F# und dessen parallelen Fähigkeiten. Hinterher gibt&#8217;s hoffentlich ein Videochat mit Donald Syme.</li>
<li>Tiberiu Covaci hält um 12:20 Uhr seinen Vortrag mit dem Titel &#8220;The Future of Parallel Programming&#8221;. Anschließend werden wir Tiberiu zu seinen diversen Techsessions befragen. Auch zu denen, die wir heute Morgen leider nicht besuchen konnten.</li>
<li>Und falls ihr nochmals die 15-Minuten-Präsentation samt Netbook-Verlosung sehen wollt: Am Mittwoch ist wieder Gelegenheit dazu.</li>
<li>Der Donnerstag beginnt mit einer Parallelsession mit dem Titel &#8220;Going Parallel for a Living: Introduction to the Concurrency Coordination Runtime&#8221; des lieben Kollegen Ralf Westphal. Mal sehen, ob er uns auch vor der Kamera etwas erzählt.</li>
<li>Um 15:15 Uhr ist Steve Teixeira noch mal dran, und zwar mit seiner Session &#8220;Building High Performance Parallel Software&#8221;. Ob Steve sich zweimal von uns interviewen lässt?</li>
<li>Natürlich gibt es auch am Donnerstag die fast schon lieb gewonnene 15-Minuten-Session inklusive Netbook-Vergabe. Aber diesmal schenken wir uns das vielleicht. Wir wollen ja niemanden langweilen.</li>
<li>Und klar, dass die Intel-Kollegin Beatrice noch zu Wort kommt. Sie will nämlich unbedingt etwas zum Intel Atom Developer Program erzählen.</li>
</ul>
<p>So, und nach so vielen Programmankündigungen kommen jetzt endlich die Impressionen aus Berlin. Film ab!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="293" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/q1wPot5Zyq0&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="520" height="293" src="http://www.youtube.com/v/q1wPot5Zyq0&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/teched09-erste-videoeindrucke-aus-berlin/11/2009/&via=sw_devtwits&text=TechEd09: Erste Videoeindrücke aus Berlin&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/teched09-erste-videoeindrucke-aus-berlin/11/2009/&via=sw_devtwits&text=TechEd09: Erste Videoeindrücke aus Berlin&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/teched09-erste-videoeindrucke-aus-berlin/11/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TechEd09: Die Show kann beginnen</title>
		<link>http://www.software-dev-blog.de/teched09-die-show-kann-beginnen/11/2009/</link>
		<comments>http://www.software-dev-blog.de/teched09-die-show-kann-beginnen/11/2009/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 12:17:41 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Preview]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1227</guid>
		<description><![CDATA[So, die ersten zwei Stunden der Microsoft TechEd Europe 2009 sind vorüber, und alles läuft schon ganz prima. Der Intel-Stand ist fertig, die Twitterwall läuft und in einer halben Stunde haben wir auch einen schönen, großen Flatscreen, auf dem wir unser Livebloggen und Twittern auf 46 Zoll zeigen können. Tom ist auch schon mit seiner [...]]]></description>
			<content:encoded><![CDATA[<p>So, die ersten zwei Stunden der Microsoft TechEd Europe 2009 sind vorüber, und alles läuft schon ganz prima. Der Intel-Stand ist fertig, die Twitterwall läuft und in einer halben Stunde haben wir auch einen schönen, großen Flatscreen, auf dem wir unser Livebloggen und Twittern auf 46 Zoll zeigen können. Tom ist auch schon mit seiner Kamera unterwegs und fängt für euch die ersten Impressionen der Microsoft TechEd Europe 2009 ein. <a href="http://www.software-dev-blog.de/tech-ed08-erste-videoeindrucke-und-freibier/11/2008/">Ganz im gewohnten Stil</a>.</p>
<p>Bevor ich es ganz vergesse, folgen hier noch ein paar organisatorische Dinge: Der Intel-Stand, an dem ihr mich und die Kollegen treffen könnt, befindet sich in Halle 4.2 und liegt von der Halle 7 kommend direkt am Eingang. Das ist die so genannten <strong>Visual Studio Partner Zone</strong>. Dort gibt es unter anderem eine Menge nützliche und erhellende Infos rund um das neue <a href="http://www.software-dev-blog.de/wer-braucht-alles-den-intel-appstore/10/2009/">Intel Atom Developer Program</a>, das Software-Entwicklern dabei helfen soll, windows- und moblin-basierte Anwendungen speziell für Netbooks zu entwickeln und diese zu einem späteren Zeitpunkt auf Netbooks zu bringen. Falls ihr euch für dieses Programm direkt am Stand registriert, gibt&#8217;s auch eine kleine Überraschung.</p>
<p>Darüber hinaus findet ihr eine Menge Infos rund um unser liebstes Baby, das auf den schönen Namen <a href="http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/">Intel Parallel Studio</a> hört und in rund zwei Wochen sein Halbjähriges feiert. Falls ihr also C-/C++-Programmierer seid, Visual Studio einsetzt und eure Anwendungen threadsicher parallelisieren wollt oder einfach nur gucken wollt, ob sich besonders fiese Bugs eingeschlichen haben, die sich möglicherweise erst zur Laufzeit zeigen, ist Parallel Studio genau das richtige Tool für euch. Hier könnt ihr sogar eine Test-CD abgreifen, um euch mit Parallel Studio vertraut zu machen.</p>
<p>Und falls ihr ein neues Netbook wollt, solltet ihr ebenfalls am Stand V1/V2 vorbeikommen. Beantwortet ein paar Fragen, tragt eure Daten ein und schwups, ab mit der Karte in die zugehörige Losbox. Und schon gewinnt ihr vielleicht eins der schicken Teile. Die erste Verlosung ist allerdings erst morgen Nachmittag, die ausgefüllten Karten werden aber auch schon heute akzeptiert.</p>
<p>So, dann mach ich mich wieder auf den Weg zum Stand. Um den Monitor zu installieren, der gerade gekommen ist. Damit ihr auch besser sehen könnt, was ich twittere und blogge. Man sieht sich!</p>
<p><strong>Ach ja:</strong> Auf der anderen Seite der Halle hat Intel noch einen Stand, auf dem es rund um das Thema Datacenter geht. Also alles über Servertechniken, Virtualisierung und Co. Und dort gibt es ebenfalls etwas zu gewinnen, nämlich schicke, ultradünne Notebooks. Ihr seht, ein Besuch der Halle 4.2 lohnt sich auf jeden Fall.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/teched09-die-show-kann-beginnen/11/2009/&via=sw_devtwits&text=TechEd09: Die Show kann beginnen&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/teched09-die-show-kann-beginnen/11/2009/&via=sw_devtwits&text=TechEd09: Die Show kann beginnen&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/teched09-die-show-kann-beginnen/11/2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IDF09: Parallel Computing mit .NET 4 und Visual Studio 2010</title>
		<link>http://www.software-dev-blog.de/idf09-parallel-computing-mit-net-4-und-visual-studio-2010/09/2009/</link>
		<comments>http://www.software-dev-blog.de/idf09-parallel-computing-mit-net-4-und-visual-studio-2010/09/2009/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 20:23:05 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[IDF09]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1175</guid>
		<description><![CDATA[Ich sitze hier in der Microsoft Techsession, die von Steve Teixeira gehalten wird. Steve spricht über Parallelprogrammierung unter .NET 4 und Visual Studio 2010. Ich kann natürlich nicht den gesamten Vortrag wiedergeben, daher konzentriere mich auf seine wesentlichen Aussagen: Multithreaded programming is &#8220;hard&#8221; today Das bedeutet für Microsoft (und Intel), Software-Entwicklern dabei zu helfen. Hierzu [...]]]></description>
			<content:encoded><![CDATA[<p>Ich sitze hier in der Microsoft Techsession, die von <a title="Videochat mit Steve Teixeira, Microsoft-Parallel-Guru über Visual Studio 2010 und .NET 4" href="http://www.software-dev-blog.de/videochat-mit-steve-teixeira-microsoft-parallel-guru/11/2008/">Steve Teixeira</a> gehalten wird. Steve spricht über Parallelprogrammierung unter .NET 4 und Visual Studio 2010. Ich kann natürlich nicht den gesamten Vortrag wiedergeben, daher konzentriere mich auf seine wesentlichen Aussagen:</p>
<blockquote><p>Multithreaded programming is &#8220;hard&#8221; today</p></blockquote>
<p>Das bedeutet für Microsoft (und Intel), Software-Entwicklern dabei zu helfen. Hierzu bieten beide (Intel und Microsoft) <a title="Erfolgsgeschichten in Sachen Intel-Softwaretools" href="http://www.software-dev-blog.de/erfolgsgeschichten-in-sachen-intel-softwaretools/05/2009/">passende Tools</a>, die Programmierer  unterstützen. Dazu gehören laut Steve aber auch Programmiersprachen und Plattformen.</p>
<p>Ein kleines Schleifenbeispiel führt Steve vor, das zeigen soll, wie sich seriell programmierter Quellcode parallelisieren lässt &#8211; inklusive potenzieller Probleme.</p>
<p>Als Lösung für das Sortierproblem eignet sich laut Steve LINQ, das Teil von .NET 3.5 ist. Weitergesponnen bietet die parallele Version von LINQ = PLINQ eine viel bessere Lösung für Sortieralgorithmen &#8211; und mehr!</p>
<p><span id="more-1175"></span>Die nächste Folie &#8211; und Steve hat eine Menge davon &#8211; zeigt den Aufbau von Visual Studio 2010. Dazu gehören Tools wie Parallel Debugger und Profiler Concurrency Analysis, Programmierungsmodelle wie PLIN!, Task Parallel Library (TPL) und mehr.</p>
<p>Ein paar Daten zu TPL: Es handelt sich dabei um eine parallel API mit speziellen Konstrukten wie parallel_for, parallel_invoke, critical_section (Synchronisation), task_group (Tasks), combinable&lt;T&gt; (Container) etc.</p>
<p>Jetzt folgt ein Beispiel für die anwesenden C++-Programmierer: Es zeigt eine Matrizenberechnung, genauer gesagt eine vektorbasierte Addition. Zuerst geht es um die serielle Implementierung der Rechenaufgabe, dann um die parallele mithilfe einer Lambda-Funktion und der parallel_for aus der TPL. Dabei muss man sich ernsthafte Gedanken um Race Conditions machen. Die Lösung des Problems: Es gibt mehrere Instanzen des Rückgabewerts, die am Ende addiert werden.</p>
<p>Die <strong>Asynchronous Agents Library</strong> eignet sich vor allem für das asynchrone Ausführung paralleler Quellcode-Abschnitte. Damit lassen sich parallel ablaufende Programminstanzen generieren, die nichts voneinander wissen, die damit nicht synchronisiert oder gelockt werden müssen. Das erlaubt eine sichere Implementierung der parallelisierten Anwendung.</p>
<p>Der Concurrency Runtime Scheduler ist ein Dieb: Tasks werden auf die Worker Threads verteilt und parallel ausgeführt. Sobald einer der Worker Threads nichts zu tun hat, &#8220;stiehlt&#8221; er eine laufende Aufgabe eines anderen Worker Threads, was zu einer besseren Auslastung der vorhandenen Prozessorkerne führt.</p>
<p>Jetzt ist das Aufspüren möglicher Fehler an der Reihe, die sich beim Parallelisieren von Anwendungen ergeben können. Das Beispiel, das Steve hierfür verwendet, ist eine Matrizenmultiplikation. Also nichts Spektakuläres. Hierfür steht in Visual Studio 2010 eine Art <a title="Vergleich: Intel Thread Checker versus Parallel Inspector" href="http://www.software-dev-blog.de/vergleich-intel-thread-checker-versus-parallel-inspector/07/2009/">Thread Checker</a> parat, der eine Anwendung analysiert und das Ergebnis grafisch aufbereitet. Dazu gehört die CPU-, Core- und Threads-Auslastung.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/idf09-parallel-computing-mit-net-4-und-visual-studio-2010/09/2009/&via=sw_devtwits&text=IDF09: Parallel Computing mit .NET 4 und Visual Studio 2010&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/idf09-parallel-computing-mit-net-4-und-visual-studio-2010/09/2009/&via=sw_devtwits&text=IDF09: Parallel Computing mit .NET 4 und Visual Studio 2010&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/idf09-parallel-computing-mit-net-4-und-visual-studio-2010/09/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IDF09: Techsession &#8220;Software-Tools für skalierende Apps&#8221;</title>
		<link>http://www.software-dev-blog.de/idf09-techsession-software-tools-fur-skalierende-apps/09/2009/</link>
		<comments>http://www.software-dev-blog.de/idf09-techsession-software-tools-fur-skalierende-apps/09/2009/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 18:30:44 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[IDF09]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1173</guid>
		<description><![CDATA[Hier ist sie also: meine erste Techsession auf dem Intel Developer Forum 2009. Es geht um die Frage, mit welchen Tools Software-Entwickler arbeiten sollten, um das Beste aus ihren Anwendungen herauszuholen. Die Session beginnt mit einer Folie, die all das zeigt, was Intel in Sachen High Performance Computing tut. Folie 2 beschäftigt sich mit der [...]]]></description>
			<content:encoded><![CDATA[<p>Hier ist sie also: meine erste Techsession auf dem Intel Developer Forum 2009. Es geht um die Frage, mit welchen Tools Software-Entwickler arbeiten sollten, um das Beste aus ihren Anwendungen herauszuholen.</p>
<p>Die Session beginnt mit einer Folie, die all das zeigt, was Intel in Sachen High Performance Computing tut.</p>
<p>Folie 2 beschäftigt sich mit der Frage, welche Dinge zu berücksichtigen sind, um das Optimum aus seiner Anwendung zu holen. Dazu gehören die Wahl der richtigen Algorithmen, der passenden Programmiersprache und Compiler und natürlich die Frage nach den passenden Software-Tools, mit denen sich Anwendungen optimieren lassen.</p>
<p>Mit Fragen der Portabilität und der Produktivität sollten sich Entwickler ebenfalls beschäftigen. Auch hier geht es um Dinge wie Programmiersprachen, Tools, Betriebssysteme etc.</p>
<p>Jetzt dreht es sich um das Thema Skalierung und was getan werden muss, um eine Beschleunigung der Anwendungen zu erhalten, die sich an der Zahl der vorhandenen Prozessorkerne und Hardware-Threads orientiert.</p>
<p><span id="more-1173"></span>Ok, jetzt wird&#8217;s interessanter. Der Intel-Kollege spricht über die vorhandenen Entwickler-Tools, die Intel bereit hält. Natürlich ist die Rede von <a title="GDC09: So funktioniert Intel Parallel Studio" href="http://www.software-dev-blog.de/gdc09-so-funktioniert-intel-parallel-studio/08/2009/">Parallel Studio</a> für C/C++-Entwickler, aber auch von Workstation-/Server- und HPC-Tools wie <a title="Quellcode-Schwachstellen mit Intel VTune aufspüren" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune Performance Analyzer</a>, <a title="Neue Version der Intel Threading Building Blocks" href="http://www.software-dev-blog.de/neue-version-der-intel-threading-building-blocks/08/2009/">Intel TBB</a> und mehr.</p>
<p>Wer übrigens glaubt, dass Intel sich nur der Windows-Welt verpflichtet fühlt, der irrt. Der Chiphersteller bietet ebenso Software-Tools für die Linux- und Mac-Entwickler dieser Welt.</p>
<p>Eine sehr schöne Folie: die Unterschiede zwischen Task- und datenbasierter Parallelprogrammierung.</p>
<p>Natürlich darf Parallel Studio nicht fehlen. Es geht also um Parallel Advisor, Parallel Composer, Parallel Inspector und Parallel Amplifier.</p>
<p>Vier Schritte, um eine serielle programmierte Anwendung zu parallelisieren:</p>
<p>1. Der Wechsel zum <a title="Optimierte Compiler helfen beim Parallelisieren" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Intel Compiler</a> verbessert ohne direkten Eingriff in den Code die Laufzeit der Anwendung.</p>
<p>2. Die Vektorisierung des Sourcecodes mithilfe von SIMD-Befehlen.</p>
<p>3. Die Implementierung von <a title="Software-Projekte mit Multicore-Bibliotheken optimieren" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">Intel-MKL-Code</a>.</p>
<p>4. Automatische Parallelisierung mithilfe von <a title="Workshop: parallel Programmieren mit OpenMP" href="http://www.software-dev-blog.de/parallel-programmieren-mit-openmp/02/2009/">OpenMP</a> und andere Techniken.</p>
<p>Ein wenig Zukunftsaussichten gehören natürlich auch dazu: Intel wird seine Tools weiterentwickeln und damit sicher stellen, dass zukünftige Plattformen mit zukünftigen Anwendungen weiterhin skalieren. Dazu gehören unter anderem Weiterentwicklungen basierend auf <a title="Cilk: parallele Programmierung mit intelligenten Ansätzen" href="http://www.software-dev-blog.de/cilk-parallele-programmierung-mit-intelligenten-ansatzen/08/2009/">Cilk++</a> und <a title="ISC’09: die Zukunft der parallelen Programmierung" href="http://www.software-dev-blog.de/isc09-die-zukunft-der-parallelen-programmierung/04/2009/">Ct</a>.</p>
<p>Am Schluss gibt es noch ein paar Surftipps: <a title="Intel Software Network" href="http://software.intel.com/" target="_blank">Intel Software Network</a> und <a title="whatif.intel.com" href="http://software.intel.com/en-us/whatif/" target="_blank">whatif</a> sollten Parallelprogrammierer auf jeden Fall kennen. Und natürlich das Software Dev Blog. Aber das stand leider nicht auf der Folie &#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/idf09-techsession-software-tools-fur-skalierende-apps/09/2009/&via=sw_devtwits&text=IDF09: Techsession "Software-Tools für skalierende Apps"&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/idf09-techsession-software-tools-fur-skalierende-apps/09/2009/&via=sw_devtwits&text=IDF09: Techsession "Software-Tools für skalierende Apps"&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/idf09-techsession-software-tools-fur-skalierende-apps/09/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCMUC09: 3D-Games und Multicore-Programmierung</title>
		<link>http://www.software-dev-blog.de/gcmuc09-3d-games-und-multicore-programmierung/06/2009/</link>
		<comments>http://www.software-dev-blog.de/gcmuc09-3d-games-und-multicore-programmierung/06/2009/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 13:58:50 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Techsession]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1073</guid>
		<description><![CDATA[Um 15 Uhr war Aaron Coday von Intel auf dem GameCamp Munich 2009 mit seiner Techsession &#8220;3D-Games und Multicore-Programmierung&#8221; dran. Zwar war der Raum nicht ganz voll, dafür war die Diskussion umso lebhafter und brachte den Anwesenden wohl eine ganze Menge an Erkenntnissen: Aspekt #1: Single-Core-Maschinen werden immer mehr von Multicore-Rechnern abgelöst. Das hat damit [...]]]></description>
			<content:encoded><![CDATA[<p>Um 15 Uhr war Aaron Coday von Intel auf dem GameCamp Munich 2009 mit seiner Techsession &#8220;3D-Games und Multicore-Programmierung&#8221; dran. Zwar war der Raum nicht ganz voll, dafür war die Diskussion umso lebhafter und brachte den Anwesenden wohl eine ganze Menge an Erkenntnissen:</p>
<p>Aspekt #1: Single-Core-Maschinen werden immer mehr von Multicore-Rechnern abgelöst. Das hat damit zu tun, dass sich der CPU-Takt nicht weiter erhöhen lässt.</p>
<p>Problem #1: 3D-Game-Programmierung ist nicht trivial, weder sequenziell  noch parallel. Was schon geschieht ist ein zeitversetztes &#8220;Update World&#8221; und &#8220;Rendering&#8221; (z.B. auf der Xbox 360).</p>
<p>Hoffnung #1: Viele Dinge bei der 3D-Programmierung lassen sich parallelisieren, z.B. Rendering, Physics, KI, Particles.</p>
<p>Herausforderung #1: Wie verteile ich das Spiel auf die notwendigen Threads und auf die vorhandenen Ressourcen (= Core)?</p>
<p>Parallele 3D-Programmierung #1: Mach aus einzelnen Tasks &#8211; wie KI, Physics, Rendering, Update World &#8211; Subtasks!</p>
<p>Herausforderung #2: Definiere Abhängigkeiten der einzelnen Tasks!</p>
<p>Lösung #1: Intel TBB hilft Gaming-Entwicklern dabei, die anfallenden Tasks möglichst gut auf die vorhandenen Cores zu verteilen. Hierzu bedient sich Intel TBB eines Thread Pools, der für jeden Task einen eigenen Thread bereit hält.</p>
<p>Analogie #1: Beim Verwalten von Tasks geht es genauso zu wie im Supermarkt: Sobald ein Task-Queue frei wird (=Kasse), wird ein bereits wartender Task in eine freie Queue verschoben ( =Task-Stealing).</p>
<p>Lösung #2: Die &#8220;Größe&#8221; einer Task wird vom Task Partitioner bestimmt, um ein Load Imbalancing zu vermeiden.</p>
<p>Lehre #1: Wenn mehr Game Designer mehr über parallele Programmierung und deren Grenzen/Möglichkeiten wüssten, würden sich die Spieleprogrammierer ein gutes Stück leichter tun.</p>
<p>Ausblick #1: Larrabee wird eine Manycore-GPU-Lösung sein, die wohl Ende nächsten Jahres auf den Markt kommen wird.</p>
<p>Ausblick #2: Eines Tages werden CPUs und GPUs verschmelzen und zu einer leistungsfähigen Einheit mutieren.</p>
<p>Ausblick #3: OpenCL wird die Programmiermethoden verändern (und hoffentlich verbessern).</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/gcmuc09-3d-games-und-multicore-programmierung/06/2009/&via=sw_devtwits&text=GCMUC09: 3D-Games und Multicore-Programmierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/gcmuc09-3d-games-und-multicore-programmierung/06/2009/&via=sw_devtwits&text=GCMUC09: 3D-Games und Multicore-Programmierung&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/gcmuc09-3d-games-und-multicore-programmierung/06/2009/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>prio.powerday: Microsoft Concurrency Coordination Runtime</title>
		<link>http://www.software-dev-blog.de/priopowerday-concurrency-coordination-runtime/04/2009/</link>
		<comments>http://www.software-dev-blog.de/priopowerday-concurrency-coordination-runtime/04/2009/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 13:15:02 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[dotNET]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1026</guid>
		<description><![CDATA[Direkt nach Bernds Vortrag ist Ralf Westphal wieder dran und erzählt etwas zur Concurrency Coordination Runtime (CCR). Im Gegensatz zu Bernd geht es bei Ralfs Vortrag weniger um die Leistungssteigerung parallel programmierter Anwendungen als vielmehr um die optimale asynchrone Datenverarbeitung im parallelen .NET-Umfeld. Die CCR ermöglicht ein neues Programmiermodell für parallel laufende Anwendungen. Ein sehr [...]]]></description>
			<content:encoded><![CDATA[<p>Direkt nach <a title="prio.powerday: Parallele Programmierung unter .NET 3.5" href="http://www.software-dev-blog.de/priopowerday-parallele-programmierung-unter-net-35/04/2009/">Bernds Vortrag</a> ist Ralf Westphal wieder dran und erzählt etwas zur Concurrency Coordination Runtime (CCR). Im Gegensatz zu Bernd geht es bei Ralfs Vortrag weniger um die Leistungssteigerung parallel programmierter Anwendungen als vielmehr um die optimale asynchrone Datenverarbeitung im parallelen .NET-Umfeld.</p>
<p>Die CCR ermöglicht ein neues Programmiermodell für parallel laufende Anwendungen. Ein sehr schöner Ausspruch von Ralf lautet übrigens: &#8220;Vergesst Threads!&#8221;, da Threads synchronisiert werden müssen, was Ralf nicht wirklich mag. Um das besser verdeutlichen zu können, schreibt er in Echtzeit verschiedene kleinere Programme. Sehr schlau!</p>
<p>Das Besondere an der CCR ist das Warteschlangenprinzip: Jeder Befehl oder jedes Datum wird im Hintergrund aus der Warteschlange ausgelesen und verarbeitet, sobald eine Ressource frei ist. Damit müssen keine expliziten Threads erzeugt und wieder beendet werden, da sich die CCR automatisch darum kümmert. Hierfür steht die <a title="Infos zur DispatcherQueue-Klasse " href="http://msdn.microsoft.com/en-us/library/microsoft.ccr.core.dispatcherqueue.aspx" target="_blank">DispatcherQueue</a>-Klasse zur Verfügung.</p>
<p>Die CCR erlaubt sowohl den Einsatz des Standard-Threadpools als auch eigene Threadpools auf Dispatcher-Basis.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/priopowerday-concurrency-coordination-runtime/04/2009/&via=sw_devtwits&text=prio.powerday: Microsoft Concurrency Coordination Runtime&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/priopowerday-concurrency-coordination-runtime/04/2009/&via=sw_devtwits&text=prio.powerday: Microsoft Concurrency Coordination Runtime&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/priopowerday-concurrency-coordination-runtime/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>prio.powerday: Parallele Programmierung unter .NET 3.5</title>
		<link>http://www.software-dev-blog.de/priopowerday-parallele-programmierung-unter-net-35/04/2009/</link>
		<comments>http://www.software-dev-blog.de/priopowerday-parallele-programmierung-unter-net-35/04/2009/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 11:55:38 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[dotNET]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1024</guid>
		<description><![CDATA[Nach der Mittagspause ist Bernd Marquardt ohne sein Alter Ego an der Reihe. Sein Thema: Parallele Programmierung mithilfe des .NET-Frameworks 3.5, und zwar per TPL. Folgende Elemente kommen zum Einsatz: Parallele Erweiterungen für LINQ = PLINQ Schleifen parallelisieren: Die hierzu gehörige Klasse heißt System.Threading.Parallel. Schleifen werden auf mehrere Threads aufgeteilt werden, aber nur, wenn die [...]]]></description>
			<content:encoded><![CDATA[<p>Nach der Mittagspause ist Bernd Marquardt ohne sein Alter Ego an der Reihe. Sein Thema: Parallele Programmierung mithilfe des .NET-Frameworks 3.5, und zwar per TPL.</p>
<p>Folgende Elemente kommen zum Einsatz:</p>
<ul>
<li><strong>Parallele Erweiterungen</strong> für <a title="Multicore-Programmierung im .NET-Umfeld - Teil 3" href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-3/02/2009/">LINQ = PLINQ</a></li>
</ul>
<ul>
<li><strong>Schleifen parallelisieren:</strong> Die hierzu gehörige Klasse heißt <em><strong>System.Threading.Parallel</strong></em>. Schleifen werden auf mehrere Threads aufgeteilt werden, aber nur, wenn die einzelnen Schleifendurchläufe unabhängig voneinander sind. Dabei müssem die Indezies alle gleich sein. Am Ende der Schleife werden alle Threads synchronisiert. Fazit: Schleifenparallelisierung lohnt sich nur bei komplexen und großen Schleifen! Wichtig ist auch die richtige Verteilung einer Schleife auf die vorhandenen Prozessorressourcen. Dies gelingt, indem die einzelnen Schleifendurchläufe in kleinen Portionen verarbeitet werden.</li>
</ul>
<ul>
<li><strong>Aggregationen:</strong> Hierbei geht es um das Zusammenfassen von Ergebnissen. Dabei ist Locking meist erforderlich. Zwischenwerte werden über sogenannte ThreadLocateState weitergegeben. Der Ablauf sieht folgendes vor: Initialisierung, Zwischenspeichern der einzelnen Thread-Ergenisse und das abschließende Zusammenführen der Zwischenwerte inklusive Locking. Übrigens: Aufgrund des Zusammeführens der einzelnen Thread-Zwischenergebnisse kann ist bei der parallelen Ausführung zu Rundungsfehlern kommen und das Ergebnis weicht vom sequentiellen Programm ab.</li>
</ul>
<p><span id="more-1024"></span></p>
<ul>
<li><strong>Codeblöcke parallelisieren:</strong> Hier kommt die Invoke-Methode zum Einsatz.</li>
</ul>
<ul></ul>
<ul>
<li><strong>Die Task-Klasse:</strong> Diese funktioniert ähnlich wie die ThreadPool-Klasse und haben dieser gegenüber wesentliche Vorteile: Sie lassen sich mit <em><strong>wait() </strong></em>synchronisieren und abbrechen. Interessant an dieser Task-Klasse ist die Tatsache, dass dahinter ein spezieller Thread-Pool steckt, der deutlich schneller als der Standard-Threadpool arbeitet.</li>
</ul>
<ul>
<li><strong>Die Future-Klasse:</strong> Sie ist abgeleitet von der Task-Klasse und ermöglicht die asynchrone Berechnung von Daten. Dabei wird auf Daten, die noch berechnet werden, automatisch gewartet oder das Endergebnis sofort ausgegeben. Die Future-Klasse eignet sich übrigens dazu, die Bedienoberfläche von Hintergrundberechnungen zu entkoppeln und damit die Anwendungen performanter zu machen.</li>
</ul>
<ul>
<li><strong>Concurrent Exceptions:</strong> Im Gegensatz zu sequentiellen Anwendungen können in parallelisierten Applikationen zu einer bestimmten Zeit mehrere Exceptions ausgeworfen werden. Hierfür ist natürlich ein anderer Exception-Mechanismus erforderlich. So müssen zum Beispiel im Falle einer Exception mehrere Threads gleichzeitig angehalten werden.</li>
</ul>
<ul>
<li><strong>Synchronisierung:</strong> Hierfür sind diverse Klassen im .NET-Framework vorhanden wie Lazyinit und WriteOnce.</li>
</ul>
<p><strong>Tipps und Tricks: </strong></p>
<ul>
<li>Bei <em><strong>Parallel.For</strong></em> und <em><strong>Parallel.ForEach</strong></em> muss die (Anzahl der Durchläufe * Dauer) auf jeden Fall groß genug sein (beispielsweise schlägt bei der Matrix-Multiplikation die Parallelisierung erst bei sehr großen Matrizen voll durch).</li>
<li>Nur äußere Schleifen parallelisieren wegen der Abhängigkeiten der Variablen</li>
<li>Amdahl&#8217;s Gesetz berücksichtigen</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/priopowerday-parallele-programmierung-unter-net-35/04/2009/&via=sw_devtwits&text=prio.powerday: Parallele Programmierung unter .NET 3.5&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/priopowerday-parallele-programmierung-unter-net-35/04/2009/&via=sw_devtwits&text=prio.powerday: Parallele Programmierung unter .NET 3.5&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.software-dev-blog.de/priopowerday-parallele-programmierung-unter-net-35/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>prio.powerday: Multithreading mit .NET-Bordmitteln</title>
		<link>http://www.software-dev-blog.de/priopowerday-multithreading-mit-net-bordmitteln/04/2009/</link>
		<comments>http://www.software-dev-blog.de/priopowerday-multithreading-mit-net-bordmitteln/04/2009/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 09:47:18 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[dotNET]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1022</guid>
		<description><![CDATA[Und weiter geht&#8217;s. Bernd und Ralf gehen jetzt näher auf das Thema Multithreading mit .NET-Bordmitteln ein. Hierbei gibt es verschiedene Aspekte: Statisches Threading birgt vor allem ein Problem: Es gibt statische Variablen, die von mehreren Threads gleichzeitig schreibend genutzt werden können. Threading mit instanzierten Klassen: Jeder Thread hat seine eigene Instanz, also zum Beispiel seine [...]]]></description>
			<content:encoded><![CDATA[<p>Und weiter geht&#8217;s. Bernd und Ralf gehen jetzt näher auf das Thema Multithreading mit .NET-Bordmitteln ein. Hierbei gibt es verschiedene Aspekte:</p>
<ul>
<li><strong>Statisches Threading</strong> birgt vor allem ein Problem: Es gibt statische Variablen, die von mehreren Threads gleichzeitig schreibend genutzt werden können.</li>
</ul>
<ul>
<li><strong>Threading mit instanzierten Klassen:</strong> Jeder Thread hat seine eigene Instanz, also zum Beispiel seine eigenen Variablen, was natürlich ein wenig mehr Ressourcen kostet.</li>
</ul>
<ul>
<li><strong>Steuerung von Threads:</strong> Hierbei geht es um die Priorisierung von Threads sowie das Starten, Pausieren und Stoppen von Threads. Die Herausforderung ist hier der jeweils richtige Zeitpunkt, ein Thread zu manipulieren. Außerdem muss man feststellen können, ob ein Thread gewollte beendet wurde. Dies kann per Bool&#8217;scher Variable erreicht werden.</li>
</ul>
<p><span id="more-1022"></span></p>
<ul>
<li><strong>.NET-Threadpool: </strong>Der Pool soll ein einfaches Arbeiten mit mehreren Threads ermöglichen. Diese Threads &#8220;leben&#8221; meist relativ lang oder werden regelmäßig wiederkehrend benötigt. Es gibt eine maximale Anzahl an Threads innerhalb eines Pools. Wir ein Pool-Thread 30 Sekunden nicht benötigt, wird der Thread aus dem Pool entfernt. Schwierig dabei kann auch sein, dass ein neuer Pool-Thread erst nach einer halben Sekunde erzeugt wird, wenn kein laufender Thread in dieser Zeit beendet wird. Und: Jeder Prozess hat seinen eigenen Thread-Pool.</li>
</ul>
<ul>
<li><strong>Asynchrone Methoden:</strong> Einzelne Aufgaben werden in eigenen Threads ausgeführt. Die hierzu benötigten Methoden heißen <em><strong>BeginInvoke</strong></em> und <em><strong>EndInvoke</strong></em>. Allerdings sind diese Methoden kaum sinnvoll anwendbar.</li>
</ul>
<ul>
<li><strong>BackgroundWorker:</strong> Besteht aus drei Klassen: DoWork, ProgressChanged und ReportProgress.</li>
</ul>
<ul>
<li><strong>Synchronisierung:</strong> Im .NET-Framework gibt es Klassen für die Synchronisierung von Objekten.</li>
</ul>
<ul>
<li><strong>Atomare Anweisungen:</strong> Viele Befehle dürfen nicht unterbrochen werden. Daher stellt die Interlocked-Klasse sicher, das Grundbefehle vollständig ausgeführt werden, wenn mehrere Threads auf die Variablen zugreifen können: Increment/Decrement, Exchange, CompareExchange, Read (new), Add (new). Dies ist zum Beispiel für Sortieralgorithmen wichtig.</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/priopowerday-multithreading-mit-net-bordmitteln/04/2009/&via=sw_devtwits&text=prio.powerday: Multithreading mit .NET-Bordmitteln&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/priopowerday-multithreading-mit-net-bordmitteln/04/2009/&via=sw_devtwits&text=prio.powerday: Multithreading mit .NET-Bordmitteln&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/priopowerday-multithreading-mit-net-bordmitteln/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>prio.powerday: Einführung in die parallele Programmierung</title>
		<link>http://www.software-dev-blog.de/priopowerday-einfuhrung-in-die-parallele-programmierung/04/2009/</link>
		<comments>http://www.software-dev-blog.de/priopowerday-einfuhrung-in-die-parallele-programmierung/04/2009/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 08:28:56 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[dotNET]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1020</guid>
		<description><![CDATA[Jetzt sind mit kaum einer halben Stunde Verspätung Ralf Westphal und Bernd Marquardt dran. Sie wollen uns erst mal erzählen, was parallele Programmierung eigentlich bedeutet. Zunächst geht es um echte Basics wie Multithreading mit Single- und Multicores. Fakt ist: Multithreading allein bringt gar nichts, dafür sind mehrere Prozessoren und die Zerlegung eines Programms in parallel [...]]]></description>
			<content:encoded><![CDATA[<p>Jetzt sind mit kaum einer halben Stunde Verspätung Ralf Westphal und Bernd Marquardt dran. Sie wollen uns erst mal erzählen, was parallele Programmierung eigentlich bedeutet.</p>
<p>Zunächst geht es um echte Basics wie Multithreading mit Single- und Multicores. Fakt ist: Multithreading allein bringt gar nichts, dafür sind mehrere Prozessoren und die Zerlegung eines Programms in parallel zu verarbeitenden Bereiche notwendig.</p>
<p>Eine weitere Herausforderung sind Latenzzeiten, die sich aus asynchroner Prozessorverarbeitung ergeben. Das lässt sich mithilfe einer Kombination aus Multithreading und Multitasking auf mehreren Prozessoren optimieren.</p>
<p>Es gilt aber zugleich, den Durchsatz zu erhöhen. Dies gelingt ausschließlich auf Multicore-Systemen.</p>
<p>Es gibt ein grundsätzliches Problem bei der Parallelverarbeitung: den Zugriff auf gemeinsame Ressourcen. Diese Herausforderung meistern Zugriffskontrollen mithilfe explizierter Sperren. Hierfür sperren zum Beispiel einzelne Tasks gemeinsamen Speicher. Allerdings müssen die Zeitspannen und die Granularität dieser Sperren genau passen. Ein große Gefahr hierbei sind übrigens mögliche Deadlocks, die gerade bei parallel programmierten Anwendungen erst zur Laufzeit auftreten. Deadlocks lassen sich durch dieselbe Sperrreihenfolge vermeiden.</p>
<p><span id="more-1020"></span>Jetzt redet Bernd über Data Races, die immer dann entstehen, wenn mehrere Threads auf dieselbe Ressource wie eine Variable schreibend zugreifen. Und das ist leider nicht vorhersehbar, da der schnellere Thread meist &#8220;gewinnt&#8221;.</p>
<p>Abschließend geht Bernd noch auf das <a title="Multicore-Programmierung im .NET-Umfeld - Teil 1" href="http://www.software-dev-blog.de/multicore-programmierung-im-net-umfeld-teil-1/01/2009/">Gesetz von Amdahl</a> ein. Das hat mit dem Aspekt zu tun, dass die meisten Anwendungen nicht vollständig parallelisiert werden können bzw. sollen. Daher ist die Temposteigerung von seriellen Programmen, die parallelisiert werden, meist nicht optimal. Und das bedeutet laut Amdahl, dass der sequenzielle Teil einer Anwendung maßgeblich für die Temposteigerung zuständig ist.</p>
<p>Eine weitere Einschränkung bei der Geschwindigkeitssteigerung sind limitierende Faktoren wie das Erzeugen und Zerstören von Threads, Cache-Synchronisierungen und so fort. Die Erzeugung eines Threads dauert zum Beispiel so lang wie die Addition von 1.000 Integer-Zahlen. Abhilfe schaffen <a title="Workshop: Alles über .NET-Threads - Teil 3" href="http://www.software-dev-blog.de/workshop-alles-uber-net-threads-teil-3/03/2009/"><strong>Threadpools</strong></a>, mit deren Hilfe ein Thread einmal erzeugt wird und dann immer wieder zur Verfügung steht. Wichtig ist aber auch die Granularität der Threads, damit die vorhandenen Ressourcen optimal genutzt werden.</p>
<p><strong>Fazit:</strong> Es gibt je nach Rechendauer und -aufwand einen optimalen Parallelisierungsgrad. Und Threadpools helfen, parallelisierte Anwendungen zu beschleunigen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/priopowerday-einfuhrung-in-die-parallele-programmierung/04/2009/&via=sw_devtwits&text=prio.powerday: Einführung in 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/priopowerday-einfuhrung-in-die-parallele-programmierung/04/2009/&via=sw_devtwits&text=prio.powerday: Einführung in 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/priopowerday-einfuhrung-in-die-parallele-programmierung/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>prio.powerday: Multicore-Programmierung unter .NET</title>
		<link>http://www.software-dev-blog.de/priopowerday-multicore-programmierung-unter-net/04/2009/</link>
		<comments>http://www.software-dev-blog.de/priopowerday-multicore-programmierung-unter-net/04/2009/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 07:24:18 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[dotNET]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Liveblogging]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1018</guid>
		<description><![CDATA[Kaum dass ich aus Salzburg zurück bin, sitze ich hier im Konferenzhaus in der Lazarettstraße, München, und nehme an der Multicore-Konferenz für .NET-Entwickler teil, die im Rahmen der prio.powerdays stattfindet. Den Anfang macht Rami Radi von Intel, der die Einführungsrede hält und die Anwesenden auf das Thema Multicore einstimmen will. Rami beginnt seinen Vortrag mit [...]]]></description>
			<content:encoded><![CDATA[<p>Kaum dass ich <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/">aus Salzburg zurück bin</a>, sitze ich hier im Konferenzhaus in der Lazarettstraße, München, und nehme an der <a title="F# und Co: prio.powerday “Multicore im .NET-Umfeld”" href="http://www.software-dev-blog.de/f-und-co-priopowerday-multicore-im-net-umfeld/03/2009/">Multicore-Konferenz für .NET-Entwickler</a> teil, die im Rahmen der prio.powerdays stattfindet.</p>
<p>Den Anfang macht Rami Radi von Intel, der die Einführungsrede hält und die Anwesenden auf das Thema Multicore einstimmen will.</p>
<p>Rami beginnt seinen Vortrag mit Hardware, nicht mehr Software. Namentlich spricht er über den <a title="Mehr Multithread-Leistung mit dem Intel Core i7 Prozessor " href="http://www.software-dev-blog.de/mehr-multithread-leistung-mit-dem-intel-core-i7-prozessor/11/2008/">Core i7-Prozessor</a>, der ja im höchsten Maße multithreading-tauglich ist. Core i7 verarbeitet nämlich pro Prozessorkern zwei Threads simultan.</p>
<p>Die nächste Folie zeigt die ganze Vielfalt der <a title="Software-Projekte mit Intel-Tools optimieren" href="http://www.software-dev-blog.de/software-projekte-mit-intel-tools-optimieren/10/2008/">Intel-Entwicklertools</a>, über die ich hier schon ausführlich berichtet habe, also über <a title="Infos zu Intel Compilern" href="http://www.software-dev-blog.de/optimierte-compiler-helfen-beim-parallelisieren/12/2008/">Compiler</a>, <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune</a> etc.</p>
<p>So, jetzt wird&#8217;s ernst. Rami spricht über die <a title="Workshop: Alles über .NET-Threads - Teil 1" href="http://www.software-dev-blog.de/workshop-alles-uber-net-threads-teil-1/03/2009/">Parallelprogrammierung im .NET-Umfeld</a>, was seiner Meinung nach nicht einfach ist (wären wir sonst hier?). Zu den Herausforderungen gehören unter anderem falsch genutzter Speicher, zu viele und zu wenige Threads, gemeinsam genutzte Speicherbereiche, Load Balancing und viele andere. Wie gut, dass es für diese &#8220;Issues&#8221; die passenden Tools gibt wie den VTune Performance Analyzer.</p>
<p><span id="more-1018"></span>Aber es gibt laut Rami auch genug Fälle, in denen parallelisierte Anwendungen langsamer laufen als serielle. Das hat diverse Gründe: Der serielle Code nimmt immer noch zu viel Raum ein, die kritischen Pfade sind nicht vernünftig parallelisiert oder die Speicherbandbreite reicht nicht aus.</p>
<p>Die nächste Folie zum Thema .NET-Konstrukte wirkt auf den ersten Blick ein wenig überfrachtet. Zum Glück will sich Rami auf die wirklich wichtigen Aspekte konzentrieren. Dazu gehören<strong> <a title="Mehr Infos zu Thread-Pools und Co." href="http://www.software-dev-blog.de/workshop-alles-uber-net-threads-teil-3/03/2009/">Thread-Pools.</a></strong> Rami zeigt ein kleines Beispiel anhand einer kleinen Fotoverwaltung, die in C# geschrieben ist.</p>
<p>Der Vorteil von Thread-Pools ist in diesem Fall, dass nicht ein, sondern zwei oder mehr Bilder gleichzeitig aus der SQL-Datenbank ausgelesen werden können, die die Bilder aufbewahrt. Der Trick hierbei ist übrigens, die Thread-Parameter in die For-Schleife zu packen. Außerdem muss ein Wait-Signal eingebaut werden, damit die Anwendung am Ende weiß, dass alle Bilder angezeigt worden sind. Darüber hinaus ist ein Lock-Befehl einzufügen, der die SQL-Zugriffe synchronisiert.</p>
<p>Interessant: Innerhalb des .NET-Umfelds kann nativer Code eingesetzt werden, um <a title="Software-Projekte mit Multicore-Bibliotheken optimieren" href="http://www.software-dev-blog.de/software-projekte-mit-multicore-bibliotheken-optimieren/12/2008/">leistungsfähige Bibliotheken</a> zu nutzen.</p>
<p>Jetzt gibt&#8217;s noch ein paar nützliche Tipps, mit denen man multithread-optimierten Code noch besser machen kann. Dazu gehören das Auslesen der vorhandenen Prozessorressourcen, das Zusammenfassen mehrerer Funktionen zu einem einzigen Thread, das Cachen von häufig benutzen Daten und das Benutzen von parallelen Datenbankverbindungen.</p>
<p>Schließlich gibt es noch eine kleine Einführung in <a title="VTune Performance Analyzer" href="http://www.software-dev-blog.de/quellcode-schwachstellen-mit-intel-vtune-aufspuren/11/2008/">VTune</a>, mit dem sich Anwendungen prima analysieren lassen.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/priopowerday-multicore-programmierung-unter-net/04/2009/&via=sw_devtwits&text=prio.powerday: Multicore-Programmierung unter .NET&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/priopowerday-multicore-programmierung-unter-net/04/2009/&via=sw_devtwits&text=prio.powerday: Multicore-Programmierung unter .NET&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/priopowerday-multicore-programmierung-unter-net/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: Warum Intel und Nero gut harmonieren</title>
		<link>http://www.software-dev-blog.de/isc09-warum-intel-und-nero-gut-harmonieren/04/2009/</link>
		<comments>http://www.software-dev-blog.de/isc09-warum-intel-und-nero-gut-harmonieren/04/2009/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 09:49:42 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Referenz]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=1006</guid>
		<description><![CDATA[Erst mal gibt&#8217;s ein paar Nero-Zahlen: insgesamt 300 Millionen verkaufte Software-Pakete (50 Mio. pro Jahr), 120 Millionen Besucher pro Jahr auf Nero.com. Die ersten Multithread-Erfahrungen hat Nero mit seiner Brennsoftware vor vielen Jahren gemacht, was der Firma heute noch dabei hilft, neue Software-Titel für die aktuelle Hardware-Generation so zu schreiben, dass sie möglichst gut skalieren. [...]]]></description>
			<content:encoded><![CDATA[<p>Erst mal gibt&#8217;s ein paar Nero-Zahlen: insgesamt 300 Millionen verkaufte Software-Pakete (50 Mio. pro Jahr), 120 Millionen Besucher pro Jahr auf Nero.com.</p>
<p>Die ersten Multithread-Erfahrungen hat Nero mit seiner Brennsoftware vor vielen Jahren gemacht, was der Firma heute noch dabei hilft, neue Software-Titel für die aktuelle Hardware-Generation so zu schreiben, dass sie möglichst gut skalieren.</p>
<p>Nach einer ganzen Menge an marketinglastigen Infos wird&#8217;s endlich technisch. Zunächst geht es um die Frage, welchen Herausforderungen sich ein Entwickler gegenüber sieht, wenn er Multimedia-Software möglichst leistungsfähig schreiben will. Dazu gehört unter anderem Realtime-Encoding (und das natürlich parallel) &#8211; in möglichst vielen Datenformaten. Aber auch hoch komplexe Codecs, HD-Inhalte, große Datenmengen und DRM-/Sicherheitsaspekte stellen Herausforderungen dar.</p>
<p>Doch wie schafft es Nero, in Multicore-Dimensionen zu denken? Nun, hierfür sind laut Charly Lippoth neue Kenntnisse und ein neues Denken erforderlich. Dazu gehört beispielsweise die Erkenntnis, dass Funktionen möglichst gut auf den vorhandenen Prozessorkernen skalieren müssen.</p>
<p>Aber auch die Programmierung auf Maschinencode-Ebene hilft Nero beim Optimieren der Software, indem beispielsweise SSE-Befehle optimal eingesetzt werden. Ein weiterer Aspekt ist aber natürlich der Einsatz der richtigen Tools.</p>
<p><span id="more-1006"></span>Ein gutes Beispiel für effizientes Multithreading sind Audio- und Videocodecs, bei denen es ein hohes Parallelisierungspotenzial gibt. Das beginnt beim Videoscaling und endet bei der Transformation von HD-Content in 2K- oder 4K-Inhalte.</p>
<p>Folgende Nero-Anwendungen sind parallelisiert: Move It, LiquidTV, Recode, 1080p-Wiedergabe und Mediamanagement.</p>
<p>Nero setzt auf Intel-Tools 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> und <a title="Parallel Inspector" href="http://www.software-dev-blog.de/parallel-studio-serie-mehr-infos-zum-parallel-inspector/02/2009/">Parallel Inspector</a>, mit deren Hilfe die aktuelle Bluray-Software verbessert werden konnte, da es in der Vergangenheit Probleme beim Synchronisieren von Daten und Threads gab.</p>
<p>Die abschließende Recode-Demo zeigt, was mit einer parallelisierten Anwendung möglich ist: HD-Videocontent lässt sich auf einem Core-i7-System in Echtzeit in ein portables Format konvertieren. Damit gelangen hochaufgelöste Inhalte innerhalb kürzester Zeit auf iPod, iPhone und Co.</p>
<p>Fazit: Nero lernt jeden Tag dazu und will und wird in Zukunft verstärkt auf Parallel Studio, Threading Building Blocks und die Task Parallel Library setzen. Und Entwickler und Programmierer kontinuierlich weiterbilden, für möglichst skalierende Anwendungen.</p>
<p>Dann durfte einer der Chefentwickler noch etwas zu seinen Erfahrungen mit Parallel Studio erzählen. Er zeigte sich sehr angetan von diesem Tool hinsichtlich des Aufspürens von Speicherproblemen zur Laufzeit. Aber: Der generierte Overhead ist nicht ganz trivial und muss noch verringert werden. Und an der Geschwindigkeit muss auch noch geschraubt werden. Aber darum nennt sich das Ganze auch noch &#8220;Beta&#8221; &#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/isc09-warum-intel-und-nero-gut-harmonieren/04/2009/&via=sw_devtwits&text=ISC'09: Warum Intel und Nero gut harmonieren&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-warum-intel-und-nero-gut-harmonieren/04/2009/&via=sw_devtwits&text=ISC'09: Warum Intel und Nero gut harmonieren&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-warum-intel-und-nero-gut-harmonieren/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>Eurographics 2009: Tech-Session Ray Tracing vs. Rasterisierung</title>
		<link>http://www.software-dev-blog.de/techsession-at-eurographics-2009-ray-tracing-vs-rasterisierung/04/2009/</link>
		<comments>http://www.software-dev-blog.de/techsession-at-eurographics-2009-ray-tracing-vs-rasterisierung/04/2009/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 12:25:12 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Techsession]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=985</guid>
		<description><![CDATA[Direkt im Anschluss an die Larrabee-Session von Mat Pharr war Manfred Ernst an der Reihe, um über das Thema Ray Tracing zu referieren. Am Anfang zeigte Manfred eine angepasste Quake Wars-Demo, die nicht auf Basis der klassischen Rasterisierung generiert wird, sondern mithilfe von Ray Tracing. Sehr beeindruckend! Ray Tracing zeichnet sich durch vier wesentliche Aspekte [...]]]></description>
			<content:encoded><![CDATA[<p>Direkt im Anschluss an die <a title="Larrabee-Session von Mat Pharr" href="http://www.software-dev-blog.de/eurographics-2009-techsession-larrabee/04/2009/">Larrabee-Session</a> von Mat Pharr war Manfred Ernst an der Reihe, um über das Thema Ray Tracing zu referieren. Am Anfang zeigte Manfred eine angepasste <em>Quake Wars</em>-Demo, die nicht auf Basis der klassischen Rasterisierung generiert wird, sondern mithilfe von Ray Tracing. Sehr beeindruckend!</p>
<p>Ray Tracing zeichnet sich durch vier wesentliche Aspekte aus: Flexibilität, Qualität, Einfachheit und Robustheit.</p>
<p><em><strong>Flexibilität:</strong></em> Auf Basis der Rasterisierung lassen sich unterschiedliche Perspektiven nur mit viel Aufwand darstellen. Vor allem dann, wenn die Zahl der darzustellenden Datenobjekte sehr groß ist. Ray Tracing ist hierfür viel besser geeignet. Aber: Rasterisierung ist schneller als Ray Tracing. Daher ist für akzeptables Ray Tracing leistungsfähige Hardware notwendig.</p>
<p><em><strong>Qualität:</strong></em> Die erzielbare Bildqualität ist mit Ray Tracing deutlich höher als mit Rasterisierung. Dies betrifft vor allem Schatten, spiegelnde Flächen wie Wasseroberflächen etc. Doch wer braucht diesen Level an realistischer Bildqualität? Nun, vor allem Architekten, Produktdesigner, Animationsfilmer und natürlich Spieleentwickler.</p>
<p><em><strong>Einfachheit:</strong></em> Die Implementierung einer Rasterisierung-Engine ist im Vergleich zu Ray Tracing deutlich einfacher, aber bei der  Programmierung neuer Effekte haben Ray Tracer große Vorteile. So lassen sich bestehende und neue Shader-Effekte mit weniger Programmierzeilen in eine 3D-Anwendung implementieren.</p>
<p><em><strong>Robustheit:</strong></em> Rasterisierungs-Implementierung sind meist nicht robust genug. Vor allem die Zunahme verschiedener Effekte innerhalb einer Szene überfordert Rasterisierungs-Engines zusehend. Dieses Problem lässt sich mit Ray Tracing recht einfach lösen. Das geht allerdings mit großen Anstregungen hinsichtlich der Render-Engines einher. Denn eines ist klar: Robuste 3D-Engines sind äußerst wichtig, da gerade beim Erstellen von 3D-Szenen etc. viel Zeit und damit viel Geld aufgewendet wird.</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/techsession-at-eurographics-2009-ray-tracing-vs-rasterisierung/04/2009/&via=sw_devtwits&text=Eurographics 2009: Tech-Session Ray Tracing vs. Rasterisierung&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/techsession-at-eurographics-2009-ray-tracing-vs-rasterisierung/04/2009/&via=sw_devtwits&text=Eurographics 2009: Tech-Session Ray Tracing vs. Rasterisierung&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/techsession-at-eurographics-2009-ray-tracing-vs-rasterisierung/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eurographics 2009: Tech-Session Larrabee</title>
		<link>http://www.software-dev-blog.de/eurographics-2009-techsession-larrabee/04/2009/</link>
		<comments>http://www.software-dev-blog.de/eurographics-2009-techsession-larrabee/04/2009/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 11:37:58 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Visual Computing]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Techsession]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=983</guid>
		<description><![CDATA[Jetzt sitze ich hier also seit über zehn Jahren zum ersten Mal wieder in einem Hörsaal, wartend auf den Beginn der Intel-Session zu den Themen Ray Tracing und Larrabee. Das wird zwar nicht unbedingt in Live-Blogging ausarten, aber während das Diktiergerät alles aufzeichnet, werde ich während der zwei Vorträge von Manfred Ernst und Mat Pharr [...]]]></description>
			<content:encoded><![CDATA[<p>Jetzt sitze ich hier also seit über zehn Jahren zum ersten Mal wieder in einem Hörsaal, wartend auf den Beginn <a title=" Eurographics 2009: Wohin geht die 3D-Reise?! " href="http://www.software-dev-blog.de/eurographics-2009-wohin-geht-die-3d-reise/03/2009/">der Intel-Session</a> zu den Themen Ray Tracing und Larrabee. Das wird zwar nicht unbedingt in Live-Blogging ausarten, aber während das Diktiergerät alles aufzeichnet, werde ich während der zwei Vorträge von Manfred Ernst und Mat Pharr die Highlight-Statements schon mal veröffentlichen. <em>So, lean back and enjoy the show.</em></p>
<p>Der Saal ist gut gefüllt, die Themen scheinen also voll im Trend zu liegen. Als erster ist Mat Pharr dran, der sich bei Intel um das Thema Larrabee kümmert.</p>
<p>Matt beginnt mit einer kurzen Einführung: Fließpunkt-Arithmetik ist mittlerweile ausreichend vorhanden und 3D existiert in Software und nicht mehr ausschließlich in Hardware. Das bedeutet, das Prozessoren immer flexibler werden, vor allem, wenn man an neue Anwendungsgebiete wie 3D-Darstellungen denkt.</p>
<p>Ein kurzer Rückblick: 2001 war die Darstellung von 3D-Daten sehr gebunden an die Hardware. Mittlerweile kann das dank der enormen Rechenleistung vollständig in Software geschehen.</p>
<p>Was ist Larrabee? Letztlich der Zusammenschluss einer Multicore-CPU und einer programmierbaren, parallelisierten Grafikeinheit.</p>
<p>Schöner Versuch: Was bringt die Erhöhung der verfügbaren Prozessorkerne um den Faktor fünf in Sachen Rechenleistung? Den Faktor 160!</p>
<p>Das Larrabee-Blockdiagramm zeigt vor allem eins: Es gibt einen gemeinsamen L2-Cache, auf den sämtliche Prozessorkerne zugreifen.</p>
<p>Die Lehre der nächsten Folie: Sowohl das Berechnen einer 3D-Szene als auch Rendern dieser fertigen Szene sind in höchstem Maße parallelisierbar. Daher ist der Rasterisierer von Larrabee natürlich bestmöglich parallelisiert.</p>
<p>Dank Larrabee lässt sich in Zukunft die komplette 3D-Berechnung in Software realisieren und so der komplette 3D-Workflow als Software-Pipeline abbilden. Das macht Spezialhardware wie Grafikkarten selbst für aufwendige 3D-Berechnung künftig überflüssig.</p>
<p>Larrabee versteht sich auf das unmittelbare Umwandeln zwischen verschiedenen Datenformaten. So lassen sich FP32-Daten problemlos in FP16-Daten konvertieren, falls dies notwendig ist.</p>
<p>Problem heutige 3D-Spiele: Es gibt keinen ausgewogenen Workload, da jedes Game seinen eigenen Schwerpunkt hat in Sachen Alpha Blending, Pixel Shading, Rasterisierung, Vertex Shading etc. Mit Larrabee wird sich dieses Problem einfacher lösen lassen, da Larrabee sehr viel flexibler mit unterschiedlichen Workloads umgehen kann.</p>
<p>Die GPU-Programmierung wird sich mit Larrabee vollständig ändern: Sie wird parallel programmierbar!</p>
<div style="float: left margin-left: 30px; margin-buttom: 20px"><a href="http://twitter.com/share?url=http://www.software-dev-blog.de/eurographics-2009-techsession-larrabee/04/2009/&via=sw_devtwits&text=Eurographics 2009: Tech-Session Larrabee&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/eurographics-2009-techsession-larrabee/04/2009/&via=sw_devtwits&text=Eurographics 2009: Tech-Session Larrabee&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/eurographics-2009-techsession-larrabee/04/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel @ Microsoft TechEd EMEA Developers 2008 Preview</title>
		<link>http://www.software-dev-blog.de/intel-microsoft-teched-emea-developers-2008-preview/10/2008/</link>
		<comments>http://www.software-dev-blog.de/intel-microsoft-teched-emea-developers-2008-preview/10/2008/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 15:11:57 +0000</pubDate>
		<dc:creator>Michael Hülskötter</dc:creator>
				<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Liveblogging]]></category>
		<category><![CDATA[Vorschau]]></category>

		<guid isPermaLink="false">http://www.software-dev-blog.de/?p=117</guid>
		<description><![CDATA[Vom 10. bis 14. November dieses Jahres findet in Barcelona die große Microsoft-Entwicklerkonferenz statt, die auf den Namen TechEd EMEA Developers 2008 hört. Dort wird Intel unter anderem mit drei Software-Spezialisten vertreten sein, aber auch mit einem Demo-Stand, auf dem aktuelle Intel-Tools gezeigt werden sollen. Ziel der Intel-Präsenz auf der TechEd sind gleich mehrere Dinge: [...]]]></description>
			<content:encoded><![CDATA[<p>Vom 10. bis 14. November dieses Jahres findet in Barcelona die große Microsoft-Entwicklerkonferenz statt, die auf den Namen <a title="Mehr Infos zur Microsoft TechEd EMEA Developers 2008" href="http://www.microsoft.com/emea/teched2008/developer/" target="_blank">TechEd EMEA Developers 2008</a> hört. Dort wird Intel unter anderem mit drei Software-Spezialisten vertreten sein, aber auch mit einem Demo-Stand, auf dem aktuelle <a title="Mehr Infos zu den aktuellen Intel-Software-Tools" href="http://www.software-dev-blog.de/software-projekte-mit-intel-tools-optimieren/10/2008/">Intel-Tools</a> gezeigt werden sollen.</p>
<p>Ziel der Intel-Präsenz auf der TechEd sind gleich mehrere Dinge: Zum einen geht es um das große Thema paralleles Programmieren innerhalb einer <a title="Mehr Infos zum Thema Multicore Computing" href="http://www.software-dev-blog.de/mehr-leistung-mit-mehreren-cpus-multicore-computing/10/2008/">Multiprozessor-Umgebung</a>. Software-Entwickler, die bis dato mit Intel-Tools für diese Zwecke noch nicht so viel zu tun hatten, sollen auf diesem Weg lernen, wie aus single-threaded Software-Code Multithread-Anwendungen werden und welche Werkzeuge Intel hierfür bietet.</p>
<p>Die anvisierte Zielgruppe ist ziemlich eindeutig: Windows-Entwickler, die in C++ programmieren und dies möglicherweise in einer Visual-Studio-Umgebung tun. Anwendungsseitig sollen Entwickler angesprochen werden, die vorzugsweise eigene Programme in Sachen Bildbearbeitung, Signal Processing, Simulation, Medizintechnik, Gaming und Windows-Clustering programmieren.</p>
<p><span id="more-117"></span>Aber auch ein brandneues Tool wird in Barcelona ein wichtiges Thema sein: Mit <a title="Mehr Infos zum Beta-Programm des Intel Parallel Studio" href="http://www.intel.com/cd/software/products/asmo-na/eng/399359.htm" target="_blank">Intel Parallel Studio</a> wird es ab dem zweiten Quartal 2009 ein spezielles Plugin für Microsoft Visual Studio geben, das den Software-Programmierern dieser Welt dabei helfen soll, ihre C++-basierten Windows-Anwendungen zu parallelisieren und somit für den Multicore-Einsatz zu optimieren.</p>
<p><strong>Apropos:</strong> Aktuell sucht Intel Beta-Tester für sein Parallel Studio, für das sich interessierte Visual-Studio-Entwickler bewerben und so zu einer erfolgreichen Umsetzung des Plugins beitragen können.</p>
<p><strong>Liveblogging-Tipp:</strong> Wir werden mit Laptop und Videokamera ausgestattet den langen Weg nach Barcelona antreten und live über die interessantesten Vorträge berichten, spannende Interviews mit spannenden Menschen führen und natürlich die Intel-Tools ein wenig näher beleuchten. Am besten merken Sie sich den Termin schon mal vor und nehmen den Software Dev BLOG in ihre <a title="Software Dev BLOG per RSS-Feed abonnieren" href="http://www.software-dev-blog.de/feed/">RSS-Liste</a> auf. Damit Sie auch ja nichts verpassen &#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/intel-microsoft-teched-emea-developers-2008-preview/10/2008/&via=sw_devtwits&text=Intel @ Microsoft TechEd EMEA Developers 2008 Preview&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-microsoft-teched-emea-developers-2008-preview/10/2008/&via=sw_devtwits&text=Intel @ Microsoft TechEd EMEA Developers 2008 Preview&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-microsoft-teched-emea-developers-2008-preview/10/2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

