[mpich-discuss] exit code -1073741819

Jayesh Krishna jayesh at mcs.anl.gov
Tue Mar 25 16:11:35 CDT 2008


Hi,
 Looks like Intel Visual Fortran compiler links to external procedures
(atleast by default) assuming that an external procedure with a name FOO has
a fixed argument length (The fortran binding library, fmpich2s.lib, works on
the assumption that an MPI program that has an MPI_SEND with CHARACTER array
links with MPI_SEND at 32 and a pgm that has an MPI_SEND with non CHARACTER
array/datatype it links with MPI_SEND at 28). IVF only checks for the number of
arguments in the first call to an external procedure (and uses that instance
to link to the external procedure) and does not check the number of
arguments in the subsequent calls to the external procedure.
 
eg: 
 
============ run time error =================================

CALL MPI_SEND(A, 10, MPI_CHARACTER, 1, 0, MPI_COMM_WORLD, ierr)

CALL MPI_SEND(A, 10, MPI_CHARACTER, 1, 0, MPI_COMM_WORLD, ierr, 1, 1, 1, 1,
1, 1 )

========================================================

 would compile and link successfully with fmpich2s.lib using IVF (STDCALL).
However would give error at runtime.

  So with IVF you should use fmpich2.lib. There could be some compiler
options to make the compiler link to the fortran binding lib correctly. I
will check with other devs here if they have any other ideas.

 
Regards,
Jayesh

  _____  

From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of trymelz trymelz
Sent: Tuesday, March 25, 2008 12:57 PM
To: mpich-discuss at mcs.anl.gov
Subject: Re: [mpich-discuss] exit code -1073741819



Hi,

 

For fmpich2s.lib, the following tesings crash:

 

----------------

calling convention = STDCALL (iface:stdcall)

name case interpretation = Upper Case

String length argument passing = after individual string argument

(crash for both integer and characters)
 

----------------

calling convention = STDCALL, REFERENCE (iface:stdrefl)

name case interpretation = Upper Case

String length argument passing = after individual string argument

(crash for characters)

 

----------------

calling convention = CVF(iface:cvf)

name case interpretation = Upper Case

String length argument passing = after individual string argument

(crash for characters)

 

calling convention = STDCALL (iface:stdcall)

name case interpretation = Upper Case

String length argument passing = after all arguments

(crash for both integer and characters)

 

The following testings run though:

 

----------------

calling convention = CVF(iface:cvf)

name case interpretation = Upper Case

String length argument passing = after all arguments

 

----------------

calling convention = STDCALL, REFERENCE (iface:stdrefl)

name case interpretation = Upper Case

String length argument passing = after all arguments

 

 
Testing examples\fpi will not show the crashes due to recv/recv characters
because it only send/recv integer and reals. 

Linfa

----- Original Message ----
From: Jayesh Krishna <jayesh at mcs.anl.gov>
To: trymelz trymelz <trymelz at yahoo.com>
Cc: mpich-discuss at mcs.anl.gov
Sent: Tuesday, March 25, 2008 10:36:56 AM
Subject: RE: [mpich-discuss] exit code -1073741819


 Nope... If you would like to use fmpich2s.lib you should follow the
settings mentioned in my previous email.
 I would suggest you to try the fortran example (examples\fpi.*) with the
different fortran libs. Let us know if it does not work for you. 
 And by the way MPICH2 1.0.7rc2 is out. You might want to try it
(http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downl
oads).
 
Regards,
Jayesh

  _____  

From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of trymelz trymelz
Sent: Tuesday, March 25, 2008 10:23 AM
To: mpich-discuss at mcs.anl.gov
Subject: Re: [mpich-discuss] exit code -1073741819



I assume you meant

 

fmpich2s.lib

----------------

calling convention = STDCALL

name case interpretation = Upper Case

String length argument passing = "after all arguments"



----- Original Message ----
From: Jayesh Krishna <jayesh at mcs.anl.gov>
To: trymelz trymelz <trymelz at yahoo.com>
Cc: mpich-discuss at mcs.anl.gov
Sent: Friday, March 21, 2008 10:10:27 AM
Subject: RE: [mpich-discuss] exit code -1073741819



Hi,

