Yes, you need to go through your code and check each MPI call and make sure 
you use PetscMPIInt for integer arguments and PetscInt for the void* arguments 
and also make sure that the data type you use in the MPI calls (when 
communicating PetscInt) is MPIU_INT.

    You should not need a fancy debugger to find out the crash point. Just a 
basic debugger like gdb, lldb, or dbx will 

   Barry


> On Sep 20, 2018, at 8:57 AM, TAY wee-beng <[email protected]> wrote:
> 
> Hi,
> 
> Sorry I'm still a bit confused. My 64bit code still doesn't work once I use 
> more than 1 procs. It just aborts at some point. I'm been trying to use ARM 
> Forge mpi debugging tool to find the error but it's a bit difficult to back 
> trace.
> 
> So I should carefully inspect each mpi subroutine or function, is that 
> correct?
> 
> If it's INT, then I should use PetscMPIInt. If it's labeled void *, I should 
> use PetscInt. Is that so?
> 
> Thank you very much
> 
> Yours sincerely,
> 
> ================================================
> TAY Wee-Beng 郑伟明 (Zheng Weiming)
> Personal research webpage: http://tayweebeng.wixsite.com/website
> Youtube research showcase: 
> https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA
> linkedin: www.linkedin.com/in/tay-weebeng
> ================================================
> 
> On 19/9/2018 12:49 AM, Smith, Barry F. wrote:
>>    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.
>> 
>> 
>> 
>>> On Sep 18, 2018, at 1:39 AM, TAY wee-beng <[email protected]> wrote:
>>> 
>>> Hi,
>>> 
>>> In that case, does it apply to all MPI subroutines such as MPI_ALLGATHER?
>>> 
>>> In other words, must I assign local_array_length etc as PetscMPIInt?
>>> 
>>> call 
>>> MPI_ALLGATHER(local_array_length,1,MPIU_INTEGER,array_length,1,MPIU_INTEGER,MPI_COMM_WORLD,ierr)
>>> 
>>> Or is it ok to change all integers from PetscInt to PetscMPIInt?
>>> 
>>> With the exception of ierr - PetscErrorCode
>>> 
>>> 
>>> Thank you very much.
>>> 
>>> Yours sincerely,
>>> 
>>> ================================================
>>> TAY Wee-Beng (Zheng Weiming) 郑伟明
>>> Personal research webpage: http://tayweebeng.wixsite.com/website
>>> Youtube research showcase: 
>>> https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA
>>> linkedin: www.linkedin.com/in/tay-weebeng
>>> ================================================
>>> 
>>> On 18/9/2018 1:39 PM, Balay, Satish wrote:
>>>> https://www.mpich.org/static/docs/v3.1/www3/MPI_Comm_size.html
>>>> 
>>>> int MPI_Comm_size( MPI_Comm comm, int *size )
>>>> 
>>>> i.e there is no PetscInt here. [MPI does not know about PETSc datatypes]
>>>> 
>>>> For convinence we provide PetscMPIInt to keep track of such variables
>>>> [similarly PetscBLASInt]. For eg: Check src/vec/vec/examples/tests/ex2f.F
>>>> 
>>>> Satish
>>>> 
>>>> On Tue, 18 Sep 2018, TAY wee-beng wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I managed to find the error appearing after using PETSc 64bit in linux -
>>>>> 
>>>>> call MPI_COMM_SIZE(MPI_COMM_WORLD, num_procs, ierr)
>>>>> 
>>>>> I have assigned num_procs as PetscInt and I got 0 instead of 1 (for 1 
>>>>> procs)
>>>>> 
>>>>> Assigning num_procs as integer as the problem.
>>>>> 
>>>>> Is this supposed to be the case? Or is it a bug?
>>>>> 
>>>>> Thank you very much.
>>>>> 
>>>>> Yours sincerely,
>>>>> 
>>>>> ================================================
>>>>> TAY Wee-Beng (Zheng Weiming) 郑伟明
>>>>> Personal research webpage: http://tayweebeng.wixsite.com/website
>>>>> Youtube research showcase:
>>>>> https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA
>>>>> linkedin: www.linkedin.com/in/tay-weebeng
>>>>> ================================================
>>>>> 
>>>>> On 8/9/2018 1:14 AM, Smith, Barry F. wrote:
>>>>>>        You can try valgrind
>>>>>>        http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind
>>>>>> 
>>>>>>    Barry
>>>>>> 
>>>>>> 
>>>>>>> On Sep 7, 2018, at 1:44 AM, TAY wee-beng <[email protected]> wrote:
>>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I found that I am unable to read in values thru namelist in Fortran 
>>>>>>> after
>>>>>>> using PETSc 64bit in linux.
>>>>>>> 
>>>>>>> I have a parameter txt file which is read in using namelist in Fortran:
>>>>>>> 
>>>>>>> namelist /body_input/ no_body, convex_body, motion_type, hover, 
>>>>>>> wing_config
>>>>>>> ...
>>>>>>> 
>>>>>>> open (unit = 44 , FILE = "ibm3d_input.txt" , status = "old", iostat =
>>>>>>> openstatus(4))
>>>>>>> 
>>>>>>>          if (openstatus(4) > 0) then
>>>>>>> 
>>>>>>>              print *, "ibm3d_input file not present or wrong filename."
>>>>>>> 
>>>>>>>              stop
>>>>>>> 
>>>>>>>          end if
>>>>>>> 
>>>>>>>          read (44,nml = solver_input)
>>>>>>> 
>>>>>>>          read (44,nml = grid_input)
>>>>>>> 
>>>>>>>          read (44,nml = body_input)...
>>>>>>> 
>>>>>>> 
>>>>>>> After using PETSc 64bit, my code aborts and I realise that it is because
>>>>>>> the values have became NaN. Strangely, it does not occur in windows with
>>>>>>> VS2008.
>>>>>>> 
>>>>>>> I wonder if it's a bug with the Intel Fortran compiler 2018.
>>>>>>> 
>>>>>>> Anyone has similar experience?
>>>>>>> 
>>>>>>> -- 
>>>>>>> Thank you very much.
>>>>>>> 
>>>>>>> Yours sincerely,
>>>>>>> 
>>>>>>> ================================================
>>>>>>> TAY Wee-Beng (Zheng Weiming) 郑伟明
>>>>>>> Personal research webpage: http://tayweebeng.wixsite.com/website
>>>>>>> Youtube research showcase:
>>>>>>> https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA
>>>>>>> linkedin: www.linkedin.com/in/tay-weebeng
>>>>>>> ================================================
>>>>>>> 
> 

Reply via email to