<?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>Jason L. Froebe - Tech tips and How Tos for Fellow Techies &#187; hyperthreading</title>
	<atom:link href="http://froebe.net/blog/index.php/tag/hyperthreading/feed/" rel="self" type="application/rss+xml" />
	<link>http://froebe.net/blog</link>
	<description>Tips &#38; Tricks for Databases (Sybase, Oracle, MySQL, PostgreSQL, SQLite), Windows, Linux, Solaris, Perl, Java, Bash and so much much more</description>
	<lastBuildDate>Sat, 07 Jan 2012 22:12:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Multicore processors and Sybase ASE: Jeff Tallman</title>
		<link>http://froebe.net/blog/2008/07/07/multicore-processors-and-sybase-ase-jeff-tallman/</link>
		<comments>http://froebe.net/blog/2008/07/07/multicore-processors-and-sybase-ase-jeff-tallman/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 18:03:46 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[ASE]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[IBM DB2]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[CMT]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DBMS]]></category>
		<category><![CDATA[Floating Point Unit]]></category>
		<category><![CDATA[FPU]]></category>
		<category><![CDATA[hyperthreading]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[Jeff Tallman]]></category>
		<category><![CDATA[multicore processors]]></category>
		<category><![CDATA[SMT]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=545</guid>
		<description><![CDATA[When T V S Murty asked on the sybase-l mailing list about Sybase ASE, multicores and Sybase licensing, the discussion quickly drilled down to whether or not multicores were beneficial to Sybase ASE and database software in general. Jeff Tallman, of Sybase fame, described in detail how Sybase ASE and multicore processors relate to each [...]]]></description>
			<content:encoded><![CDATA[<p><span class="so_large">When T V S Murty asked on the sybase-l mailing list about <a href="http://my.isug.com/index.php?mo=fo&amp;op=st&amp;post=19608&amp;anc=p19608">Sybase ASE, multicores and Sybase licensing</a>, the discussion quickly drilled down to whether or not multicores were beneficial to Sybase ASE and database software in general. </span><span style="color: #000000;">Jeff Tallman, of Sybase fame, described in detail how Sybase ASE and multicore processors relate to each other.</span></p>
<p><span style="color: #3366ff;">From: Jeff Tallman    &lt;<span id="lw_1215451360_7" class="yshortcuts" style="border-bottom: 1px dashed #0066cc; cursor: pointer;">tallmanATsybaseZeDOTcom</span>&gt;<br />
To: <span id="lw_1215451360_8" class="yshortcuts" style="border-bottom: 1px dashed #0066cc; cursor: pointer;">sybase-l@lists.isug.com</span><br />
Subject: [sybase-l] &#8211; <a href="http://my.isug.com/index.php?mo=fo&amp;op=st&amp;post=19608&amp;anc=p19608#p19608">RE: Multicore processors and    ASE</a></span></p>
<blockquote><p><em>As always a lot depends on the application profile.   Something to consider for any multicore processor are factors:</em></p>
<ol>
<li><em>The number of <a title="Floating Point Unit" href="http://www.techterms.com/definition/fpu">FPU</a> units per chip (FPU = Floating Point Unit)<br />
</em></li>
<li><em>The number and capacity (in IOPS) of IO processors per chip</em></li>
<li><em>The type of chip multi-threading</em></li>
</ol>
<p><em>With respect to #1, most DBMS (at least the commercial ones) use statistics for query    optimization &#8211; so while the actual query processing doesn&#8217;t use a lot of FPU    instructions (assuming a minimum of float datatypes, etc.).  Each query    requires a pretty good smack of the FPU time to do the floating point math on    the stats.  The impact of this could be lessened by doing statement    caching or fully prepared statements&#8230;or other means at reducing the    optimizer load.</em></p>
<p><em>The second problem is one of capacity vs. bandwidth.   All network and    disk IO obviously need to use the IO processor.   With 4 dual core chips,    usually, you have 4 IO processors. </em></p>
<p><em>With a single chip with 8 cores, it    is likely that you will have only a single IO processor.   The single IO processor has 8 cores all making    requests.  The    number of IO operations per second it can handle becomes a real key factor in    the box&#8217;s scalability.<br />
</em></p>
<p><em>The chip multi-threading is an interesting issue as there are ~3 different    flavors today:</em></p>
<ol>
<li><em><a href="http://en.wikipedia.org/wiki/Hyperthreading">Intel&#8217;s Hyperthreading</a> (no longer implemented on XEON and I    don&#8217;t think implemented at all anymore)</em></li>
<li><em><a href="http://blogs.sun.com/allanp/entry/sun_s_cmt_goes_multi">Sun&#8217;s Chip Multi-Threading (CMT)</a></em></li>
<li><em><a href="http://en.wikipedia.org/wiki/Simultaneous_multithreading">IBM&#8217;s SMT</a></em></li>
</ol>
<p><em>Some instructions require multiple cycles to    complete due to they are waiting on a fetch from main memory or whatever.   The    thread/process of execution typically blocks in these cases, resulting in a    fairly idle core.   By making use of this idle time, CMT or SMT can    increase the throughput overall &#8212; ignoring HT as it was fairly ineffective at    this &#8211; and appears to have been dropped by Intel lately. </em></p>
<p><em>The question    that comes up is how do you manage the threading?  Do you do a form of    timeslicing (i.e. when you suspend on process that is blocked on a call, do    you let the one that replaced it run for a certain length of time or until it    blocks before returning back to the original) or do you do an interrupt    based/preemptive mechanism in which when the blocked call returns, that you    suspend the other thread?   Both have advantages and disadvantages, and do allow more engines than cores.</em></p>
<p><em>However,    it may also mean tuning ASE to be more reactive, such as reducing the    &#8216;runnable process search count&#8217;.  You also need to be careful that engines    running on CMT&#8217;s don&#8217;t get woken back up on another core (especially if the L2    cache is split between the cores) as well as other considerations.</em></p>
<p><em>A rule of thumb to think about is that if you have a multi-core CPU that    supports chip threading, if you have a lengthy list of SPIDs in a &#8216;runnable&#8217;    state, enabling extra engines on the threads will likely help.   If    you don&#8217;t &#8211; i.e. you are IO bound &#8211; that it probably won&#8217;t help.</em></p>
<p><em>Currently, Sun uses a timeslicing mechanism that is more along the lines of  ASE&#8217;s SPID management &#8211; and as a consequence, it shows scalability when the  various tasks do a lot of blocking calls such as fetches from main memory.  It does have the detrimental effect of only providing a percentage of cpu time to the ASE  engine (i.e. 25% when 4 threads per core).   The more parallelism is used within your application, such as higher numbers of concurrent users in ASE,  the more it can be distributed across the engines.</em></p>
<p><em>You  have to be careful as net engine affinity and short query&#8217;s (i.e. DML).  They can have  a negative impact, which may be controllable using engine groups.   Overall, a  cpu-intensive/cpu bound application can benefit from the Sun CMT  implementation.  An IO bound application does not.</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2008/07/07/multicore-processors-and-sybase-ase-jeff-tallman/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

