<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SciNet &#124; Science At Scale</title>
	<atom:link href="http://www.scinethpc.ca/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.scinethpc.ca</link>
	<description>Science At Scale</description>
	<lastBuildDate>Tue, 21 Feb 2012 23:45:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>10,000,000 Computations Served&#8230; and counting!</title>
		<link>http://www.scinethpc.ca/2012/02/10000000-computations-served/</link>
		<comments>http://www.scinethpc.ca/2012/02/10000000-computations-served/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 03:38:17 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[blog-general]]></category>
		<category><![CDATA[in_the_news]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=673</guid>
		<description><![CDATA[In the early hours of Sunday, Feb 5th, SciNet&#8217;s GPC supercomputer quietly performed its ten-millionth set of calculations for Canadian researchers, crossing the milestone by performing a simulation for an international particle physics experiment. Like a virtual factory, the SciNet computing  systems run twenty-four hours a day, seven days a week; each second it is [...]]]></description>
			<content:encoded><![CDATA[<p>In the early hours of Sunday, Feb 5th, SciNet&#8217;s GPC supercomputer quietly performed its ten-millionth set of calculations for Canadian researchers, crossing the milestone by performing a simulation for an international particle physics experiment.</p>
<p>Like a virtual factory, the SciNet computing  systems run twenty-four hours a day, seven days a week; each second it is running, it completes up to 300,000,000,000,000 mathematical operations. Researchers across the country use the internet to construct their simulation or data analysis task remotely; then the supercomputer assigns it to a collection of its 40,000 processors when they become available. The systems tackle such tasks as biomedical research including studying Alzheimer&#8217;s and brain function; aerospace research such as finding cleaner-burning mixes of biofuels; and in astronomy for finding signals in the very first light to travel through the Universe.</p>
<p>&#8220;We&#8217;re enormously pleased that our centre, its people, and its facilities have been in such high demand from researchers across Ontario and all of Canada&#8221;, said Dr. Chris Loken, Chief Technical Officer of SciNet. &#8220;To have built something that has proven so essential for so many scientists, engineers, and others that it&#8217;s been asked to provide ten million compute `jobs&#8217; in just two and a half years is remarkable.&#8221;</p>
<p>The science behind the ten-millionth job involves some of the most fundamental physics possible, the search to understand the basic properties of matter and the forces that govern the universe. ATLAS, an international experiment based at the Large Hadron Collider in Geneva, Switzerland is one of SciNet&#8217;s biggest users. &#8220;The SciNet facility provides the largest ATLAS Tier-2 Analysis Facility in Canada and we now run about 8,000 jobs a day for ATLAS, about 2.2 million in the last 12 months&#8221;, said Dr. Leslie Groer, in charge of the ATLAS project at SciNet. &#8220;Simulation calculations like this one are vital to understand the ATLAS detector and to analyze the physics coming from the largest experiment in the world.&#8221;</p>
<p>This article was featured on <a href="http://insidehpc.com/2012/02/10/scinets-gpc-super-serves-up-ten-millionth-job-for-canadian-researchers/">InsideHPC</a>.</p>
<p>&#8211;</p>
<p>About SciNet:</p>
<p>SciNet is Canada’s largest supercomputer centre, providing Canadian researchers with the computational resources and expertise necessary to perform their research on scales not previously possible in Canada, from the biomedical sciences and aerospace engineering to astrophysics and climate science. More information is available at http://www.scinet.utoronto.ca.</p>
<p>About Compute Canada</p>
<p>Compute Canada is a national platform of advanced computing resources across the country, bringing together computer and data resources, academic researchers, and computational expertise to tackle some of the Canada’s biggest research questions. Compute Canada has built a user community across Canada in disciplines ranging from the sciences and engineering to arts and humanities. The Compute Canada Resource Allocation Committee annually awards supercomputing time to projects on the basis of scientific merit. For more information about Compute Canada or this year’s allocations, see https://computecanada.org.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2012/02/10000000-computations-served/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stopping your program at the first floating point error</title>
		<link>http://www.scinethpc.ca/2012/01/stopping-your-program-at-the-first-floating-point-error/</link>
		<comments>http://www.scinethpc.ca/2012/01/stopping-your-program-at-the-first-floating-point-error/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 02:49:31 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[blog-technical]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[floating-point]]></category>
		<category><![CDATA[numerical]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=664</guid>
		<description><![CDATA[If you know that somewhere in your program, there lurks a catastrophic numerical bug that puts NaNs or Infs into your results and you want to know where it first happens, the search can be a little frustrating. However, as before, the IEEE standard can help you; these illegal events (divide by zero, underflow or [...]]]></description>
			<content:encoded><![CDATA[<p>If you know that somewhere in your program, there lurks a catastrophic numerical bug that puts NaNs or Infs into your results and you want to know where it first happens, the search can be a little frustrating.   However, as before, the IEEE standard can help you; these illegal events (divide by zero, underflow or overflow, or invalid operations which cause NaNs) can be made to trigger exceptions, which will stop your code right at the point where it happens; then if you run your code through a debugger, you can find the very line where it happens.</p>
<p>We&#8217;ll discuss using the gnu compilers here; other compiler suites have similar options.</p>
<p>Let&#8217;s take a look at the following Fortran code:</p>

<div class="wp_syntax"><div class="code"><pre class="fortran" style="font-family:monospace;"><span style="color: #b1b100;">program</span> nantest
    <span style="color: #000066;">real</span> <span style="color: #339933;">::</span> <span style="color: #202020;">a</span>, b, c
&nbsp;
    a <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>.
    <span style="color: #202020;">b</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span>.
&nbsp;
    <span style="color: #202020;">c</span> <span style="color: #339933;">=</span> a<span style="color: #339933;">/</span>b
    print <span style="color: #339933;">*</span>, c,a,b
&nbsp;
    a <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>.
    <span style="color: #202020;">b</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>.
&nbsp;
    <span style="color: #202020;">c</span> <span style="color: #339933;">=</span> a<span style="color: #339933;">/</span>b
    print <span style="color: #339933;">*</span>, c,a,b
&nbsp;
    a <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span>.
    <span style="color: #202020;">b</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>.
&nbsp;
    <span style="color: #202020;">c</span> <span style="color: #339933;">=</span> a<span style="color: #339933;">/</span>b
    print <span style="color: #339933;">*</span>,c,a,b
<span style="color: #b1b100;">end</span> <span style="color: #b1b100;">program</span> nantest</pre></div></div>

<p>If we compile this code with -ffpe-trap=invalid (I usually add ,zero,overflow , and even underflow if I think that&#8217;s causing me a problem in intermediate results), then the debugger can tell us the line where it all goes wrong:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ gfortran <span style="color: #660033;">-o</span> nantest nantest.f90 <span style="color: #660033;">-ffpe-trap</span>=invalid,zero,overflow <span style="color: #660033;">-g</span> <span style="color: #660033;">-static</span>
$ <span style="color: #c20cb9; font-weight: bold;">gdb</span> nantest
<span style="color: #7a0874; font-weight: bold;">&#91;</span>...<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">gdb</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> run
Starting program: <span style="color: #000000; font-weight: bold;">/</span>scratch<span style="color: #000000; font-weight: bold;">/</span>ljdursi<span style="color: #000000; font-weight: bold;">/</span>Testing<span style="color: #000000; font-weight: bold;">/</span>fortran<span style="color: #000000; font-weight: bold;">/</span>nantest 
  <span style="color: #000000;">0.50000000</span>       <span style="color: #000000;">1.0000000</span>       <span style="color: #000000;">2.0000000</span>    
&nbsp;
Program received signal SIGFPE, Arithmetic exception.
0x0000000000400384 <span style="color: #000000; font-weight: bold;">in</span> nantest <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> at nantest.f90:<span style="color: #000000;">13</span>
<span style="color: #000000;">13</span>          c = a<span style="color: #000000; font-weight: bold;">/</span>b
Current language:  auto; currently fortran</pre></div></div>

</pre>
<p>It's a little tricker with C code; we have to actually insert a call to "feenableexcept()", which enables floating point exceptions, and is defined in fenv.h;</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;fenv.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">**</span>argv<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #993333;">float</span> a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #339933;">;</span>
    feenableexcept<span style="color: #009900;">&#40;</span>FE_DIVBYZERO <span style="color: #339933;">|</span> FE_INVALID <span style="color: #339933;">|</span> FE_OVERFLOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    a <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span>.<span style="color: #339933;">;</span>
    b <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span>.<span style="color: #339933;">;</span>
&nbsp;
    c <span style="color: #339933;">=</span> a<span style="color: #339933;">/</span>b<span style="color: #339933;">;</span>
    <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%f %f %f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    a <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span>.<span style="color: #339933;">;</span>
    b <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span>.<span style="color: #339933;">;</span>
&nbsp;
    c <span style="color: #339933;">=</span> a<span style="color: #339933;">/</span>b<span style="color: #339933;">;</span>
    <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%f %f %f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    a <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span>.<span style="color: #339933;">;</span>
    b <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span>.<span style="color: #339933;">;</span>
&nbsp;
    c <span style="color: #339933;">=</span> a<span style="color: #339933;">/</span>b<span style="color: #339933;">;</span>
    <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%f %f %f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>but the effect is the same:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">gcc</span> <span style="color: #660033;">-o</span> nantest nantest.c <span style="color: #660033;">-lm</span> <span style="color: #660033;">-g</span>
$ <span style="color: #c20cb9; font-weight: bold;">gdb</span> .<span style="color: #000000; font-weight: bold;">/</span>nantest
<span style="color: #7a0874; font-weight: bold;">&#91;</span>...<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">gdb</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> run
Starting program: <span style="color: #000000; font-weight: bold;">/</span>scratch<span style="color: #000000; font-weight: bold;">/</span>s<span style="color: #000000; font-weight: bold;">/</span>scinet<span style="color: #000000; font-weight: bold;">/</span>ljdursi<span style="color: #000000; font-weight: bold;">/</span>Testing<span style="color: #000000; font-weight: bold;">/</span>exception<span style="color: #000000; font-weight: bold;">/</span>nantest 
<span style="color: #000000;">1.000000</span> <span style="color: #000000;">2.000000</span> <span style="color: #000000;">0.500000</span>
&nbsp;
Program received signal SIGFPE, Arithmetic exception.
0x00000000004005d0 <span style="color: #000000; font-weight: bold;">in</span> main <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">argc</span>=<span style="color: #000000;">1</span>, <span style="color: #007800;">argv</span>=0x7fffffffe4b8<span style="color: #7a0874; font-weight: bold;">&#41;</span> at nantest.c:<span style="color: #000000;">17</span>
<span style="color: #000000;">17</span>	    c = a<span style="color: #000000; font-weight: bold;">/</span>b;</pre></div></div>

<p>either way, you have a much better handle on where the errors are occuring.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2012/01/stopping-your-program-at-the-first-floating-point-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Daily Beast: Supercomputer Programmers Wanted</title>
		<link>http://www.scinethpc.ca/2012/01/the-daily-beast-supercomputer-programmers-wanted/</link>
		<comments>http://www.scinethpc.ca/2012/01/the-daily-beast-supercomputer-programmers-wanted/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 15:28:51 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[blog-general]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=660</guid>
		<description><![CDATA[  Scientists refer to the talent shortage as the “missing middle,” meaning there are enough specialists to run the handful of world-beating supercomputers that cost a few hundred million dollars, and plenty of people who can manage ordinary personal computers and server computer—but there are not nearly enough people who know how to use the small [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>  Scientists refer to the talent shortage as the “missing middle,” meaning there are enough specialists to run the handful of world-beating supercomputers that cost a few hundred million dollars, and plenty of people who can manage ordinary personal computers and server computer—but there are not nearly enough people who know how to use the small and mid-sized high-performance machines that cost anywhere from $1 million to $10 million.</p></blockquote>
<p>From <a href="http://www.thedailybeast.com/articles/2011/12/28/the-u-s-is-busy-building-supercomputers-but-needs-someone-to-run-them.html">The Daily Beast</a>, 28 Dec.</p>
<p>Interested in learning about programming supercomputers?   SciNet offers regular <a href="https://support.scinet.utoronto.ca/courses/">courses </a>on a variety of topics!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2012/01/the-daily-beast-supercomputer-programmers-wanted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Free &#8220;Intro to HPC&#8221; eBook from TACC</title>
		<link>http://www.scinethpc.ca/2012/01/new-free-intro-to-hpc-ebook-from-tacc/</link>
		<comments>http://www.scinethpc.ca/2012/01/new-free-intro-to-hpc-ebook-from-tacc/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 19:02:16 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[blog-technical]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[computational science]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[HPC]]></category>
		<category><![CDATA[numerical]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[resources]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=656</guid>
		<description><![CDATA[To start off the new year, Victor Eijkhout from the Texas Advanced Computing Centre has released a free ebook (you can also buy a printed copy from Lulu) covering the basics of computer architecture for those scientists who want to better understand how to make their code perform well on modern machines; the basic ideas [...]]]></description>
			<content:encoded><![CDATA[<p>To start off the new year, <a href="http://tacc-web.austin.utexas.edu/staff/home/veijkhout/public_html/istc/istc.html" target="_blank">Victor Eijkhout</a> from the Texas Advanced Computing Centre has released <a href="http://www.tacc.utexas.edu/~eijkhout/Articles/EijkhoutIntroToHPC.pdf" target="_blank">a free ebook</a> (you can also <a href="http://www.lulu.com/product/paperback/introduction-to-high-performance-scientific-computing/18783375" target="_blank">buy a printed copy </a>from Lulu) covering the basics of computer architecture for those scientists who want to better understand how to make their code perform well on modern machines; the basic ideas of parallel programming; some numerical fundamentals like ODEs, basic PDEs, and linear algebra; and some application areas like molecular dynamics, graph computations, and monte carlo simulations.   It&#8217;s a wide-ranging resource, and well worth taking a look at.</p>
<p>Another good work for scientists wanting to understand the realities of high performance computing is <a href="http://spiral.ece.cmu.edu:8080/pub-spiral/pubfile/paper_100.pdf" target="_blank">How To Write Fast Numerical Code: A Small Introduction</a> by Chellappa, Franchetti, and Puschel at CMU.  This smaller, more focussed tutorial comes out of <a href="http://www.ece.cmu.edu/~pueschel/teaching/18-645-CMU-spring08/course.html" target="_blank">a course</a> one of the authors taught in 2005 and again in 2008, and the course materials themselves are an interesting resource.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2012/01/new-free-intro-to-hpc-ebook-from-tacc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SciNet Helps Power Search for Higgs</title>
		<link>http://www.scinethpc.ca/2011/12/scinet-helps-power-search-for-higgs/</link>
		<comments>http://www.scinethpc.ca/2011/12/scinet-helps-power-search-for-higgs/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 18:20:44 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[blog-general]]></category>
		<category><![CDATA[in_the_news]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=651</guid>
		<description><![CDATA[The group of 30 U of T researchers, including 16 graduate students, has used the SciNet super-computing resources at U of T to sift through the ATLAS data to identify collisions containing Higgs boson candidates. Find out more about how SciNet helped power Atlases search for the Higgs boson!]]></description>
			<content:encoded><![CDATA[<blockquote><p>The group of 30 U of T researchers, including 16 graduate students, has used the SciNet super-computing resources at U of T to sift through the ATLAS data to identify collisions containing Higgs boson candidates.</p></blockquote>
<p>Find out more about how<a href="http://www.newswire.ca/en/story/894719/world-science-community-abuzz-as-latest-higgs-boson-results-announced"> SciNet helped power Atlases search for the Higgs boson</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2011/12/scinet-helps-power-search-for-higgs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Centre Tour, Jamaican Canadian Association</title>
		<link>http://www.scinethpc.ca/2011/11/data-centre-tour-jamaican-canadian-association/</link>
		<comments>http://www.scinethpc.ca/2011/11/data-centre-tour-jamaican-canadian-association/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 20:37:30 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[blog-general]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=641</guid>
		<description><![CDATA[We had a great data centre tour with kids from the Jamaican Canadian Association of Ontario this weekend; the association has a fantastic Saturday Morning Tutorial program where they take their students on a variety of field trips and educational activities. The students had a million questions, and we &#8212; including CTOs Chris Loken and [...]]]></description>
			<content:encoded><![CDATA[<p>We had a great data centre tour with kids from the <a title="Jamaican Canadian Association, Ontario" href="http://jcaontario.org/" target="_blank">Jamaican Canadian Association of Ontario</a> this weekend; the association has a fantastic Saturday Morning Tutorial program where they take their students on a variety of field trips and educational activities.</p>
<p><a href="http://www.scinethpc.ca/wp-content/uploads/2011/12/q_and_a_2.png"><img class="alignnone size-medium wp-image-623" title="q_and_a_2" src="http://www.scinethpc.ca/wp-content/uploads/2011/12/q_and_a_2-300x198.png" alt="Data Centre tour, Nov 26 2011" width="300" height="198" /></a></p>
<p>The students had a million questions, and we &#8212; including CTOs Chris Loken and Danny Gruner &#8212; enjoyed answering their questions and taking them on a tour of the facilities.   It gets loud (and cold!) in our data centre, but the students were eager:</p>
<p><a href="http://www.scinethpc.ca/wp-content/uploads/2011/12/tour_4.png"><img class="alignnone size-medium wp-image-631" title="tour_4" src="http://www.scinethpc.ca/wp-content/uploads/2011/12/tour_4-300x198.png" alt="Data Centre tour, Nov 26 2011" width="300" height="198" /></a></p>
<p><a href="http://www.scinethpc.ca/wp-content/uploads/2011/12/tour_12.png"><img class="alignnone size-medium wp-image-639" title="tour_12" src="http://www.scinethpc.ca/wp-content/uploads/2011/12/tour_12-300x198.png" alt="Data Centre tour, Nov 26 2011" width="300" height="198" /></a></p>
<p>Afterwards,the students worked on simulations of their own, to see what it is our researchers do on these huge machines.</p>
<p><a href="http://www.scinethpc.ca/wp-content/uploads/2011/12/handson_8.png"><img class="alignnone size-medium wp-image-619" title="handson_8" src="http://www.scinethpc.ca/wp-content/uploads/2011/12/handson_8-300x198.png" alt="Data Centre tour, Nov 26 2011" width="300" height="198" /></a></p>
<p>And, most importantly, we all had a great time!</p>
<p><a href="http://www.scinethpc.ca/wp-content/uploads/2011/12/tour_6.png"><img class="alignnone size-medium wp-image-633" title="tour_6" src="http://www.scinethpc.ca/wp-content/uploads/2011/12/tour_6-300x240.png" alt="Data Centre tour, Nov 26 2011" width="300" height="240" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2011/11/data-centre-tour-jamaican-canadian-association/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Roundoff</title>
		<link>http://www.scinethpc.ca/2011/11/testing-roundoff/</link>
		<comments>http://www.scinethpc.ca/2011/11/testing-roundoff/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 16:07:06 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[blog-technical]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[floating-point]]></category>
		<category><![CDATA[numerical]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=593</guid>
		<description><![CDATA[A talk has been circulating (HT: Hacker News) from a conference celebrating 50 years of scientific computing at Stanford where the author, William Kahan, discusses an old and sadly disused trick for testing the numerical stability of the implementation of an algorithm that should work with any C99 or Fortran2003 compiler without changing the underlying [...]]]></description>
			<content:encoded><![CDATA[<p>A <a title="Why can I Debug some Numerical Programs that You Can’t ?" href="http://www.cs.berkeley.edu/~wkahan/Stnfrd50.pdf" target="_blank">talk</a> has been circulating (HT: <a href="http://news.ycombinator.com/news" target="_blank">Hacker News</a>) from a conference celebrating <a title="Stanford 50" href="http://compmath50.stanford.edu/" target="_blank">50 years of scientific computing at Stanford</a> where the author, William Kahan, discusses an old and sadly disused trick for testing the numerical stability of the implementation of an algorithm that should work with any C99 or Fortran2003 compiler without changing the underlying code.    It&#8217;s definitely a tool that&#8217;s worth having in your toolbox, so we&#8217;re going to talk about it here.</p>
<p>We&#8217;ll consider a simple numerical problem; imagine a projectile launched from height h=0 with velocity v<sub>0</sub>=5000&nbsp;m&nbsp;s<sup>-1</sup>, and subject to the Earth&#8217;s gravitational accelleration, g = 9.81&nbsp;m&nbsp;s<sup>-2</sup>. We&#8217;re going to ask when the (first) time is that the projectile hits a height h.</p>
<p>This is going to be an application of our friend the quadratic equation:<br />
<img src='http://s0.wp.com/latex.php?latex=+r+%3D+%5Cfrac%7B-b+%5Cpm+%5Csqrt%7Bb%5E2+-+4+a+c%7D%7D%7B2+a%7D&#038;bg=ffffff&#038;fg=000&#038;s=0' alt=' r = &#92;frac{-b &#92;pm &#92;sqrt{b^2 - 4 a c}}{2 a}' title=' r = &#92;frac{-b &#92;pm &#92;sqrt{b^2 - 4 a c}}{2 a}' class='latex' />.<br />
Now, because of the repeated subtraction, a naive implementation of this equation is known to undergo <a href="http://en.wikipedia.org/wiki/Loss_of_significance">catastrophic cancellation</a> near b<sup>2</sup>=4ac, or for where the discriminant is much less than b &mdash; in our case, near the ends and the peak of the projectile&#8217;s trajectory.   We&#8217;re going to demonstrate that below.</p>
<p>Now, before we show that such sensitivity can happen, we should ask &mdash; why would we care?   If we test our code and know it gives &ldquo;good enough&rdquo; answers under the conditions that matter to us, does it really matter what could happen in other circumstances?   The answer, of course, is yes.   There are a lot of things we could want to do &mdash; increase the agressiveness of compiler optimizations when compiling our code, for instance &mdash; which will have the effect of numerically perturbing our computation; and we need to know if those small perturbations will have small, or large, effects on our answers.</p>
<p>It turns out that IEEE&nbsp;754, the standard for floating point numbers, can give us some help with this.   (Everyone who does numerical work should know at least a little bit about the floating point standard, or at least the issues involved with floating point numbers.   <a href="http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html" title="Floating Point">What every computer scientist should know about floating point</a>, particularly the first few sections, is an essential guide).   The floating point standard &#8211; which almost all widely-used computing hardware should support &#8211; allows you to set certain properties of the mathematics &#8220;on the fly&#8221;.  One particularly useful feature is the ability to set how the last digit of all floating point operations are rounded &#8211; to nearest (the default), to zero (eg, always truncate), to positive infinity (eg, always round up) or to negative infinity (always round down).    In the C99 standard, this is implemented in the &#8220;fenv.h&#8221; header and the math library; in Fortran2003, this is part of the intrinsic IEEE_ARITHMETIC module, where you can call IEEE_SET_ROUNDING_MODE.</p>
<p>By changing the rounding, you are perturbing every floating point operation in your calculation.  If this perturbation results in significant changes in your result, then your calculation is very fragile, and you may have to look into re-writing the calculation, using another algorithm, or resorting to using higher precision for that calculation (which will push the perturbations to less significant decimal places).  If not, then you have some evidence that your calculation is robust to perturbations, at least in the last bit.</p>
<p>Below we have an example of how you&#8217;d do this in C.   We have a simple routine which uses the obvious implementation of the quadratic equation to calculate the time when the projectile is at one meter, and we perform this calculation with all available rounding modes: </p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;math.h&gt;</span>
<span style="color: #339933;">#include &lt;fenv.h&gt;</span>
&nbsp;
<span style="color: #993333;">const</span> <span style="color: #993333;">int</span> NOSOLN<span style="color: #339933;">=-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
<span style="color: #993333;">const</span> <span style="color: #993333;">int</span> SOLN  <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> time<span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> <span style="color: #993333;">float</span> vo<span style="color: #339933;">,</span> <span style="color: #993333;">const</span> <span style="color: #993333;">float</span> g<span style="color: #339933;">,</span> <span style="color: #993333;">const</span> <span style="color: #993333;">float</span> ho<span style="color: #339933;">,</span> <span style="color: #993333;">float</span> <span style="color: #339933;">*</span>time<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #993333;">float</span> disc  <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>vo<span style="color: #339933;">*</span>vo <span style="color: #339933;">-</span> <span style="color: #0000dd;">2</span>.<span style="color: #339933;">*</span>g<span style="color: #339933;">*</span>ho<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>disc <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> NOSOLN<span style="color: #339933;">;</span>
&nbsp;
    disc <span style="color: #339933;">=</span> sqrt<span style="color: #009900;">&#40;</span>disc<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">float</span> root1 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>vo <span style="color: #339933;">+</span> disc<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>g<span style="color: #339933;">;</span>
    <span style="color: #993333;">float</span> root2 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>vo <span style="color: #339933;">-</span> disc<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>g<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>root2 <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">0</span>.<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> root2 <span style="color: #339933;">&lt;</span> root1<span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">*</span>time <span style="color: #339933;">=</span> root2<span style="color: #339933;">;</span>
    <span style="color: #b1b100;">else</span>
        <span style="color: #339933;">*</span>time <span style="color: #339933;">=</span> root1<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> SOLN<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">**</span>argv<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #993333;">const</span> <span style="color: #993333;">float</span> g <span style="color: #339933;">=</span><span style="color:#800080;">9.81</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">const</span> <span style="color: #993333;">float</span> vo<span style="color: #339933;">=</span><span style="color: #0000dd;">5000</span>.<span style="color: #339933;">;</span>
    <span style="color: #993333;">const</span> <span style="color: #993333;">int</span>   ho<span style="color: #339933;">=</span><span style="color: #0000dd;">1</span>.<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #993333;">int</span> nroundings<span style="color: #339933;">=</span><span style="color: #0000dd;">4</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">int</span> roundings<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #009900;">&#123;</span>FE_TONEAREST<span style="color: #339933;">,</span> FE_UPWARD<span style="color: #339933;">,</span> FE_DOWNWARD<span style="color: #339933;">,</span> FE_TOWARDZERO<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>names<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>  <span style="color: #339933;">=</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">&quot;To nearest&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;To +inf&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;To -inf&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;To zero&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> r<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> r<span style="color: #339933;">&lt;</span>nroundings<span style="color: #339933;">;</span> r<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #993333;">int</span> status <span style="color: #339933;">=</span> fesetround<span style="color: #009900;">&#40;</span>roundings<span style="color: #009900;">&#91;</span>r<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>status<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            fprintf<span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;Could not set rounding to '%s'.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> names<span style="color: #009900;">&#91;</span>r<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #993333;">float</span> soln<span style="color: #339933;">;</span>
            time<span style="color: #009900;">&#40;</span>vo<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> ho<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>soln<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%s: %f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> names<span style="color: #009900;">&#91;</span>r<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> soln<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>We compile the code with gcc (any C99 compiler should work):</p>
<pre>$ gcc -O0 -Wall -std=c99 quadratic.c -o quadratic -lm</pre>
<p>Note that we need to explicitly link in the math library, and to turn off optimization (so that the compiler doesn&#8217;t replace the repeated calls to time() with a single call).   Running this, we find:</p>
<pre>$ ./quadratic
To nearest: 0.000199
To +inf: 0.000149
To -inf: 0.000249
To zero: 0.000249</pre>
<p>Changing the rounding modes changes the result by 50%!   This shows that our current implementation &#8211; which is not giving obviously wrong answers &#8211; is extremely fragile in the presence of numerical noise, and we should exercise extreme caution with compiler flags, etc.   (We&#8217;ll leave it as an exercise for the reader to come up with a better approach!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2011/11/testing-roundoff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPC OS upgrade &#8211; what you need to know</title>
		<link>http://www.scinethpc.ca/2011/10/gpc-os-upgrade-what-you-need-to-know/</link>
		<comments>http://www.scinethpc.ca/2011/10/gpc-os-upgrade-what-you-need-to-know/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 18:44:16 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[for_users]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=538</guid>
		<description><![CDATA[The operating system of the General Purpose Clusters will be updated from CentOS 5.6 to CentOS 6.0 in a few weeks. Note that the ARC already uses the newer OS. This upgrade includes updates to other programs/modules, and will mean that you will have to recompile your code. To prepare for this transition, ten (ethernet) [...]]]></description>
			<content:encoded><![CDATA[<p>The operating system of the General Purpose Clusters will be updated from CentOS 5.6 to CentOS 6.0 in a few weeks. Note that the ARC already uses the newer OS. This upgrade includes updates to other programs/modules, and will mean that you will have to recompile your code.</p>
<p>To prepare for this transition, ten (ethernet) nodes are currently reserved for test purposes already, and have the most common modules already installed. We encourage all users to try and compile their code there and to submit short test runs to the centos6 compute nodes.</p>
<p>Here&#8217;s how you can access the centos 6 nodes:</p>
<ul>
<li>Log in to one of the centos6 development nodes, gpc05 and gpc06.</li>
<li>Make sure the right modules are loaded, as they likely will have changed in the upgrade.</li>
<li>Recompile your code (don&#8217;t forget a &#8220;make clean&#8221; or equivalent).</li>
<li>Submit test jobs to the centos6 compute nodes using an extra flag &#8220;os=centos6computeA&#8221; in the &#8220;-l&#8221; argument, i.e. &#8220;-l nodes=2:ppn=8,walltime=1:00:00,os=centos6computeA&#8221;</li>
</ul>
<p>To make your .bashrc work for both versions of CentOS, check out the <a href="http://wiki.scinet.utoronto.ca/wiki/index.php/Important_.bashrc_guidelines">example .bashrc on the wiki page</a> on how to distiguish the two OSes.</p>
<p>Note that most modules that were available under the CentOS 5 are available with CentOS 6, but often their version number has changed. Use &#8220;module avail&#8221; on the centos6 compute nodes to see what module are available, or check the <a href="http://wiki.scinet.utoronto.ca/wiki/index.php/Software_and_Libraries">Software &amp; Libraries wiki page</a> .</p>
<p><a title="Contact us" href="http://www.scinethpc.ca/index.php/2011/08/contact-us/">Let us know</a> if there is anything that is not working as it should, or if there are modules that you need which are missing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2011/10/gpc-os-upgrade-what-you-need-to-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For-Credit SciNet Course: &#8220;Scientific Software Development&#8221;</title>
		<link>http://www.scinethpc.ca/2011/10/for-credit-scinet-course-scientific-software-development/</link>
		<comments>http://www.scinethpc.ca/2011/10/for-credit-scinet-course-scientific-software-development/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 15:48:37 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[for_researchers]]></category>
		<category><![CDATA[for_users]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=523</guid>
		<description><![CDATA[The first of SciNet&#8217;s for-credit courses (for Astronomy 3100 minicourse and Phys 2109 modular course credit) will start in November, and be held in SciNet&#8217;s conference room, at 256 McCaul street on the 2nd floor. Dates are Nov 4, 11, 18, and 25th, 9:30-11:30am on each Friday. The goal of the first course is to [...]]]></description>
			<content:encoded><![CDATA[<p>The first of SciNet&#8217;s for-credit courses (for Astronomy 3100 minicourse and Phys 2109 modular course credit) will start in November, and be held in SciNet&#8217;s conference room, at 256 McCaul street on the 2nd floor. Dates are Nov 4, 11, 18, and 25th, 9:30-11:30am on each Friday.</p>
<p>The goal of the first course is to have students learn the basics of best practice for writing maintainable, modular scientific programs. At the end of minicourse I, &#8220;Scientific Software Development&#8221;, students arriving with fairly modest scientific programming knowledge will leave being able to:</p>
<ul>
<li>Do basic software development in a linux-like environment</li>
<li>Write a modular scientific program in C</li>
<li>Read and write Makefiles for building large pieces of software</li>
<li>Be able to install simple libraries on their systems</li>
<li>Use git for basic version control for software development (or paper writing)</li>
<li>Use Python for basic visualization and data manipulation</li>
<li>Debug C programs with gdb/ddd</li>
<li>Write simple C++ and Python programs</li>
<li>Use gprof or python profiling to find performance &#8220;hot spots&#8221;</li>
</ul>
<p>The course will require 4-6 hours each week spent on reading and homework.</p>
<p>Each lecture will have a hands-on component; students are strongly encouraged to bring laptops. (Contact us if this will be a problem). Windows, Mac, or Linux laptops are all fine, but some software will have to be installed *before* the first lecture:</p>
<p>On windows laptops only, <a href="http://www.cygwin.com/">Cygwin</a> will have to be installed ; ensure that development tools (gcc/g++/gfortran, gdb), git, and the X environment (Xorg) is installed.</p>
<p>On Mac laptops, ensure that the development tools (Xcode) is installed.</p>
<p>On Linux, ensure that packages for the gcc compiler suite (gcc/g++/gfortran), gdb, and git are installed</p>
<p>On all platforms, the <a href="http://www.enthought.com/products/edudownload.php">Enthought</a> python distribution must be installed.</p>
<p>Students who aren&#8217;t already comfortable with working in a shell / terminal environment should work through at least the first three 10-minute lectures at <a href="http://software-carpentry.org/4_0/shell/">Software Carpentry</a> .</p>
<p>Course outline:</p>
<p>Week 1 &#8211; Intro to software developemnt: basics of C, make, git.<br />
- HW1: modular, multifile programming and make.</p>
<p>Week 2 &#8211; Simple parabolic PDEs; modular programming, refactoring, and testing. Simple visualization using python.<br />
- HW2: Refactoring, testing, and debugging a simple PDE solver</p>
<p>Week 3 &#8211; Structures in C; simple ODE solvers and interpolation.<br />
- HW3: tracer particle evolution</p>
<p>Week 4 &#8211; Going further with C++ and Python; profiling<br />
- HW4: &#8220;porting&#8221; tracer particle evolution to C++ or python.</p>
<p>Evaluation will be based entirely on the four homeworks, with equal weighting given to each.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2011/10/for-credit-scinet-course-scientific-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>High School Student Mentorship Opportunities</title>
		<link>http://www.scinethpc.ca/2011/10/high-school-student-mentorship-opportunities/</link>
		<comments>http://www.scinethpc.ca/2011/10/high-school-student-mentorship-opportunities/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 19:22:08 +0000</pubDate>
		<dc:creator>Dursi</dc:creator>
				<category><![CDATA[for_educators]]></category>

		<guid isPermaLink="false">http://www.scinethpc.ca/?p=460</guid>
		<description><![CDATA[SciNet, working with the University of Toronto Arts and Sciences highschool mentorship program, is offering mentorships in two supercomputing-related projects!  Up to six students will work with SciNet researchers on supercomputing hardware or software. SciNet may be willing to work with you or your school on similar projects &#8211; to inquire, contact us. Building a [...]]]></description>
			<content:encoded><![CDATA[<p>SciNet, working with the University of Toronto Arts and Sciences <a href="http://www.artsci.utoronto.ca/futurestudents/events/mentorship-program-2011-12-application-deadline" target="_blank">highschool mentorship program</a>, is offering mentorships in two supercomputing-related projects!  Up to six students will work with SciNet researchers on supercomputing hardware or software.</p>
<p>SciNet may be willing to work with you or your school on similar projects &#8211; to inquire, <a title="Contact us" href="http://www.scinethpc.ca/index.php/2011/08/contact-us/" target="_blank">contact us</a>.</p>
<h3>Building a Pint-Sized Supercomputer</h3>
<p>Big computing — whether for supercomputing simulations of black holes, or business analytics for Walmart sales data, or Facebook&#8217;s data centres — is done on clusters, large computers assembled from smaller ones. The challenge is in getting the smaller computers to work together on single tasks.</p>
<p>In this project, a team of students, working with a number of experts from SciNet, will assemble a working cluster from scratch from existing PCs, and will examine the effects of different hardware and software choices on the performance of various pieces of parallel software.</p>
<p><strong>Recommended Background:</strong><br />
Strong computer skills.</p>
<p><strong>Estimated Number of Hours:</strong><br />
One to two hours per week working with mentor, with additional reading and computer homework.</p>
<p><strong>Number of Students:</strong><br />
One to three students will be accepted.</p>
<p>&nbsp;</p>
<h3>New Models for Parallel Scientific Computing</h3>
<p>Scientific, Technical, and Data-Intensive computing, to give timely results and to be on the cutting edge, have to make use of parallel computing: using many CPUs at the same time. But writing such software — breaking a problem into individual parts which can be solved separately and then recombined — is very challenging. What tools and languages there are for writing such software is usually either quite old, or is designed for problems very different than scientific programming.</p>
<p>In this project, students will take existing serial programs for simplified but relevant scientific computations, and use emerging tools to re-write them for parallel computing on clusters of PCs, or on graphics cards. The pros and cons of the different tools will be compared. The results will likely be written up as a case study and published. The problems, and the tools used, will be chosen based on the interests and knowledge of the students.</p>
<p><strong>Recommended Background:</strong><br />
Strong programming skills in a language like C++ or Java; strong math skills.</p>
<p><strong>Estimated Number of Hours:</strong><br />
One to two hours per week working with mentor, with additional reading and computer homework.</p>
<p><strong>Number of Students:</strong><br />
One to three students will be accepted.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scinethpc.ca/2011/10/high-school-student-mentorship-opportunities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

