<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi folks,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If you’ve ever looked at the configure.ac file for the Rmpi package, you’ll see that it’s 281 lines of scanning several environment variables and then attempting to set LDFLAGS and CPPFLAGS for the most popular MPI implementations. This
 prohibits non programming experts from installing the Rmpi package without knowledge of these environment variables and the correct values for these variables. An alternative would be to allow the package to compile with the “mpicc” compiler, which most MPI
 implementations provide as a wrapper with the correct library and include flags.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The package build system allows a package to specify additional compiler flags, but it does not allow the specification of a different compiler. I’ve written a patch that is targeted specifically for the “mpicc” compiler, this should avoid
 the issue of a package compiled with the “foobar” compiler when the interpreter was compiled with the “quux” compiler.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve attached a 22 line patch to the svn trunk of the R development repository that allows a package to use the “mpicc” compiler by setting the environment variable “R_USE_MPI”. I submitted an earlier patch to the R-devel mailing list,
 but I didn’t hear anything back and that patch was broken (sorry). To test the new patch, I have been able to successfully compile with packages that use the R_USE_MPI variable and packages that do not use it. As R provides built-in support for OpenMP pragmas,
 this patch would help provide built-in support for MPI invocations as well.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">--Michael<o:p></o:p></p>
</div>
</body>
</html>