<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2369183939077813160</id><updated>2012-01-31T07:25:52.219-08:00</updated><category term='install'/><category term='hpc'/><category term='11.04'/><category term='RHEL'/><category term='LSF'/><category term='namd'/><category term='cluster'/><category term='x5660'/><category term='VirtualBox'/><category term='lammps'/><category term='eos'/><category term='mpi'/><category term='cluter'/><category term='benchmark'/><category term='&apos;distributed computing server&apos;'/><category term='brian kim'/><category term='short course'/><category term='demo'/><category term='hydra'/><category term='m2050'/><category term='ibm'/><category term='analysis'/><category term='bhist'/><category term='userdir'/><category term='m2070'/><category term='class'/><category term='batch scheduler'/><category term='mpicc'/><category term='performance'/><category term='openmp'/><category term='dcs'/><category term='supercomputing'/><category term='cpu'/><category term='generator'/><category term='fftw'/><category term='apache'/><category term='starccm+'/><category term='KDE'/><category term='Remote desktop'/><category term='account management system'/><category term='clusterssh'/><category term='php class generator'/><category term='php'/><category term='CentOS5'/><category term='CentOS'/><category term='job status'/><category term='aix'/><category term='ssh'/><category term='tamu'/><category term='sendmail'/><category term='SuSE'/><category term='rocks'/><category term='php class creator'/><category term='mpiifort'/><category term='get set function'/><category term='matlab'/><category term='migrate-n'/><category term='print'/><category term='gpu'/><category term='intel'/><category term='rhel4'/><category term='unix'/><category term='Linux'/><category term='Dual monitor'/><category term='Ubuntu'/><category term='nvidia'/><category term='KDirStat'/><title type='text'>HPC Lab</title><subtitle type='html'>High Performance Computing &amp;amp; Linux Laboratory</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-8159792301914709412</id><published>2012-01-30T15:45:00.000-08:00</published><updated>2012-01-31T07:25:52.228-08:00</updated><title type='text'>2012 Spring Short Course, Introduction to Unix/Linux</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span style="background-color: white; color: #333333; font-family: Verdana, sans-serif; font-size: 13px; line-height: 1.3em;"&gt;Date : Jan. 30(Monday) ~ Dec. 2(Thursday).&lt;/span&gt;&lt;/div&gt;&lt;div class="post-body entry-content" id="post-body-6300796825339315409" style="background-color: white; color: #333333; font-family: Verdana, sans-serif; font-size: 13px; line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;Time : 3PM ~ 5PM&lt;br /&gt;Location :&amp;nbsp;Teague Rm# 103&lt;br /&gt;&lt;br /&gt;It is highly recommended for all attendee to get your EOS login ID ready before the first day of class. EOS login ID is required for hands-on lab.&lt;br /&gt;&lt;div style="line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Introduction to Linux is a short course specifically designed for beginner to Linux/Unix system. It will cover basic concept of Linux and frequently used commands.&lt;br /&gt;&lt;br /&gt;Basic&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is Linux/Unix?&lt;/li&gt;&lt;li&gt;File and Directory&lt;/li&gt;&lt;li&gt;Edit text file&lt;/li&gt;&lt;li&gt;Setup environment&lt;/li&gt;&lt;li&gt;Remote access&lt;/li&gt;&lt;/ul&gt;Advanced&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Process,Signal&lt;/li&gt;&lt;li&gt;I/O redirection,Pipe&lt;/li&gt;&lt;li&gt;Alias&lt;/li&gt;&lt;li&gt;Permission&lt;/li&gt;&lt;li&gt;Kernel &amp;amp; Shell&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;For detail,&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sites.google.com/site/tamulinux/introduction-to-linux" style="color: #336699;"&gt;https://sites.google.com/site/tamulinux/introduction-to-linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please, post a comment or feedback about this class. It would be helpful to improve the class.&lt;/div&gt;&lt;div style="line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Thanks you.&lt;/div&gt;&lt;div style="line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Brian Kim&lt;/div&gt;&lt;div style="line-height: 1.3em; margin-bottom: 0.75em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-8159792301914709412?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/8159792301914709412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2012/01/2012-spring-short-course-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/8159792301914709412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/8159792301914709412'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2012/01/2012-spring-short-course-introduction.html' title='2012 Spring Short Course, Introduction to Unix/Linux'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-2255089398394083250</id><published>2011-10-26T13:51:00.000-07:00</published><updated>2011-10-26T13:51:39.041-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='m2070'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='x5660'/><category scheme='http://www.blogger.com/atom/ns#' term='namd'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='m2050'/><title type='text'>Performance Analysis of NAMD on NVIDIA GPU</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;   &lt;/div&gt;&lt;b&gt;Abstract&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As GPU become readily available resources in high performance computing environment, more and more applications are being considered to be a target application for taking advantage of highly parallel computing capability of GPU. To evaluate the performance improvement in application level, molecular dynamics applications, NAMD, is experimented in this article and its performance has been analyzed in three different perspectives: Scalability, speedup, and GPU utilization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Experimental environment&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;GPU nodes are relatively new addition to the existing EOS system at Texas A&amp;amp;M University. Table 1 shows detail of the node tested in this experiment. It has two six core 2.8Ghz Intel Xeon X5660 processors based on Westmere architecture and 24GB DDR3 DRAM with 1,333Ghz clock cycle. Additionally, it is equipped with two NVIDIA M2050 GPU devices. Each M2050 GPU device runs at 1.15Ghz and 2687MB GDDR5 memory with 1.546Ghz clock cycle. M2050 is a high performance grade device with 14 streaming multiprocessors and each of them has 32 cores which is based on Fermi architecture. It also has ECC memory error protection, and L1 and L2 cache to provide not only accuracy but also high performance on computation. The node is running 64-bits Red Hat Enterprise Linux Server release 5.4.&lt;br /&gt; &lt;br /&gt;NAMD has been tested on three configurations. First, it is executed with CPU only configuration. Secondly, it is executed with 1 NVIDIA M2070 GPU. Finally, it is executed with 2 NVIDIA M2050 GPUs. Since these tests are submitted through batch system and there is no guarantee that each test ran exclusively on compute node and compute node could be shared by several other jobs as well. Therefore, the performance presented in this article could be different from exclusive testing environment.&lt;div style="font-family: 'Times New Roman', serif; text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', serif; page-break-after: avoid; text-align: center; width: 336px;"&gt; &lt;colgroup&gt;&lt;col width="125"&gt;&lt;/col&gt; &lt;col width="70"&gt;&lt;/col&gt; &lt;col width="70"&gt;&lt;/col&gt; &lt;col width="69"&gt;&lt;/col&gt; &lt;/colgroup&gt;&lt;tbody&gt;&lt;tr valign="TOP"&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: 1px solid #000000; padding: 0in;" width="125"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: 1px solid #000000; padding: 0in;" width="70"&gt;   &lt;div style="margin-bottom: 0in; text-align: center; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;NVIDIA&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;M2050&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: 1px solid #000000; padding: 0in;" width="70"&gt;   &lt;div style="margin-bottom: 0in; text-align: center; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;NVIDIA&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;M2070&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border: 1px solid #000000; padding: 0in;" width="69"&gt;   &lt;div style="margin-bottom: 0in; text-align: center; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;INTEL&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;X5660&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="TOP"&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="125"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Clock   speed(GHz)&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;1.15&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;1.15&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: none; padding: 0in;" width="69"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;2.8&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="TOP"&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="125"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Memory(GB)&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;2.687&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;5.375&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: none; padding: 0in;" width="69"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;24.081&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="TOP"&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="125"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Memory   Clock(GHz)&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;1.546&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;1.566&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: none; padding: 0in;" width="69"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;1.333&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="TOP"&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="125"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;# of CUDA   cores&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;448&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;448&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: none; padding: 0in;" width="69"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;N/A&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="TOP"&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="125"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;CUDA Driver   ver.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;4.0&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;4.0&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: none; padding: 0in;" width="69"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;N/A&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="TOP"&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="125"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;CUDA CC ver.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;2.0&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; border-top: none; padding: 0in;" width="70"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;2.0&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: none; padding: 0in;" width="69"&gt;   &lt;div style="text-align: right; text-indent: 0in;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;N/A&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Table 1: Specification of experimental environment&lt;br /&gt; &lt;br /&gt;To benchmark NAMD, apoa1 dataset is used in experiment. This dataset contains 92,000 atoms and simulates 500 steps. Among several parameters in input file, outputEnergies set to 100 as suggested in user manual to remove unnecessary CPU involvement for generating additional output in file.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;2.Results &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In this section, performance of NAMD has been analyzed in three aspects: Scalability, speedup, and GPU utilization. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;A.Scalability &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The ratio of CPU cores and GPU is 12:1 on single GPU node and 12:2 on multi GPU node. Each process of NAMD occupy one CPU core and 1 GPU. However, GPU can be shared by multiple process. Therefore, it is possible that GPU can be oversubscribed by too many processes and become bottleneck in certain configuration. &lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AVD3nEsoLB8/TqhwOVI8cXI/AAAAAAAAA30/BlDIJ02vXjY/s1600/e.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-AVD3nEsoLB8/TqhwOVI8cXI/AAAAAAAAA30/BlDIJ02vXjY/s320/e.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Figure 1&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Since each process on NAMD maps to single CPU cores, number of cores means same as number of process in graph. CPU version of NAMD scales well up to 12 cores on Westmere node in Figure 1. However, GPU version of NAMD shows best performance around 4-6 cores. On 1 GPU nodes, all processes invoke kernel on same GPU concurrently, so it breaks scalability when there is 12 processes.&lt;/div&gt;&lt;br /&gt;&lt;b&gt;B.Performance&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;   Figure 2 shows relative speedup of GPU version compared to CPUonly version. Suppose the performance of CPU only version with 1 coreis 1x. With 1 CPU core and 1 GPU, NAMD runs 7 times faster than CPUonly version. With 2 CPU cores and 1 GPU, NAMD runs 13 times faster.While CPU version scales up well until 12 cores, GPU version hits thepeak around 6 cores and starts falling.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-a-Ewe9TLW8g/Tqhw0KSNqvI/AAAAAAAAA38/S9xmb1hUySo/s1600/1gs.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-a-Ewe9TLW8g/Tqhw0KSNqvI/AAAAAAAAA38/S9xmb1hUySo/s320/1gs.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 2&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;C.GPU Utilization&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;1)Single GPU environment&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Figure 3 shows how utilization of single GPU changes as the number of CPU core increases. With 1 CPU core, GPU uses only 30% of its capability. In other words, 70% of GPU is not doing anything and just stay idle. However, if there are 2 CPU cores, GPU is shared by these 2 cores and overall utilization has been doubled up to around 60%. Likewise, utilization goes over 90% when 4 CPU cores share GPU. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZbxDXrktOII/Tqhw-Uz4PkI/AAAAAAAAA4E/ek8WCOlOFAE/s1600/1gu.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-ZbxDXrktOII/Tqhw-Uz4PkI/AAAAAAAAA4E/ek8WCOlOFAE/s320/1gu.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 3&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;It turned out that higher GPU utilization directly affects on application’s performance as shown in Figure 2. With 2 CPU cores, NAMD runs twice faster than 1 CPU core.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2)Multi GPU environment &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Among two graphs in Figure 4, top one shows utilization of first GPU and bottom one shows utilization of second GPU. The fact that two graphs look very similar each other represents NAMD distributes workload evenly to multiple GPU for computation. With 2 CPU cores, utilization of each GPU stays around 40%. With 4 CPU cores, utilization of each GPU goes up over 60%.&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-AswhYtnOMHY/TqhxIEGJ0uI/AAAAAAAAA4M/0coJxJ623yU/s1600/2gu.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-AswhYtnOMHY/TqhxIEGJ0uI/AAAAAAAAA4M/0coJxJ623yU/s320/2gu.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;b&gt;IV Conclusions&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;GPU application shows different performance charac-teristics from CPU application. Scalability can be affected by the ratio of CPU core and GPU. Oversubscribing GPU can limit the scalability of application. On multi GPU node, the overall speedup is affected by how application distribute workload to each GPU device. At the same time, under-subscribing GPU device, such as workload is not big enough to keep all GPU devices busy, is also limit the performance of GPU application. &lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;div style="font-size: small;"&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-2255089398394083250?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/2255089398394083250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2011/10/performance-analysis-of-namd-on-nvidia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2255089398394083250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2255089398394083250'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2011/10/performance-analysis-of-namd-on-nvidia.html' title='Performance Analysis of NAMD on NVIDIA GPU'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-AVD3nEsoLB8/TqhwOVI8cXI/AAAAAAAAA30/BlDIJ02vXjY/s72-c/e.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-1871544066616467597</id><published>2011-10-26T08:38:00.000-07:00</published><updated>2011-10-26T13:13:46.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='migrate-n'/><category scheme='http://www.blogger.com/atom/ns#' term='mpi'/><category scheme='http://www.blogger.com/atom/ns#' term='eos'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='hydra'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Performance of Parallel Migrate-n on Linux cluster</title><content type='html'>&lt;a href="http://popgen.sc.fsu.edu/Migrate/Migrate-n_files/migicon.png"&gt;&lt;img alt="" border="0" src="http://popgen.sc.fsu.edu/Migrate/Migrate-n_files/migicon.png" style="cursor: hand; cursor: pointer; float: right; height: 68px; margin: 0 0 10px 10px; width: 66px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Migrate estimates  effective population sizes and past migration rates between n population assuming a migration matrix model with asymmetric migration rates and different subpopulation sizes[1].&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Experimental environment&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In this experiment, the performance of serial version, which runs on single core, is measured as a basis of comparison. Then, the number of core is increased to 8, 16, 32, and 64. Each compute node has two quad core 2.8Ghz Intel Xeon X5560 processors based on Nehalem architecture and 24GB DDR3 DRAM with 1333Ghz clock cycle[2].&lt;br /&gt;&lt;br /&gt;Since each compute node has 8 cores, 8 compute nodes are required for 64 core job. parmfile.testml is used as an input file for experiment. The only change made to it for this experiment is that value of menu parameter is changed to ‘NO’ to be able to run it in batch mode on EOS and HYDRA[3][4][5].&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Results&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Migrate keeps improving its performance up to 32 cores on both HYDRA and EOS[Fig.1].&lt;br /&gt;&lt;div&gt;&lt;a href="http://farm7.static.flickr.com/6047/6282849087_3e9c314379.jpg"&gt;&lt;img alt="" border="0" src="http://farm7.static.flickr.com/6047/6282849087_3e9c314379.jpg" style="cursor: pointer; display: block; height: 480px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 480px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;[Figure 1]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, with 64 cores, performance starts falling on HYDRA[Fig.2] and it does not perform better than 32 cores on EOS[Fig.3].&lt;br /&gt;&lt;a href="http://farm7.static.flickr.com/6053/6283366370_f14136a744.jpg"&gt;&lt;img alt="" border="0" src="http://farm7.static.flickr.com/6053/6283366370_f14136a744.jpg" style="cursor: pointer; display: block; height: 480px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 480px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;[Figure 2]&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://farm7.static.flickr.com/6119/6282849107_e929d1b35d.jpg"&gt;&lt;img alt="" border="0" src="http://farm7.static.flickr.com/6119/6282849107_e929d1b35d.jpg" style="cursor: pointer; display: block; height: 480px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 480px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;[Figure 3]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On EOS, 8 cores show 5 times faster than 1 core. There is almost no speedup between 32 and 64 cores. On HYDRA, 8 cores bring 4.5 times speedup compared to 1 core. 32 cores show best performance and 64 cores are a little bit slower than 32 cores.&lt;/div&gt;&lt;div&gt;&lt;a href="http://farm7.static.flickr.com/6040/6283366350_3c3ac22611.jpg"&gt;&lt;img alt="" border="0" src="http://farm7.static.flickr.com/6040/6283366350_3c3ac22611.jpg" style="cursor: pointer; display: block; height: 480px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 480px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;[Figure 4]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Migrate runs more than twice faster on EOS than on HYDRA in general. With 8 cores EOS is about 3 times faster than HYDRA[Fig.4].&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1.&lt;a href="http://popgen.sc.fsu.edu/Migrate/Info.html"&gt;http://popgen.sc.fsu.edu/Migrate/Info.html&lt;/a&gt;&lt;br /&gt;2.&lt;a href="http://sc.tamu.edu/systems/eos/hardware.php"&gt;http://sc.tamu.edu/systems/eos/hardware.php&lt;/a&gt;&lt;br /&gt;3.&lt;a href="http://sc.tamu.edu/help/eos/batch/"&gt;http://sc.tamu.edu/help/eos/batch/&lt;/a&gt;&lt;br /&gt;4.&lt;a href="http://sc.tamu.edu/help/hydra/batch.php"&gt;http://sc.tamu.edu/help/hydra/batch.php&lt;/a&gt;&lt;br /&gt;5.&lt;a href="http://sc.tamu.edu/systems/hydra/hardware.php"&gt;http://sc.tamu.edu/systems/hydra/hardware.php&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-1871544066616467597?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/1871544066616467597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2011/10/performance-of-parallel-migrate-n-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/1871544066616467597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/1871544066616467597'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2011/10/performance-of-parallel-migrate-n-on.html' title='Performance of Parallel Migrate-n on Linux cluster'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm7.static.flickr.com/6047/6282849087_3e9c314379_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-2741775298947332961</id><published>2011-09-16T09:57:00.000-07:00</published><updated>2011-09-16T12:21:22.001-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='m2070'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='m2050'/><title type='text'>Is GPU good for large vector addition?</title><content type='html'>&lt;div&gt;&lt;p&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/p&gt;&lt;p&gt; With more than one GPU programming interfaces available, there is  a great interest in converting regular program to GPU program with two  frequently asked questions. &lt;/p&gt;&lt;ol&gt;&lt;li&gt;How much performance improvement can we expect from it?&lt;/li&gt;&lt;li&gt;Which programming interface is better than the others? &lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;In  this post, the performance CPU and GPU are compared for vector addition  and matrix multiplication, which are widely used building blocks for  scientific application.&lt;/p&gt;&lt;p&gt;Additionally, the performance of OpenCL, CUDA, and PGI  Accelerator on NVIDIA's M2050GPU are analyzed to compare different GPU  programming interfaces.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1. Is GPU faster than CPU? &lt;/b&gt;&lt;p&gt;No - for vector addition&lt;/p&gt;&lt;p&gt;Yes - for matrix multiplication&lt;/p&gt;&lt;p&gt; Figure 1 shows 'elapsed time' for vector addition on CPU and GPU. CPU is about 4 times faster than GPU in this experiment.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;table style="margin-right: auto; margin-left: auto; text-align: center;" class="tr-caption-container" align="center" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a style="margin-left: auto; margin-right: auto;" href="http://farm7.static.flickr.com/6187/6153413288_3c62b7985d.jpg"&gt;&lt;img src="http://farm7.static.flickr.com/6187/6153413288_3c62b7985d.jpg" style="" border="0" height="400" width="400" /&gt; &lt;/a&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" class="tr-caption"&gt;Figure 1. CPU is faster than GPU for vector addition&lt;/td&gt;&lt;td style="text-align: center;" class="tr-caption"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" class="tr-caption"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table style="margin-right: auto; margin-left: auto; text-align: center;" class="tr-caption-container" align="center" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a style="margin-left: auto; margin-right: auto;" href="http://farm7.static.flickr.com/6181/6153413328_b60dc54faa.jpg"&gt;&lt;img src="http://farm7.static.flickr.com/6181/6153413328_b60dc54faa.jpg" style="" border="0" height="400" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" class="tr-caption"&gt;Figure 2. Elapsed time per function on GPU&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Large  vectors need to be copied from CPU memory to GPU memory through  relatively slow PCIe bus and it overshadows the higher computational  capability of GPU. Figure 2 tells us that most of time on GPU are used  to copy data.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; However, for matrix multiplication, GPU is 200 times  or more faster than CPU. Computing intensive calculation such as matrix  multiplication is best candidate for GPU.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="margin-right: auto; margin-left: auto; text-align: center;" class="tr-caption-container" align="center" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a style="margin-left: auto; margin-right: auto;" href="http://farm7.static.flickr.com/6175/6152869235_a1c7086b8a.jpg"&gt;&lt;img src="http://farm7.static.flickr.com/6175/6152869235_a1c7086b8a.jpg" style="" border="0" height="400" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" class="tr-caption"&gt;Figure 3. GPU is extremely faster than CPU for matrix multiplication&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Most of times are consumed for computations and data transfer time is almost negligible for matrix multiplication on GPU.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;table style="margin-right: auto; margin-left: auto; text-align: center;" class="tr-caption-container" align="center" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a style="margin-left: auto; margin-right: auto;" href="http://farm7.static.flickr.com/6173/6152869221_8cd65a3fb9.jpg"&gt;&lt;img src="http://farm7.static.flickr.com/6173/6152869221_8cd65a3fb9.jpg" style="" border="0" height="400" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" class="tr-caption"&gt;Figure 4. Elapsed time per function on GPU&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;2. Is OpenCL better than CUDA?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Yes for compatibility&lt;/p&gt;&lt;p&gt;??? for performance&lt;/p&gt;&lt;p&gt;CUDA is about 5% faster than OpenCL for matrix multiplication in this experiment on NVIDIA M2050 platform.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="text-align: center; clear: both;" class="separator"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" href="http://farm7.static.flickr.com/6206/6152869199_703dfd438b.jpg"&gt;&lt;img src="http://farm7.static.flickr.com/6206/6152869199_703dfd438b.jpg" style="" border="0" height="400" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To  be able to get maximum performance out of NVIDIA GPU, try to take  advantage of CUBLAS as much as possible. If there is any chance that  your program need to be running on different GPU platform such as AMD or  INTEL, etc, then use OpenCL for compatibility.&lt;/p&gt;&lt;p&gt;If you are interested in full article about this experiment, check &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B-crIDDaxB7_MjVlYTE2ODItNWRmMi00ZmMzLTk3MGQtMjBhNmRjNmZmMmY3&amp;amp;hl=en"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-2741775298947332961?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/2741775298947332961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2011/09/is-gpu-good-for-large-vector-addition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2741775298947332961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2741775298947332961'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2011/09/is-gpu-good-for-large-vector-addition.html' title='Is GPU good for large vector addition?'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm7.static.flickr.com/6187/6153413288_3c62b7985d_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-6300796825339315409</id><published>2011-09-05T08:23:00.000-07:00</published><updated>2011-09-05T12:13:24.393-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='brian kim'/><category scheme='http://www.blogger.com/atom/ns#' term='tamu'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='short course'/><title type='text'>2011 Fall Short Course, Introduction to Unix/Linux</title><content type='html'>Fall 2011 class starts on Sep. 5 through Sep. 8 at Teague B013.&lt;br /&gt;&lt;br /&gt;Date : Sep. 5(Monday) ~ Sep. 8(Thursday).&lt;br /&gt;Time : 3PM ~ 5PM&lt;br /&gt;Location : Teague B013&lt;br /&gt;&lt;br /&gt;This short course will be held in  computer room and each attendee will be able to access computer for  hands-on lab session. It is highly recommended for all attendee to get your EOS  login ID ready before the first day of class. EOS login ID is required for  hands-on lab.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Introduction to Linux is a short course specifically designed for beginner to  Linux/Unix system. It will cover  basic concept of Linux and frequently  used commands.&lt;br /&gt;&lt;br /&gt;Basic&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is Linux/Unix?&lt;/li&gt;&lt;li&gt;File and Directory&lt;/li&gt;&lt;li&gt;Edit text file&lt;/li&gt;&lt;li&gt;Setup environment&lt;/li&gt;&lt;li&gt;Remote access&lt;/li&gt;&lt;/ul&gt;Advanced&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Process,Signal&lt;/li&gt;&lt;li&gt;I/O redirection,Pipe&lt;/li&gt;&lt;li&gt;Alias&lt;/li&gt;&lt;li&gt;Permission&lt;/li&gt;&lt;li&gt;Kernel &amp;amp; Shell&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For detail,&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sites.google.com/site/tamulinux/introduction-to-linux"&gt;https://sites.google.com/site/tamulinux/introduction-to-linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please, post a comment or feedback about this class. It would be helpful to improve the class.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-6300796825339315409?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/6300796825339315409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2011/09/2011-fall-short-course-introduction-to.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/6300796825339315409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/6300796825339315409'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2011/09/2011-fall-short-course-introduction-to.html' title='2011 Fall Short Course, Introduction to Unix/Linux'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-7517402527915889632</id><published>2011-08-28T10:43:00.000-07:00</published><updated>2011-08-28T11:21:35.817-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dual monitor'/><category scheme='http://www.blogger.com/atom/ns#' term='11.04'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Setting up dual monitor on Ubuntu 11.04 with NVIDIA</title><content type='html'>&lt;a href="http://www.ubuntu.com/sites/default/themes/ubuntu10/images/footer_logo.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 118px; height: 27px;border-style:none" src="http://www.ubuntu.com/sites/default/themes/ubuntu10/images/footer_logo.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;Several users have been complaining that global menu bar is disappeared after setting up dual monitor on Ubuntu 11.04. It happened to me as well. Finally, I found an alternative setting which is not exactly what I wanted, but, it gives me minimum functionality that I can accept.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Run 'NVIDIA X Server Settings' and make it look like these setup, then restart gdm.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Primary monitor&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/-87zesoGv-bg/TlqB6PhXEyI/AAAAAAAAAzg/0Xcop8nRdAM/s400/Screenshot-NVIDIA%2BX%2BServer%2BSettings.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 375px;border-style:none;" border="0" alt="" id="BLOGGER_PHOTO_ID_5645967920461189922" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Secondary monitor&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/-d9qZjwgWpeM/TlqCBd5bW6I/AAAAAAAAAzo/oaX1rB5j7NE/s400/Screenshot-NVIDIA%2BX%2BServer%2BSettings-1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5645968044579314594" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 375px;border-style:none " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;With this setting, you will get these features,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(1) dual monitors&lt;/div&gt;&lt;div&gt;(2) move windows across dual monitors&lt;/div&gt;&lt;div&gt;(3) global menu bar on each monitor*&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I don't like (3). What I wanted is having dual monitor with global menu bar on primary monitor only. But, I couldn't find a solution for that. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After using this setup several days, I found out that having global menu bar on secondary monitor is actually very useful or must have feature. Global menu bar becomes application menu bar once application is launched on secondary monitor. So application menu bar resides close to application itself. Otherwise, you will end up with application menu bar on primary monitor and application on secondary monitor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let me know if you have better solution about this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-7517402527915889632?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/7517402527915889632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2011/08/setting-up-dual-monitor-on-ubuntu-1104.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/7517402527915889632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/7517402527915889632'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2011/08/setting-up-dual-monitor-on-ubuntu-1104.html' title='Setting up dual monitor on Ubuntu 11.04 with NVIDIA'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-87zesoGv-bg/TlqB6PhXEyI/AAAAAAAAAzg/0Xcop8nRdAM/s72-c/Screenshot-NVIDIA%2BX%2BServer%2BSettings.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-1358809027222236140</id><published>2011-05-02T13:53:00.000-07:00</published><updated>2011-09-16T13:29:27.289-07:00</updated><title type='text'>Compile libpng + pngwriter on IBM AIX 5.3</title><content type='html'>&lt;style type="text/css"&gt;p { margin-bottom: 0.08in; }&lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://pngwriter.sourceforge.net/site_images/logo1.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 188px; height: 39px; border-style: none;" src="http://pngwriter.sourceforge.net/site_images/logo1.png" alt="" border="0" /&gt;&lt;/a&gt;Compiling pngwriter, generally speaking, compiling any open source code with IBM compiler on IBM AIX machine is challenging. Sometimes, it only takes few minutes to build it, but, s&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i377.photobucket.com/albums/oo212/praveenindiaa/Logos/th_IBM-AIX-1.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 47px; height: 47px; border-style: none;" src="http://i377.photobucket.com/albums/oo212/praveenindiaa/Logos/th_IBM-AIX-1.png" alt="" border="0" /&gt;&lt;/a&gt;ometimes, it takes more than several days to figure it out that you could not use xlc to compile it in the first place because of compiler compatibility issue. Then, you might end up with gcc and, most likely, it's a snap.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;span style="font-family:courier new;"&gt;pngwriter-0.5.4&lt;/span&gt; requires  libpng, but, avoid version 1.5.2(which is the latest version ATTOW) as much as possible. Instead, pick &lt;span style="font-family:courier new;"&gt; libpng-&lt;span style="font-weight: bold;"&gt;1.2.44&lt;/span&gt;&lt;/span&gt; to be able to build it and afford going home tonight and have a dinner on time. :)&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;You will see only one error when you try to build it. Only one! What a day!&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;The error message is  &lt;/p&gt;  &lt;p style="margin-bottom: 0in; font-family: courier new;"&gt;&lt;/p&gt;&lt;blockquote&gt;"pngwriter.cc", line 1533.25: 1540-0217 (S) "__jmpbuf" is not a member of "struct png_struct_def".&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;span style="font-family:courier new;"&gt;pngwriter.h&lt;/span&gt; includes &lt;span style="font-family:courier new;"&gt;png.h&lt;/span&gt; for struct &lt;span style="font-family:courier new;"&gt;png_struct_def&lt;/span&gt;, then, along many other header files, &lt;span style="font-family:courier new;"&gt;/usr/include/sys/context.h&lt;/span&gt; is included. This is the reason why the error occurs. A macro to modify &lt;span style="font-family:courier new;"&gt;jmpbuf&lt;/span&gt; to &lt;span style="font-family:courier new;"&gt;__jmpbuf&lt;/span&gt; is defined in context.h and it actually modified it in line 1533 at &lt;span style="font-family:courier new;"&gt;pngwriter.cc&lt;/span&gt;, whereas the struct definition itself remains unmodified.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;That's why it think '__jmpbuf is not a member of struct'. One easy solution is to move down the struct definition after context.h. By this way, jmpbuf  in the struct definition also will be modified to &lt;span style="font-family:courier new;"&gt;__jmpbuf&lt;/span&gt;.&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;Moving down &lt;span style="font-family:courier new;"&gt;#include &lt;png.h&gt;&lt;/png.h&gt;&lt;/span&gt; right before &lt;span style="font-family:courier new;"&gt;#include &lt;iostream.h&gt;&lt;/iostream.h&gt;&lt;/span&gt; in &lt;span style="font-family:courier new;"&gt;pngwriter.h&lt;/span&gt; solves the problem and you should be able to build it without any error.&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;Good luck.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Brian &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-1358809027222236140?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/1358809027222236140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2011/05/compile-libpng-pngwriter-on-ibm-aix-53.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/1358809027222236140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/1358809027222236140'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2011/05/compile-libpng-pngwriter-on-ibm-aix-53.html' title='Compile libpng + pngwriter on IBM AIX 5.3'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i377.photobucket.com/albums/oo212/praveenindiaa/Logos/th_IBM-AIX-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-4850439910192204854</id><published>2010-11-09T11:49:00.000-08:00</published><updated>2010-11-09T13:44:48.775-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hpc'/><category scheme='http://www.blogger.com/atom/ns#' term='dcs'/><category scheme='http://www.blogger.com/atom/ns#' term='&apos;distributed computing server&apos;'/><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='matlab'/><title type='text'>Matlab DCS + Torque : What's missing?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mathworks.com/cmsimages/51151_wm_pct5_fig1_mainimage.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 180px; height: 140px;" src="http://www.mathworks.com/cmsimages/51151_wm_pct5_fig1_mainimage.jpg" alt="" border="0" /&gt;&lt;/a&gt;Matlab Distributed Computing Server directly supports Torque scheduler with minimum configuration. However, when it passes parameter such as number of CPU to Torque, it only allows passing one parameter using '^N^' keyword, which is defined in 'ResourceTemplate' at 'Scheduler Configuration Properties' window.&lt;br /&gt;&lt;br /&gt;Unfortunately, Torque, in general, needs two parameters to specify number of CPU in this format to submit multi-nodes job.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nodes=X:ppn=Y&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;where X denotes number of node, Y denotes processor per node, respectively.&lt;br /&gt;&lt;br /&gt;Torque set ppn to 1 by default if it is not explicitly specified. In other words, 4 way job result in&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nodes=4:ppn=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;instead of&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nodes=1:ppn=4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;which is ideal for system having node with 4 cores each.&lt;br /&gt;&lt;br /&gt;I needed a Matlab function that can handle this conversion between Matlab user and Matlab Distributed Computing Server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TASKLAYOUT(X,Y)&lt;/span&gt; takes one parameter and claculates optimal way to define X, Y values and constructs right string which can be used by 'psub' command internally.&lt;br /&gt;&lt;br /&gt;For example, assume each node has 8 cores, then &lt;span style="font-family:courier new;"&gt;TASKLAYOUT(X,Y) &lt;/span&gt;generate these output;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 4 -&gt; nodes=1:ppn=4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 8 -&gt; nodes=1:ppn=8&lt;br /&gt;12 -&gt; nodes=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;2:ppn=6&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;13 -&gt; nodes=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;2:ppn=7&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;16 -&gt; nodes=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;2:ppn=8&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;18 -&gt; nodes=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;3:ppn=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;6&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;23 -&gt; nodes=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;3:ppn=8&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;24 -&gt; nodes=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;3:ppn=8&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;32 -&gt; nodes=&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;4:ppn=8&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In case of 12,13 and 18 way job, it does not requests full number of cores per node to minimized waste of unused cores. But, there is still sort of internal fragmentation in case of 13, which requests 14 cores even though it only needs 13 cores. In other words, requesting 13 cores are not really efficient at all.&lt;br /&gt;&lt;br /&gt;Now it's time to install and test it.&lt;br /&gt;&lt;br /&gt;Follow these steps to install &lt;span style="font-family:courier new;"&gt;tasklayout.m&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;1. Define 'ResourceTemplate' in TORQUE Scheduler Configuration Properties&lt;br /&gt;&lt;br /&gt;Click 'Parallel/Manage Configurations' on Matlab window.&lt;br /&gt;Click 'File/Import' on 'Configurations Manager window'.&lt;br /&gt;Double click configuration you want to modify.&lt;br /&gt;Set 'ResourceTemplate' to &lt;span style="font-family:courier new;"&gt;'-l nodes=^N^,walltime=24:00:00'&lt;/span&gt;.&lt;br /&gt;*Probably, most of you have done this already.&lt;br /&gt;&lt;br /&gt;2. Copy &lt;span style="font-family:courier new;"&gt;tasklayout.m&lt;/span&gt; to Matlab directory.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;cp tasklayout.m $MATLAB/toolbox/local&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Modify &lt;span style="font-family:courier new;"&gt;$MATLAB/toolbox/distcomp/@distcomp/@pbsscheduler/pSubmitParallelJob.m&lt;/span&gt;. Assume each node has 8 cores.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;selectStr=strrep(pbs.ResourceTemplate,'^N^',num2str(length(job.Tasks)))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;selectStr=strrep(pbs.ResourceTemplate,'^N^',tasklayout(length(job.Tasks),8))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Done&lt;br /&gt;&lt;br /&gt;Please, let me know if it is not compatible in certain environment or have bugs or anything is missing in this function.&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function taskStr = tasklayout( numTasks,numPpn )&lt;br /&gt;%TASKLAYOUT Construct CPU requirement string for Torque Scheduler&lt;br /&gt;%   TASKLAYOUT(X,Y) construct CPU requirement string for X tasks&lt;br /&gt;%   with each node has Y cores.&lt;br /&gt;%&lt;br /&gt;%   Notes:&lt;br /&gt;%&lt;br /&gt;%   Matlab Distributed Computing Server directly supports Torque scheduler&lt;br /&gt;%   with minimum configuration. However, when it passes parameter such as&lt;br /&gt;%   number of CPU to Torque, it only allows passing one parameter using '^N^'&lt;br /&gt;%   keyword, which is defined in 'ResourceTempalte' at 'Scheduler&lt;br /&gt;%   Configuration Properties' window.&lt;br /&gt;%&lt;br /&gt;%   Unfortunately, Torque, in general, needs two parameters in this format&lt;br /&gt;%   to submit multi nodes job.&lt;br /&gt;%&lt;br /&gt;%   nodes=X:ppn=Y&lt;br /&gt;%&lt;br /&gt;%   where X denotes number of node, Y denotes processor per node,&lt;br /&gt;%   respectively.&lt;br /&gt;%&lt;br /&gt;%   TASKLAYOUT takes one parameter and claculates optimal way to define X, Y&lt;br /&gt;%   values and constructs right string which can be used by 'psub' command&lt;br /&gt;%   internally.&lt;br /&gt;%&lt;br /&gt;%   Example 1:&lt;br /&gt;%      % Run 16 way job, each node has 8 cores.&lt;br /&gt;%        reqStr = tasklayout(16,8)&lt;br /&gt;%&lt;br /&gt;%        ans =&lt;br /&gt;%&lt;br /&gt;%        nodes=2:ppn=8&lt;br /&gt;%&lt;br /&gt;%   returns&lt;br /&gt;%        taskStr&lt;br /&gt;%&lt;br /&gt;%   See also matlabpool&lt;br /&gt;&lt;br /&gt;% For Matlab Distributed Computing Server&lt;br /&gt;% (c) Brian Kim @ Texas A&amp;amp;M University&lt;br /&gt;&lt;br /&gt;if ( numTasks &lt;= numPpn )     &lt;br /&gt;taskStr = strcat('1:ppn=',num2str(numTasks)) ;&lt;br /&gt;elseif ( numTasks &gt; numPpn )&lt;br /&gt;if ( rem(numTasks,numPpn) == 0 )&lt;br /&gt;    taskStr = strcat(num2str(ceil(numTasks/numPpn)), ... ,&lt;br /&gt;        ':ppn=',num2str(numPpn));&lt;br /&gt;else&lt;br /&gt;    taskStr = strcat(num2str(ceil(numTasks/numPpn)),':ppn=', ... ,&lt;br /&gt;        num2str(ceil(numTasks/ceil(numTasks/numPpn))));&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-4850439910192204854?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/4850439910192204854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2010/11/matlab-dcs-torque-whats-missing.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/4850439910192204854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/4850439910192204854'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2010/11/matlab-dcs-torque-whats-missing.html' title='Matlab DCS + Torque : What&apos;s missing?'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-3791535963898903364</id><published>2010-05-18T12:13:00.000-07:00</published><updated>2010-05-19T08:08:44.175-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hpc'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='cluter'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><category scheme='http://www.blogger.com/atom/ns#' term='starccm+'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><category scheme='http://www.blogger.com/atom/ns#' term='aix'/><title type='text'>Scalability study of StarCCM+ on cluster</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Latest version of StarCCM+ starts supporting multi nodes job on POE/IBM/AIX environment. Previously, it was not possible to run StarCCM+ on more than one node in parallel. Therefore, the maximum number of cores is limited to 16 on hydra[1]. But, with StarCCM+ ver 5.02, it became possible to spawn parallel processes on remote compute node through POE parallel environment on IBM cluster. Now, the question is how scalable StarCCM+ is?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Experimental environment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For experiment , lemans_poly_17m.sim file has been tested, which is one of simulation input file frequently used for benchmark. The file size is 6.5GB and it has 17 millions of cells and 95 millions of vertices.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3312/4619074391_f43a529b86_o.jpg"&gt;&lt;img style="cursor: pointer; width: 337px; height: 137px;" src="http://farm4.static.flickr.com/3312/4619074391_f43a529b86_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;The primary purpose of experiment is to identify how scale StarCCM+ is on hydra, however, the relative performance of two different machines is also evaluated. Each compute node on eos[2] has two quad core Intel X5560 based cluster and each node is connected via Infiniband, whereas, compute node on hydra has 8 dual core Power5+ and HPS is used as a interconnect.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm5.static.flickr.com/4062/4619074413_e26618aca7_o.jpg"&gt;&lt;img style="cursor: pointer; width: 524px; height: 216px;" src="http://farm5.static.flickr.com/4062/4619074413_e26618aca7_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Results&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The benchmark results are evaluated from two different perspectives; scalability, relative performance.&lt;br /&gt;&lt;br /&gt;Scalability&lt;br /&gt;&lt;br /&gt;The scalability on eos and hydra shows not much difference each other. The performance with 16 cores is used as a basis for speedup comparison.&lt;br /&gt;&lt;br /&gt;On eos, speedup is easily doubled as the number of core increase and it stays very scalable up to 64 cores. With 128 cores(8x), it slows down and shows only 6.2x speedup.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3413/4619698280_60e4fae1cd_o.jpg"&gt;&lt;img style="cursor: pointer; width: 369px; height: 391px;" src="http://farm4.static.flickr.com/3413/4619698280_60e4fae1cd_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;On hydra, it shows very similar result and stays very scalable up to 64 cores and starts slow down around 128 cores.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3356/4619698278_50d0b4e7aa_o.jpg"&gt;&lt;img style="cursor: pointer; width: 372px; height: 375px;" src="http://farm4.static.flickr.com/3356/4619698278_50d0b4e7aa_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Based on this result, there is no significant difference on the scalability of StarCCM+ on eos and hydra. However, it could be changed with different input files, I/O patterns, and characteristics of data in input file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Performance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The definition of 'performance' here is, simply, who finish simulation fast. With same input file, how long it take on each machine? The differences between eos and hydra varies as the number of cores increase. eos is about 2.51x faster than hydra on 16 cores and 2.41x faster on 128 cores.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm5.static.flickr.com/4003/4619074397_98c161912c.jpg"&gt;&lt;img style="cursor: pointer; width: 500px; height: 400px;" src="http://farm5.static.flickr.com/4003/4619074397_98c161912c.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Benchmark results show that eos performs better than hydra to run StarCCM+ with given input file. However, the differences in hardware specification between 2 machines such as L3 cache size, interconnect, number of cores per node, can change the result with different characteristics of input file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. http://sc.tamu.edu/help/hydra/&lt;br /&gt;2. http://sc.tamu.edu/systems/eos/hardware.php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-3791535963898903364?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/3791535963898903364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2010/05/scalability-study-of-starccm-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3791535963898903364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3791535963898903364'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2010/05/scalability-study-of-starccm-on.html' title='Scalability study of StarCCM+ on cluster'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4003/4619074397_98c161912c_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-9054697495505651073</id><published>2010-05-13T14:42:00.000-07:00</published><updated>2010-05-14T12:50:43.813-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hpc'/><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='mpiifort'/><category scheme='http://www.blogger.com/atom/ns#' term='lammps'/><category scheme='http://www.blogger.com/atom/ns#' term='mpicc'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fftw'/><title type='text'>Quick install guide for LAMMPS on Linux cluster</title><content type='html'>This is a quick installation guide for LAMMS 10 May 2010 version for Linux cluster and it can be done within 1 hours if you follow this carefully.&lt;br /&gt;&lt;br /&gt;SYSTEM SPECIFICATION&lt;br /&gt;&lt;br /&gt;Intel(R) Xeon(R) CPU X5560  @ 2.80GHz&lt;br /&gt;Red Hat Enterprise Linux Server release 5.4 (Tikanga) 2.6.18-164.11.1.el5&lt;br /&gt;Intel compiler and MPI stack&lt;br /&gt;mpiicc for the Intel(R) MPI Library 4.0 for Linux*&lt;br /&gt;Copyright(C) 2003-2010, Intel Corporation.  All rights reserved.&lt;br /&gt;Version 11.1&lt;br /&gt;&lt;br /&gt;Prerequisites&lt;br /&gt;&lt;br /&gt;Download these 2 files and untar them, respectively.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-family: courier new;"&gt;fftw-2.1.5.tar.gz&lt;/span&gt;&lt;br /&gt; http://www.fftw.org/fftw-2.1.5.tar.gz&lt;br /&gt;- &lt;span style="font-family: courier new;"&gt;lammps.tar.gz&lt;/span&gt; (lib for LAMMPS, LAMMPS itself)&lt;br /&gt; http://lammps.sandia.gov/download.html&lt;br /&gt;&lt;br /&gt;Instruction&lt;br /&gt;&lt;br /&gt;In a nutshell, installation procedure consists of 3 steps; (1)FFTW, (2)libs for LAMMPS, (3)LAMMPS itself. And if you use &lt;span style="font-family: courier new;"&gt;mpiicc&lt;/span&gt; and&lt;span style="font-family: courier new;"&gt; mpiifort&lt;/span&gt;, then you don't have to worry about the PATH of MPI package and it will be taken care of automatically.&lt;br /&gt;&lt;br /&gt;(1)FFTW&lt;br /&gt;&lt;br /&gt;Even though the latest version of FFTW is 3.2.2, but, unfortunately, LAMMS can not work with it. You better stick to 2.1.5 for now. And I assume you're installing it at /usr/local/fftw-2.1.5 directory.&lt;br /&gt;&lt;br /&gt;After uncompressing it,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cd fftw-2.1.5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;./configure CC=mpiicc F77=mpiifort --prefix=/usr/local/fftw-2.1.5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make check&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(2)libs for LAMMPS&lt;br /&gt;&lt;br /&gt;After uncompressing lammps.tar.gz,(actually, libs for LAMMPS is part of lammps.tar.gz)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cd lib/reax&lt;/span&gt;&lt;br /&gt;Change ifort to mpiifort in Makefile.ifort&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make -f Makefile.ifort&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cd lib/meam&lt;/span&gt;&lt;br /&gt;Change ifort to mpiifort in Makefile.ifort&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make -f Makefile.ifort&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cd lib/poems&lt;/span&gt;&lt;br /&gt;Change icc to mpiicc in Makefile.icc&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make -f Makefile.icc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(3)LAMMPS&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cd src&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Check which packages are included&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make package-status&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Choose all standard packages to be included&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make yes-standard&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you don't have GPU, then exclude gpu package. Otherwise, you will see tons of error message when you compile it.&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make no-gpu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Edit MAKE/Makefile.linux&lt;br /&gt;&lt;br /&gt;Remove MPI_PATH,MPI_LIB, it will be taken care of by &lt;span style="font-family: courier new;"&gt;mpiicc&lt;/span&gt;, &lt;span style="font-family: courier new;"&gt;mpiifort&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#MPI_PATH =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#MPI_LIB =  -lmpich -lpthread&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;CC=mpiicc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LINK=mpiicc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;FFT_INC = -I/usr/local/fftw-2.1.5/include -DFFT_FFTW&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;FFT_PATH = -L/usr/local/fftw-2.1.5/lib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;FFT_LIB = -lfftw&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Build LAMMPS as an executable and library as well&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make makelib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;make -f Makefile.lib linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;INSTALLATION&lt;br /&gt;&lt;br /&gt;I assume you're installing lammps at /usr/local/lammps directory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;copy bench/ doc/ examples/ potentials/ README tools/ to /usr/local/lammps&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;copy all *.a to /usr/local/lammps/lib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;copy lmp_linux to /usr/local/lammps/bin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Done!!!&lt;br /&gt;&lt;br /&gt;Once you have gotten this far, just let user know lammps is available at /usr/local/lammps, then they know how to play around it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-9054697495505651073?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/9054697495505651073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2010/05/quick-install-guide-for-lammps-on-linux.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/9054697495505651073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/9054697495505651073'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2010/05/quick-install-guide-for-lammps-on-linux.html' title='Quick install guide for LAMMPS on Linux cluster'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-4714557243142352984</id><published>2010-03-03T14:38:00.000-08:00</published><updated>2010-03-03T15:07:02.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openmp'/><category scheme='http://www.blogger.com/atom/ns#' term='mpi'/><title type='text'>OpenMP v.s MPI. Who is the winner?</title><content type='html'>Recently, I have analyzed all the email communication between supercomputer user and helpdesk from 08/2006 to 03/2010. Only &lt;span style="font-weight:bold;"&gt;OpenMP&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;MPI&lt;/span&gt; related emails are counted.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/picokernel/4404379073/" title="openmp by picokernel, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4022/4404379073_fae738a4d3_o.png" width="556" height="403" alt="openmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is just for fun and not intended to deliver any technical explanation or anything. Occasionally, some of user ask just out of curiosity, and this is answer to that. That's it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-4714557243142352984?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/4714557243142352984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2010/03/openmp-vs-mpi-who-is-winner.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/4714557243142352984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/4714557243142352984'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2010/03/openmp-vs-mpi-who-is-winner.html' title='OpenMP v.s MPI. Who is the winner?'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-8319110843250156496</id><published>2010-02-10T08:02:00.000-08:00</published><updated>2010-02-10T08:09:37.833-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='class'/><category scheme='http://www.blogger.com/atom/ns#' term='tamu'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>Short course : Introduction to Unix/Linux</title><content type='html'>For spring semester, we will be offering short course, 'Introduction&lt;br /&gt;to Unix',&lt;br /&gt;&lt;br /&gt;Date : Feb 8(Monday) ~10(Wednesday).&lt;br /&gt;Location : Annex library 417C&lt;br /&gt;&lt;br /&gt;For detail, &lt;br /&gt;&lt;br /&gt;http://groups.google.com/group/tamulinux&lt;br /&gt;&lt;br /&gt;Please, leave a comment or feedback about this class. It would be helpful to improve the class.&lt;br /&gt;Thanks you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-8319110843250156496?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/8319110843250156496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2010/02/short-course-introduction-to-unixlinux.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/8319110843250156496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/8319110843250156496'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2010/02/short-course-introduction-to-unixlinux.html' title='Short course : Introduction to Unix/Linux'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-2923967328224826159</id><published>2009-09-25T14:45:00.000-07:00</published><updated>2009-09-25T15:18:45.759-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='supercomputing'/><category scheme='http://www.blogger.com/atom/ns#' term='tamu'/><category scheme='http://www.blogger.com/atom/ns#' term='account management system'/><title type='text'>New way to manage your account on supercomputer</title><content type='html'>Recently, I have been developing a web based system to manage account on supercomputer. Previously, user need to connect text terminal based system to create account and change password. To be able to do this, user need to install terminal emulator(Hummingbird - Host Explorer) on their Windows machine first and set it up correctly. The problem here is that a lot of our user are not familiar with these 'text terminal' based system and even the interface is not intuitive at all and user has to go through different authentication process for each systems.&lt;br /&gt;&lt;br /&gt;So we have decided to develop a web based system with more intuitive user interface and simple/central authentication process. Once user log in this system, user can create account, change password, and check account balance all in one single place. Now, it is under beta testing.&lt;br /&gt;&lt;br /&gt;1. Login to AMS(Account Management System)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/picokernel/3953647277/" title="1-Login to AMS by picokernel, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2664/3953647277_299468b044_o.jpg" width="613" height="447" alt="1-Login to AMS" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Centralized Authentication System&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/picokernel/3953647283/" title="2-Centralized Authentication System by picokernel, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2573/3953647283_4705c610a9_o.jpg" width="706" height="437" alt="2-Centralized Authentication System" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Account Summary&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/picokernel/3953647287/" title="3-Account Summary by picokernel, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2551/3953647287_279ed7e573_o.jpg" width="785" height="514" alt="3-Account Summary" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. Profile&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/picokernel/3953647289/" title="4-Profile by picokernel, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2675/3953647289_1557626db2_o.jpg" width="687" height="454" alt="4-Profile" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5. Change password&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/picokernel/3953647291/" title="5-Change password by picokernel, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2646/3953647291_45fac5f6bd_o.jpg" width="679" height="425" alt="5-Change password" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-2923967328224826159?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/2923967328224826159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2009/09/new-way-to-manage-your-account-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2923967328224826159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2923967328224826159'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2009/09/new-way-to-manage-your-account-on.html' title='New way to manage your account on supercomputer'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-857859633997617492</id><published>2009-08-19T15:07:00.001-07:00</published><updated>2009-08-20T14:00:26.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='get set function'/><category scheme='http://www.blogger.com/atom/ns#' term='class'/><category scheme='http://www.blogger.com/atom/ns#' term='php class generator'/><category scheme='http://www.blogger.com/atom/ns#' term='php class creator'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='generator'/><title type='text'>PHP class generator</title><content type='html'>Writing a PHP class file is a huge nightmare if it has 20 member variables or more. Why? Because you have to write set function and get function per each member variable. It's 40 functions. What if you have 30 member variables? hm...&lt;br /&gt;&lt;br /&gt;PHP class generator is a solution for that kind of job. It takes the name of class and list of member variables as parameters, then generate PHP class source code automatically.&lt;br /&gt;&lt;br /&gt;For example, if you want&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   &lt;?php&lt;br /&gt;   class testClass&lt;br /&gt;   {&lt;br /&gt;     var $test1;&lt;br /&gt;     var $test2;&lt;br /&gt;&lt;br /&gt;     function __construct()&lt;br /&gt;     {&lt;br /&gt;     }&lt;br /&gt;     function setTest1($test1)&lt;br /&gt;     {&lt;br /&gt;          $this-&gt;test1 = $test1;&lt;br /&gt;     }&lt;br /&gt;     function getTest1()&lt;br /&gt;     {&lt;br /&gt;          return $this-&gt;test1;&lt;br /&gt;     }&lt;br /&gt;     function setTest2($test2)&lt;br /&gt;     {&lt;br /&gt;          $this-&gt;test2 = $test2;&lt;br /&gt;     }&lt;br /&gt;     function getTest2()&lt;br /&gt;     {&lt;br /&gt;          return $this-&gt;test2;&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;   ?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;For example, if you want just type&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;$php genClass.php testClass test1 test2 &gt; testClass.php&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;then it generates source code you want. Stop writing get/set function manually from now. Here is source code. I hope you enjoy it.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;/**&lt;br /&gt; * File : genClass.php&lt;br /&gt; *&lt;br /&gt; * Generate PHP class file with given class name and list of member variables.&lt;br /&gt; *&lt;br /&gt; * @author : Brian @ Texas A&amp;M University&lt;br /&gt; *&lt;br /&gt; * Usage : $php genClass.php className fieldName1 fieldName2 ... &gt; filename&lt;br /&gt; * Example : $php genClass.php testClass test1 test2 &gt; testClass.php&lt;br /&gt; *           $cat testClass.php&lt;br /&gt;   &lt;?php&lt;br /&gt;   class testClass&lt;br /&gt;   {&lt;br /&gt;     var $test1;&lt;br /&gt;     var $test2;&lt;br /&gt;&lt;br /&gt;     function __construct()&lt;br /&gt;     {&lt;br /&gt;     }&lt;br /&gt;     function setTest1($test1)&lt;br /&gt;     {&lt;br /&gt;          $this-&gt;test1 = $test1;&lt;br /&gt;     }&lt;br /&gt;     function getTest1()&lt;br /&gt;     {&lt;br /&gt;          return $this-&gt;test1;&lt;br /&gt;     }&lt;br /&gt;     function setTest2($test2)&lt;br /&gt;     {&lt;br /&gt;          $this-&gt;test2 = $test2;&lt;br /&gt;     }&lt;br /&gt;     function getTest2()&lt;br /&gt;     {&lt;br /&gt;          return $this-&gt;test2;&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;   ?&gt;&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;if ( $argc == 1 )&lt;br /&gt;{&lt;br /&gt; exit("Useage : genClass.php className fieldName1 fieldName2 ... &gt; filename\n");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$name = $argv[1];&lt;br /&gt;$max  = $argc-1;&lt;br /&gt;&lt;br /&gt;echo "&lt;?php\n";&lt;br /&gt;echo "class $name\n";&lt;br /&gt;echo "{\n";&lt;br /&gt;&lt;br /&gt;for ( $i = 2 ; $i &lt;= $max ; $i++ )&lt;br /&gt;{&lt;br /&gt;echo " var \$$argv[$i];\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;echo "\n";&lt;br /&gt;echo " function __construct()\n";&lt;br /&gt;echo " {\n";&lt;br /&gt;echo " }\n";&lt;br /&gt;for ( $i = 2 ; $i &lt;= $max ; $i++ )&lt;br /&gt;{&lt;br /&gt; $tmp = ucfirst($argv[$i]);&lt;br /&gt;echo " function set$tmp(\$$argv[$i])\n";&lt;br /&gt;echo " {\n";&lt;br /&gt;echo "  \$this-&gt;$argv[$i] = \$$argv[$i];\n";&lt;br /&gt;echo " }\n";&lt;br /&gt;echo " function get$tmp()\n";&lt;br /&gt;echo " {\n";&lt;br /&gt;echo "  return \$this-&gt;$argv[$i];\n";&lt;br /&gt;echo " }\n";&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;echo "}\n";&lt;br /&gt;&lt;br /&gt;echo "?&gt;\n";&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-857859633997617492?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/857859633997617492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2009/08/php-class-generator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/857859633997617492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/857859633997617492'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2009/08/php-class-generator.html' title='PHP class generator'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-1963322537629095445</id><published>2009-06-15T14:06:00.000-07:00</published><updated>2009-06-15T15:20:39.242-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='rocks'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='print'/><category scheme='http://www.blogger.com/atom/ns#' term='matlab'/><title type='text'>Rocks cluster 5.2 (beta) &amp; Matlab R2008b on Linux x86_64</title><content type='html'>Introduction&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mathworks.com/products/product_listing/images/ml_icon.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 45px; height: 38px;" src="http://www.mathworks.com/products/product_listing/images/ml_icon.gif" alt="" border="0" /&gt;&lt;/a&gt;You will face 3 problems when you install and run Matlab R2008b on Rocks cluster 5.2 (beta).  Actually, these issues are not necessary caused by Rocks 5.2 cluster, but, it happened on Rocks on Linux x86_64. So, let's fix them!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1. Installation &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It happens when you type 'install' after inserting Matlab DVD into your head node.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bash: /media/MATHWORKS_R2008B/install: /bin/sh: bad interpreter: Permission denied&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The reason is that 'noexec' option is applied internally when it is mounted automatically. Simple fix is that just unmount DVD and mount it again "manually". Then, 'noexec' won't be used by default.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    $unmount /cdrom&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    $mount -t iso9660 /dev/cdrom /cdrom&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.mathworks.com/support/solutions/en/data/1-184PH/"&gt;&lt;span style="font-family:courier new;"&gt;http://www.mathworks.com/support/solutions/en/data/1-184PH/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2. Running demo &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After installing, you might want to test run demos provided with Matlab. And you would click 'Help/Demo' menu and eventually, will click 'Run this demo' link. But, what you get is not a fancy demo window, but a just frustrating error like this.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Matlab is not really smart enough to know that you are using Firefox. So we need to let Matlab know that we are using Firefox. How?&lt;br /&gt;&lt;br /&gt;Edit this file;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    MATLAB_INSTALL_DIR/toolbox/local/docopt.m&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In line 52, change this line&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    doccmd = '';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    doccmd = 'mozilla';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mathworks.com/support/solutions/en/data/1-25NUXQ/"&gt;http://www.mathworks.com/support/solutions/en/data/1-25NUXQ/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;3. Printing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When you click print within Matlab, you would get this error on Linux;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Caused by: java.lang.NullPointerException: null attribute&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.IPPPrintService.isAttributeValueSupported(IPPPrintService.java:1147)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.ServiceDialog$OrientationPanel.updateInfo(ServiceDialog.java:2121)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.ServiceDialog$PageSetupPanel.updateInfo(ServiceDialog.java:1263)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.ServiceDialog.updatePanels(ServiceDialog.java:437)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.ServiceDialog.initPrintDialog(ServiceDialog.java:195)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.ServiceDialog.(ServiceDialog.java:124)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at javax.print.ServiceUI.printDialog(ServiceUI.java:188)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.RasterPrinterJob.printDialog(RasterPrinterJob.java:855)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    at sun.print.PSPrinterJob.printDialog(PSPrinterJob.java:421)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is caused by the bugs in Java printing function, which is used by Matlab to print output. There are several workarounds are suggested, but, in my opinion, the easiest and simples way is adding this line;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Option orientation-requested 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to CUPS's configuration file;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    /etc/cups/printers.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mathworks.com/support/solutions/en/data/1-747TRF/"&gt;http://www.mathworks.com/support/solutions/en/data/1-747TRF/&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-1963322537629095445?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/1963322537629095445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2009/06/rocks-cluster-52-beta-matlab-r2008b-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/1963322537629095445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/1963322537629095445'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2009/06/rocks-cluster-52-beta-matlab-r2008b-on.html' title='Rocks cluster 5.2 (beta) &amp; Matlab R2008b on Linux x86_64'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-3648056841881509028</id><published>2008-10-07T14:56:00.000-07:00</published><updated>2008-12-22T11:28:40.558-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clusterssh'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='matlab'/><title type='text'>cluserssh : life saver for cluster system administrator</title><content type='html'>As an administrator of cluster system, I have to repeat same work on each node occasionally or very often. If cluster have some of useful software installed, specifically such as management tools or administration GUI or something, job can be done nicely and elegantly. Otherwise, it's disaster. Just imagine, typing bunch of same commands over and over again in each node.&lt;br /&gt;&lt;br /&gt;Well, there is a life saver for these under budgeted cluster system administrator.&lt;br /&gt;&lt;br /&gt;It is '&lt;span style="color: rgb(102, 0, 204); font-weight: bold;font-size:100%;" &gt;clusterssh&lt;/span&gt;'.&lt;br /&gt;&lt;br /&gt;Few days ago, I had a job assigned and it was installing a new Matlab 2008a on 8 linux machines. It is not a cluster system though, but, what I have to do is basically install Matlab 2008a 8 times, which means I have to login each node and initiate installation procedure and type all the parameters in each step of installation process again and again.&lt;br /&gt;&lt;br /&gt;I used '&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);"&gt;clusterssh&lt;/span&gt;&lt;/span&gt;' instead of normal ssh and I saved a lot of time and typing same thing over and over.&lt;br /&gt;&lt;br /&gt;It's never been easier. Just type this command in your xterm;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;$cssh root@machine1 root@machine2 root@machine3  root@machine4 root@machine5 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;then, it magically fires up 5 xterm windows concurrently and one small 'command window'. Then, click that command window to put cursor focus on it, and type any command. Now real magic starts.&lt;br /&gt;&lt;br /&gt;For example, if you type 'ls', then you will see that command is sent to each node, ran and showed the result.&lt;br /&gt;&lt;br /&gt;It's kind like 'one shot, kills multiple birds'&lt;br /&gt;&lt;br /&gt;So, what I did to install Matlab 2008a on 8 Linux machines was simply that;&lt;br /&gt;&lt;br /&gt;(1) put Matlab dvd on machine 1&lt;br /&gt;(2) export dvd through NFS&lt;br /&gt;(3) cssh to 7 machines&lt;br /&gt;(4) mount it using NFS&lt;br /&gt;(5) go through Matlab installation only once&lt;br /&gt;(6) Boom! It's done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-3648056841881509028?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/3648056841881509028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2008/10/cluserssh-life-saver-for-cluster-system.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3648056841881509028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3648056841881509028'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2008/10/cluserssh-life-saver-for-cluster-system.html' title='cluserssh : life saver for cluster system administrator'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-3931884434390283541</id><published>2008-08-29T09:18:00.000-07:00</published><updated>2008-08-29T09:39:33.701-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bhist'/><category scheme='http://www.blogger.com/atom/ns#' term='job status'/><category scheme='http://www.blogger.com/atom/ns#' term='LSF'/><category scheme='http://www.blogger.com/atom/ns#' term='batch scheduler'/><title type='text'>Enhanced bhist source code</title><content type='html'>One of popular batch scheduler in Supercomputing area is LSF.  As many other forks out there, I used LSF for a while until we switched to other one. bhist is one of LSF command to &lt;span style="font-family:Helvetica,Arial,sans-serif;"&gt; displays historical information about jobs.&lt;br /&gt;&lt;br /&gt;I was assigned to develop a shell script to display job list &lt;/span&gt;&lt;span style="font-family:Helvetica,Arial,sans-serif;"&gt;consumed more than certain wall time clock &lt;/span&gt;&lt;span style="font-family:Helvetica,Arial,sans-serif;"&gt;of certain user. So, I've got 2 input parameters; wall clock time and user id. And output should be the list of jobs used more than given wall time clock and it should contain detail information about job. Finally, the output should be suitable for printing and reporting.&lt;br /&gt;&lt;br /&gt;This is what I came up with after spending one or two days. To align column or row for printing layout, it includes lots of intentional tabs and white spaces.&lt;br /&gt;&lt;br /&gt;Here is sample output;&lt;br /&gt;&lt;br /&gt;Extended bhist&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;=====================================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DATE            JOBID   USER    JOB_NAME        PEND    PSUSP   RUN     SSUSP   TOTAL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Aug 29 13:33:51 16464   xxx     test1           10      0       82      0       92&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Aug 29 13:46:51 16465   xxx     test1           10      0       4402    0       4412&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Aug 29 15:20:37 16471   xxx     test1           8       0       13639   0       13647&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;=====================================================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                                                Total CPU time: 569:53:52&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Source code&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# NAME   : ebhist.new&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#          Display output of bhis with time &amp;amp; date information of each job of LSF.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# AUTHOR : Brian Kim&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#          Supercomputer Center&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# DATE   : SEPTEMBER 12, 2005&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;function print_title {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo $1 $2 $3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "Extended bhist : " $1 $2 $3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;function print_usage {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "Usage: ebhist WALLTIME ACCOUNT"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; echo "       Display job information of [ACCOUNT]"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; echo "       which consumed more than [WALLTIME] second"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "Example:"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "       ebhist 1000 guest"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;function print_heading {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#       echo "\tDATE\tJOBID\tUSER\tJOB_NAME\tPEND\tPSUSP\tRUN\tUSUSP\tSSUSP\tUNKWN\tTOTAL"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#       echo "==============================================================================="&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "====================================================================================="&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "DATE\t\tJOBID\tUSER\tJOB_NAME\tPEND\tPSUSP\tRUN\tSSUSP\tTOTAL"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "-------------------------------------------------------------------------------------"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#       echo "-------------------------------------------------------------------------------"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;function print_footer {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       a=$1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       hh=`expr $a \/ 3600`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       tmp=`expr $a \% 3600`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       mm=`expr $tmp \/ 60`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ss=`expr $tmp \% 60`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       if [ $ss -lt 10 ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               ss="0"$ss&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       fi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       if [ $mm -lt 10 ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               mm="0"$mm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       fi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       if [ $hh -lt 10 ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               hh="0"$hh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       fi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "====================================================================================="&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#       echo "==============================================================================="&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo "\t\t\t\t\t\tTotal CPU time: "$hh:$mm:$ss&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#       echo $hh:$mm:$ss&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;function set_parameter {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       min_cpu_time=$1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       id=$2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Start of program&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print_title $0 $1 $2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [ $# -ne 2 ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       print_usage&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; exit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;set_parameter $1 $2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print_heading&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MYSUM=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my_date=""&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bhist -a -u $id | \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;while read jobid user job_name pend psusp run ususp ssusp unkwn total&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       case $jobid in&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               "") continue ;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               JOBID) continue ;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               Summary) continue ;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       esac&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; if [ $run -lt $min_cpu_time ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               continue&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               if [ ${#job_name} -gt 7 ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                       NUM_TAB='\t'  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                       NUM_TAB='\t\t'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               fi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       MYSUM=`expr $MYSUM + $run`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#       echo $MYSUM $run&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#       echo `bhist -l $jobid | grep Submitted | cut -d: -f1-3` "\t$jobid\t$user\t$job_name$NUM_TAB$pend\t$psusp\t$run\t$ususp\t$ssusp\t$unkwn\t$total"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       my_date=`bhist -l $jobid | grep Submitted | cut -c5-19`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       my_date_length=`echo $my_date | wc -c`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       if [ my_date_length -lt 16 ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               PADDING=" "   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               PADDING=""    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       echo $my_date$PADDING" $jobid\t$user\t$job_name$NUM_TAB$pend\t$psusp\t$run\t$ssusp\t$total"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       fi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print_footer $MYSUM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# End of program&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-3931884434390283541?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/3931884434390283541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2008/08/enhanced-bhist-source-code.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3931884434390283541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3931884434390283541'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2008/08/enhanced-bhist-source-code.html' title='Enhanced bhist source code'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-7882066781596304107</id><published>2008-07-22T13:23:00.000-07:00</published><updated>2008-07-22T13:39:11.002-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='SuSE'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='KDirStat'/><title type='text'>What is biggest file on my hard disk?</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;su + sort&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;About ten years ago, whenever my hard disk space is running low, I used to run shell script using 'du' command to find out which file is taking biggest space and select victim file/directory to kill and save some room on my hard disk. Basically, the script uses 'du' command for each directory recursively from /root directory, after than, 'sort' command sorts that result descending order. Then the first item on the list is taking biggest space and so on.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_yTohBPrpTn0/SIZDDnJKPrI/AAAAAAAAAY8/H2CR40Qmna4/s1600-h/kdirstat.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_yTohBPrpTn0/SIZDDnJKPrI/AAAAAAAAAY8/H2CR40Qmna4/s320/kdirstat.jpg" alt="" id="BLOGGER_PHOTO_ID_5225938146936110770" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;KDirStat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Now, my SUSE linux has a gui application called 'KDirStat'. It exactly does same thing and shows the result even graphical way to help you more visually figure out which file you should delete to get some extra room on your hard disk .:)&lt;br /&gt;&lt;br /&gt;For my experiments, I have 3 Matlab installed on my hard disk and each of it takes about 2GB. Because of these 3 Matlabs, my hard disk is running low and only 1GB is left. Now, I removed oldest version of Matlab and it resulted in 3G available disk space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-7882066781596304107?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/7882066781596304107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2008/07/what-is-biggest-file-on-my-hard-disk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/7882066781596304107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/7882066781596304107'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2008/07/what-is-biggest-file-on-my-hard-disk.html' title='What is biggest file on my hard disk?'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_yTohBPrpTn0/SIZDDnJKPrI/AAAAAAAAAY8/H2CR40Qmna4/s72-c/kdirstat.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-780161287338648154</id><published>2008-03-07T13:46:00.000-08:00</published><updated>2008-05-19T22:37:27.025-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SuSE'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu/VirtualBox/OpenSuSE10.3/Full screen</title><content type='html'>Ubuntu 7.10/VirtualBox1.5.2_OSE/SuSE 10.3 x86_64&lt;br /&gt;&lt;br /&gt;I have been playing with VirtualBox on OpenSuSE 10.3 and have been successful with Windows guest but, Ubuntu guest has been irritated me few days by resisting to be full screen mode. I have installed 'Guest Addition' and did everything I have seen from internet forum. But, all didn't work.&lt;br /&gt;&lt;br /&gt;Finally, I found out the reason why it is. When I was installing 'Guest Addition', I just clicked the icon of installation script' file and I thought it's done. Today, I opened a terminal window and typed installation script name to run it and it turns out that I should be a root to install it. I've totally forgot about this.&lt;br /&gt;&lt;br /&gt;So I used 'sudo' command to run it under root privilege and it works fine now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-780161287338648154?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/780161287338648154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2008/03/ubuntuvirtualboxopensuse103.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/780161287338648154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/780161287338648154'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2008/03/ubuntuvirtualboxopensuse103.html' title='Ubuntu/VirtualBox/OpenSuSE10.3/Full screen'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-2534808272986721017</id><published>2008-03-07T13:37:00.001-08:00</published><updated>2008-05-19T22:31:08.985-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='CentOS5'/><title type='text'>CentOS5/Remote desktop</title><content type='html'>CentOS5/Remote desktop&lt;br /&gt;&lt;br /&gt;Using remote desktop on CentOS5(RHEL5) looks simple until you face&lt;br /&gt;&lt;br /&gt;                     &lt;span style="color: rgb(153, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;b&gt;unable&lt;/b&gt; to connect to host: No &lt;b&gt;route&lt;/b&gt; to host (113)&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;' &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;error message.&lt;br /&gt;&lt;br /&gt;This is caused by firewall setting of target machine, which is normally a machine you want to connect to.&lt;br /&gt;&lt;br /&gt;Don't panic!&lt;br /&gt;&lt;br /&gt;It's very simple. Login to the target machine and click the menu 'System/Administration/Security level and Firewall'&lt;br /&gt;&lt;br /&gt;and click 'Other ports' then add 5900 port.&lt;br /&gt;&lt;br /&gt;Once you have done so far, try again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-2534808272986721017?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/2534808272986721017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2008/03/centos5remote-desktop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2534808272986721017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/2534808272986721017'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2008/03/centos5remote-desktop.html' title='CentOS5/Remote desktop'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-4504234396490700311</id><published>2007-11-20T08:27:00.000-08:00</published><updated>2008-05-19T22:38:49.324-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dual monitor'/><category scheme='http://www.blogger.com/atom/ns#' term='RHEL'/><title type='text'>RHEL dual monitor</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Dual monitor test on RHEL 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Video card&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;nVidia 128MB PCIe x16 nVidia Quadro NVS 285, Dual DVI or Dual VGA capable&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Monitors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Two monitors have different resolution each other;&lt;br /&gt;&lt;br /&gt;1)DELL 2007FPW, 1600x1200&lt;br /&gt;2)DELL 1707FPVt, 1280x1024&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Test methods&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are two different mode for utilizing 2 monitors on Linux. Both of them can be configured in /etc/X11/xorg.conf file.&lt;br /&gt;&lt;br /&gt;TwinView : Single X session&lt;br /&gt;&lt;br /&gt;&lt;pre wrap=""&gt;&lt;span style="font-size:85%;"&gt;# nvidia-xconfig: X configuration file generated by nvidia-xconfig&lt;br /&gt;# nvidia-xconfig:  version 1.0  (buildmeister@builder26)  Wed Mar 29 15:31:59 PST 2006&lt;br /&gt;&lt;br /&gt;# Xorg configuration created by system-config-display&lt;br /&gt;&lt;br /&gt;Section "ServerLayout"&lt;br /&gt;Identifier     "single head configuration"&lt;br /&gt;Screen      0  "Screen0" 0 0&lt;br /&gt;InputDevice    "Mouse0" "CorePointer"&lt;br /&gt;InputDevice    "Keyboard0" "CoreKeyboard"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Files"&lt;br /&gt;&lt;br /&gt;# RgbPath is the location of the RGB database.  Note, this is the name of the&lt;br /&gt;# file minus the extension (like ".txt" or ".db").  There is normally&lt;br /&gt;# no need to change the default.&lt;br /&gt;# Multiple FontPath entries are allowed (they are concatenated together)&lt;br /&gt;# By default, Red Hat 6.0 and later now use a font server independent of&lt;br /&gt;# the X server to render fonts.&lt;br /&gt;RgbPath         "/usr/X11R6/lib/X11/rgb"&lt;br /&gt;FontPath        "unix/:7100"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Module"&lt;br /&gt;Load           "dbe"&lt;br /&gt;Load           "extmod"&lt;br /&gt;Load           "fbdevhw"&lt;br /&gt;Load           "glx"&lt;br /&gt;Load           "record"&lt;br /&gt;Load           "freetype"&lt;br /&gt;Load           "type1"&lt;br /&gt;Load           "vnc"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "ServerFlags"&lt;br /&gt;Option         "AllowMouseOpenFail" "yes"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt;&lt;br /&gt;# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))&lt;br /&gt;# Option "Xleds"  "1 2 3"&lt;br /&gt;# To disable the XKEYBOARD extension, uncomment XkbDisable.&lt;br /&gt;# Option "XkbDisable"&lt;br /&gt;# To customise the XKB settings to suit your keyboard, modify the&lt;br /&gt;# lines below (which are the defaults).  For example, for a non-U.S.&lt;br /&gt;# keyboard, you will probably want to use:&lt;br /&gt;# Option "XkbModel" "pc102"&lt;br /&gt;# If you have a US Microsoft Natural keyboard, you can use:&lt;br /&gt;# Option "XkbModel" "microsoft"&lt;br /&gt;#&lt;br /&gt;# Then to change the language, change the Layout setting.&lt;br /&gt;# For example, a german layout can be obtained with:&lt;br /&gt;# Option "XkbLayout" "de"&lt;br /&gt;# or:&lt;br /&gt;# Option "XkbLayout" "de"&lt;br /&gt;# Option "XkbVariant" "nodeadkeys"&lt;br /&gt;#&lt;br /&gt;# If you'd like to switch the positions of your capslock and&lt;br /&gt;# control keys, use:&lt;br /&gt;# Option "XkbOptions" "ctrl:swapcaps"&lt;br /&gt;# Or if you just want both to be control, use:&lt;br /&gt;# Option "XkbOptions" "ctrl:nocaps"&lt;br /&gt;#&lt;br /&gt;Identifier     "Keyboard0"&lt;br /&gt;Driver         "kbd"&lt;br /&gt;Option         "XkbModel" "pc105"&lt;br /&gt;Option         "XkbLayout" "us"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt;Identifier     "Mouse0"&lt;br /&gt;Driver         "mouse"&lt;br /&gt;Option         "Protocol" "IMPS/2"&lt;br /&gt;Option         "Device" "/dev/input/mice"&lt;br /&gt;Option         "ZAxisMapping" "4 5"&lt;br /&gt;Option         "Emulate3Buttons" "no"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Monitor"&lt;br /&gt;Identifier     "Monitor0"&lt;br /&gt;VendorName     "Monitor Vendor"&lt;br /&gt;ModelName      "Dell 2000FP (Digital)"&lt;br /&gt;HorizSync       31.5 - 80.0&lt;br /&gt;VertRefresh     56.0 - 76.0&lt;br /&gt;Option         "dpms"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Device"&lt;br /&gt;Identifier     "Videocard0"&lt;br /&gt;Driver         "nvidia"&lt;br /&gt;VendorName     "Videocard vendor"&lt;br /&gt;BoardName      "NVIDIA PCI-Express Quadro 4 285 NVS"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;# for TwinView&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;BusID       "PCI:7:0:0"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option     "TwinView"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option     "MetaModes"  "1280x1024, 1280x1024; 1280x1024,1280x1024; 1280x1024; 1024x768,1024x768; 1024x768; 800x600,800x600; 800x600"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option     "TwinViewOrientation"      "RightOf"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option     "SecondMonitorHorizSync"   "30-81"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option     "SecondMonitorVertRefresh" "56-76"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Screen"&lt;br /&gt;Identifier     "Screen0"&lt;br /&gt;Device         "Videocard0"&lt;br /&gt;Monitor        "Monitor0"&lt;br /&gt;DefaultDepth    24&lt;br /&gt;Option         "SecurityTypes" "VncAuth"&lt;br /&gt;Option         "UserPasswdVerifier" "VncAuth"&lt;br /&gt;Option         "PasswordFile" "&lt;i class="moz-txt-slash"&gt;&lt;span class="moz-txt-tag"&gt;/&lt;/span&gt;root&lt;span class="moz-txt-tag"&gt;/&lt;/span&gt;&lt;/i&gt;.vnc/passwd"&lt;br /&gt;SubSection     "Display"&lt;br /&gt; Viewport    0 0&lt;br /&gt; Depth       16&lt;br /&gt; Modes      "1024x768" "800x600" "640x480"&lt;br /&gt;EndSubSection&lt;br /&gt;SubSection     "Display"&lt;br /&gt; Viewport    0 0&lt;br /&gt; Depth       24&lt;br /&gt; Modes      "1600x1200" "1680x1050" "1400x1050" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"&lt;br /&gt;EndSubSection&lt;br /&gt;EndSection&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Dual monitor : Dual X session&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre wrap=""&gt;&lt;span style="font-size:85%;"&gt;# nvidia-xconfig: X configuration file generated by nvidia-xconfig&lt;br /&gt;# nvidia-xconfig:  version 1.0  (buildmeister@builder26)  Wed Mar 29 15:31:59 PST 2006&lt;br /&gt;&lt;br /&gt;# Xorg configuration created by system-config-display&lt;br /&gt;&lt;br /&gt;Section "ServerLayout"&lt;br /&gt;#   Identifier     "single head configuration"&lt;br /&gt;Identifier     "single head configuration"&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Screen         "Screen0" LeftOf "Screen1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Screen         "Screen1"&lt;/span&gt;&lt;br /&gt;InputDevice    "Mouse0" "CorePointer"&lt;br /&gt;InputDevice    "Keyboard0" "CoreKeyboard"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Files"&lt;br /&gt;&lt;br /&gt;# RgbPath is the location of the RGB database.  Note, this is the name of the&lt;br /&gt;# file minus the extension (like ".txt" or ".db").  There is normally&lt;br /&gt;# no need to change the default.&lt;br /&gt;# Multiple FontPath entries are allowed (they are concatenated together)&lt;br /&gt;# By default, Red Hat 6.0 and later now use a font server independent of&lt;br /&gt;# the X server to render fonts.&lt;br /&gt;RgbPath         "/usr/X11R6/lib/X11/rgb"&lt;br /&gt;FontPath        "unix/:7100"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Module"&lt;br /&gt;Load           "dbe"&lt;br /&gt;Load           "extmod"&lt;br /&gt;Load           "fbdevhw"&lt;br /&gt;Load           "glx"&lt;br /&gt;Load           "record"&lt;br /&gt;Load           "freetype"&lt;br /&gt;Load           "type1"&lt;br /&gt;Load           "vnc"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "ServerFlags"&lt;br /&gt;Option         "AllowMouseOpenFail" "yes"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt;&lt;br /&gt;# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))&lt;br /&gt;# Option "Xleds"  "1 2 3"&lt;br /&gt;# To disable the XKEYBOARD extension, uncomment XkbDisable.&lt;br /&gt;# Option "XkbDisable"&lt;br /&gt;# To customise the XKB settings to suit your keyboard, modify the&lt;br /&gt;# lines below (which are the defaults).  For example, for a non-U.S.&lt;br /&gt;# keyboard, you will probably want to use:&lt;br /&gt;# Option "XkbModel" "pc102"&lt;br /&gt;# If you have a US Microsoft Natural keyboard, you can use:&lt;br /&gt;# Option "XkbModel" "microsoft"&lt;br /&gt;#&lt;br /&gt;# Then to change the language, change the Layout setting.&lt;br /&gt;# For example, a german layout can be obtained with:&lt;br /&gt;# Option "XkbLayout" "de"&lt;br /&gt;# or:&lt;br /&gt;# Option "XkbLayout" "de"&lt;br /&gt;# Option "XkbVariant" "nodeadkeys"&lt;br /&gt;#&lt;br /&gt;# If you'd like to switch the positions of your capslock and&lt;br /&gt;# control keys, use:&lt;br /&gt;# Option "XkbOptions" "ctrl:swapcaps"&lt;br /&gt;# Or if you just want both to be control, use:&lt;br /&gt;# Option "XkbOptions" "ctrl:nocaps"&lt;br /&gt;#&lt;br /&gt;Identifier     "Keyboard0"&lt;br /&gt;Driver         "kbd"&lt;br /&gt;Option         "XkbModel" "pc105"&lt;br /&gt;Option         "XkbLayout" "us"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt;Identifier     "Mouse0"&lt;br /&gt;Driver         "mouse"&lt;br /&gt;Option         "Protocol" "IMPS/2"&lt;br /&gt;Option         "Device" "/dev/input/mice"&lt;br /&gt;Option         "ZAxisMapping" "4 5"&lt;br /&gt;Option         "Emulate3Buttons" "no"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Monitor"&lt;br /&gt;Identifier     "Monitor0"&lt;br /&gt;VendorName     "Monitor Vendor"&lt;br /&gt;ModelName      "Dell 2000FP (Digital)"&lt;br /&gt;HorizSync       31.5 - 80.0&lt;br /&gt;VertRefresh     56.0 - 76.0&lt;br /&gt;Option         "dpms"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;Section "Monitor"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Identifier     "Monitor1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  VendorName     "Monitor Vendor"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  ModelName      "Dell 1707FP (Digital)"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  HorizSync       31.5 - 80.0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  VertRefresh     56.0 - 76.0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option         "dpms"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;EndSection&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Section "Device"&lt;br /&gt;Identifier     "Videocard0"&lt;br /&gt;Driver         "nvidia"&lt;br /&gt;VendorName     "Videocard vendor"&lt;br /&gt;BoardName      "NVIDIA PCI-Express Quadro 4 285 NVS"&lt;br /&gt;BusID          "PCI:7:0:0"&lt;br /&gt;Screen 0&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;Section "Device"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Identifier     "Videocard1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Driver         "nvidia"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  VendorName     "Videocard vendor"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  BoardName      "NVIDIA PCI-Express Quadro 4 285 NVS"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;BusID          "PCI:7:0:0"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;Screen 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;EndSection&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Section "Screen"&lt;br /&gt;Identifier     "Screen0"&lt;br /&gt;Device         "Videocard0"&lt;br /&gt;Monitor        "Monitor0"&lt;br /&gt;DefaultDepth    24&lt;br /&gt;Option         "SecurityTypes" "VncAuth"&lt;br /&gt;Option         "UserPasswdVerifier" "VncAuth"&lt;br /&gt;Option         "PasswordFile" "&lt;i class="moz-txt-slash"&gt;&lt;span class="moz-txt-tag"&gt;/&lt;/span&gt;root&lt;span class="moz-txt-tag"&gt;/&lt;/span&gt;&lt;/i&gt;.vnc/passwd"&lt;br /&gt;SubSection     "Display"&lt;br /&gt; Viewport    0 0&lt;br /&gt; Depth       16&lt;br /&gt; Modes      "1024x768" "800x600" "640x480"&lt;br /&gt;EndSubSection&lt;br /&gt;SubSection     "Display"&lt;br /&gt; Viewport    0 0&lt;br /&gt; Depth       24&lt;br /&gt; Modes      "1600x1200" "1680x1050" "1400x1050" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"&lt;br /&gt;EndSubSection&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;Section "Screen"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Identifier     "Screen1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Device         "Videocard1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Monitor        "Monitor1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  DefaultDepth    24&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option         "SecurityTypes" "VncAuth"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option         "UserPasswdVerifier" "VncAuth"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  Option         "PasswordFile" "&lt;/span&gt;&lt;i style="color: rgb(51, 0, 153);" class="moz-txt-slash"&gt;&lt;span class="moz-txt-tag"&gt;/&lt;/span&gt;root&lt;span class="moz-txt-tag"&gt;/&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;.vnc/passwd"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  SubSection     "Display"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;      Viewport    0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;      Depth       16&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;      Modes      "1024x768" "800x600" "640x480"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  EndSubSection&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  SubSection     "Display"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;      Viewport    0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;      Depth       24&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;      Modes      "1600x1200" "1680x1050" "1400x1050" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;  EndSubSection&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);font-size:85%;" &gt;&lt;br /&gt;EndSection&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Results&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;TwinView shares one X session and it looks virtually one big screen. However, failed to have a optimal resolution since two monitor has different resolution and ether of them does not work in maximum resolution and it looks like big font or low resolution.&lt;br /&gt;&lt;br /&gt;Dual monitor looks like you have two machines since it shows you different X session on each monitor. Mouse pointer moves one to another back and forth. It works fine and each monitor has menu bar separately. Best solution for two monitor with different resolution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;http://gentoo-wiki.com/HOWTO_Dual_Monitors&lt;br /&gt;http://www.yolinux.com/TUTORIALS/LinuxAndDualMonitors.html&lt;br /&gt;http://http.download.nvidia.com/XFree86/Linux-x86/1.0-8178/README/appendix-p.html&lt;br /&gt;http://support.dell.com/support/edocs/video/P107426/en/usage.htm#display_modes&lt;br /&gt;http://support.dell.com/support/edocs/monitors/2007WFP/en/index.htm&lt;br /&gt;http://support2.jp.dell.com/docs/monitors/1707FPV/en/index.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-4504234396490700311?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/4504234396490700311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2007/11/rhel-dual-monitor.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/4504234396490700311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/4504234396490700311'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2007/11/rhel-dual-monitor.html' title='RHEL dual monitor'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-3097177753007388975</id><published>2007-10-10T08:32:00.000-07:00</published><updated>2010-03-10T14:04:14.759-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='userdir'/><category scheme='http://www.blogger.com/atom/ns#' term='rhel4'/><category scheme='http://www.blogger.com/atom/ns#' term='RHEL'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>RHEL4 Apache UserDir</title><content type='html'>On RHEL4, there is one more thing you need to do before your UserDir gets work.&lt;br /&gt;&lt;br /&gt;http://www.astahost.com/info.php/configuring-apache-fedora-core-3-userdir_t3659.html&lt;br /&gt;&lt;br /&gt;chcon -t httpd_sys_content_t -R $HOME/public_html&lt;br /&gt;&lt;br /&gt;Now public_html works fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-3097177753007388975?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/3097177753007388975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2007/10/rhel4-apache-userdir.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3097177753007388975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3097177753007388975'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2007/10/rhel4-apache-userdir.html' title='RHEL4 Apache UserDir'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369183939077813160.post-3915847874360645303</id><published>2007-03-20T12:47:00.000-07:00</published><updated>2008-05-19T22:35:57.971-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SuSE'/><category scheme='http://www.blogger.com/atom/ns#' term='sendmail'/><title type='text'>Playing with SuSE</title><content type='html'>To config sendmail on SuSE 10.1&lt;br /&gt;&lt;br /&gt;/etc/sysconfig/sendmail&lt;br /&gt;/etc/sysconfig/mail&lt;br /&gt;  SMTPD_LISTEN_REMOTE="yes" # for incoming email&lt;br /&gt;$/sbin/SuSEconfig&lt;br /&gt;&lt;br /&gt;$service sendmail restart&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2369183939077813160-3915847874360645303?l=hpclab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpclab.blogspot.com/feeds/3915847874360645303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hpclab.blogspot.com/2007/03/playing-with-suse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3915847874360645303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2369183939077813160/posts/default/3915847874360645303'/><link rel='alternate' type='text/html' href='http://hpclab.blogspot.com/2007/03/playing-with-suse.html' title='Playing with SuSE'/><author><name>Brian T.S.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_yTohBPrpTn0/ShQ5j7TFICI/AAAAAAAAAq0/KQV_8e3dRjw/s1600-R/34d56e2_bigger.jpg'/></author><thr:total>0</thr:total></entry></feed>
