<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Sep 20, 2018 at 9:58 AM TAY wee-beng <<a href="mailto:zonexo@gmail.com">zonexo@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Sorry I'm still a bit confused. My 64bit code still doesn't work once I <br>
use more than 1 procs. It just aborts at some point. I'm been trying to <br>
use ARM Forge mpi debugging tool to find the error but it's a bit <br>
difficult to back trace.<br>
<br>
So I should carefully inspect each mpi subroutine or function, is that <br>
correct?<br>
<br>
If it's INT, then I should use PetscMPIInt. If it's labeled void *, I <br>
should use PetscInt. Is that so?<br></blockquote><div><br></div><div>MPI routines take void * to data and a datatype. You must use the MPI datatype</div><div>that matches the data you have in memory. MPIU_INT matches PetscInt. MPI_INT</div><div>matches int or PetscMPIInt. You just need to use the matching thing.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thank you very much<br>
<br>
Yours sincerely,<br>
<br>
================================================<br>
TAY Wee-Beng 郑伟明 (Zheng Weiming)<br>
Personal research webpage: <a href="http://tayweebeng.wixsite.com/website" rel="noreferrer" target="_blank">http://tayweebeng.wixsite.com/website</a><br>
Youtube research showcase: <a href="https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA" rel="noreferrer" target="_blank">https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA</a><br>
linkedin: <a href="http://www.linkedin.com/in/tay-weebeng" rel="noreferrer" target="_blank">www.linkedin.com/in/tay-weebeng</a><br>
================================================<br>
<br>
On 19/9/2018 12:49 AM, Smith, Barry F. wrote:<br>
>     PetscMPIInt  (or integer) are for all lengths passed to MPI functions; simple look at the prototypes for the MPI function you care about and it will tell you which arguments are integer.  The DATA you are passing into the MPI arrays (which are labeled void * in the manual pages) should be PetscInt.<br>
><br>
><br>
><br>
>> On Sep 18, 2018, at 1:39 AM, TAY wee-beng <<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>> In that case, does it apply to all MPI subroutines such as MPI_ALLGATHER?<br>
>><br>
>> In other words, must I assign local_array_length etc as PetscMPIInt?<br>
>><br>
>> call MPI_ALLGATHER(local_array_length,1,MPIU_INTEGER,array_length,1,MPIU_INTEGER,MPI_COMM_WORLD,ierr)<br>
>><br>
>> Or is it ok to change all integers from PetscInt to PetscMPIInt?<br>
>><br>
>> With the exception of ierr - PetscErrorCode<br>
>><br>
>><br>
>> Thank you very much.<br>
>><br>
>> Yours sincerely,<br>
>><br>
>> ================================================<br>
>> TAY Wee-Beng (Zheng Weiming) 郑伟明<br>
>> Personal research webpage: <a href="http://tayweebeng.wixsite.com/website" rel="noreferrer" target="_blank">http://tayweebeng.wixsite.com/website</a><br>
>> Youtube research showcase: <a href="https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA" rel="noreferrer" target="_blank">https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA</a><br>
>> linkedin: <a href="http://www.linkedin.com/in/tay-weebeng" rel="noreferrer" target="_blank">www.linkedin.com/in/tay-weebeng</a><br>
>> ================================================<br>
>><br>
>> On 18/9/2018 1:39 PM, Balay, Satish wrote:<br>
>>> <a href="https://www.mpich.org/static/docs/v3.1/www3/MPI_Comm_size.html" rel="noreferrer" target="_blank">https://www.mpich.org/static/docs/v3.1/www3/MPI_Comm_size.html</a><br>
>>><br>
>>> int MPI_Comm_size( MPI_Comm comm, int *size )<br>
>>><br>
>>> i.e there is no PetscInt here. [MPI does not know about PETSc datatypes]<br>
>>><br>
>>> For convinence we provide PetscMPIInt to keep track of such variables<br>
>>> [similarly PetscBLASInt]. For eg: Check src/vec/vec/examples/tests/ex2f.F<br>
>>><br>
>>> Satish<br>
>>><br>
>>> On Tue, 18 Sep 2018, TAY wee-beng wrote:<br>
>>><br>
>>>> Hi,<br>
>>>><br>
>>>> I managed to find the error appearing after using PETSc 64bit in linux -<br>
>>>><br>
>>>> call MPI_COMM_SIZE(MPI_COMM_WORLD, num_procs, ierr)<br>
>>>><br>
>>>> I have assigned num_procs as PetscInt and I got 0 instead of 1 (for 1 procs)<br>
>>>><br>
>>>> Assigning num_procs as integer as the problem.<br>
>>>><br>
>>>> Is this supposed to be the case? Or is it a bug?<br>
>>>><br>
>>>> Thank you very much.<br>
>>>><br>
>>>> Yours sincerely,<br>
>>>><br>
>>>> ================================================<br>
>>>> TAY Wee-Beng (Zheng Weiming) 郑伟明<br>
>>>> Personal research webpage: <a href="http://tayweebeng.wixsite.com/website" rel="noreferrer" target="_blank">http://tayweebeng.wixsite.com/website</a><br>
>>>> Youtube research showcase:<br>
>>>> <a href="https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA" rel="noreferrer" target="_blank">https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA</a><br>
>>>> linkedin: <a href="http://www.linkedin.com/in/tay-weebeng" rel="noreferrer" target="_blank">www.linkedin.com/in/tay-weebeng</a><br>
>>>> ================================================<br>
>>>><br>
>>>> On 8/9/2018 1:14 AM, Smith, Barry F. wrote:<br>
>>>>>         You can try valgrind<br>
>>>>>         <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a><br>
>>>>><br>
>>>>>     Barry<br>
>>>>><br>
>>>>><br>
>>>>>> On Sep 7, 2018, at 1:44 AM, TAY wee-beng <<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>> wrote:<br>
>>>>>><br>
>>>>>> Hi,<br>
>>>>>><br>
>>>>>> I found that I am unable to read in values thru namelist in Fortran after<br>
>>>>>> using PETSc 64bit in linux.<br>
>>>>>><br>
>>>>>> I have a parameter txt file which is read in using namelist in Fortran:<br>
>>>>>><br>
>>>>>> namelist /body_input/ no_body, convex_body, motion_type, hover, wing_config<br>
>>>>>> ...<br>
>>>>>><br>
>>>>>> open (unit = 44 , FILE = "ibm3d_input.txt" , status = "old", iostat =<br>
>>>>>> openstatus(4))<br>
>>>>>><br>
>>>>>>           if (openstatus(4) > 0) then<br>
>>>>>><br>
>>>>>>               print *, "ibm3d_input file not present or wrong filename."<br>
>>>>>><br>
>>>>>>               stop<br>
>>>>>><br>
>>>>>>           end if<br>
>>>>>><br>
>>>>>>           read (44,nml = solver_input)<br>
>>>>>><br>
>>>>>>           read (44,nml = grid_input)<br>
>>>>>><br>
>>>>>>           read (44,nml = body_input)...<br>
>>>>>><br>
>>>>>><br>
>>>>>> After using PETSc 64bit, my code aborts and I realise that it is because<br>
>>>>>> the values have became NaN. Strangely, it does not occur in windows with<br>
>>>>>> VS2008.<br>
>>>>>><br>
>>>>>> I wonder if it's a bug with the Intel Fortran compiler 2018.<br>
>>>>>><br>
>>>>>> Anyone has similar experience?<br>
>>>>>><br>
>>>>>> -- <br>
>>>>>> Thank you very much.<br>
>>>>>><br>
>>>>>> Yours sincerely,<br>
>>>>>><br>
>>>>>> ================================================<br>
>>>>>> TAY Wee-Beng (Zheng Weiming) 郑伟明<br>
>>>>>> Personal research webpage: <a href="http://tayweebeng.wixsite.com/website" rel="noreferrer" target="_blank">http://tayweebeng.wixsite.com/website</a><br>
>>>>>> Youtube research showcase:<br>
>>>>>> <a href="https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA" rel="noreferrer" target="_blank">https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA</a><br>
>>>>>> linkedin: <a href="http://www.linkedin.com/in/tay-weebeng" rel="noreferrer" target="_blank">www.linkedin.com/in/tay-weebeng</a><br>
>>>>>> ================================================<br>
>>>>>><br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>