Re: [Pympi-users] PyMPI Doubt
Status: Alpha
Brought to you by:
patmiller
From: Julian C. <rjc...@cs...> - 2006-02-21 12:56:20
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> <title></title> </head> <body bgcolor="#ffffff" text="#000000"> Sorry for the delay in replying. Pat Miller is better qualified to answer this question, but I will try to outline the answer.<br> <br> pympi is itself a special version of the python interpreter that is mpi aware. Most users are specifically using pympi, because it allows them to AVOID having to write parallel programs in a low level language like C.<br> <br> pympi is mpi aware, because it initialises the MPI processes at startup. You access them through the loading of the mpi module with this statement:<br> <b>>>> import </b>mpi<br> <br> There is an example of the other approach, where the mpi calls are made in a compiled module here:<br> <br> <a class="moz-txt-link-freetext" href="http://pympi.sourceforge.net/examples.html">http://pympi.sourceforge.net/examples.html</a><br> <br> See the simple extension example. This is actually a python extension that also includes mpi calls using the MPI C api directly without going through python, for instance it uses the C api to get it's own rank:<br> <br> <pre><span class="csyntax9">MPI_Comm_rank</span>(MPI_COMM_WORLD,<span class="csyntax11">&</span>rank); </pre> I have not used the C api myself from pympi, for the reasons I stated at the beginning:<br> <br> regards<br> <br> Julian Cook<br> <a class="moz-txt-link-abbreviated" href="mailto:cha...@gm...">cha...@gm...</a> wrote: <blockquote cite="mid...@mx..." type="cite"> <meta http-equiv="Content-Type" content="text/html; "> <meta name="Generator" content="Microsoft Word 11 (filtered medium)"> <style> <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4;} @font-face {font-family:"Bookman Old Style"; panose-1:2 5 6 4 5 5 5 2 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:10.0pt; font-family:Tahoma;} h1 {margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:0in; text-align:center; page-break-after:avoid; font-size:16.0pt; font-family:"Bookman Old Style";} h2 {margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:0in; page-break-after:avoid; border:none; padding:0in; font-size:14.0pt; font-family:Tahoma; font-weight:normal;} h3 {margin-top:12.0pt; margin-right:0in; margin-bottom:3.0pt; margin-left:0in; page-break-after:avoid; font-size:12.0pt; font-family:Tahoma;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline;} p.EmphasizedNormal, li.EmphasizedNormal, div.EmphasizedNormal {margin:0in; margin-bottom:.0001pt; font-size:10.0pt; font-family:Tahoma; font-weight:bold;} p.ContactAddress, li.ContactAddress, div.ContactAddress {margin:0in; margin-bottom:.0001pt; font-size:8.0pt; font-family:Tahoma;} p.EmailAddress, li.EmailAddress, div.EmailAddress {margin:0in; margin-bottom:.0001pt; font-size:8.0pt; font-family:Tahoma; color:navy; text-decoration:underline;} p.BulletedNormal, li.BulletedNormal, div.BulletedNormal {margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.45in; margin-bottom:.0001pt; text-indent:-.2in; mso-list:l0 level1 lfo4; font-size:10.0pt; font-family:Tahoma;} span.EmailStyle21 {mso-style-type:personal-compose; font-family:Arial; color:windowtext;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:2032293582; mso-list-type:hybrid; mso-list-template-ids:58999394 -1258128262 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 {mso-level-number-format:bullet; mso-level-style-link:"Bulleted Normal"; mso-level-text:\F0B7; mso-level-tab-stop:.45in; mso-level-number-position:left; margin-left:.45in; text-indent:-.2in; font-family:Symbol;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --> </style> <div class="Section1"> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">I read about the PyMPI tool and I found it to be very interesting. I was wondering if I could use this tool for my purpose. It would be great if you could suggest a solution after I describe the problem below.<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">I am dealing with Software called E-cell. The structure of the software goes like this,<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Core Layer ------------------------------------------------</span></font><font face="Wingdings"><span style="font-family: Wingdings;">à</span></font><font face="Arial"><span style="font-family: Arial;"> C++<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Interface Layer ------------------------------------------------</span></font><font face="Wingdings"><span style="font-family: Wingdings;">à</span></font><font face="Arial"><span style="font-family: Arial;"> Python<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Uses Boost library.<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">When the software is installed (using make command), all c++ files are compiled into a .so.2 file. Then Python code references this .so.2 file to make use of the functions in C++. The main exists in Python and not in C++. We want to parallelize this software. So we changed the compiler from gcc to mpicc. Since Python is the interface layer we are still not able to initialize MPI and use it in the C++ program. Will installing PyMPI solve our problem? All the mpi coding that we are going to perform will be done in a C++ file. But ultimately python will reference them. Python acts as a master and uses the functions in C++. <o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Mpicc can compile c++ programs.<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Can PyMPI also compile C++ programs?<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Can you please let us know if installing PyMPI can solve our problem?<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Thanks,<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Chandu<o:p></o:p></span></font></p> <p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><o:p> </o:p></span></font></p> </div> </blockquote> <br> </body> </html> |