<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Optimiertes Multithreading bei Xeon-Prozessoren]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade dabei, eine große Anzahl an Messwerten (160.000 zurzeit) auszuwerten und einen Algorithmus zu finden, der mir die Abhängigkeit der Messwerte zu seinen Variablen (zurzeit 22) darstellt. Ihr könnt euch sicher vorstellen, dass dabei sehr viele Berechnungen durchzuführen sind, die theoretische Grundlage der Berechnung habe ich auch schon.<br />
Zur Verfügung stehen mir zwei Xeon-Prozessoren (Xeon 5680) mit insgesamt 12 Kernen, 24 Threads. Bisher habe ich proprietäre Software von HP benutzt, diese ist jedoch keineswegs performant, da sie nicht mit Multithreading umgehen kann. Und da kommt eben C++ ins Spiel. Die theoretischen Grundlagen hinter der Sprache kann ich, praktisch habe ich jedoch noch nicht so viel machen können.</p>
<p>Meine Frage: Wie lässt sich auf einfache Art und Weise Multithreading realisieren (Scientific Linux + boost-Bibliothek + gcc + Compiler-Optimierungen -&gt; ist das der richtige Weg?)? Welche Optimierungen bieten Compiler für die Xeon-Architektur an, wenn viele Berechnungen mit Kommazahlen ausgeführt werden?</p>
<p>Gruß, und danke fürs durchlesen!<br />
dommynik</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306071/optimiertes-multithreading-bei-xeon-prozessoren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 12:07:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306071.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Jul 2012 07:14:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Optimiertes Multithreading bei Xeon-Prozessoren on Tue, 17 Jul 2012 07:14:11 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade dabei, eine große Anzahl an Messwerten (160.000 zurzeit) auszuwerten und einen Algorithmus zu finden, der mir die Abhängigkeit der Messwerte zu seinen Variablen (zurzeit 22) darstellt. Ihr könnt euch sicher vorstellen, dass dabei sehr viele Berechnungen durchzuführen sind, die theoretische Grundlage der Berechnung habe ich auch schon.<br />
Zur Verfügung stehen mir zwei Xeon-Prozessoren (Xeon 5680) mit insgesamt 12 Kernen, 24 Threads. Bisher habe ich proprietäre Software von HP benutzt, diese ist jedoch keineswegs performant, da sie nicht mit Multithreading umgehen kann. Und da kommt eben C++ ins Spiel. Die theoretischen Grundlagen hinter der Sprache kann ich, praktisch habe ich jedoch noch nicht so viel machen können.</p>
<p>Meine Frage: Wie lässt sich auf einfache Art und Weise Multithreading realisieren (Scientific Linux + boost-Bibliothek + gcc + Compiler-Optimierungen -&gt; ist das der richtige Weg?)? Welche Optimierungen bieten Compiler für die Xeon-Architektur an, wenn viele Berechnungen mit Kommazahlen ausgeführt werden?</p>
<p>Gruß, und danke fürs durchlesen!<br />
dommynik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233373</guid><dc:creator><![CDATA[dommynik]]></dc:creator><pubDate>Tue, 17 Jul 2012 07:14:11 GMT</pubDate></item><item><title><![CDATA[Reply to Optimiertes Multithreading bei Xeon-Prozessoren on Tue, 17 Jul 2012 07:37:16 GMT]]></title><description><![CDATA[<p>Threads sollten recht easy sein wenn dir ein aktueller GCC zur Verfügung steht. Einfach std::thread/std::async nutzen. Lambdas, std::bind, Funktoren und Synchronisation sollten dir ja was sagen, wenn du die Theorie kannst. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Für genauere Vorschläge solltest du mal mehr oder weniger die Idee des Algorithmus zeigen, wie weit der parallelisierbar ist, wo du synchronisieren musst etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233375</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 17 Jul 2012 07:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to Optimiertes Multithreading bei Xeon-Prozessoren on Tue, 17 Jul 2012 14:38:18 GMT]]></title><description><![CDATA[<p>Manuell Threads zu benutzen ist zwar machbar, aber wohl die umständlichste und am wenigsten skalierbare Methode (wer weiß, ob jemand in 3 Jahren Teile deines Programms wiederverwenden möchte und dann 10 Prozessoren mit insgesamt 300 Kernen zur Verfügung hat?)</p>
<p>Da deine Beschreibung sich arg nach Data-Parrallelism anhört, wäre vielleicht OpenMP eine Überlegung wert, oder Bibliotheken die die Parallelisierung auf Basis von Tasks und Threadpools vereinfachen (z.B. Threading Building Blocks oder C++AMP). Diese Dinge sind auf den Skalen, die du uz bewältigen hast dann doch etwas besser zu handeln als die eher low-level Geschichten, die der aktuelle C++ Standard bietet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233526</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 17 Jul 2012 14:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Optimiertes Multithreading bei Xeon-Prozessoren on Tue, 17 Jul 2012 17:16:48 GMT]]></title><description><![CDATA[<p>dommynik schrieb:</p>
<blockquote>
<p>eine große Anzahl an Messwerten (160.000 zurzeit) auszuwerten und einen Algorithmus zu finden, der mir die Abhängigkeit der Messwerte zu seinen Variablen (zurzeit 22) darstellt.</p>
</blockquote>
<p>Was ist eigentlich dein Ziel ?<br />
Für deinen Anwendungsfall existieren garantiert schon C++-Bibiliotheken.<br />
Dann kannst du dir ggf. viel Aufwand sparen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233580</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 17 Jul 2012 17:16:48 GMT</pubDate></item><item><title><![CDATA[Reply to Optimiertes Multithreading bei Xeon-Prozessoren on Wed, 18 Jul 2012 11:11:48 GMT]]></title><description><![CDATA[<p>Naja,<br />
ich bin Praktikant im Entwicklungsbereich und habe ein Programm, eine Workstation, und die Sprache C++ gegeben bekommen. Die Berechnungsformeln sind keine bestimmten, mein Vorgesetzter versucht eben Sachen, und denkt sich eigene Algorithmen aus (oder andere Leute). In der Welt der Threads bin ich völlig hilflos noch, bisher habe ich gedacht, ich nehme etwas wie Boost, nutze dessen Möglichkeit für Threads und gut ist. Aber als Praktikant soll ich mich eben selbst in diese Welt eindenken.<br />
Der Algorithmus sucht im grunde genommen lokale Maxima und merkt sich diese, sobald eines gefunden wurde. Dann macht er sich wieder auf die Suche nach einem höheren. Ich bezweifle, dass es für solche speziellen Sachen Bibliotheken gibt.<br />
Die Daten können parallel bearbeitet werden, am Schluss müssen dann jedoch alle Berechnungen wieder zusammengeführt werden zu einem Wert. Ich werde mich mal in die parallele Datenberechnung einlesen, und mal nach OpenMP schauen, danke!</p>
<p>dommynik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233706</guid><dc:creator><![CDATA[dommynik]]></dc:creator><pubDate>Wed, 18 Jul 2012 11:11:48 GMT</pubDate></item></channel></rss>