<?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-4349239168203998591</id><updated>2011-11-30T11:46:02.969-08:00</updated><title type='text'>MPJ Express Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-4978012857994466592</id><published>2011-02-28T09:52:00.001-08:00</published><updated>2011-02-28T09:53:39.806-08:00</updated><title type='text'>A talk on MPJ Express at CSAIL, MIT</title><content type='html'>Aamir Shafi gave a talk on "&lt;a href="http://mpj-express.org/docs/talks/mpjexpress-csail.pptx"&gt;Programming Parallel Hardware using MPJ Express&lt;/a&gt;" at CSAIL, MIT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-4978012857994466592?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/4978012857994466592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2011/02/talk-on-mpj-express-at-csail-mit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4978012857994466592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4978012857994466592'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2011/02/talk-on-mpj-express-at-csail-mit.html' title='A talk on MPJ Express at CSAIL, MIT'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-4910507074374938256</id><published>2011-01-07T15:05:00.000-08:00</published><updated>2011-02-22T18:57:19.477-08:00</updated><title type='text'>MPJ Express Software Citation in Research Papers</title><content type='html'>&lt;span class="Apple-style-span"&gt;Dear MPJ Express Community,&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Please cite (reference) the following paper for acknowledging the use of MPJ Express in our research work.&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6WKJ-4VT1FYK-1&amp;amp;_user=10&amp;amp;_coverDate=06/30/2009&amp;amp;_rdoc=1&amp;amp;_fmt=high&amp;amp;_orig=search&amp;amp;_origin=search&amp;amp;_sort=d&amp;amp;_docanchor=&amp;amp;view=c&amp;amp;_searchStrId=1652266844&amp;amp;_rerunOrigin=google&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=b4ddc83f402204b3051084893be8da92&amp;amp;searchtype=a"&gt;Nested parallelism for multi-core HPC systems using Java&lt;/a&gt; [&lt;a href="http://dblp.uni-trier.de/rec/bibtex/journals/jpdc/ShafiCB09"&gt;bibtex&lt;/a&gt;]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Thanks&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;MPJ Express Team&lt;/span&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/4349239168203998591-4910507074374938256?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/4910507074374938256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2011/01/mpj-express-software-citation-in.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4910507074374938256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4910507074374938256'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2011/01/mpj-express-software-citation-in.html' title='MPJ Express Software Citation in Research Papers'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-5071748502447286226</id><published>2011-01-07T14:58:00.000-08:00</published><updated>2011-01-07T15:05:17.325-08:00</updated><title type='text'>MPJ Express Release 0.37</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Dear &lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); font-size: 13px; "&gt;MPJ&lt;/span&gt;&lt;span class="Apple-style-span"&gt; &lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); font-size: 13px; "&gt;Express&lt;/span&gt;&lt;span class="Apple-style-span"&gt; Community,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;We are pleased to announce the next beta &lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); font-size: 13px; "&gt;release&lt;/span&gt;&lt;span class="Apple-style-span"&gt; (0.37) of the &lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); font-size: 13px; "&gt;MPJ&lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); "&gt; &lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); font-size: 13px; "&gt;Express&lt;/span&gt;&lt;span class="Apple-style-span"&gt; software. This &lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); font-size: 13px; "&gt;release&lt;/span&gt;&lt;span class="Apple-style-span"&gt; is mainly a bug fix &lt;/span&gt;&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); font-size: 13px; "&gt;release.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;CHANGELOG&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;---------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; "&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;1. Added the executing and debugging tutorial of MPJ Express applications &lt;/span&gt;using Eclipse IDE. 14/5/2010&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;2. Modified the runtime to get rid of the shared directory requirement &lt;/span&gt;between the starter (head node) and daemons (running on compute nodes). This part is coded by Rizwan Hanif and Amjad Aziz. 6/1/2011&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3. Fixed a bug that causes daemons to crash on Windows boxes. 4/1/2011&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: 16px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;You may download the software from:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt; &lt;/span&gt;&lt;a href="http://mpj-express.org/" target="_blank" style="color: rgb(42, 93, 176); font-size: 13px; "&gt;http://&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); background-position: initial initial; background-repeat: initial initial; "&gt;mpj&lt;/span&gt;-&lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); background-position: initial initial; background-repeat: initial initial; "&gt;express&lt;/span&gt;.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;Feel free to contact us in case of any queries.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;Best Regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 13px; "&gt;&lt;br /&gt;Aamir Shafi&lt;br /&gt;Bryan Carpenter&lt;br /&gt;Mark Baker&lt;br /&gt;Guillermo López Taboada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-5071748502447286226?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/5071748502447286226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2011/01/mpj-express-release-037.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/5071748502447286226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/5071748502447286226'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2011/01/mpj-express-release-037.html' title='MPJ Express Release 0.37'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-959086125040075268</id><published>2010-12-01T08:39:00.000-08:00</published><updated>2010-12-01T08:55:48.528-08:00</updated><title type='text'>Debugging MPJ Express Applications using Eclipse and Netbeans in the multicore mode</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;Acknowledgement: This work is done by &lt;a href="http://hpc.seecs.nust.edu.pk/~amjad.aziz/"&gt;Amjad Aziz&lt;/a&gt; and &lt;a href="http://hpc.seecs.nust.edu.pk/~rizwan.hanif/"&gt;Rizwan Hanif&lt;/a&gt;.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-size: large; "&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Debugging parallel applications with Eclipse:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;This video tutorial shows how to debug applications in the multicore mode using Eclipse IDE.&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/D-86qYbT-ck?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/D-86qYbT-ck?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Debugging parallel applications with Netbeans:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="white-space: normal; font-size: medium; "&gt;This video tutorial shows how to debug applications in the multicore mode using Netbeans IDE.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="white-space: normal; font-size: medium; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fOE16b7z358?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/fOE16b7z358?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We will be posting more videos for debugging parallel applications in the cluster mode shortly.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-959086125040075268?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/959086125040075268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2010/12/debugging-parallel-applications-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/959086125040075268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/959086125040075268'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2010/12/debugging-parallel-applications-with.html' title='Debugging MPJ Express Applications using Eclipse and Netbeans in the multicore mode'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-2668917241126942226</id><published>2010-05-13T21:51:00.000-07:00</published><updated>2010-05-13T22:07:58.305-07:00</updated><title type='text'>Executing and Debugging MPJ Express Parallel Applications using Eclipse</title><content type='html'>&lt;div&gt;&lt;i&gt;Acknowledgement: This work is mostly done by &lt;/i&gt;&lt;a href="http://hpc.seecs.nust.edu.pk/~rizwan.hanif/"&gt;&lt;i&gt;Rizwan Hanif&lt;/i&gt;&lt;/a&gt;&lt;i&gt; and &lt;/i&gt;&lt;a href="http://hpc.seecs.nust.edu.pk/~amjad.aziz/"&gt;&lt;i&gt;Amjad Aziz&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;We have written a tutorial (video and textual) that allows debugging parallel applications using Eclipse IDE. Currently it's only possible to debug parallel Java applications when MPJ Express is running in the multicore mode - this essentially means that the target platform is a laptop/desktop with shared memory or multicore processors in it. For more details, see &lt;a href="http://mpj-express.org/docs/guides/DebuggingWithEclipseIDE.pdf"&gt;the textual guide&lt;/a&gt; or &lt;a href="http://www.youtube.com/watch?v=ROXFfUbgY98"&gt;the video guide&lt;/a&gt;.  &lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Trebuchet MS', Arial, Helvetica, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" line-height: 23px;font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="330"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ROXFfUbgY98&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ROXFfUbgY98&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-2668917241126942226?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/2668917241126942226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2010/05/executing-and-debugging-mpj-express.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/2668917241126942226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/2668917241126942226'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2010/05/executing-and-debugging-mpj-express.html' title='Executing and Debugging MPJ Express Parallel Applications using Eclipse'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-1050241693201722110</id><published>2010-04-20T02:01:00.000-07:00</published><updated>2010-04-20T02:27:59.887-07:00</updated><title type='text'>A List of MPJ Express Methods</title><content type='html'>Most (or let's say a good amount of) MPJ Express users have excellent knowledge of the Message Passing Interface (MPI) specification document (&lt;a href="http://www.mpi-forum.org/docs/docs.html"&gt;http://www.mpi-forum.org/docs/docs.html&lt;/a&gt;). For this reason, it will be helpful if there's a document that maps MPI methods to javadocs provided by the MPJ Express software. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have made an effort to provide such a mapping from MPI routines to MPJ Express methods. See the document here (&lt;a href="http://mpj-express.org/docs/guides/listofmpjmethods.pdf"&gt;http://mpj-express.org/docs/guides/listofmpjmethods.pdf&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/4349239168203998591-1050241693201722110?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/1050241693201722110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2010/04/list-of-mpj-express-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/1050241693201722110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/1050241693201722110'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2010/04/list-of-mpj-express-methods.html' title='A List of MPJ Express Methods'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-3880012940002401559</id><published>2010-04-19T03:30:00.000-07:00</published><updated>2010-04-19T21:11:46.696-07:00</updated><title type='text'>MPJ Express Version 0.36</title><content type='html'>&lt;span class="Apple-style-span"  style="  border-collapse: collapse; font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Dear MPJ Express Community,&lt;br /&gt;&lt;br /&gt;We are pleased to announce the next beta release (0.36) of the MPJ&lt;br /&gt;Express software. This release is mainly a bug fix release.&lt;br /&gt;&lt;br /&gt;CHANGELOG&lt;br /&gt;---------------------&lt;br /&gt;&lt;br /&gt;1. Fixed the mpjboot error for Mac OS X reported by Ed Baskerville. The mpjboot script used x86 binaries on Mac OS X, which obviously was incorrect. 18/3/2010&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  border-collapse: collapse; font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;2. The MPJ Express runtime could not start more than 100 processes. Guillermo Lopez Taboada identified and proposed and a fix for this. 18/3/2010&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  border-collapse: collapse; font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3. Fixed the bug which broke test cases when executed with odd number of processes. Many thanks to Guillermo Lopez Taboada for discovering this bug. 18/3/2010&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  border-collapse: collapse; font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4. Made changes to the MPJ Express runtime system and got rid of a couple of internal classes.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  border-collapse: collapse; font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5. On some clusters, users complained that MPJ Express took abnormally long amount of time to bootstrap. We have fixed this bug in this release. 1/4/2010&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  border-collapse: collapse; font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;6. Got rid of the Jetty dependency 9/4/2010&lt;br /&gt;&lt;br /&gt;You may download the software from:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://mpj-express.org/" target="_blank" style="color: rgb(42, 93, 176); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://mpj-express.org&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;br /&gt;Feel free to contact us in case of any queries.&lt;br /&gt;&lt;br /&gt;Best Regards,&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#888888;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;Aamir Shafi&lt;br /&gt;Bryan Carpenter&lt;br /&gt;Mark Baker&lt;br /&gt;Guillermo López Taboada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-3880012940002401559?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/3880012940002401559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2010/04/mpj-express-version-036.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/3880012940002401559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/3880012940002401559'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2010/04/mpj-express-version-036.html' title='MPJ Express Version 0.36'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-6713173473954219008</id><published>2010-02-10T23:15:00.000-08:00</published><updated>2010-02-10T23:16:58.973-08:00</updated><title type='text'>MPJ Express with CUDA</title><content type='html'>One of the students at NUST did some work on exploiting GPUs from within the MPJ Express code. For more details, see &lt;a href="http://bibrak.blogspot.com/2010/02/mpj-cuda.html"&gt;http://bibrak.blogspot.com/2010/02/mpj-cuda.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-6713173473954219008?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/6713173473954219008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2010/02/mpj-express-with-cuda.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/6713173473954219008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/6713173473954219008'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2010/02/mpj-express-with-cuda.html' title='MPJ Express with CUDA'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-3456878094859011525</id><published>2010-01-26T10:09:00.000-08:00</published><updated>2010-01-26T10:11:51.961-08:00</updated><title type='text'>MPJ Express Version 0.35</title><content type='html'>&lt;span class="Apple-style-span"   style="font-family:arial, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;span class="Apple-style-span" style="white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "&gt;Dear MPJ Express Community,&lt;br /&gt;&lt;br /&gt;We are pleased to announce the next beta release (0.35) of the MPJ&lt;br /&gt;Express software. This release introduces some interesting and&lt;br /&gt;innovative features in the MPJ Express software.&lt;br /&gt;&lt;br /&gt;MPJ Express programs can now be executed in two configurations:&lt;br /&gt;&lt;br /&gt;1. Multicore Configuration: This configuration is used by developers&lt;br /&gt;who want to execute their parallel Java applications on multicore or&lt;br /&gt;shared memory processors (laptops and desktops). This configuration is&lt;br /&gt;preferable for development and teaching purposes.&lt;br /&gt;&lt;br /&gt;2. Cluster Configuration: This configuration is used by developers who&lt;br /&gt;want to execute their parallel Java applications on distributed memory&lt;br /&gt;platforms including clusters and network of computers. This&lt;br /&gt;configuration is preferable for executing large scale number crunching&lt;br /&gt;applications.&lt;br /&gt;&lt;br /&gt;You may begin by having a look at the talk "MPJ Express: An&lt;br /&gt;Implementation of MPI in Java, Version: 0.35 (Beta Release)"&lt;br /&gt;(&lt;a href="http://mpj-express.org/docs/talks/mpjexpress_release0_35.ppt" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://mpj-express.org/docs/&lt;wbr&gt;talks/mpjexpress_release0_35.&lt;wbr&gt;ppt&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;You may download the software from: &lt;a href="http://mpj-express.org/download.php" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://mpj-express.org/&lt;wbr&gt;download.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Quick Start Guides:&lt;br /&gt;----------------------------&lt;br /&gt;&lt;br /&gt;README for Linux/UNIX/Mac: &lt;a href="http://mpj-express.org/docs/readme/README" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://mpj-express.org/docs/&lt;wbr&gt;readme/README&lt;/a&gt;&lt;br /&gt;README for Windows: &lt;a href="http://mpj-express.org/docs/readme/README-win.txt" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://mpj-express.org/docs/&lt;wbr&gt;readme/README-win.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Detailed User Guides:&lt;br /&gt;------------------------------&lt;wbr&gt;-&lt;br /&gt;&lt;br /&gt;Linux User Guide: &lt;a href="http://mpj-express.org/docs/guides/linuxguide.pdf" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://mpj-express.org/docs/&lt;wbr&gt;guides/linuxguide.pdf&lt;/a&gt;&lt;br /&gt;Windows User Guide: &lt;a href="http://mpj-express.org/docs/guides/windowsguide.pdf" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://mpj-express.org/docs/&lt;wbr&gt;guides/windowsguide.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We are thankful to MPJ Express community of users for their continued&lt;br /&gt;support and patience.&lt;br /&gt;&lt;br /&gt;Feel free to contact us in case of any queries.&lt;br /&gt;&lt;br /&gt;Best Regards,&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;Aamir Shafi&lt;br /&gt;Bryan Carpenter&lt;br /&gt;Mark Baker&lt;/span&gt;&lt;/span&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/4349239168203998591-3456878094859011525?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/3456878094859011525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2010/01/mpj-express-version-035.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/3456878094859011525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/3456878094859011525'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2010/01/mpj-express-version-035.html' title='MPJ Express Version 0.35'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-760292703471860855</id><published>2009-08-28T22:07:00.000-07:00</published><updated>2009-08-28T22:15:14.696-07:00</updated><title type='text'>MPJ Express on Infiniband</title><content type='html'>&lt;div&gt;Courtesy: Zafar Gillani (&lt;a href="http://hpc.seecs.edu.pk/~zafar/about.html"&gt;http://hpc.seecs.edu.pk/~zafar/about.html&lt;/a&gt;) who worked on porting MPJ Express on Infiniband.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;MPJ Express can be executed on InfiniBand in couple of ways (so far):&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;Use IPoIB&lt;/span&gt;: For this just provide IP addresses in the "machines" file alloted to the InfiniBand HCAs. Run the MPJ Express as on GigE or FE.&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Over SDP&lt;/span&gt;: First create a configuration file somewhere on the system (such as in ~/mpj-user/ directory). Lets say we created "sdp.conf". There are two approaches to this, either write bind rule or connect rule in "sdp.conf" file (as explained below). Comments are represented via a # sign.&lt;br /&gt;&lt;br /&gt;bind &lt;ip_addr&gt; &lt;port&gt;&lt;br /&gt;example: bind 192.168.2.1 *&lt;br /&gt;&lt;br /&gt;connect &lt;ip_addr&gt; &lt;port&gt;&lt;br /&gt;example: connect 192.168.2.1 *&lt;br /&gt;&lt;br /&gt;* in port means it can use any free port on runtime. The port can be defined in range as well such as 15000-*. A separate bind rule has to be defined for each compute node that has configured IB HCA. This is sort of a machines file:&lt;br /&gt;&lt;br /&gt;bind 192.168.2.1 *&lt;br /&gt;bind 192.168.2.2 *&lt;br /&gt;bind 192.168.2.3 *&lt;br /&gt;and so on&lt;br /&gt;&lt;br /&gt;When to use bind rule? SDP protocol transport should be used when a TCP socket binds to an address and port that matches the rule. In Java this is equivalent to socket.bind(SocketAddress). Bind rule is recommended since this will explicitly bind an unbound socket to an IP address using the SDP protocol.&lt;br /&gt;&lt;br /&gt;When to use connect rule? SDP protocol transport should be used when an unbound TCP socket attempts to connect to an address and port that matches the rule.&lt;br /&gt;&lt;br /&gt;To execute MPJ Express on InfiniBand simply use the following command:&lt;br /&gt;mpjrun.sh -Dcom.sun.sdp.conf=sdp.conf -Djava.net.preferIPv4Stack=true -np 2 Application.&lt;br /&gt;&lt;br /&gt;Switch -Djava.net.preferIPv4Stack=true is optional but is recommended since this will explicitly tell JVM to use IPv4. This prevents Java from using IPv6 if IPv6 is enabled on IB HCAs (InfiniBand Host Channel Adaptor analogous to NICs).&lt;/port&gt;&lt;/ip_addr&gt;&lt;/port&gt;&lt;/ip_addr&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/4349239168203998591-760292703471860855?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/760292703471860855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2009/08/courtesy-zafar-gillani-httphpc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/760292703471860855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/760292703471860855'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2009/08/courtesy-zafar-gillani-httphpc.html' title='MPJ Express on Infiniband'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-2416840675899653577</id><published>2009-07-14T19:41:00.000-07:00</published><updated>2009-07-15T06:13:42.808-07:00</updated><title type='text'>Nested Parallelism Using MPJ Express</title><content type='html'>Steps to write a nested parallel Java application using MPJ Express and Java OpenMP (JOMP). JOMP can be downloaded from &lt;a href="http://www2.epcc.ed.ac.uk/computing/research_activities/jomp/download.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;h4&gt; Step 1: Write &lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Edit the HybridApp.jomp - the source code is shown in the Figure below. Here we rely on MPJ Express for node parallelism and JOMP for thread parallelism.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WYPkCURoI4/Sl3Pv9_UD_I/AAAAAAAAABo/nc6RC7mq4Ac/s1600-h/jomp.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 301px;" src="http://3.bp.blogspot.com/_7WYPkCURoI4/Sl3Pv9_UD_I/AAAAAAAAABo/nc6RC7mq4Ac/s320/jomp.png" alt="" id="BLOGGER_PHOTO_ID_5358667554641678322" border="0" /&gt;&lt;/a&gt;&lt;h4&gt;Step 2: Translate and Compile &lt;/h4&gt; Once we have written our application, we need to translate the .jomp file to .java. Later the Java file is compiled using the Java compiler.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The code is translated from .jomp to .java by using the command:&lt;br /&gt;&lt;/br&gt;                      &lt;br /&gt;aamir@barq:~/tmp/jomp&gt; java -cp $MPJ_HOME/lib/mpj.jar:jomp1.0b.jar jomp.compiler.Jomp HybridApp &lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Compile the Java application:&lt;br /&gt;&lt;/br&gt;                                                                                     aamir@barq:~/tmp/jomp&gt; javac -cp $MPJ_HOME/lib/mpj.jar:.:jomp1.0b.jar HybridApp.java &lt;/br&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt; Step 3: Execute &lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Write machines file: &lt;br /&gt;&lt;/br&gt; &lt;br /&gt;chenab1 &lt;br /&gt;&lt;/br&gt;                                                            chenab2                                                                                                                                                   &lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Start MPJ Express daemons:                                                                                           &lt;br /&gt;&lt;/br&gt;&lt;br /&gt;aamir@barq:~/tmp/jomp&gt; mpjboot machines &lt;br /&gt;&lt;/br&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run the hybrid code:                                                                                                                              &lt;/br&gt;&lt;br /&gt;aamir@barq:~/tmp/jomp&gt; mpjrun.sh -wdir ~/tmp/jomp -cp $MPJ_HOME/lib/mpj.jar:.:jomp1.0b.jar -np 2 -Djomp.threads=2 -dport 11050 HybridApp &lt;br /&gt;&lt;/br&gt; &lt;br /&gt;Hello from process &lt;1:0&gt;&lt;br /&gt;Hello from process &lt;1:1&gt;&lt;br /&gt;Hello from process &lt;0:0&gt;&lt;br /&gt;Hello from process &lt;0:1&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Halt MPJ Express daemons: &lt;br /&gt;&lt;/br&gt; aamir@barq:~/tmp/jomp&gt; mpjhalt machines &lt;br /&gt;&lt;/br&gt; &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-2416840675899653577?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/2416840675899653577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2009/07/steps-to-write-nested-parallel-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/2416840675899653577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/2416840675899653577'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2009/07/steps-to-write-nested-parallel-java.html' title='Nested Parallelism Using MPJ Express'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7WYPkCURoI4/Sl3Pv9_UD_I/AAAAAAAAABo/nc6RC7mq4Ac/s72-c/jomp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-5224694079268917188</id><published>2009-05-12T21:23:00.000-07:00</published><updated>2009-05-12T21:30:46.438-07:00</updated><title type='text'>Communicating Multi-dimensional arrays using MPJ Express</title><content type='html'>Many scientific applications utilize multi-dimensional arrays for storing data. Naturally in the parallel versions, there is a frequent requirement of communicating these multi-dimensional arrays.&lt;br /&gt;&lt;br /&gt;Currently the MPJ Express version "directly" supports communicating basic datatypes to and from single dimension arrays. But, it is obviously possible to communicate multiple dimension arrays. Here we'll see how 2D arrays are communicated using the MPJ Express software.&lt;br /&gt;&lt;br /&gt;There are mainly two ways of communicating 2D arrays. The first is to communicate this data using the MPI.OBJECT datatype. The second is to map (or flatten) the 2D array onto a 1D array and communicate normally. If you are looking for performance, the second option is recommended. The main reason is performance, the first option is severely hampered by the performance of Java's serialization.&lt;br /&gt;&lt;br /&gt;The MultidimMatrix class communicates data from the 2D array using the MPI.OBJECT datatype.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WYPkCURoI4/SgpMWNjML3I/AAAAAAAAABY/uqr2RV657Jw/s1600-h/obj.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 260px; height: 320px;" src="http://1.bp.blogspot.com/_7WYPkCURoI4/SgpMWNjML3I/AAAAAAAAABY/uqr2RV657Jw/s320/obj.png" alt="" id="BLOGGER_PHOTO_ID_5335160653051866994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The MultiAsSingleDimMatrix class stores the 2D array as a 1D array. By doing this, the data can be communicated using the datatype of the array---in our example, the MPI.DOUBLE datatype.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WYPkCURoI4/SgpMtU-wbxI/AAAAAAAAABg/xT6yy5NZEt0/s1600-h/1d.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 258px; height: 320px;" src="http://2.bp.blogspot.com/_7WYPkCURoI4/SgpMtU-wbxI/AAAAAAAAABg/xT6yy5NZEt0/s320/1d.png" alt="" id="BLOGGER_PHOTO_ID_5335161050183528210" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-5224694079268917188?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/5224694079268917188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/communicating-multi-dimensional-arrays_12.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/5224694079268917188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/5224694079268917188'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/communicating-multi-dimensional-arrays_12.html' title='Communicating Multi-dimensional arrays using MPJ Express'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7WYPkCURoI4/SgpMWNjML3I/AAAAAAAAABY/uqr2RV657Jw/s72-c/obj.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-4699200640464915437</id><published>2009-05-08T02:41:00.000-07:00</published><updated>2009-05-08T20:38:59.963-07:00</updated><title type='text'>Overhead of using Multi-dimensional arrays in Java</title><content type='html'>As discussed many times in the related literature, the Java multidimensional arrays introduce a good amount of overhead because of the way they are stored in the memory. The purpose of this post is to quantify this performance overhead.&lt;br /&gt;&lt;br /&gt;Let's first look at the matrix multiplication implementation that uses the multidimensional arrays (the 2D version).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WYPkCURoI4/SgT4dhNA6kI/AAAAAAAAABA/2L4catBp0C4/s1600-h/mm.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 284px; height: 320px;" src="http://1.bp.blogspot.com/_7WYPkCURoI4/SgT4dhNA6kI/AAAAAAAAABA/2L4catBp0C4/s320/mm.png" alt="" id="BLOGGER_PHOTO_ID_5333661044726360642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now let's look at the same code but implemented using single dimension array. Basically the two dimensional array is mapped onto the single dimension array (the 1D version).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WYPkCURoI4/SgT4seyKatI/AAAAAAAAABI/1duf5jQgKSY/s1600-h/m.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 290px; height: 320px;" src="http://2.bp.blogspot.com/_7WYPkCURoI4/SgT4seyKatI/AAAAAAAAABI/1duf5jQgKSY/s320/m.png" alt="" id="BLOGGER_PHOTO_ID_5333661301774904018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now put some performance results: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;  aamir@barq:~/tmp&gt; java MultidimMatrix&lt;br /&gt;  time =&gt; 19.821604495&lt;br /&gt;  aamir@barq:~/tmp&gt; java Matrix&lt;br /&gt;  time -&gt; 11.928243662&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The 1D code is 1.66 times faster than the 2D code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-4699200640464915437?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/4699200640464915437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/overhead-of-using-multi-dimensional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4699200640464915437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4699200640464915437'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/overhead-of-using-multi-dimensional.html' title='Overhead of using Multi-dimensional arrays in Java'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7WYPkCURoI4/SgT4dhNA6kI/AAAAAAAAABA/2L4catBp0C4/s72-c/mm.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-4872949610674486908</id><published>2009-05-05T20:19:00.000-07:00</published><updated>2009-05-05T20:26:13.941-07:00</updated><title type='text'>Parallel Programming with Java</title><content type='html'>I recently gave a talk on &lt;a href="http://mpj-express.org/docs/talks/ppwithjava.ppt"&gt;"Parallel Programming with Java"&lt;/a&gt; to Masters students at the University of La Coruna, Spain.&lt;br /&gt;&lt;br /&gt;This talk gives a good introduction on how to get started with the MPJ Express software.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-4872949610674486908?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/4872949610674486908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/parallel-programming-with-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4872949610674486908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/4872949610674486908'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/parallel-programming-with-java.html' title='Parallel Programming with Java'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4349239168203998591.post-2874262362860711649</id><published>2009-05-04T20:25:00.000-07:00</published><updated>2009-05-04T20:28:32.897-07:00</updated><title type='text'>Ports Used by the MPJ Express Software</title><content type='html'>There are three kinds of ports used by the MPJ Express software.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Daemons Ports (where MPJ Express daemons listen on compute-nodes). The value of this can be changed in two steps:&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Edit $MPJ_HOME/conf/wrapper.conf and search for property "wrapper.app.parameter.2=10000". Change it to whatever you want- lets call it X.&lt;/li&gt;&lt;li&gt;Now you start your parallel application, use -dport switch to specify X. Some thing like this - mpjrun.sh ... -dport X ..&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;There are also ports used by MPJ Express runtime on the head-node. This is used to ship across the code. The default value of this is 15000. It can be changed by using the switch -sport Y - where `Y' is the port that you choose.&lt;/li&gt;&lt;li&gt;Each MPJ Express process uses a port for communication with peers. This can be changed by using -mpjport Z switch to mpjrun.sh - the default value is 20000.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4349239168203998591-2874262362860711649?l=mpjexpress.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mpjexpress.blogspot.com/feeds/2874262362860711649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/ports-used-by-mpj-express-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/2874262362860711649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4349239168203998591/posts/default/2874262362860711649'/><link rel='alternate' type='text/html' href='http://mpjexpress.blogspot.com/2009/05/ports-used-by-mpj-express-software.html' title='Ports Used by the MPJ Express Software'/><author><name>Aamir Shafi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/_7WYPkCURoI4/Sf-wnBI1rjI/AAAAAAAAAAM/UQFCVbQMv_8/S220/aamir.jpg'/></author><thr:total>0</thr:total></entry></feed>
