[fpc-pascal] MPICH on Pascal

Lourival Mendes mendes.lourival at gmail.com
Wed Jan 9 14:46:49 CET 2008


Dear Mattias,

   Sorry for my dunce mistake I made it wrong on the:

 const
    External_library='mpich2'; {Setup as you need}


  Now the helloworld worked in a one dual core computer, next I will try others.


  Thanks again for your attention and patience

Lourival



2008/1/7, Lourival Mendes <mendes.lourival at gmail.com>:
> Dear Mattias,
>
>   Sorry for my late answer, but I took the last days of 2007 for
> vacation. Anyway happy new year to all.
>
>   Returning our discussion about the MPICH on Windows. I used the gdb
> as listed in the tutorial to run the program helloworld.exe
>
>   As described below I installed the package MPICH2 and it was
> successfully instaled. So I runned the example below:
>
> program HelloWorld;
>
> {$mode objfpc}{$H+}
> {$IFDEF Unix}
> {$linklib c}
> {$ENDIF}
>
>
> uses MPI, MPICH2;
>
> var myid: integer;
> begin
>  MPI_Init(@argc, at argv);
>  MPI_Comm_rank(MPI_COMM_WORLD, at myid);
>  writeln('id=',myid);
>  MPI_Finalize;
> end.
>
>   I got the error described in the attachment.
>
>   As it asked for a mpich.dll I tought that the H2Pas generated an
> DLL, but as you said the H2Pas does not generated an DLL, so why does
> it ask for a DLL? This DLL is the DLL that came from the MPICH2 ? On
> Windows MPICH2 installs the follwoing DLL on %WINDIR%\System32
>
> mpich2.dll
> mpich2mtp.dll
> mpich2p.dll
> mpich2shm.dll
> mpich2shmp.dll
> mpich2ssm.dll
> mpich2ssmp.dll
>
>   Looking into this I do believe that the mpich.dll that the example
> is asking is for the mpich2.dll, so probably it should be inserted in
> the -l option the mpich2 instead of mpich. So it read the mpich2.dll
> instead of creating, is it right?
>
>   Also the resulting from the gbd from the CMD is:
>
> Directory of G:\MPICH2_FPC_Lazarus\mpich2\examples
>
> 01/07/2008  03:07p      <DIR>          .
> 01/07/2008  03:07p      <DIR>          ..
> 01/07/2008  03:07p      <DIR>          backup
> 11/09/2007  09:14a               1,614 cpi.lpi
> 11/09/2007  09:14a               1,340 cpi.lpr
> 01/07/2008  03:07p                 372 helloworld.compiled
> 01/07/2008  03:07p           1,128,432 helloworld.exe
> 01/07/2008  03:07p               1,893 helloworld.lpi
> 01/07/2008  03:07p                 250 helloworld.lpr
> 01/07/2008  03:07p               1,476 helloworld.lps
> 01/07/2008  03:07p               8,060 helloworld.o
> 12/19/2007  02:12p                   8 libimphelloworld.a
> 12/19/2007  11:33a               8,283 link.res
> 12/19/2007  11:33a                 509 ppas.bat
>              11 File(s)      1,152,237 bytes
>               3 Dir(s)   4,372,066,304 bytes free
>
> G:\MPICH2_FPC_Lazarus\mpich2\examples>gdb helloworld.exe
> GNU gdb 6.2.1
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i686-pc-cygwin"...
> (gdb) break fpc_raiseexception
> Breakpoint 1 at 0x40661f: file except.inc, line 193.
> (gdb) run
> Starting program: /cygdrive/g/MPICH2_FPC_Lazarus/mpich2/examples/helloworld.exe
>
>
> Program received signal SIGSEGV, Segmentation fault.
>
> Program received signal SIGSEGV, Segmentation fault.
>
> Program exited with code 0200.
> You can't do that without a process to debug.
> (gdb) backtrace
> No stack.
> (gdb) quit
>
> G:\MPICH2_FPC_Lazarus\mpich2\examples>
>
>   Thanks
>
> Lourival
>
>
>
> 2007/12/21, Mattias Gaertner <nc-gaertnma at netcologne.de>:
> > On Thu, 20 Dec 2007 08:58:49 -0300
> > "Lourival Mendes" <mendes.lourival at gmail.com> wrote:
> >
> > > Dear Mattias,
> > >
> > >  Replacing the {$linklib c} with
> > >   {$IFDEF Unix}
> > >   {$linklib c}
> > >   {$ENDIF}
> > >
> > >   It really worked, thanks...
> > >
> > >   Now some other interesting stuff happended, as you probably did on
> > > the -l option you created the mpich.dll but the program, even
> > > successufully compiled, it doens find the mpich.dll.
> > >
> > >    Here is my tryes:
> > >
> > > 1) I tryed to compile from the MPICH2 package from the inside of the
> > > Lazarus; I got the same error
> > >
> > > 2) I followed your tutorial on the wiki
> > > (http://wiki.lazarus.freepascal.org/Creating_bindings_for_C_libraries)
> > > installing the H2Pas and creating the mpich.dll with the mpi.h and
> > > mpio.h; it runs but I get:
> >
> > h2pas does not create a mpich.dll.
> >
> >
> > > File not Open
> > >
> > > Press OK to ignore and risk data corruption
> > > Press Cancel to kill to program
> >
> > Hmm. Maybe you can create a backtrace for me?
> >
> > http://wiki.lazarus.freepascal.org/Creating_a_Backtrace_with_GDB
> >
> >
> > > 3) The same thing happens when I try to open the mpich2.h2p file that
> > > cames with the lazarus package.
> > >
> > >    Do you know if someone got the same error?
> >
> > No.
> >
> >
> > Mattias
> > _______________________________________________
> > fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> > http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> >
>
>
> --
> Lourival J. Mendes Neto
>
>


-- 
Lourival J. Mendes Neto



More information about the fpc-pascal mailing list