<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>RE: [mpich-discuss] How does the fortran binding work?</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=020471618-30072008><FONT face=Arial 
color=#0000ff size=2>At least on the Unix side, from what I can tell, Fortran 
MPI calls C MPI, and Fortran PMPI calls C PMPI.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=020471618-30072008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=020471618-30072008><FONT face=Arial 
color=#0000ff size=2>Rajeev</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> owner-mpich-discuss@mcs.anl.gov 
  [mailto:owner-mpich-discuss@mcs.anl.gov] <B>On Behalf Of </B>Jayesh 
  Krishna<BR><B>Sent:</B> Wednesday, July 30, 2008 1:12 PM<BR><B>To:</B> 
  mpich-discuss@mcs.anl.gov<BR><B>Subject:</B> RE: [mpich-discuss] How does the 
  fortran binding work?<BR></FONT><BR></DIV>
  <DIV></DIV><!-- Converted from text/plain format -->
  <P><FONT size=2>&gt;&gt; Looks like the Fortran interface does call the MPI 
  version of the C function.<BR><BR>&nbsp; Only if the call is from PMPI_* 
  funcs. (If the MPI call is not from PMPI, MPI_* funcs get defined to 
  PMPI_*)<BR><BR>&gt;&gt; If the fortran binding calls PMPI version of C 
  function...<BR><BR>&nbsp; In windows this currently does not work (I guess, it 
  is due to the different calling convention/name mangling by the mpe lib and 
  the fortran lib in windows) :( Defenitely a TODO item 
  :)<BR><BR>Regards,<BR>Jayesh<BR><BR>-----Original Message-----<BR>From: 
  owner-mpich-discuss@mcs.anl.gov [<A 
  href="mailto:owner-mpich-discuss@mcs.anl.gov">mailto:owner-mpich-discuss@mcs.anl.gov</A>] 
  On Behalf Of Rajeev Thakur<BR>Sent: Wednesday, July 30, 2008 12:42 PM<BR>To: 
  mpich-discuss@mcs.anl.gov<BR>Subject: RE: [mpich-discuss] How does the fortran 
  binding work?<BR><BR>Looks like the Fortran interface does call the MPI 
  version of the C function.<BR><BR><BR>&gt; -----Original Message-----<BR>&gt; 
  From: owner-mpich-discuss@mcs.anl.gov<BR>&gt; [<A 
  href="mailto:owner-mpich-discuss@mcs.anl.gov">mailto:owner-mpich-discuss@mcs.anl.gov</A>] 
  On Behalf Of Anthony Chan<BR>&gt; Sent: Wednesday, July 30, 2008 12:01 
  PM<BR>&gt; To: mpich-discuss@mcs.anl.gov<BR>&gt; Subject: Re: [mpich-discuss] 
  How does the fortran binding work?<BR>&gt;<BR>&gt; If the fortran binding 
  calls PMPI version of C function, can the<BR>&gt; fortran MPI program still be 
  profiled ?<BR>&gt;&nbsp;<BR>&gt; ----- "Rajeev Thakur" 
  &lt;thakur@mcs.anl.gov&gt; wrote:<BR>&gt;<BR>&gt; &gt; The Fortran binding 
  calls the PMPI version of the C function.<BR>&gt; &gt;<BR>&gt; &gt; 
  Rajeev<BR>&gt; &gt;<BR>&gt; &gt; &gt; -----Original Message-----<BR>&gt; &gt; 
  &gt; From: owner-mpich-discuss@mcs.anl.gov<BR>&gt; &gt; &gt; [<A 
  href="mailto:owner-mpich-discuss@mcs.anl.gov">mailto:owner-mpich-discuss@mcs.anl.gov</A>] 
  On Behalf Of Anthony Chan<BR>&gt; &gt; &gt; Sent: Wednesday, July 30, 2008 
  9:46 AM<BR>&gt; &gt; &gt; To: mpich-discuss@mcs.anl.gov<BR>&gt; &gt; &gt; Cc: 
  mpich-discuss@mcs.anl.gov<BR>&gt; &gt; &gt; Subject: Re: [mpich-discuss] How 
  does the fortran binding work?<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt;<BR>&gt; 
  &gt; &gt; No.&nbsp; PMPI is the MPI profiling interface and is standardized 
  by<BR>&gt; &gt; &gt; the MPI forum.<BR>&gt; &gt; &gt; Fortran/C++ MPI binding 
  just calls the C MPI routine.<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; 
  A.Chan<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; ----- "Ruini Xue" 
  &lt;xueruini@gmail.com&gt; wrote:<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; On 
  Wed, Jul 30, 2008 at 8:54 PM, Dave Goodell &lt;<BR>&gt; &gt; &gt; 
  goodell@mcs.anl.gov &gt;<BR>&gt; &gt; &gt; &gt; wrote:<BR>&gt; &gt; &gt; 
  &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; Hi Andrew,<BR>&gt; &gt; 
  &gt; &gt;<BR>&gt; &gt; &gt; &gt; Yes, the fortran and c++ bindings are just 
  wrappers over the C<BR>&gt; &gt; &gt; &gt; bindings. The C binding implements 
  the functionality directly.<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; Are 
  they wrappers of MPI_XXX() or PMPI_XXX()?<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; 
  &gt; &gt; Best<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; Andrew<BR>&gt; 
  &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; 
  &gt;<BR>&gt; &gt; &gt; &gt; -Dave<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; 
  &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; On 
  Jul 30, 2008, at 6:11 AM, Ruini Xue wrote:<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; 
  &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; Hello, 
  everyone,<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; I am working with 
  MPICH2 on Windows platfrom. The fortran MIP<BR>&gt; &gt; &gt; &gt; application 
  is linked to fmpich.lib, and fmpich2.dll is<BR>&gt; loaded in<BR>&gt; &gt; 
  &gt; &gt; runtime, which in turn loads mipch2mpi.dll.<BR>&gt; &gt; &gt; &gt; 
  mpich2mpi.dll contains all MPI APIs which exported C<BR>&gt; &gt; &gt; 
  interface. What I<BR>&gt; &gt; &gt; &gt; want to know is: what is the 
  'underlying' relation between<BR>&gt; &gt; &gt; fmpich2.dll<BR>&gt; &gt; &gt; 
  &gt; and mpich2mip.dll? Do all<BR>&gt; &gt; &gt; &gt; Fortran MPI calls are 
  converted to c bindings in mpich2mpi.dll?<BR>&gt; &gt; For<BR>&gt; &gt; &gt; 
  &gt; example, does MPI_BCAST() in fmich2.dll directly calls<BR>&gt; &gt; &gt; 
  MPI_Bcast() in<BR>&gt; &gt; &gt; &gt; mpich2mpi.dll? Is MPI_BCAST() just a 
  stub while MPI_Bcast() do<BR>&gt; &gt; the<BR>&gt; &gt; &gt; &gt; real 
  job?<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; Thanks<BR>&gt; &gt; &gt; 
  &gt;<BR>&gt; &gt; &gt; &gt; Andrew<BR>&gt; &gt; &gt;<BR>&gt; &gt; 
  &gt;<BR>&gt;<BR>&gt;<BR><BR></FONT></P></BLOCKQUOTE></BODY></HTML>