<?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"
	>

<channel>
	<title>Intel Software Network Blogs &#187; Financial Services Industry</title>
	<atom:link href="http://software.intel.com/en-us/blogs/category/financial-services-industry/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/en-us/blogs</link>
	<description></description>
	<pubDate>Fri, 06 Nov 2009 23:30:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Got Multicore Data Parallel Woes?</title>
		<link>http://software.intel.com/en-us/blogs/2009/10/09/got-multicore-data-parallel-woes/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/10/09/got-multicore-data-parallel-woes/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 22:22:45 +0000</pubDate>
		<dc:creator>Rita Turkowski (Intel)</dc:creator>
		
		<category><![CDATA[Cool Software]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[Intel® Software Network 2.0]]></category>

		<category><![CDATA[Media]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<category><![CDATA[Visual Computing]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/10/09/got-multicore-data-parallel-woes/</guid>
		<description><![CDATA[Sign up here: http://makebettercode.com/ct_tech/survey.
]]></description>
			<content:encoded><![CDATA[<p>Sign up here: <a href="http://makebettercode.com/ct_tech/survey">http://makebettercode.com/ct_tech/survey</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/10/09/got-multicore-data-parallel-woes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Application for Ct beta program now available on-line</title>
		<link>http://software.intel.com/en-us/blogs/2009/10/02/application-for-ct-beta-program-now-available-on-line/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/10/02/application-for-ct-beta-program-now-available-on-line/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 03:03:38 +0000</pubDate>
		<dc:creator>Rita Turkowski (Intel)</dc:creator>
		
		<category><![CDATA[Cool Software]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[Media]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<category><![CDATA[Visual Computing]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/10/02/application-for-ct-beta-program-now-available-on-line/</guid>
		<description><![CDATA[Hey, check out the newly updated Intel's Ct website. We've updated it so folks interested in the beta, coming out later this year, may apply for beta consideration online. Please visit the website to register. We are receiving and reviewing applicants now for potential inclusion in the Ct beta engagement program. Note that applying does not guarantee acceptance into [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="x-small;"><span style="10pt;">Hey, check out the newly updated <a href="http://software.intel.com/en-us/data-parallel">Intel's Ct website</a>. We've updated it so folks interested in the beta, coming out later this year, may apply for beta consideration online. Please visit the website to <a title="http://software.intel.com/en-us/data-parallel" href="http://software.intel.com/en-us/data-parallel"><span style="#800080;">register</span></a>. We are receiving and reviewing applicants now for potential inclusion in the Ct beta engagement program. Note that applying does not guarantee acceptance into the beta.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/10/02/application-for-ct-beta-program-now-available-on-line/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Welcome RapidMind!</title>
		<link>http://software.intel.com/en-us/blogs/2009/08/19/welcome-rapidmind/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/08/19/welcome-rapidmind/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 00:47:35 +0000</pubDate>
		<dc:creator>Rita Turkowski (Intel)</dc:creator>
		
		<category><![CDATA[Cool Software]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[Intel® Software Network 2.0]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/08/19/welcome-rapidmind/</guid>
		<description><![CDATA[Excited to have RapidMind parallelization experts on board at Intel and on our Ct team! 
Come and join many Intel parallelization experts at the Intel Developer Forum (IDF) September 22-24, 2009 in San Francisco, including folks from the RapidMind and Ct technology team. Hear more about our plans to work with Ct technology and RapidMind. There will be a class by Intel’s [...]]]></description>
			<content:encoded><![CDATA[<p><span style="black;"><span style="small;"><span style="Times New Roman;">Excited to have RapidMind parallelization experts on board at Intel and on our Ct team! </span></span></span></p>
<p><span style="black;"><span style="small;">Come and join many Intel parallelization experts at the </span><a href="http://www.intel.com/idf"><span style="small;">Intel Developer Forum (IDF)</span></a><span style="small;"> September 22-24, 2009 in </span><a href="http://en.wikipedia.org/wiki/San_Francisco"><span style="small;">San Francisco</span></a><span style="small;">, including folks from the </span><a href="http://rapidmind.com/"><span style="small;">RapidMind</span></a><span style="small;"> and </span><a href="http://intel.com/software/data_parallel"><span style="small;">Ct technology</span></a><span style="small;"> team. Hear more about our plans to work with </span><a href="http://intel.com/software/data_parallel"><span style="small;">Ct technology</span></a><span style="small;"> and </span><a href="http://rapidmind.com/"><span style="small;">RapidMind</span></a><span style="small;">. There will be a class by Intel’s Anwar Ghuloum and Amanda Sharp at </span><a href="http://www.intel.com/idf"><span style="small;">IDF</span></a><span style="small;"> on Ct, which will soon to be available in beta for you to try out yourself. Ct folks, including me, will also be at </span><a href="http://sc09.org/"><span style="small;">Supercomputing 2009</span></a><span style="small;"><span style="Times New Roman;">, where we will be hosting a Ct related BoF. If you’d like to be involved, please contact me here. Hopefully we’ll see you at these exciting events – your thoughts and feedback on our technology is always welcome!</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/08/19/welcome-rapidmind/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Visit Intel SW product marketing folks at SIGGRAPH</title>
		<link>http://software.intel.com/en-us/blogs/2009/07/29/visit-intel-sw-product-marketing-folks-at-siggraph/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/07/29/visit-intel-sw-product-marketing-folks-at-siggraph/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 21:26:40 +0000</pubDate>
		<dc:creator>Rita Turkowski (Intel)</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Cool Software]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<category><![CDATA[Visual Computing]]></category>

		<category><![CDATA[conferences]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[siggraph]]></category>

		<category><![CDATA[TBB]]></category>

		<category><![CDATA[threading]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/07/29/visit-intel-sw-product-marketing-folks-at-siggraph/</guid>
		<description><![CDATA[Hey, if you are going to be at SIGGRAPH in New Orleans next week, stop by the Intel booth and check out the TBB  (http://www.threadingbuildingblocks.org) demo station, where John McHugh and I will be demo-ing TBB in use by some of our key visual computing customers and I'll be (hmm, discreetly) showing a neat Flash demo of our [...]]]></description>
			<content:encoded><![CDATA[<p>Hey, if you are going to be at SIGGRAPH in New Orleans next week, stop by the Intel booth and check out the TBB  (<a href="http://www.threadingbuildingblocks.org">http://www.threadingbuildingblocks.org</a>) demo station, where John McHugh and I will be demo-ing TBB in use by some of our key visual computing customers and I'll be (hmm, discreetly) showing a neat Flash demo of our soon-to-be-beta data parallelization product along with a couple of early demos of it's usefulness. Hope to see you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/07/29/visit-intel-sw-product-marketing-folks-at-siggraph/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Live from New York! ... It's Clubhouse Parallel Universe on Teach Parallel!</title>
		<link>http://software.intel.com/en-us/blogs/2009/07/21/live-from-new-york-its-clubhouse-parallel-universe-on-teach-parallel/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/07/21/live-from-new-york-its-clubhouse-parallel-universe-on-teach-parallel/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 15:06:07 +0000</pubDate>
		<dc:creator>Amy Barton (Intel)</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<category><![CDATA[academic community]]></category>

		<category><![CDATA[Brooklyn Technical High School]]></category>

		<category><![CDATA[clubhouse parallel universe]]></category>

		<category><![CDATA[Intel Software Network]]></category>

		<category><![CDATA[ISNTV]]></category>

		<category><![CDATA[parallel programming]]></category>

		<category><![CDATA[Teach Parallel!]]></category>

		<category><![CDATA[thinkparallel]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/07/21/live-from-new-york-its-clubhouse-parallel-universe-on-teach-parallel/</guid>
		<description><![CDATA[Watch a special broadcast of Teach Parallel on Intel Software Network TV LIVE from a 3-day parallel programming boot camp with High School whiz kids.  Interviews with Jeffrey M. Birnbaum, Bank of America, and Randy Asher, Brooklyn Technical High School.]]></description>
			<content:encoded><![CDATA[<p>The Intel Academic Community is bringing 15 high school "whiz kids" to a technical bootcamp at <a href="http://bths.edu" target="_blank">Brooklyn Technical High School</a> to see if they are ready to "think parallel."</p>
<p><strong>Watch a special edition of <em>Teach Parallel</em> on Intel Software Network TV -- LIVE TUESDAY 7/21 at 11AM Pacific/2PM Eastern</strong><span style="normal;"> </span><span style="normal;"><span style="normal;">for interviews with Randy Asher, Principal of </span></span><a href="http://bths.edu" target="_blank"><span style="normal;"><span style="normal;">Brooklyn Technical High School</span></span></a><span style="normal;"><span style="normal;">, and Jeffrey M. Birnbaum, Managing Director, Global Head of Platform Solutions at </span></span><a href="http://www.bankofamerica.com/" target="_blank"><span style="normal;"><span style="normal;">Bank of America</span></span></a><span style="normal;"><span style="normal;">, live via webcam from New York.</span></span></p>
<p><a href="http://intel.com/software/tv" target="_blank"><strong>http://intel.com/software/tv</strong></a></p>
<p>As James Reinders posted last week, <a href="http://software.intel.com/en-us/blogs/2009/07/17/parallel-programming-is-fundamental-high-school-here-we-come/" target="_blank">Parallel Programming is fundamental, so  High School, here we come!</a></p>
<p>For more, <strong>read the full story, "</strong><a href="http://bit.ly/BTHSCPU" target="_blank"><strong>Are High School Whiz Kids Ready to 'Think Parallel?'</strong></a><strong>"</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/07/21/live-from-new-york-its-clubhouse-parallel-universe-on-teach-parallel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My work made a difference!</title>
		<link>http://software.intel.com/en-us/blogs/2009/06/26/my-work-made-a-difference/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/06/26/my-work-made-a-difference/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 23:31:56 +0000</pubDate>
		<dc:creator>Jeff Kataoka (Intel)</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[Intel SW Partner Program]]></category>

		<category><![CDATA[Intel® Software Network 2.0]]></category>

		<category><![CDATA[Manageability]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/06/26/my-work-made-a-difference/</guid>
		<description><![CDATA[The new iPhone sold a million units over its first weekend.  Facebook is so popular that it is now being used by businesses and adults, not just college students. Recently, Twitter has been one of the only methods of communication for getting out the news in certain world hot spots.  When I hear these things, I [...]]]></description>
			<content:encoded><![CDATA[<p>The new iPhone sold a million units over its first weekend.  Facebook is so popular that it is now being used by businesses and adults, not just college students. Recently, Twitter has been one of the only methods of communication for getting out the news in certain world hot spots.  When I hear these things, I think what a difference the software developers who created these solutions or innovations made.  They must feel great satisfaction with their work.  How about you?  Have you ever felt that your work has made a difference with people, business or the world?  If yes, how about sharing with us?</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/06/26/my-work-made-a-difference/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intel® Summary Statistics Library: how to bring your thoughts?</title>
		<link>http://software.intel.com/en-us/blogs/2009/05/19/intel-summary-statistics-library-how-to-bring-your-thoughts/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/05/19/intel-summary-statistics-library-how-to-bring-your-thoughts/#comments</comments>
		<pubDate>Tue, 19 May 2009 13:24:06 +0000</pubDate>
		<dc:creator>Dmitry Kabaev (Intel)</dc:creator>
		
		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[What If Software]]></category>

		<category><![CDATA[bio-engeneering]]></category>

		<category><![CDATA[feedback]]></category>

		<category><![CDATA[life sciences]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/05/19/intel-summary-statistics-library-how-to-bring-your-thoughts/</guid>
		<description><![CDATA[Today I had a look at calendar and found that one year of whatif life of Intel® Summary Statistics Library passed. During this year we, Intel® Summary Statistics Team, were able to do a lot of things:

Release two versions of the package
Extend the library with new features and algorithms including optimized functionality
Extend a set of [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Today I had a look at calendar and found that one year of whatif life of <a href="http://software.intel.com/en-us/articles/intel-summary-statistics-library">Intel® Summary Statistics Library</a> passed. During this year we, Intel® Summary Statistics Team, were able to do a lot of things:</span></span></p>
<ul style="0in;" type="disc">
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Release two versions of the package</span></span></li>
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Extend the library with new features and algorithms including optimized functionality</span></span></li>
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Extend a set of the library documentation with the Application Notes</span></span></li>
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Extend number of examples that demonstrate the usage of the library</span></span></li>
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Complete series of blogs that describe functionality and performance of the library </span></span></li>
</ul>
<p class="MsoNormal"><span style="Verdana;"><span style="Verdana;"> </span></span><span style="Verdana;"><span style="Verdana;">We design the library keeping in mind three simple ideas:</span></span></p>
<ul style="0in;" type="disc">
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Information volumes substantially raises and will keep raising in all or almost all segments of human activity</span></span></li>
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Necessity to quickly process information and make well found data based decisions is an integral part of business</span></span></li>
<li class="MsoNormal"><span style="Verdana;"><span style="Verdana;">Up-to-date hardware and parallel algorithms can connect those two aspects and simplify our life</span></span></li>
</ul>
<p class="MsoNormal"><span style="Verdana;"><span style="Verdana;">I believe that value of any product, directions for its development strongly depend on its usability in applications and its opportunity to address various problems.</span></span></p>
<p class="MsoNormal"><span style="Verdana;"><span style="Verdana;">I think we have reached the point where we need to look around and understand how well Intel® Summary Statistics Library implements those ideas.</span></span></p>
<p class="MsoNormal"><span style="Verdana;"><span style="Verdana;">To help us to understand how the library meets your expectations and requirements, to help us to align the tool with your needs I encourage answering 12 short questions available at</span></span><span style="Verdana;"><span style="Verdana;"><a title="http://intelsoftwareproductsurvey.com/survey/149719/266d/" href="http://intelsoftwareproductsurvey.com/survey/149719/266d/"><br />
http://intelsoftwareproductsurvey.com/survey/149719/266d/</a>.<br />
The feedback would take a couple of minutes; on the other hand, your response is critical to the success of our product and will help to drive the future direction of the Intel® Math Kernel Library.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/05/19/intel-summary-statistics-library-how-to-bring-your-thoughts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SunGard Risk Management application delivers record-breaking performance across a grid of 512-cores using Intel® Xeon® 5400 series processors</title>
		<link>http://software.intel.com/en-us/blogs/2009/02/26/sungard-risk-management-application-delivers-record-breaking-performance-across-a-grid-of-512-cores-using-intel-xeon-5400-series-processors/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/02/26/sungard-risk-management-application-delivers-record-breaking-performance-across-a-grid-of-512-cores-using-intel-xeon-5400-series-processors/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 20:00:39 +0000</pubDate>
		<dc:creator>George Raskulinec (Intel)</dc:creator>
		
		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/02/26/sungard-risk-management-application-delivers-record-breaking-performance-across-a-grid-of-512-cores-using-intel-xeon-5400-series-processors/</guid>
		<description><![CDATA[

Hi,
Last year SunGard, Microsoft, DataSynapse and Intel collaborated on a 512 core test at Intel’s world class CRT Lab in DuPont, WA. SunGard’s industry leading Asset and Liability Management solution, Ambit BancWare ALM, demonstrated the ability to complete a 20,000 path simulation in less than 5 hours. That’s "game-changing" and highlights the world-class performance of Intel® Xeon® hardware platforms. [...]]]></description>
			<content:encoded><![CDATA[<div></div>
<p><span style="&quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;;"></p>
<p style="14.25pt;"><span style="&quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;;">Hi,</span></p>
<p style="14.25pt;"><span style="&quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;;">Last year SunGard, Microsoft, DataSynapse and Intel collaborated on a 512 core test at Intel’s world class CRT Lab in DuPont, WA. SunGard’s industry leading Asset and Liability Management solution, Ambit BancWare ALM, demonstrated the ability <span style="&quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;;">to complete a 20,000 path simulation in less than 5 hours. That’s "game-changing" and highlights the world-class performance of Intel® Xeon® hardware platforms. For more information please refer to the following Microsoft case study: <span style="black;"><a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000003628">http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000003628</a></span></span></span></p>
<p style="14.25pt;"><span style="&quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;;">Thanks,</span></p>
<p style="14.25pt;"><span style="&quot;Lucida Sans Unicode&quot;,&quot;sans-serif&quot;;">George</span></p>
<p style="14.25pt;"> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></p>
<p style="14.25pt;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/02/26/sungard-risk-management-application-delivers-record-breaking-performance-across-a-grid-of-512-cores-using-intel-xeon-5400-series-processors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Scaling Performance Forward – Why You Should Care.</title>
		<link>http://software.intel.com/en-us/blogs/2009/02/04/scaling-performance-forward-why-you-should-care/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/02/04/scaling-performance-forward-why-you-should-care/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 16:19:55 +0000</pubDate>
		<dc:creator>Wesley Shimanek (Intel)</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Intel SW Partner Program]]></category>

		<category><![CDATA[Intel® Software Network 2.0]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/02/04/scaling-performance-forward-why-you-should-care/</guid>
		<description><![CDATA[By:	Wes Shimanek, Strategic Marketing Manager, Technical Computing, Intel Corporation
Nash Palaniswamy PhD, Strategic Marketing Manager, Accelerated Computing, Intel Corporation
The need to write scalable applications has been important for programmers in the HPC community for years. Now, with the proliferation of multi/many-core processors and the availability of graphics adapters or data parallel accelerators with many ALU’s, scalability [...]]]></description>
			<content:encoded><![CDATA[<p>By:	Wes Shimanek, Strategic Marketing Manager, Technical Computing, Intel Corporation<br />
Nash Palaniswamy PhD, Strategic Marketing Manager, Accelerated Computing, Intel Corporation</p>
<p>The need to write scalable applications has been important for programmers in the HPC community for years. Now, with the proliferation of multi/many-core processors and the availability of graphics adapters or data parallel accelerators with many ALU’s, scalability is a top priority for many programmers. But, as Andrew S. Tanenbaum stated at the USENIX ’08 conference, “Sequential programming is really hard” … the difficulty is “parallel programming is a step beyond that.”  </p>
<p>So parallel programming is hard.  Why would you want to do it more than once?  That is where the idea of Intel’s Scaling Performance Forward idea comes from.  </p>
<p>What is Scaling Performance Forward From Intel?  </p>
<p>* It is using standards based tools to create applications that scale on both multi and many core architectures.  This approach can provide a level of future proofing your software code.</p>
<p>* It is about writing software within a single software development environment and one source implementation, and in some cases, one binary, that, with the power of Intel software development tools, will scale-forward performance to future Intel platforms.</p>
<p>* It’s about using tools from Intel that can help you scale-forward performance to future platforms without requiring a massive rebuild – just drop-in a new runtime that is optimized for the new platform to experience the improvement (akin to the printer/display driver model, buy a new printer/display, install the respective driver, and your system enjoys improved benefits).</p>
<p>* It is about enabling an application to run on the appropriate or available architecture that is capable of delivering results in less total time than before.  </p>
<p><strong>Caveat Emptor</strong><br />
Intel’s platform roadmap supports scaling performance forward, but wildly different architectures with ALU’s may cause scaling forward to break-down.</p>
<p>I happen to agree with Andrew Tanenbaum – parallel programming is step beyond sequential programming.  Understanding where, when and how to introduce parallelism into your software is always complicated and there are many ways to accomplish this.  At Intel, we provide you with a complete set of integrated software tools that help you:<br />
•Gain insight to where your best opportunities to introduce parallelism are<br />
•Offer you proven methods to introduce parallelism and<br />
•Increase your confidence with respect to eliminating race conditions and other circumstances that can inhibit your success in developing parallel software.  </p>
<p>Finally we also have tools that can quickly and efficiently help you optimize your application performance after you have introduced parallelism.  Are these tools easy to use?  I am biased, but writing parallel software is hard to do, so making the tools easy to use is paramount.</p>
<p>Start work now to scaling your performance forward.  We are there for you with tools that let you scale forward today.  And we are leading the charge at the cutting edge of parallel computing research to produce even better technologies for the future.</p>
<p>To learn more about these software development tools and join the largest communities of parallel software developers go to http://intel.com/software/products.</p>
<p>One more comment and the subject of the next blog --- remember it is really not about kernel performance it is about total application performance.  </p>
<p>When looking to parallelize your software make sure the return on your time spent parallelizing will influence the total application performance.  </p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/02/04/scaling-performance-forward-why-you-should-care/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intel® Summary Statistics Library: how to compute quantiles for streaming data?</title>
		<link>http://software.intel.com/en-us/blogs/2009/01/28/intel-summary-statistics-library-how-to-compute-quantiles-for-streaming-data/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/01/28/intel-summary-statistics-library-how-to-compute-quantiles-for-streaming-data/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 08:07:58 +0000</pubDate>
		<dc:creator>Dmitry Kabaev (Intel)</dc:creator>
		
		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[What If Software]]></category>

		<category><![CDATA[bio-engeneering]]></category>

		<category><![CDATA[covariance matrix]]></category>

		<category><![CDATA[decile]]></category>

		<category><![CDATA[estimation]]></category>

		<category><![CDATA[life sciences]]></category>

		<category><![CDATA[moments]]></category>

		<category><![CDATA[percentile]]></category>

		<category><![CDATA[statistics]]></category>

		<category><![CDATA[streaming quantiles]]></category>

		<category><![CDATA[summary statistics]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/01/28/intel-summary-statistics-library-how-to-compute-quantiles-for-streaming-data/</guid>
		<description><![CDATA[Algorithms of Intel® Summary Statistics Library provide support for huge datasets which can not fit into memory of a computer. Earlier I described how analysis of the dataset which is available in blocks/chunks can be done for case of statistical moments. The Update to Intel® Summary Statistics Library 1.0 which was recently released contains the [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="auto;"><span style="Verdana;">Algorithms of <a href="http://software.intel.com/en-us/articles/intel-summary-statistics-library">Intel® Summary Statistics Library</a> provide support for huge datasets which can not fit into memory of a computer. <a href="http://software.intel.com/en-us/blogs/2008/08/22/intel-summary-statistics-library-how-to-process-data-in-chunks/">Earlier</a> I described how analysis of the dataset which is available in blocks/chunks can be done for case of statistical moments. The Update to Intel® Summary Statistics Library 1.0 which was recently released contains the algorithm for computations of quantiles, case of streaming data. Let me have a closer look at the opportunities that are possible with this feature.</span><span style="Verdana;"> </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">The theory and properties of this algorithm are described in [1]. In a nutshell, this method allows getting eps-approximate quantile (that is, the element in the dataset whose rank is within <em>[r-eps*n, r+esp*n]</em> interval for user-provided error <em>eps</em>, size of dataset n and any rank<em> r=1,…,n</em>) for price of one pass over the dataset. Another important aspect of the algorithm is in general case absence of the requirement to know the total size of the dataset in advance.</span><span style="Verdana;"> </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">To understand how the algorithm works, I developed a simple application. As usual, it passes through four basic important stages: creation of the task, edition of necessary task parameters, getting stat estimates, and de-allocation of the resources. I already described this model <a href="http://software.intel.com/en-us/blogs/2008/08/13/intel-summary-statistics-library-several-estimates-at-one-stroke/">here</a> and now demonstrate usage of the editor and computation of the estimate.</span><span style="Verdana;"> </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">For goals of my experiment I set dimension of the task <em>p</em> to <em>1</em> and chose total number of observations <em>n=10,000,000</em>. The dataset “arrives” in blocks of <em>10,000</em> elements each. My nearest task is to compute deciles with pre-defined error <em>eps = </em></span><span style="yes;"><em>0.00001</em> (that is, I expect to get elements as decile estimates whose rank deviate from the “accurate” one by no more than <em>100</em> positions).</span><span style="Verdana;"> </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">The library contains special editor for this algorithm:</span><span style="Verdana;"> </span></p>
<blockquote>
<p class="MsoNormal" style="none;"><span style="yes;">status =<span style="yes;">  </span>vsldSSEditStreamQuantiles </span><span style="yes;">( task, &amp;quant_order_n, quant_order, quantiles, &amp;params_n, &amp;params );</span></p>
</blockquote>
<p class="MsoNormal" style="auto;"><span style="Verdana;">Array </span><span style="yes;">quant_order</span><span style="Verdana;"> is initialized with order of quantiles: <em>0.1, 0.2, …, 0.9</em>; total number of quantiles I would like to compute is </span><span style="yes;"><em>quant_order_n=9</em>.</span><span style="Verdana;"> Results of the computations will be placed into array </span><span style="yes;">quantiles.</span><span style="Verdana;"> Finally, the algorithm for computation of streaming quantiles accepts array of parameters. It contains one element, user-defined error <em>eps</em> which is </span><span style="yes;"><em>0.00001</em> in my case. To initialize size of array which contains parameters of the algorithm I use the macro defined in the library: </span><span style="yes;"><em>params_n = VSL_SS_STREAM_QUANTILES_ZW_PARAMS_N</em>.</span></p>
<p class="MsoNormal" style="auto;"><span style="Verdana;">The loop for computation of the deciles is as follows:</span></p>
<blockquote>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">for ( block_index = 0; block_index &lt; max_block_num; block_index++ )</span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">{</span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">// Get the next data block of size block_n</span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">…</span></p>
<p class="MsoNormal" style="-2.25in;"><span style="yes;">status = vsldSSCompute( task, VSL_SS_STREAM_QUANTILES,<span style="yes;">  </span>VSL_SS_STREAM_QUANTILES_ZW_METHOD );</span></p>
<p class="MsoNormal" style="-2.25in;"><span style="&quot;Courier New&quot;;">// Process computation results</span></p>
<p class="MsoNormal" style="-2.25in;"><span style="&quot;Courier New&quot;;">…</span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">}</span></p>
</blockquote>
<p class="MsoNormal" style="auto;"><span style="Verdana;">Immediately after the processing of the next block I get intermediate estimates of deciles. In my case (my dataset contains Gaussian numbers with mean equal to <em>0</em> and variance <em>1</em>) I have the sequence of the estimates:</span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">Block<span style="yes;">   </span>Streaming deciles:</span></p>
<blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="AR-SA;">index<span style="yes;">    </span><span style="yes;">     </span><span style="yes;"> </span>D<sub>1</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>2</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>3</sub><span style="yes;">        </span><span style="yes;">   </span>D<sub>4</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>5</sub><span style="yes;">       </span><span style="yes;">   </span>D<sub>6</sub><span style="yes;">     </span><span style="yes;">  </span><span style="yes;"> </span><span style="yes;"> </span><span style="yes;"> </span>D<sub>7</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>8</sub><span style="yes;">     </span><span style="yes;">   </span><span style="yes;">  </span>D<sub>9</sub></span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">1<span style="yes;">         </span>-1.267162 -0.844286 -0.525791 -0.266775 -0.011528 0.252491 0.539124 0.849691 1.269578 </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">2<span style="yes;">         </span>-1.288032 -0.847845 -0.537461 -0.276688 -0.019232 0.240052 0.513117 0.832769 1.269036 </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">3<span style="yes;">         </span>-1.284862 -0.838628 -0.526169 -0.265614 -0.011068 0.242837 0.516336 0.836675 1.270469</span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">…</span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">…</span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">998<span style="yes;">     </span>-1.281560 -0.841417 -0.524175 -0.253100 <span style="yes;"> </span>0.000917 0.253695 0.524858 0.841297 1.281417 </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">999<span style="yes;">     </span>-1.281570 -0.841419 -0.524176 -0.253106 <span style="yes;"> </span>0.000914 0.253691 0.524859 0.841312 1.281418 </span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">1000<span style="yes;">   </span>-1.281543 -0.841419 -0.524180 -0.253124 <span style="yes;"> </span>0.000888 0.253677 0.524839 0.841297 1.281397</span></p>
</blockquote>
<p class="MsoNormal" style="auto;"><span style="Verdana;">Well, what if I do not need to know intermediate estimate of quantiles, and my goal - the estimate for the whole dataset? In this case the library gives me opportunity to use so called “Fast Mode” which allows me just to update the library internal data structures without actual computation of the intermediate estimates.<span style="yes;">   </span></span></p>
<blockquote>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">for ( block_index = 0; block_index &lt; max_block_num; block_index++ )</span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">{</span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">// Get the next data block of size block_n</span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">…</span></p>
<p class="MsoNormal" style="-2.25in;"><span style="yes;">status = vsldSSCompute( task, VSL_SS_STREAM_QUANTILES_FMODE,<span style="yes;">  </span>VSL_SS_STREAM_QUANTILES_ZW_METHOD );</span><span style="&quot;Courier New&quot;;">        </span></p>
<p class="MsoNormal" style="justify;"><span style="&quot;Courier New&quot;;">}</span><span style="'Courier New';"> </span></p>
</blockquote>
<p class="MsoNormal" style="justify;"><span style="'Courier New';">As soon as this loop completes I set </span><span style="&quot;Courier New&quot;;"><em>block_n</em></span><span style="'Courier New';"> variable to zero (please, make sure that this variable was registered in the library during creation of the task or by means of the suitable editor) and call Compute procedure to get the estimates:</span><span style="'Courier New';"> </span></p>
<blockquote>
<p class="MsoNormal" style="none;"><span style="yes;">block_n = 0;</span></p>
<p class="MsoNormal" style="none;"><span style="yes;">status = vsldSSCompute( task, VSL_SS_STREAM_QUANTILES, VSL_SS_STREAM_QUANTILES_ZW_METHOD );</span><span style="Verdana;"> </span></p>
</blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;">The result of this experiment is identical to the last line of the previous table:</span><span style="Verdana;"> </span></p>
<blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;">Streaming deciles:</span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">     </span><span style="yes;">   </span>D<sub>1</sub><span style="yes;">        </span><span style="yes;">    </span>D<sub>2</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>3</sub><span style="yes;">        </span><span style="yes;"> </span><span style="yes;">  </span>D<sub>4</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>5</sub><span style="yes;">       </span><span style="yes;">   </span>D<sub>6</sub><span style="yes;">     </span><span style="yes;">  </span><span style="yes;"> </span><span style="yes;"> </span><span style="yes;"> </span>D<sub>7</sub><span style="yes;">      </span><span style="yes;">    </span>D<sub>8</sub><span style="yes;">      </span><span style="yes;">  </span><span style="yes;">  </span>D<sub>9</sub><span style="yes;">      </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">-1.281543 -0.841419 -0.524180 -0.253124 0.000888 0.253677 0.524839 0.841297 1.281397</span></p>
</blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;"> </span><span style="Verdana;">Finally, I should check the accuracy of the estimates. For this reason I compute “accurate” deciles for the same dataset using the algorithm in the library intended for processing of in-memory datasets. The algorithm can return order statistics as well. Its output turned out to be as follows:</span><span style="Verdana;"> </span></p>
<blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;">“Accurate” deciles:</span></p>
<p><span style="Verdana;"><span style="yes;"><span style="Verdana;"><span style="yes;">     </span><span style="yes;">   </span>D<sub>1</sub><span style="yes;">        </span><span style="yes;">    </span>D<sub>2</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>3</sub><span style="yes;">        </span><span style="yes;"> </span><span style="yes;">  </span>D<sub>4</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>5</sub><span style="yes;">       </span><span style="yes;">   </span>D<sub>6</sub><span style="yes;">     </span><span style="yes;">  </span><span style="yes;"> </span><span style="yes;"> </span><span style="yes;"> </span>D<sub>7</sub><span style="yes;">      </span><span style="yes;">    </span>D<sub>8</sub><span style="yes;">      </span><span style="yes;">  </span><span style="yes;">  </span>D<sub>9</sub></span></span></span></p>
<p><span style="Verdana;"><span style="yes;"> </span>-1.281545 -0.841421 -0.524179 -0.253124 0.000889 0.253675 0.524842 0.841302 1.281399</span><span style="Verdana;"> </span> </p></blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;">This is not enough, now I should compute maximal difference between ranks of “in-memory” and “out-of-memory” deciles. As you remember it should not be bigger than <em>100</em>:</span><span style="Verdana;"> </span></p>
<blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;">Rank difference</span><span style="Verdana;">  </span>   </p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">   </span><span style="yes;"> </span>D<sub>1</sub><span style="yes;">        </span><span style="yes;">    </span>D<sub>2</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>3</sub><span style="yes;">        </span><span style="yes;"> </span><span style="yes;">  </span>D<sub>4</sub><span style="yes;">       </span><span style="yes;">    </span>D<sub>5</sub><span style="yes;">       </span><span style="yes;">   </span>D<sub>6</sub><span style="yes;">     </span><span style="yes;">  </span><span style="yes;"> </span><span style="yes;"> </span><span style="yes;"> </span>D<sub>7</sub><span style="yes;">      </span><span style="yes;">    </span>D<sub>8</sub><span style="yes;">      </span><span style="yes;">  </span><span style="yes;">   </span>D<sub>9</sub><span style="yes;"> </span></span> </p>
<p>    4           <span style="yes;">   </span>5            <span style="yes;">  </span>3<span style="yes;">             </span>1         <span style="yes;">    </span>3             7            8             7           <span style="yes;">  </span>4</p></blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;"> </span><span style="Verdana;">So, I’m absolutely satisfied with these estimates. </span><span style="Verdana;"> </span></p>
<p class="MsoNormal" style="none;"><strong><span style="Verdana;">References</span></strong></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">[1]<span style="yes;">  </span>Q. Zhang and W. Wang. </span><span style="CMBX12;">A Fast Algorithm for Approximate Quantiles in High Speed Data Streams. SSDBM, p.29, </span><span style="Verdana;">19th International Conference on Scientific and Statistical Database Management (SSDBM 2007), 2007.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/01/28/intel-summary-statistics-library-how-to-compute-quantiles-for-streaming-data/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intel® Summary Statistics Library: how to deal with missing observations?</title>
		<link>http://software.intel.com/en-us/blogs/2009/01/21/intel-summary-statistics-library-how-to-deal-with-missing-observations/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/01/21/intel-summary-statistics-library-how-to-deal-with-missing-observations/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 12:58:03 +0000</pubDate>
		<dc:creator>Dmitry Kabaev (Intel)</dc:creator>
		
		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[What If Software]]></category>

		<category><![CDATA[bio-engeneering]]></category>

		<category><![CDATA[covariance matrix]]></category>

		<category><![CDATA[decile]]></category>

		<category><![CDATA[estimation]]></category>

		<category><![CDATA[life sciences]]></category>

		<category><![CDATA[moments]]></category>

		<category><![CDATA[percentile]]></category>

		<category><![CDATA[statistics]]></category>

		<category><![CDATA[streaming quantiles]]></category>

		<category><![CDATA[summary statistics]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/01/21/intel-summary-statistics-library-how-to-deal-with-missing-observations/</guid>
		<description><![CDATA[Real life datasets can have missing values. Sociological surveys and measurement of complex biological systems are two examples where the researcher can arrive at the point in which he should do something with missing observations. One can also treat outliers in datasets as samples which are also lost. Intel® Summary Statistics Library already contains functionality [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="auto;"><span style="Verdana;">Real life datasets can have missing values. Sociological surveys and measurement of complex biological systems are two examples where the researcher can arrive at the point in which he should do something with missing observations. One can also treat outliers in datasets as samples which are also lost. <a href="http://software.intel.com/en-us/articles/intel-summary-statistics-library">Intel® Summary Statistics Library</a> already contains functionality to detect outliers or get robust estimates in presence of “suspicious” observations. In my previous posts I described how to use those algorithms. Now I’d like to tell about other functionality, solution for dealing with missing values which is part of Intel® Summary Statistics Library.<span style="yes;">  </span></span></p>
<p class="MsoNormal" style="auto;"><span style="Verdana;">The method for accurate processing of the datasets with missing points is based on the approach in [1]. Expectation-Maximization (EM) and Data Augmentation (DA) algorithms are integral components of this solution (let me call it EMDA solution). Output of the algorithm is m sets of simulated missing points which can be imputed into dataset, thus, producing m complete data copies. For each dataset one can compute a stat estimate of his interest; the final estimate is a combination of these m estimates. </span></p>
<p class="MsoNormal" style="auto;"><span style="Verdana;">The usage model for EMDA method is similar to that for other algorithms of the library and described <a href="http://software.intel.com/en-us/blogs/2008/08/13/intel-summary-statistics-library-several-estimates-at-one-stroke/">here</a>: creation of the task, editing its parameters, computing, and de-allocation of the resources. I show how to pass parameters of the EMDA method into the library and to call the Compute routine. <span style="yes;"> </span></span></p>
<p><span style="AR-SA;">EM algorithm does </span><span style="yes;"><em>em_iter_num</em></span><span style="AR-SA;"> iterations to compute an initial estimate for mean and covariance which are then used to start DA algorithm. EM algorithm can terminate earlier if given accuracy </span><span style="yes;"><em>em_accuracy</em></span><span style="AR-SA;"> is achieved. In its turn DA algorithm iterates </span><span style="yes;"><em>da_iter_num</em> </span><span style="yes;">times. It also uses Gaussian random numbers undeneath. For this reason Intel® Summary Statistics Library uses Vector Statistical Library (VSL) component of Intel® Math Kernel Library. </span><span style="yes;"><em>BRNG</em>, <em>SEED</em>, </span><span style="yes;">and </span><span style="yes;"><em>METHOD</em></span><span style="yes;"> are the parameters used to initialize VSL generators. Values of the parameters should follow VSL requirements. The EMDA algorithm also requires number of missing values </span><span style="yes;"><em>missing_value_num</em></span><span style="yes;">. To compute it I pre-process the dataset and also mark missing values using macro defined in the library </span><span style="AR-SA;"><em>VSL_SS_DNAN</em> </span><span style="yes;">(if I work in single precision floating point arithmetic I use </span><span style="AR-SA;"><em>VSL_SS_SNAN</em></span><span style="yes;"> macro). Parameters of the algorithm are passed into the library as the array:</span> </p>
<blockquote>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>em_iter_num<span style="yes">       </span>= 10;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>da_iter_num<span style="yes">        </span>= 5;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>em_accuracy<span style="yes">       </span>= 0.001;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>copy_num<span style="yes">           </span>= m; </span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>miss_value_num<span style="yes">   </span>= miss_num;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>brng<span style="yes">                     </span>= BRNG;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>seed<span style="yes">                     </span>= SEED;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>method<span style="yes">                </span>= METHOD;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"> </span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[0] = em_iter_num;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[1] = da_iter_num;<span style="yes">         </span></span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[2] = em_accuracy;<span style="yes">        </span></span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[3] = copy_num;<span style="yes">           </span></span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[4] = missing_value_num;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[5] = brng;</span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[6] = seed;<span style="yes">              </span></span></p>
<p class="MsoNormal" style="none"><span style="yes;"><span style="yes">    </span>mi_method_params[7] = method;</span> </p>
</blockquote>
<p class="MsoNormal" style="auto"><span style="Verdana;">Editor for EMDA algorithm accepts set of parameters:</span></p>
<blockquote>
<p class="MsoNormal" style="auto"><span style="yes;">errcode=vsldSSEditMissingValues(task, &amp;mi_method_params_n, mi_method_params, &amp;initial_estimates_n, initial_estimates, &amp;prior_n, prior, &amp;simulated_missing_values_n, simulated_missing_values, &amp;estimates_n, estimates);</span></p>
</blockquote>
<p class="MsoNormal" style="auto"><span style="Verdana;">Array </span><span style="yes;"><em>mi_method_params</em> </span><span style="yes;">i</span><span style="Verdana;">s described above. Array of initial estimates </span><span style="'Courier New';"><em>initial_estimates</em></span><span style="Verdana;"> is used to start EM algorithm; its first <em>p</em> positions are occupied with vector of mean and the rest </span><span style="'Courier New';"><em>p*(p+1)/2</em></span><span style="Verdana;"> entries hold upper-triangular part of variance-covariance matrix (<em>p</em> is dimension of the task). Array </span><span style="yes;"><em>prior</em></span><span style="Verdana;"> is intended to hold prior parameters for EMDA algorithm; current version of the library does not support user-defined priors, and default values are used. Sets of simulated missing points will be returned in array </span><span style="'Courier New';"><em>simulated_missing_values</em></span><span style="Verdana;">, in total </span><span style="'Courier New';"><em>m x <span style="yes">missing_value_num </span></em></span><span style="Verdana;"><em>values</em>. Missing values are packed one by one, first all missing points for 1<sup>st</sup> variable of random vector, then missing values for 2<sup>nd</sup> variable, and so forth. To estimate convergence of DA algorithm one passes array </span><span style="yes;"><em>estimates</em></span><span style="Verdana;"> which will hold mean/covariance for all iterations and all sets of simulated missing points, in total </span><em><span style="italic;">m</span><span style="'Courier New';"> x <span style="italic">da</span>_<span style="italic">iter</span>_<span style="italic">num x</span> ( <span style="italic">p </span>+ 0.5 x (<span style="italic">p</span><sup>2</sup> + <span style="italic">p</span>) )</span></em><span style="Verdana;">. Each set of estimates is packed as above: first <em>p</em> positions are intended for mean, and the rest </span><span style="'Courier New';"><em>0.5 x (<span style="italic">p</span><sup>2</sup> + <span style="italic">p</span>)</em></span><span style="Verdana;"> entries hold upper-triangular part of the covariance matrix.</span></p>
<p class="MsoNormal" style="auto"><span style="Verdana;">Finally, EMDA algorithm is run using </span><span style="'Courier New';">Compute</span><span style="Verdana;"> routine of the library:</span></p>
<blockquote>
<p class="MsoNormal" style="none"><span style="yes;">errcode=vsldSSCompute(task,VSL_SS_MISSING_VALUES,SL_SS_MULTIPLE_IMPUTATION);</span></p>
</blockquote>
<p class="MsoNormal" style="auto"><span style="Verdana;">To have an idea how this solution works I created the task with dimension <em>p = 10</em> and number of observations <em>n = 10,000</em>. The dataset is generated from multivariate Gaussian distribution with zero mean and covariance matrix which holds 1 on the main diagonal and <em>0.05</em> in the rest entries of the matrix. Ratio of missing values in my dataset is 10%; each observation may have one lost point in any position. I’m going to generate<em> m=100</em> sets of simulated lost points. Start “point” for EM algorithm is vector of zero means and identity covariance matrix; pointer to array </span><span style="yes;"><em>prior</em></span><span style="Verdana;"> is set to <em>0</em> (size of this array </span><span style="yes;">prior_n </span><span style="Verdana;">is also <em>0</em>).</span></p>
<p class="MsoNormal" style="auto"><span style="Verdana;">First, I did trial run of the algorithm with </span><span style="italic;"><em>da</em></span><span style="'Courier New';"><em>_<span style="italic">iter</span>_</em><span style="italic"><em>num = 10</em> </span></span><span style="Verdana;">and analyzed estimates in array </span><span style="yes;"><em>estimates</em></span><span style="Verdana;">. It turned out that number of iterations for DA algorithm can be decreased to <em>5</em>. I then simulated <em>100</em> sets of lost values, imputed simulated values in the dataset and formed 100 complete arrays. For each complete dataset I computed means and variance using the algorithms of Intel® Summary Statistics Library, in total <em>100 </em>sets of estimates for mean and covariance:</span> </p>
<blockquote>
<p class="MsoNormal" style="none"><span style="'Courier New';">Set:<span style="yes">           </span>Mean:<span style="yes">                                 </span></span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';"><span style="yes">    </span>1<span style="yes">   </span><span style="yes">      </span>0.013687 <span style="yes"> </span>0.005529 <span style="yes"> </span>0.004011 ... <span style="yes"> </span>0.008066</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';"><span style="yes">    </span>2<span style="yes">   </span><span style="yes">      </span>0.012054 <span style="yes"> </span>0.003741 <span style="yes"> </span>0.006907 ... <span style="yes"> </span>0.003721</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';"><span style="yes">    </span>3<span style="yes">   </span><span style="yes">      </span>0.013236 <span style="yes"> </span>0.008314 <span style="yes"> </span>0.008033 ... <span style="yes"> </span>0.011987</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';"><span style="yes">  </span>...<span style="yes">                                            </span></span><span style="'Courier New';"><span style="yes">                                                   </span></span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';"><span style="yes">   </span>99<span style="yes">   </span><span style="yes">     </span>0.013350 <span style="yes"> </span>0.012816 <span style="yes"> </span>0.012942 ... <span style="yes"> </span>0.004076</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';"><span style="yes">  </span>100<span style="yes">   </span><span style="yes">    </span>0.014677 <span style="yes"> </span>0.011909 <span style="yes"> </span>0.005399 ... <span style="yes"> </span>0.006457</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';">___________________________________________________</span><span style="'Courier New';"><span style="yes">                                                   </span></span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';">Average<span style="yes">  </span>0.012353<span style="yes">  </span>0.005676<span style="yes">  </span>0.007586 ...<span style="yes">  </span>0.006004</span><span style="Verdana;"> </span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="none;"><span style="Verdana;">Set:<span style="yes;">        </span>Variance:<span style="yes;">                             </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">    </span>1<span style="yes;">        </span>0.989609  0.993073  1.007031 ... 1.000655<span style="yes;">    </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">    </span>2<span style="yes;">        </span>0.994033  0.986132  0.997705 ... 1.003134<span style="yes;">    </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">    </span>3<span style="yes;">        </span>1.003835  0.991947  0.997933 ... 0.997069<span style="yes;">    </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">   </span>...<span style="yes;">                                             </span></span><span style="Verdana;"><span style="yes;">                                                   </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">    </span>99<span style="yes;">      </span>0.991922  0.988661  1.012045 ... 1.005406<span style="yes;">    </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;"><span style="yes;">   </span>100<span style="yes;">     </span>0.987327  0.989517  1.009951 ... 0.998941<span style="yes;">    </span></span></p>
<p class="MsoNormal" style="none;"><span style="Verdana;">________________________________________________<span style="yes;">   </span></span><span style="Verdana;"><span style="yes;">                                                   </span></span></p>
<p class="MsoNormal" style="none"><span style="AR-SA;">Average  0.99241   0.992136  1.007225 ... 1.000804</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="none"><span style="'Courier New';">Between-imputation variance:</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';">0.000007 0.000008 0.000008 ... 0.000007</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="none"><span style="'Courier New';">Within-imputation variance:</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';">0.000099 0.000099 0.000101 ... 0.000100<span style="yes">    </span></span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="none"><span style="'Courier New';">Total variance:</span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';">0.000106 0.000107 0.000108 ... 0.000108<span style="yes">    </span></span></p>
</blockquote>
<p class="MsoNormal" style="none"><span style="Verdana;"> </span><span style="Verdana;">I also computed <em>95%</em> confidence intervals for vector of means:</span></p>
<blockquote>
<p class="MsoNormal" style="none"><span style="'Courier New';">95% confidence interval:<span style="yes">                           </span></span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';">Right boundary of interval: +0.032939 +0.026372 +0.028406 ... +0.026744 </span></p>
<p class="MsoNormal" style="none"><span style="'Courier New';">Left boundary of interval:<span style="yes">   </span>-0.008234   -0.015020 -0.013233 ...  -0.014736</span></p>
</blockquote>
<p class="MsoNormal" style="none"><span style="Verdana;">I was curious to know how well the EMDA algorithm performs and repeated the same experiment <em>20</em> times. All <em>20 95%</em> confidence intervals contained true value of mean. Sounds good, is not it? </span><span style="Verdana;"> </span></p>
<p class="MsoNormal" style="auto"><strong><span style="Verdana;">References</span></strong></p>
<p class="MsoNormal" style="auto"><span style="Verdana;"><span style="small;">1. </span></span><span style="'Courier New';">J.L. Schafer. Analysis of Incomplete Multivariate Data, Chapman &amp; Hall/CRC, 1997.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/01/21/intel-summary-statistics-library-how-to-deal-with-missing-observations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intel® Summary Statistics Library: how to use the robust methods?</title>
		<link>http://software.intel.com/en-us/blogs/2009/01/14/intel-summary-statistics-library-how-to-use-the-robust-methods/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/01/14/intel-summary-statistics-library-how-to-use-the-robust-methods/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 15:38:42 +0000</pubDate>
		<dc:creator>Dmitry Kabaev (Intel)</dc:creator>
		
		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[What If Software]]></category>

		<category><![CDATA[bio-engeneering]]></category>

		<category><![CDATA[covariance matrix]]></category>

		<category><![CDATA[estimation]]></category>

		<category><![CDATA[life sciences]]></category>

		<category><![CDATA[moments]]></category>

		<category><![CDATA[outliers detection]]></category>

		<category><![CDATA[robust covariance]]></category>

		<category><![CDATA[robust method]]></category>

		<category><![CDATA[statistics]]></category>

		<category><![CDATA[summary statistics]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/01/14/intel-summary-statistics-library-how-to-use-the-robust-methods/</guid>
		<description><![CDATA[Intel® Summary Statistics Library provides several opportunities for processing the datasets “contaminated” with outliers.  Earlier I demonstrated how to detect “suspicious” observations in the dataset. Some ideas about performance of the algorithm for detection of outliers are provided here. Another approach to treat outliers is to use robust methods available in the library. I’d like [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="auto;"><span style="Verdana;"><a href="http://software.intel.com/en-us/articles/intel-summary-statistics-library">Intel® Summary Statistics Library</a> provides several opportunities for processing the datasets “contaminated” with outliers.<span style="yes;">  </span><a href="http://software.intel.com/en-us/blogs/2008/08/29/intel-summary-statistics-library-how-to-detect-outliers-in-datasets/">Earlier</a> I demonstrated how to detect “suspicious” observations in the dataset. Some ideas about performance of the algorithm for detection of outliers are provided <a href="http://software.intel.com/en-us/blogs/2008/12/26/intel-summary-statistics-library-how-fast-is-the-algorithm-for-detection-of-outliers/">here</a>. Another approach to treat outliers is to use robust methods available in the library. I’d like to discuss how to use the algorithms for robust estimation of mean and variance-covariance matrix as they deserve special attention.</span></p>
<p class="MsoNormal" style="auto;"><span style="Verdana;">Robust methods in Intel® Summary Statistics Library form solution which is presented with two algorithms, Maronna, [1] and TBS, [2]. First algorithm is used to compute start “point” (covariance and mean) for the second one. TBS algorithm allows iterating until necessary accuracy is achieved or maximal number of iterations is completed. In addition to these parameters one can specify and pass maximal breakdown point (number of outliers the algorithm can hold) and asymptotic rejection probability (ARP), [2] in the library. To avoid iterations of TBS algorithm and compute robust estimate of mean and covariance using just Maronna algorithm it is enough to set number of iterations to zero.</span></p>
<p class="MsoNormal" style="auto;"><span style="Verdana;">As usual, to use Intel® Summary Statistics Library we pass through 4 stages: creation of the task, edition of task parameters, computation of stat estimates, and de-allocation of the resources. As all these steps are described <a href="http://software.intel.com/en-us/blogs/2008/08/13/intel-summary-statistics-library-several-estimates-at-one-stroke/">here</a> I only show how to use the editor for robust methods and Compute routine. Parameters of the algorithms, breakdown point, ARP, accuracy and maximal number of TBS iterations are passed as an array:</span>  </p>
<blockquote>
<p class="MsoNormal"><span style="yes;">breakdown_point = 0.2;</span></p>
<p class="MsoNormal"><span style="yes;">arp<span style="yes;">                      </span>= 0.001;</span></p>
<p class="MsoNormal"><span style="yes;">method_accuracy = 0.001;</span></p>
<p class="MsoNormal"><span style="yes;">iter_num<span style="yes;">              </span>= 5;</span></p>
<p class="MsoNormal"><span style="yes;"> </span></p>
<p class="MsoNormal"><span style="yes;">robust_method_params[0] = breakdown_point;</span></p>
<p class="MsoNormal"><span style="yes;">robust_method_params[1] = arp;</span></p>
<p class="MsoNormal"><span style="yes;">robust_method_params[2] = method_accuracy;</span></p>
<p class="MsoNormal"><span style="yes;">robust_method_params[3] = iter_num;</span></p>
</blockquote>
<p><span style="Verdana;">We also need memory </span><span style="yes;"><em>t_est</em></span><span style="Verdana;"> and </span><span style="yes;"><em>cov_est</em></span><span style="Verdana;"> where the robust estimates will be stored. In the example below covariance matrix is stored in full format specified in variable </span><span style="yes;"><em>robust_cov_storage</em>.</span></p>
<blockquote><p><span style="yes;"><span style="yes;">errcode =<span style="yes">  </span>vsldSSEditRobustCovariance( task, &amp;robust_cov_storage, &amp;robust_params_n, robust_method_params, t_est, cov_est );</span></span></p></blockquote>
<p><span style="yes;"><span style="yes;"><span style="'Courier New CYR';">Computation of the estimates is done by means of </span><span style="'Courier New';"><em>Compute</em></span><span style="'Courier New CYR';"> routine:</span></span></span></p>
<blockquote><p> <span style="&quot;Courier New CYR&quot;;">errcode=vsldSSCompute(task, VSL_SS_ROBUST_COVARIANCE, VSL_SS_ROBUST_TBS_METHOD );</span> </p></blockquote>
<p class="MsoNormal" style="auto"><span style="Verdana;">To have an idea how Intel® Summary Statistics Library manages with outliers I create the task with dimension<em> p</em> = 10 and number of observations <em>n</em> = 10,000. The dataset is generated from multivariate Gaussian distribution with zero mean and covariance matrix which holds 1 on the main diagonal and 0.05 in the rest entries of the matrix. I then contaminate the dataset with shift outliers that have multivariate Gaussian distribution with the same covariance matrix and vector of means all equal to 5.</span></p>
<p><span style="AR-SA;">Use of non-robust algorithm for covariance and mean estimation for this dataset results in biased estimates. There is no surprise to get zero p-values for these estimates.</span>  </p>
<blockquote>
<p class="MsoNormal" style="auto"><span style="Verdana;">Means: </span></p>
<p class="MsoNormal" style="auto"><span style="'Courier New';">0.2566,0.2583,0.2576,0.2633,0.2439,0.2556,0.2530,0.2716,0.2535,0.2519</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="auto"><span style="Verdana;">Covariance: </span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">2.2540</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2715 2.1819</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2852 1.2462 2.2046</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2885 1.2684 1.2553 2.2310</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2850 1.2581 1.2571 1.2526 2.2112</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2650 1.2284 1.2419 1.2820 1.2430 2.1929</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2789 1.2435 1.2550 1.2555 1.2574 1.2478 2.2113</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2773 1.2692 1.2676 1.2751 1.2725 1.2733 1.2739 2.2448</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="'Courier New';">1.2813 1.2579 1.2688 1.2723 1.2670 1.2713 1.2839 1.3061 2.2246</span></p>
<p class="MsoNormal" style="0in 0in 0pt"><span style="AR-SA;">1.2696 1.2631 1.2515 1.2701 1.2597 1.2686 1.2554 1.2638 1.2780 2.1893</span></p>
</blockquote>
<p class="MsoNormal" style="0in 0in 0pt">Use of Maronna algorithm (that is <span style="&quot;Courier New&quot;;"><span style="'Courier New';"><em>iter_num</em>=0</span><span style="Verdana;">) results in the following estimates:</span></span></p>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">Means: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">-0.0022,0.0081,-0.0075,0.0049,-0.0054,0.0012,-0.0087,0.0194,-0.0073,0.0022</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">p-values for means: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.1792 0.6077 0.5640 0.3869 0.4281 0.1014 0.6375 0.9570 0.5602 0.1846 </span><span style="8pt;"><span style="Times New Roman;"> </span></span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">Covariance: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.9164</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0605 0.8945</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0617 0.0374 0.9269</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0602 0.0570 0.0472 0.9294</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0584 0.0469 0.0599 0.0443 0.9183</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0552 0.0394 0.0395 0.0655 0.0484 0.9049</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0487 0.0449 0.0471 0.0451 0.0564 0.0461 0.9186</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0293 0.0555 0.0539 0.0456 0.0450 0.0574 0.0501 0.9149</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0507 0.0339 0.0433 0.0504 0.0429 0.0603 0.0597 0.0696 0.8962</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0375 0.0573 0.0470 0.0472 0.0502 0.0607 0.0420 0.0381 0.0484 0.8848</span><span style="&quot;Courier New&quot;;"> </span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">p-values for covariance: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.2989 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.2966 0.5842 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.3471 0.4395 0.9592 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.3994 0.9148 0.3590 0.8993 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.5128 0.7023 0.6708 0.1869 0.8510 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.8508 0.9752 0.9515 0.9411 0.4812 0.9714 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.2669 0.4841 0.6001 0.9729 0.9530 0.4207 0.7751 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.7151 0.4529 0.8765 0.7468 0.8689 0.2968 0.3317 0.0984 0.0000 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.6082 0.3734 0.9088 0.8997 0.7250 0.2720 0.8321 0.6358 0.7895 0.0000</span> </p>
</blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="AR-SA;">These estimates are much better; however the main diagonal of the matrix results in the zero p-value. To improve the estimate I do 5 iterations of TBS algorithm (my quick experiments show that it does not make sense to iterate longer as the estimates do not significantly change):</span></p>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">Means: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">-0.0018,0.0034,0.0026,0.0067,-0.0108,0.0012,-0.0024,0.0122,-0.0057,-0.0044</span><span style="8pt;"><span style="Times New Roman;"> </span></span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">p-values for means: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.1412 0.2612 0.2025 0.4860 0.7098 0.0943 0.1882 0.7693 0.4263 0.3381</span><span style="8pt;"><span style="Times New Roman;"> </span></span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">Covariance: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">1.0524</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0583 1.0172</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0757 0.0426 1.0403</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0653 0.0630 0.0490 1.0538</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0672 0.0604 0.0559 0.0462 1.0367</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0493 0.0295 0.0434 0.0784 0.0442 1.0261</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0620 0.0429 0.0509 0.0453 0.0491 0.0488 1.0397</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0410 0.0503 0.0476 0.0507 0.0497 0.0514 0.0497 1.0367</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0450 0.0370 0.0486 0.0464 0.0430 0.0526 0.0622 0.0719 1.0179</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0477 0.0587 0.0461 0.0562 0.0514 0.0645 0.0443 0.0346 0.0485 1.0070</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">p-values for covariance: </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.0002 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.6951 0.2249 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.1676 0.5972 0.0044 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.4613 0.5057 0.8450 0.0001 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.3761 0.5862 0.8152 0.7231 0.0095 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.8726 0.1942 0.6233 0.1170 0.6604 0.0646 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.5690 0.6118 0.9464 0.6795 0.8671 0.8653 0.0050 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.5092 0.9507 0.7992 0.9266 0.9002 0.9932 0.8944 0.0094 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.6867 0.4013 0.8656 0.7504 0.6147 0.9305 0.5185 0.2177 0.2065 </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="&quot;Courier New&quot;;">0.8205 0.6243 0.7594 0.7800 0.9869 0.4071 0.6776 0.3207 0.8961 0.6185</span> </p>
</blockquote>
<div><span style="AR-SA;"></span></div>
<p class="MsoNormal" style="auto;"><span style="Verdana;"><strong>References</strong></span></p>
<p class="MsoPlainText" style="auto;"><span style="x-small;"><span style="'Times New Roman';">1. </span><span style="Verdana;">R.A. Maronna and R.H. Zamar, </span><span style="italic;">Robust Multivariate Estimates for High-Dimensional Datasets. </span><span style="Verdana;">Technometrics, </span><span style="bold;">44,</span><span style="Verdana;"> 307–317, 2002.</span></span></p>
<p><span style="AR-SA;">2. David M. Rocke. Robustness properties of S-estimators of multivariate location and shape in high dimension. The Annals of Statistics, 24(3), 1327-1345, 1996</span><span style="AR-SA;">.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/01/14/intel-summary-statistics-library-how-to-use-the-robust-methods/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parallel Programming Talk – Haskell guru Don Stewart</title>
		<link>http://software.intel.com/en-us/blogs/2009/01/13/parallel-programming-talk-haskell-guru-don-stewart/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/01/13/parallel-programming-talk-haskell-guru-don-stewart/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 18:08:01 +0000</pubDate>
		<dc:creator>Aaron Tersteeg (Intel)</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/01/13/parallel-programming-talk-haskell-guru-don-stewart/</guid>
		<description><![CDATA[
Dr. Michael Wrinn and I talked functional languages with Don Stewart, Haskell guru and co-author of the O’reilly publication  “Real World Haskell”.

But first the news:
A new version of the Intel® Software Development Emulator (1.61) has been released on http://whatif.intel.com. This version of includes support for SSE4, AES and PCLMULQDQ and the Intel® AVX instruction and includes a new 3-operand FMA instructions, [...]]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment--></p>
<p class="MsoNormal"><a href="http://software.intel.com/en-us/blogs/author/michael-wrinn/">Dr. Michael Wrinn </a>and I talked functional languages with <a href="http://www.realworldhaskell.org/blog/">Don Stewart</a>, <a href="http://www.haskell.org/">Haskell</a> guru and co-author of the O’reilly publication<span>  </span>“<a href="http://www.realworldhaskell.org">Real World Haskell</a>”.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="215" height="108" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.blogtalkradio.com/BTRPlayer.swf?displayheight=&amp;file=http://www.blogtalkradio.com%2fMulticoreSoftware%2fplay_list.xml?show_id=386339&amp;autostart=false&amp;shuffle=false&amp;volume=80&amp;corner=rounded&amp;callback=http://www.blogtalkradio.com/FlashPlayerCallback.aspx&amp;width=215&amp;height=108" /><param name="wmode" value="transparent" /><embed type="application/x-shockwave-flash" width="215" height="108" src="http://www.blogtalkradio.com/BTRPlayer.swf?displayheight=&amp;file=http://www.blogtalkradio.com%2fMulticoreSoftware%2fplay_list.xml?show_id=386339&amp;autostart=false&amp;shuffle=false&amp;volume=80&amp;corner=rounded&amp;callback=http://www.blogtalkradio.com/FlashPlayerCallback.aspx&amp;width=215&amp;height=108" wmode="transparent"></embed></object></p>
<p class="MsoNormal"><strong>But first the news:</strong></p>
<p class="MsoNormal"><span>A new version of the <a href="http://software.intel.com/en-us/articles/intel-software-development-emulator/">Intel® Software Development Emulator</a> (</span><span>1.61) has been released on <a href="http://whatif.intel.com">http://whatif.intel.com</a>. This version of includes support for <a href="http://support.intel.com/products/processor/manuals/index.htm"><span>SSE4</span></a>, <a href="http://software.intel.com/sites/avx/"><span>AES and PCLMULQDQ and the Intel® AVX</span></a> instruction and includes a new 3-operand FMA instructions, removed VPERMIL2{PS,PD}, new footprint feature, rearranged mix output, added function summaries and miscellaneous bug fixes.</span></p>
<p class="MsoNormal">The <a href="http://software.intel.com/en-us/articles/smoke-game-technology-demo/">Smoke Technology Demo</a> continues to be very popular. This <span>showcases (that includes source code) is a framework to support n-way threading of game technologies. By properly threading a game it can have more accurate physics, smarter AI, more particles, and/or a faster frame-rate. You can listen to a replay of the <a href="http://www.blogtalkradio.com/multicoreSoftware">January 6</a><sup><a href="http://www.blogtalkradio.com/multicoreSoftware">th</a></sup><a href="http://www.blogtalkradio.com/multicoreSoftware"> Parallel Programming Talk</a> to learn more about Smoke.</span></p>
<p class="MsoNormal"><strong>Now on with the show:</strong></p>
<p class="MsoNormal">On the show today Michael Wrinn and I talked with Don Stewart, Haskell Guru and recent author of the O’reilly publication<span>  </span>“<a href="http://www.blogtalkradio.com/multicoreSoftware">Real World Haskell</a>”</p>
<p class="MsoNormal">Don reviewed his professional background and how he got started in computer science and what led to his interest in Haskell. We discussed how Haskell compare to other language including imperative (procedural) languages like <a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a> and related functional languages such as <a href="http://erlang.org/">Erlang</a>. </p>
<p class="MsoNormal">The conversation covered a few highlights of what people are doing with the Haskell and how the financial services industry is adopting the language for fast high performance modeling. The talk then went to how the performance of Haskell compares to imperative languages.</p>
<p class="MsoNormal">If you are interested in checking out Haskell you read the book on line, buy a copy or visit the Haskell community web site.<span>  </span>We encourage to listen to the whole show and share your thoughts on functional languages and any question you might have.</p>
<p class="MsoNormal">For our next <a href="http://www.blogtalkradio.com/multicoreSoftware">Parallel Programming Talk</a> show on January 20<sup>th</sup> at 8:00AM PST (1600 GMT) Clay and Aaron will be talking with Tim Mattson about <a href="http://en.wikipedia.org/wiki/OpenCL">OpenCL.</a> The Open Computing Language is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. OpenCL includes a language (based on C99) for writing kernels (functions that execute on OpenCL devices), plus APIs that are used to define and then control the heterogeneous platform.</p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/01/13/parallel-programming-talk-haskell-guru-don-stewart/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intel® Summary Statistics Library: how fast is the algorithm for detection of outliers?</title>
		<link>http://software.intel.com/en-us/blogs/2008/12/26/intel-summary-statistics-library-how-fast-is-the-algorithm-for-detection-of-outliers/</link>
		<comments>http://software.intel.com/en-us/blogs/2008/12/26/intel-summary-statistics-library-how-fast-is-the-algorithm-for-detection-of-outliers/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 10:38:59 +0000</pubDate>
		<dc:creator>Dmitry Kabaev (Intel)</dc:creator>
		
		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[What If Software]]></category>

		<category><![CDATA[bio-engeneering]]></category>

		<category><![CDATA[covariance matrix]]></category>

		<category><![CDATA[estimation]]></category>

		<category><![CDATA[life sciences]]></category>

		<category><![CDATA[moments]]></category>

		<category><![CDATA[outliers detection]]></category>

		<category><![CDATA[statistics]]></category>

		<category><![CDATA[summary statistics]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2008/12/26/intel-summary-statistics-library-how-fast-is-the-algorithm-for-detection-of-outliers/</guid>
		<description><![CDATA[In one of my previous posts I described the scheme for detection of outliers in datasets which is important component of the Intel® Summary Statistics Library. We included optimized version of this algorithm in the Update for the first version of the package that was recently released.  To have an idea about speed of the [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="Times New Roman;">In one of my </span><a href="http://software.intel.com/en-us/blogs/2008/08/29/intel-summary-statistics-library-how-to-detect-outliers-in-datasets/"><span style="Times New Roman;">previous posts</span></a><span style="Times New Roman;"> I described the scheme for detection of outliers in datasets which is important component of the </span><a href="http://software.intel.com/en-us/articles/intel-summary-statistics-library"><span style="Times New Roman;">Intel® Summary Statistics Library</span></a><span style="Times New Roman;">. We included optimized version of this algorithm in the Update for the first version of the package that was recently released.<span style="yes;">  </span>To have an idea about speed of the algorithm I measured its performance on two Intel CPU, Intel® Xeon® E5440, 2.83 GHz and Intel® Core™ i7, 2.93GHz based machines. For these experiments I generate the dataset from multivariate Gaussian distribution. Dimension of the Gaussian vector, p is varied from 50 till 1,000, and number of observations n – from 20,000 till 100,000. Generation of outliers is similar to that in my previous post. Two graphs below demonstrate performance of the outliers detection in Intel® Summary Statistics Library 1.0 Update. For p=50 performance of the algorithm is less than 0.5 second and is not showed on the graphs.</span></p>
<p><span style="AR-SA;">If dimension of the task p is equal to 1,000 and number of observations is 100,000 then the whole procedure takes less then one minute on Intel® Core™ i7 CPU based machine and a little bit longer – on Intel® Xeon® E5440.</span></p>
<p style="center;"><span style="AR-SA;"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf1.bmp"></a></span></p>
<p style="center;"><span style="AR-SA;"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf2.bmp"></a></span></p>
<p><span style="AR-SA;"><span style="AR-SA;"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/2perf2.bmp"></a><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf11.bmp"><img class="aligncenter size-medium wp-image-4663" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf11.bmp" alt="" /></a></span></span></p>
<p><span style="AR-SA;"><span style="AR-SA;"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf21.bmp"><img class="aligncenter size-medium wp-image-4664" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf21.bmp" alt="" /></a></span></span></p>
<p> </p>
<p><span style="AR-SA;"><span style="AR-SA;">In other words, Intel® Core™ i7 CPU is up 2x times faster than Intel® Xeon® E5440 in this specific application. The graph below that compares two platforms cleans out the CPU speed. As Intel® Core™ i7 CPU has higher frequency then speed-up of the algorithm for detection of outliers on this platform is even higher.</span></span></p>
<p style="center;"><span style="AR-SA;"><span style="AR-SA;"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf32.bmp"><img class="aligncenter size-medium wp-image-4668" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf32.bmp" alt="" /></a><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2008/12/perf3.bmp"></a></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2008/12/26/intel-summary-statistics-library-how-fast-is-the-algorithm-for-detection-of-outliers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Congratulations Jugoslav Dujic!</title>
		<link>http://software.intel.com/en-us/blogs/2008/12/18/congratulations-jugoslav-dujic/</link>
		<comments>http://software.intel.com/en-us/blogs/2008/12/18/congratulations-jugoslav-dujic/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 03:49:29 +0000</pubDate>
		<dc:creator>Gunjan Rawal (Intel)</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Cool Software]]></category>

		<category><![CDATA[Financial Services Industry]]></category>

		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[Intel SW Partner Program]]></category>

		<category><![CDATA[Intel® Software Network 2.0]]></category>

		<category><![CDATA[Manageability]]></category>

		<category><![CDATA[Mobility]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[Threading Building Blocks]]></category>

		<category><![CDATA[Virtualization]]></category>

		<category><![CDATA[Visual Computing]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2008/12/18/congratulations-jugoslav-dujic/</guid>
		<description><![CDATA[Jugoslav Dujic is our next Intel Black Belt Software Developer. Our selection team met couple weeks back and we received a unanimous vote for Jugoslav.
Jugoslav has been a contributor to Intel Software Network for over 8 years (wow!) and has actively supported our communities by participating in the discussion forums, providing product feedback and more. [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">Jugoslav Dujic is our next Intel Black Belt Software Developer. Our selection team met couple weeks back and we received a unanimous vote for <a href="http://software.intel.com/en-us/profile/391180">Jugoslav</a>.</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">Jugoslav has been a contributor to Intel Software Network for over 8 years (wow!) and has actively supported our communities by participating in the discussion forums, providing product feedback and more. Your contributions are greatly appreciated and valued! Congratulations to Jugoslav :-)</span><span style="Verdana;">. </span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Verdana;">We’ll be back with more Black Belt announcements soon…watch this space!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2008/12/18/congratulations-jugoslav-dujic/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
