[petsc-users] Problem compiling with 64bit PETSc

Smith, Barry F. bsmith at mcs.anl.gov
Thu Aug 30 21:43:05 CDT 2018



> On Aug 30, 2018, at 9:40 PM, TAY wee-beng <zonexo at gmail.com> wrote:
> 
> 
> On 31/8/2018 10:38 AM, Smith, Barry F. wrote:
>>   PetscReal is by default real(8) you can leave those alone
>> 
>>    Any integer you pass to a PETSc routine needs to be declared as PetscInt (not integer) otherwise the 64 bit indices stuff won't work.
>> 
>>    Barry
>> 
> Hi,
> 
> ok, I got it. Btw, is it advisable to change all integer in my code to PetscInt?
> 
> Will it cause any conflict or waste a lot of memory?
> 
> Or should I only change those related to PETSc?

    That is up to you. Since you probably pass the values between PETSc and non-PETSc part of the code it is probably easier just to make all the integer PetscInt instead. No performance difference that you can measure by keeping a few integer around.

    Barry

> 
> Thanks!
>>> On Aug 30, 2018, at 9:35 PM, TAY wee-beng <zonexo at gmail.com> wrote:
>>> 
>>> 
>>> On 31/8/2018 10:21 AM, Matthew Knepley wrote:
>>>> On Thu, Aug 30, 2018 at 10:17 PM TAY wee-beng <zonexo at gmail.com> wrote:
>>>> Hi,
>>>> 
>>>> Due to my increase grid size, I have to go 64bit. I compiled the 64bit
>>>> PETSc w/o error. However, when I tried to compile my code using the
>>>> 64bit PETSc, I got the error below. May I know why is this so?
>>>> 
>>>> What changes should I make?
>>>> 
>>>> Is it possible that you did not declare some inputs as PetscInt, so the interface check is failing?
>>>> 
>>>>    Matt
>>> Hi,
>>> 
>>> I'm using the standard
>>> 
>>> integer ::
>>> 
>>> real(8) ::
>>> 
>>> for some variables. For some others relating to PETSc, I use PetscInt.
>>> 
>>> Should I change all to PetscInt and PetscReal?
>>> 
>>> Currently, I use real(8) for all real values. If I change all to PetscReal, will PetscReal be real or real(8) by default?
>>> 
>>> Thanks!
>>>>  
>>>> [tsltaywb at nus02 ibm3d_IIB_mpi]$ make -f makefile_2018
>>>> /app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin/mpif90
>>>> -g -ip -ipo -O3 -c -fPIC  -save kinefunc.F90
>>>> /app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin/mpif90
>>>> -g -ip -ipo -O3 -c -fPIC  -save  -w
>>>> -I/home/users/nus/tsltaywb/propeller/lib/petsc-3.9.3_intel_2018_64bit_rel/include
>>>> -I/app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/include
>>>> global.F90
>>>> global.F90(979): error #6285: There is no matching specific subroutine
>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>> call
>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>> -----^
>>>> global.F90(989): error #6285: There is no matching specific subroutine
>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>      call
>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>> ---------^
>>>> global.F90(997): error #6285: There is no matching specific subroutine
>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>      call
>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>> ---------^
>>>> global.F90(1005): error #6285: There is no matching specific subroutine
>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>      call
>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>> ---------^
>>>> global.F90(1013): error #6285: There is no matching specific subroutine
>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>      call
>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>> ---------^
>>>> global.F90(1021): error #6285: There is no matching specific subroutine
>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>      call
>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>> ---------^
>>>> global.F90(1029): error #6285: There is no matching specific subroutine
>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>      call
>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>> ---------^
>>>> compilation aborted for global.F90 (code 1)
>>>> 
>>>> -- 
>>>> 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
>>>> ================================================
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
>>>> -- Norbert Wiener
>>>> 
>>>> https://www.cse.buffalo.edu/~knepley/
> 



More information about the petsc-users mailing list