The different fortran libraries provided with MPICH2 are tuned to the
"default" settings of different compilers. If you are using Intel Visual
fortran compiler the default settings of the compiler would work with
fmpich2.lib. If you would like to use fmpich2.lib/fmpich2s.lib using the
Intel Visual fortran compiler please use the settings below,

 

fmpich2.lib

-----------------------

calling convention = default

name case interpretation = default

string length argument passing = after all arguments

 

fmpich2s.lib

----------------

calling convention = STDCALL

name case interpretation = Upper Case

String length argument passing = after individual string argument

 

 

 

Regards,

Jayesh


  _____  

From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of Jayesh Krishna
Sent: Friday, March 21, 2008 9:25 AM
To: 'trymelz trymelz'
Cc: mpich-discuss at mcs.anl.gov
Subject: RE: [mpich-discuss] exit code -1073741819


Hi,
 MPI_SEND() in fortran takes 7 arguments. The 8th argument is to handle the
fortran CHARACTER arrays. 
 
Regards,
Jayesh

  _____  

From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of trymelz trymelz
Sent: Thursday, March 20, 2008 6:16 PM
To: mpich-discuss at mcs.anl.gov
Subject: Re: [mpich-discuss] exit code -1073741819


Hi,

I did not see MPI_SEND taking 8 arguments, how come it generates MPI_SEND at 32
?

Linfa


----- Original Message ----
From: Jayesh Krishna <jayesh at mcs.anl.gov>
To: trymelz trymelz <trymelz at yahoo.com>
Cc: mpich-discuss at mcs.anl.gov
Sent: Thursday, March 20, 2008 3:44:25 PM
Subject: RE: [mpich-discuss] exit code -1073741819


Hi,
 The fortran bindings for MPI funcs is in src/binding/f77 (Note that these
source files are generated by scripts).
 
Regards,
Jayesh

  _____  

From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of trymelz trymelz
Sent: Thursday, March 20, 2008 3:38 PM
To: mpich-discuss at mcs.anl.gov
Subject: Re: [mpich-discuss] exit code -1073741819



Hi, 

 

By specifying character length as 11, the program behaviors the same as 15
since the order of arguments is messed up. 

 

Do you know where is the protype or definition in the source code of
MPI_SEND/RECV?  Thanks.

 

 

Linfa



----- Original Message ----
From: Anthony Chan <chan at mcs.anl.gov>
To: mpich-discuss at mcs.anl.gov
Cc: Jayesh Krishna <jayesh at mcs.anl.gov>
Sent: Thursday, March 20, 2008 2:33:51 PM
Subject: Re: [mpich-discuss] exit code -1073741819


What happens if you specify character length as 11 instead of 15 in
your MPI_Sned and MPI_Recv ?

On Thu, 20 Mar 2008, trymelz trymelz wrote:

