<?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[Fehler bei boost::thread_group-Erstellung]]></title><description><![CDATA[<p>ich wollte mein neuronales netz parallelisieren und zwar mit boost::threads.<br />
ich bin mir nicht ganz sicher ob ich die boost-lib richtig benutze, aber ich bekomme bei folgendem beispiel den fehler:</p>
<pre><code>terminate called after throwing an instance of 'boost::thread_resource_error'
  what():  boost::thread_resource_error
</code></pre>
<pre><code class="language-cpp">void Net::RunForward() {
	for(unsigned int i = 1; i &lt; m_lLayers.size(); i++) {
		SimpleLayer *curLayer = m_lLayers[i].first;

		for(unsigned int j = 0; j &lt; curLayer-&gt;GetLayer().size(); j++) {
			//curLayer-&gt;GetLayer()[j]-&gt;CalcNeuronValue();

			Neuron *pNeuron = curLayer-&gt;GetLayer()[j];
			if(pNeuron != 0)
				m_Threads.create_thread(boost::bind(&amp;Neuron::CalcNeuronValue, pNeuron) );
		}
	}
}
</code></pre>
<p>die funktion läuft das netz von vorne nach hinten durch.<br />
die neuronen sind in schichten organisiert, und ich zähle jedes neuron in jeder schicht durch und rufe eine funktion auf, die dann eine summierung durchführt.<br />
der thread soll also die memberfunktion &quot;CalcNeuronValue&quot; von neuron &quot;pNeuron&quot; ausführen.<br />
ziel war es halt die komplette schicht parallel auszurechnen, anstatt für jedes neuron nacheinander, da die rechenoperationen je nach vorgängerschichtgröße recht lang werden können.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250944/fehler-bei-boost-thread_group-erstellung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 20:37:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250944.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Sep 2009 03:20:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler bei boost::thread_group-Erstellung on Sun, 27 Sep 2009 03:20:53 GMT]]></title><description><![CDATA[<p>ich wollte mein neuronales netz parallelisieren und zwar mit boost::threads.<br />
ich bin mir nicht ganz sicher ob ich die boost-lib richtig benutze, aber ich bekomme bei folgendem beispiel den fehler:</p>
<pre><code>terminate called after throwing an instance of 'boost::thread_resource_error'
  what():  boost::thread_resource_error
</code></pre>
<pre><code class="language-cpp">void Net::RunForward() {
	for(unsigned int i = 1; i &lt; m_lLayers.size(); i++) {
		SimpleLayer *curLayer = m_lLayers[i].first;

		for(unsigned int j = 0; j &lt; curLayer-&gt;GetLayer().size(); j++) {
			//curLayer-&gt;GetLayer()[j]-&gt;CalcNeuronValue();

			Neuron *pNeuron = curLayer-&gt;GetLayer()[j];
			if(pNeuron != 0)
				m_Threads.create_thread(boost::bind(&amp;Neuron::CalcNeuronValue, pNeuron) );
		}
	}
}
</code></pre>
<p>die funktion läuft das netz von vorne nach hinten durch.<br />
die neuronen sind in schichten organisiert, und ich zähle jedes neuron in jeder schicht durch und rufe eine funktion auf, die dann eine summierung durchführt.<br />
der thread soll also die memberfunktion &quot;CalcNeuronValue&quot; von neuron &quot;pNeuron&quot; ausführen.<br />
ziel war es halt die komplette schicht parallel auszurechnen, anstatt für jedes neuron nacheinander, da die rechenoperationen je nach vorgängerschichtgröße recht lang werden können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784779</guid><dc:creator><![CDATA[dgrat]]></dc:creator><pubDate>Sun, 27 Sep 2009 03:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei boost::thread_group-Erstellung on Sun, 27 Sep 2009 05:21:58 GMT]]></title><description><![CDATA[<p>dgrat schrieb:</p>
<blockquote>
<p>ziel war es halt die komplette schicht parallel auszurechnen, anstatt für jedes neuron nacheinander, da die rechenoperationen je nach vorgängerschichtgröße recht lang werden können.</p>
</blockquote>
<p>Warum? So ein NN hat doch normal nur 3-5 Schichten und pro Schicht nicht all zu viele Neuronen. Da braucht das Thread erstellen doch länger als das ausrechnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784782</guid><dc:creator><![CDATA[heystopwhatsthesond]]></dc:creator><pubDate>Sun, 27 Sep 2009 05:21:58 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei boost::thread_group-Erstellung on Sun, 27 Sep 2009 11:09:51 GMT]]></title><description><![CDATA[<p>mein netz hat 3 schichten und viele neuronen. pro neuron in derhidden existieren circa 6000 verbindungen pro eingabeschicht. und selbst wenn nicht, könnte ich circa jeweils 8 neuronen-operationen in einen thread packen, denn ich habe 100-500 neuronen in der verdeckten, da sonst der erkennungserfolg zurück geht. andererseits habe ich nicht nach hilfe zum neuronalem netz gefragt sondern zum threading.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784853</guid><dc:creator><![CDATA[dgrat]]></dc:creator><pubDate>Sun, 27 Sep 2009 11:09:51 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei boost::thread_group-Erstellung on Sun, 27 Sep 2009 12:31:05 GMT]]></title><description><![CDATA[<p>habe den fehler, bei zu vielen threads kommt dieser fehler, ich habe jetzt auf 8 parallele begrenzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784888</guid><dc:creator><![CDATA[dgrat]]></dc:creator><pubDate>Sun, 27 Sep 2009 12:31:05 GMT</pubDate></item></channel></rss>