<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>

It works now, <span id="ecxresult_box" class="ecx" lang="en"> <span class="ecxhps">but as</span> <span class="ecxhps">you said</span> <span class="ecxhps">it</span> <span class="ecxhps">would be more suitable</span> if I <span class="ecxhps">transform</span> <span class="ecxhps">the linked list</span> <span class="ecxhps">into an array to do the send-recv.<br>Thanks a lot<br></span></span><br><br><div><div id="ecxSkyDrivePlaceholder"></div>&gt; From: thakur@mcs.anl.gov<br>&gt; Date: Mon, 12 Mar 2012 07:58:12 -0500<br>&gt; To: mpich-discuss@mcs.anl.gov<br>&gt; Subject: Re: [mpich-discuss] MPI_Type_struct error<br>&gt; <br>&gt; You need to use MPI_AINT as the 3rd type in type[3] instead of MPI_Liste, although I am not sure you want to communicate the address to the other side if you are doing send-recv.<br>&gt; <br>&gt; On Mar 12, 2012, at 2:40 AM, Ichrak Mehrez wrote:<br>&gt; <br>&gt; &gt; Hi,<br>&gt; &gt; <br>&gt; &gt; I have a problem with creating a new MPI datatype,<br>&gt; &gt; my old_type is a linked list:<br>&gt; &gt;  <br>&gt; &gt; struct ListeElt<br>&gt; &gt; {<br>&gt; &gt;   long indice;<br>&gt; &gt;   long val;<br>&gt; &gt;   struct ListeElt *suiv;<br>&gt; &gt; };<br>&gt; &gt; typedef struct ListeElt LISTE_Elt:<br>&gt; &gt; <br>&gt; &gt; I try to create a new datatype MPI_Liste:<br>&gt; &gt; <br>&gt; &gt; MPI_Datatype MPI_Liste;<br>&gt; &gt; MPI_Datatype type[3] = {MPI_LONG,MPI_LONG,MPI_Liste};<br>&gt; &gt; <br>&gt; &gt; int longueur_bloc[3]={1,1,1};<br>&gt; &gt; MPI_Aint disp[3];<br>&gt; &gt; <br>&gt; &gt; LISTE_Elt L;<br>&gt; &gt; MPI_Address(&amp;L.indice, disp); <br>&gt; &gt; MPI_Address(&amp;L.val, disp+1); <br>&gt; &gt; MPI_Address(&amp;L.suiv, disp+2); <br>&gt; &gt;  <br>&gt; &gt; int base = disp[0]; <br>&gt; &gt; for (j=0; j &lt;3; j++) disp[j] -= base;<br>&gt; &gt; MPI_Type_struct(3, longueur_bloc,disp, type,&amp;MPI_Liste);<br>&gt; &gt; MPI_Type_commit(&amp;MPI_Liste);<br>&gt; &gt; <br>&gt; &gt; but i got the following error:<br>&gt; &gt; <br>&gt; &gt; Fatal error in PMPI_Type_struct: Invalid datatype, error stack:<br>&gt; &gt; PMPI_Type_struct(210): MPI_Type_struct(count=3, blocklens=0x7fff830c6db0, indices=0x7fff830c6d40, old_types=0x7fff830c6da0, new_type_p=0x7fff830c6e40) failed<br>&gt; &gt; PMPI_Type_struct(177): Invalid datatype<br>&gt; &gt; <br>&gt; &gt; Thank you for any help.<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; _______________________________________________<br>&gt; &gt; mpich-discuss mailing list     mpich-discuss@mcs.anl.gov<br>&gt; &gt; To manage subscription options or unsubscribe:<br>&gt; &gt; https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss<br>&gt; <br>&gt; _______________________________________________<br>&gt; mpich-discuss mailing list     mpich-discuss@mcs.anl.gov<br>&gt; To manage subscription options or unsubscribe:<br>&gt; https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss<br></div>                                               </div></body>
</html>