[petsc-users] Problem compiling with 64bit PETSc

Randall Mackie rlmackie862 at gmail.com
Thu Aug 30 22:36:20 CDT 2018


Don’t forget that not all integers passed into PETSc routines are 64 bit.
For example, the error codes when called from Fortran should be defined as PetscErrorCode and not PetscInt.
It’s really good to get into the habit of correctly declaring all PETSc variables according to the web pages, so that you can easily switch between 32bit and 64bit integers.

Randy


> On Aug 30, 2018, at 7:43 PM, Smith, Barry F. <bsmith at mcs.anl.gov> wrote:
> 
> 
> 
>> 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/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180830/1c29b4b9/attachment-0001.html>


More information about the petsc-users mailing list