> Hi,
>
> Sure. After changing the calling convention to default in Intel Compiler,
I successfully linked with fmpich2.lib. But again, it runs fine when the
string length is passed at the end of argument list, and it crashes when the
string length is passed after the string pointer.
>
> Probably, more MPICH2 FORTRAN libraries are needed to be provided.
>
> Linfa
>
> ----- Original Message ----
> From: Jayesh Krishna <jayesh at mcs.anl.gov>
> To: trymelz trymelz <trymelz at yahoo.com>
> Cc: mpich-discuss at mcs.anl.gov
> Sent: Thursday, March 20, 2008 2:08:46 PM
> Subject: RE: [mpich-discuss] exit code -1073741819
>
>
> Hi,
> Can you also try compiling your program with fmpich2.lib ?
>
> Regards,
> Jayesh
>
>
>
> From: trymelz trymelz [mailto:trymelz at yahoo.com]
> Sent: Thursday, March 20, 2008 2:06 PM
> To: Jayesh Krishna; mpich-discuss at mcs.anl.gov
> Subject: Re: [mpich-discuss] exit code -1073741819
>
>
> Hi
>
> I have no problem to compile & run the sample fpi.f using fmpich2s.lib.
Actually, I have identified the culprit: MPI_SEND/RECV work find with
integer, but have problem with string.
>
> The main reason I beleive is that, in Fortran, different compiler treats
the string arguments differently: either add the string length as a
invisible argument immediately after the string pointer, or the string lengh
is added as a invisible arguments at the end of arguments list. So in my
understanding MPI_SEND/RECV will have 28 byte of arguments for integer, but
32 byte of arguments for string because the invisible string length
argument.
>
> It will cause crash if the positions of the invisible string length
arguments are different in the .obj file and in fmpich2s.lib. The following
program dimenstrate this
>
> program main
> implicit none
> #include <mpif.h>
> integer status(MPI_STATUS_SIZE)
> character * 15 pcomand
> integer MYID,mpimodbg,ierr
> ierr=MPI_SUCCESS
> call MPI_INIT(ierr)
> call MPI_COMM_RANK( MPI_COMM_WORLD, MYID, ierr )
> if(MYID .eq. 1)then
> mpimodbg=99
> pcomand='hello world'
> call MPI_SEND(mpimodbg,1,MPI_INTEGER,0
> * ,11,MPI_COMM_WORLD,ierr)
> write(*,*)'node',MYID,pcomand,mpimodbg
> call MPI_SEND(pcomand,15,MPI_CHARACTER,0
> * ,11,MPI_COMM_WORLD,ierr)
> write(*,*)'node',MYID,pcomand,mpimodbg
> elseif(MYID.eq.0)then
> mpimodbg=0
> pcomand='hello'
> call MPI_RECV(mpimodbg,1,MPI_INTEGER,1
> * ,11,MPI_COMM_WORLD,status,ierr)
> write(*,*)'node',MYID,pcomand,mpimodbg
> call MPI_RECV(pcomand,15,MPI_CHARACTER,1
> * ,11,MPI_COMM_WORLD,status,ierr)
> write(*,*)'node',MYID,pcomand,mpimodbg
> endif
> call MPI_FINALIZE(ierr)
> end
>
> When compiled with the string length as a invisible argument immediately
after the string pointer (by default in Intel Compiler):
>
> $ "/cygdrive/c/Program Files/MPICH2/bin/mpiexec.exe" -n 3
./Debug/fortestargs.exe
> node          0 hello                    99
> node          1 hello world              99
> forrtl: severe (157): Program Exception - access violation
> Image              PC        Routine            Line        Source
> fmpich2s.dll      1000507F  Unknown              Unknown  Unknown
> fortestargs.exe    004A783D  Unknown              Unknown  Unknown
> fortestargs.exe    0044AA53  Unknown              Unknown  Unknown
> fortestargs.exe    0044A81D  Unknown              Unknown  Unknown
> kernel32.dll      7C816FD7  Unknown              Unknown  Unknown
> forrtl: severe (157): Program Exception - access violation
> Image              PC        Routine            Line        Source
> fmpich2s.dll      1000492B  Unknown              Unknown  Unknown
> fortestargs.exe    004A783D  Unknown              Unknown  Unknown
> fortestargs.exe    0044AA53  Unknown              Unknown  Unknown
> fortestargs.exe    0044A81D  Unknown              Unknown  Unknown
> kernel32.dll      7C816FD7  Unknown              Unknown  Unknown
> job aborted:
> rank: node: exit code[: error message]
> 0: abyss: 157: process 0 exited without calling finalize
> 1: abyss: 157: process 1 exited without calling finalize
> 2: abyss: 123
>
> When compiled with the string length as a invisible argument at the end of
arguments list:
>
> $ "/cygdrive/c/Program Files/MPICH2/bin/mpiexec.exe" -n 3
./Debug/fortestargs.exe
>
> node          1 hello world              99
> node          1 hello world              99
> node          0 hello                    99
> node          0 hello world              99
>
>
> Thanks all  for your help.
>
> Linfa
>
>
> ----- Original Message ----
> From: Jayesh Krishna <jayesh at mcs.anl.gov>
> To: trymelz trymelz <trymelz at yahoo.com>
> Cc: mpich-discuss at mcs.anl.gov
> Sent: Thursday, March 20, 2008 9:15:21 AM
> Subject: RE: [mpich-discuss] exit code -1073741819
>
>
> Hi,
>    Can you compile & run the sample fpi.f (provided in MPICH2\examples in
your installation dir) using fmpich2s.lib ?
>
> Regards,
> Jayesh
>
>
>
>
> From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of trymelz trymelz
> Sent: Wednesday, March 19, 2008 6:30 PM
> To: mpich-discuss at mcs.anl.gov
> Subject: Re: [mpich-discuss] exit code -1073741819
>
>
> Hi
>
> The MPI program is too big to be sent. Here is what I got from the
debugger
>
> Before calling PMPI_ISEND:
> Symbol Value Type
>  buf(1) 3 INTEGER(4)
>  cnt 1 INTEGER(4)
>  datatype 1275069467 INTEGER(4)
>  dest 0 INTEGER(4)
>  tag 24 INTEGER(4)
>  comm 1140850688 INTEGER(4)
>  reqs(1) 1243468 INTEGER(4)
>  ierr 0 INTEGER(4)
>
> call PMPI_ISEND(buf,cnt,datatype,dest,tag,comm,reqs(1),ierr)
>
> Unhandled exception at 0x003b41c9 in EXEC.exe:0xC0000005:
> Access violation writing location 0x00000000
>
> After the break at the crash, all the arguments becomes "undefined
address".
>
> When I check the library, I got
> $ nm fmpich2s.lib | grep MPI_SEND@
> 00000000 T _MPI_SEND at 28
> 00000000 I __imp__MPI_SEND at 28
> 00000000 T _MPI_SEND at 32
> 00000000 I __imp__MPI_SEND at 32
> 00000000 T _PMPI_SEND at 28
> 00000000 I __imp__PMPI_SEND at 28
> 00000000 T _PMPI_SEND at 32
> 00000000 I __imp__PMPI_SEND at 32
>
> I am wondering why there are two definitions:  _MPI_SEND at 28 and
_MPI_SEND at 32.  And I could not find corresponding source code for
_MPI_SEND at 32. Any comments? Thanks.
>
> Linfa
>
>
>
> ----- Original Message ----
> From: Jayesh Krishna <jayesh at mcs.anl.gov>
> To: trymelz trymelz <trymelz at yahoo.com>
> Cc: mpich-discuss at mcs.anl.gov
> Sent: Wednesday, March 19, 2008 2:32:59 PM
> Subject: RE: [mpich-discuss] exit code -1073741819
>
>
> Hi,
> Can you send us your MPI program ?
> You can also try to debug your program by setting the error handler to
MPI_ERRORS_RETURN (MPI_Comm_set_errhandler() ) & using MPI_Error_string() to
get the description of the error code.
>
> Regards,
> Jayesh
>
>
>
>
> From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of trymelz trymelz
> Sent: Wednesday, March 19, 2008 2:11 PM
> To: mpich-discuss at mcs.anl.gov
> Subject: [mpich-discuss] exit code -1073741819
>
>
> Hi all,
>
> I got an strange error when I run my parallel program.
>
> job aborted:
> rank: node: exit code[: error message]
> 0: abyss: -1073741819: process 0 exited without calling finalize
> 1: abyss: -1073741819: process 1 exited without calling finalize
> 2: abyss: -1073741819: process 2 exited without calling finalize
>
> My program works as expected under Linux. But when I porting it to windows
I got above error. It is compiled by VC8 and Intel FORTRAN 10.0.
> I didn't built my own MPICH2, but link my program with fmpich2s.lib and
mpi.lib which were installed from mpich2-1.0.6p1-win32-ia32.msi.
>
> This error happened inside the call to MPI_SEND. Does anyone have an idea
about this error?
>
>
> Linfa
>
>
>
> Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it
now.
>
>
>
>
>
> Looking for last minute shopping deals? Find them fast with Yahoo! Search.
>
>
>
>
>
> Looking for last minute shopping deals? Find them fast with Yahoo! Search.
>
>
>
____________________________________________________________________________
________
> Looking for last minute shopping deals?
> Find them fast with Yahoo! Search.
http://tools.search.yahoo.com/newsearch/category.php?category=shopping




  _____  

Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it
now.
<http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8
HDtDypao8Wcj9tAcJ%20> 


  _____  

Never miss a thing. Make Yahoo your homepage.
<http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs>  


  _____  

Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it
now.
<http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8
HDtDypao8Wcj9tAcJ> 


  _____  

Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try
<http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8
HDtDypao8Wcj9tAcJ> it now.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20080325/ec0f544a/attachment.htm>


More information about the mpich-discuss mailing list