<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">You can use PetscMPIInt for integers in MPI calls.<div class=""><br class=""></div><div class="">Check petscsys.h for definitions of all of these.</div><div class=""><br class=""></div><div class="">Randy</div><div class=""><br class=""></div><div class=""><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 5, 2018, at 8:56 PM, TAY wee-beng <<a href="mailto:zonexo@gmail.com" class="">zonexo@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
<div text="#000000" bgcolor="#FFFFFF" class=""><p class="">Hi,</p><p class="">My code has some problems now after converting to 64bit indices.</p><p class="">After debugging, I realised that I'm using:</p><p class="">call
MPI_ALLGATHER(counter,1,MPI_INTEGER,counter_global,1,MPI_INTEGER,MPI_COMM_WORLD,ierr)</p><p class="">but now counter and counter_global are both 64bit integers. So
should I change all mpi routine from MPI_INTEGER to MPI_INTEGER8?</p><p class="">But if I switch back to using the 32bit PETSc, do I have to
switch back again? In that case, does it mean I need to have 2
copies of my code - one to compile with PETSc 32, another to
compile with PETSc 64?</p><p class="">Is there an easier way?<br class="">
</p>
<pre class="moz-signature" cols="72">Thank you very much.
Yours sincerely,
================================================
TAY Wee-Beng (Zheng Weiming) 郑伟明
Personal research webpage: <a class="moz-txt-link-freetext" href="http://tayweebeng.wixsite.com/website">http://tayweebeng.wixsite.com/website</a>
Youtube research showcase: <a class="moz-txt-link-freetext" href="https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA">https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA</a>
linkedin: <a class="moz-txt-link-abbreviated" href="http://www.linkedin.com/in/tay-weebeng">www.linkedin.com/in/tay-weebeng</a>
================================================</pre>
<div class="moz-cite-prefix">On 5/9/2018 6:25 PM, Matthew Knepley
wrote:<br class="">
</div>
<blockquote type="cite" cite="mid:CAMYG4G=8n8V2TkqR+T7y+Pbsi0C83hERtbhSUB4j3C83sOwujA@mail.gmail.com" class="">
<meta http-equiv="content-type" content="text/html; charset=utf-8" class="">
<div dir="ltr" class="">
<div class="gmail_quote">
<div dir="ltr" class="">On Wed, Sep 5, 2018 at 3:27 AM TAY wee-beng
<<a href="mailto:zonexo@gmail.com" moz-do-not-send="true" class="">zonexo@gmail.com</a>>
wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="">
On 31/8/2018 10:43 AM, Smith, Barry F. wrote:<br class="">
><br class="">
>> On Aug 30, 2018, at 9:40 PM, TAY wee-beng <<a href="mailto:zonexo@gmail.com" target="_blank" moz-do-not-send="true" class="">zonexo@gmail.com</a>> wrote:<br class="">
>><br class="">
>><br class="">
>> On 31/8/2018 10:38 AM, Smith, Barry F. wrote:<br class="">
>>> PetscReal is by default real(8) you can
leave those alone<br class="">
>>><br class="">
>>> 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.<br class="">
>>><br class="">
>>> Barry<br class="">
>>><br class="">
>> Hi,<br class="">
>><br class="">
>> ok, I got it. Btw, is it advisable to change all
integer in my code to PetscInt?<br class="">
>><br class="">
>> Will it cause any conflict or waste a lot of
memory?<br class="">
>><br class="">
>> Or should I only change those related to PETSc?<br class="">
> 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.<br class="">
><br class="">
> Barry<br class="">
Hi,<br class="">
<br class="">
For some small parts of the code, it is preferred to use
integer <br class="">
instead. Btw, to force variable as integer, I can use
int(aa). However, <br class="">
I tried to force variable as PetscInt using PetscInt(aa) but
it can't work.<br class="">
<br class="">
Is there any way I can make it work?<br class="">
</blockquote>
<div class=""><br class="">
</div>
<div class="">I think you just define a PetscInt variable and use
assignment.</div>
<div class=""><br class="">
</div>
<div class=""> Matt</div>
<div class=""> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks.<br class="">
>> Thanks!<br class="">
>>>> On Aug 30, 2018, at 9:35 PM, TAY wee-beng
<<a href="mailto:zonexo@gmail.com" target="_blank" moz-do-not-send="true" class="">zonexo@gmail.com</a>> wrote:<br class="">
>>>><br class="">
>>>><br class="">
>>>> On 31/8/2018 10:21 AM, Matthew Knepley
wrote:<br class="">
>>>>> On Thu, Aug 30, 2018 at 10:17 PM TAY
wee-beng <<a href="mailto:zonexo@gmail.com" target="_blank" moz-do-not-send="true" class="">zonexo@gmail.com</a>>
wrote:<br class="">
>>>>> Hi,<br class="">
>>>>><br class="">
>>>>> Due to my increase grid size, I have to
go 64bit. I compiled the 64bit<br class="">
>>>>> PETSc w/o error. However, when I tried
to compile my code using the<br class="">
>>>>> 64bit PETSc, I got the error below. May
I know why is this so?<br class="">
>>>>><br class="">
>>>>> What changes should I make?<br class="">
>>>>><br class="">
>>>>> Is it possible that you did not declare
some inputs as PetscInt, so the interface check is failing?<br class="">
>>>>><br class="">
>>>>> Matt<br class="">
>>>> Hi,<br class="">
>>>><br class="">
>>>> I'm using the standard<br class="">
>>>><br class="">
>>>> integer ::<br class="">
>>>><br class="">
>>>> real(8) ::<br class="">
>>>><br class="">
>>>> for some variables. For some others
relating to PETSc, I use PetscInt.<br class="">
>>>><br class="">
>>>> Should I change all to PetscInt and
PetscReal?<br class="">
>>>><br class="">
>>>> Currently, I use real(8) for all real
values. If I change all to PetscReal, will PetscReal be real
or real(8) by default?<br class="">
>>>><br class="">
>>>> Thanks!<br class="">
>>>>> <br class="">
>>>>> [tsltaywb@nus02 ibm3d_IIB_mpi]$ make -f
makefile_2018<br class="">
>>>>>
/app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin/mpif90<br class="">
>>>>> -g -ip -ipo -O3 -c -fPIC -save
kinefunc.F90<br class="">
>>>>>
/app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin/mpif90<br class="">
>>>>> -g -ip -ipo -O3 -c -fPIC -save -w<br class="">
>>>>>
-I/home/users/nus/tsltaywb/propeller/lib/petsc-3.9.3_intel_2018_64bit_rel/include<br class="">
>>>>>
-I/app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/include<br class="">
>>>>> global.F90<br class="">
>>>>> global.F90(979): error #6285: There is
no matching specific subroutine<br class="">
>>>>> for this generic subroutine call.
[DMDACREATE3D]<br class="">
>>>>> call<br class="">
>>>>>
DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&<br class="">
>>>>> -----^<br class="">
>>>>> global.F90(989): error #6285: There is
no matching specific subroutine<br class="">
>>>>> for this generic subroutine call.
[DMDACREATE3D]<br class="">
>>>>> call<br class="">
>>>>>
DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&<br class="">
>>>>> ---------^<br class="">
>>>>> global.F90(997): error #6285: There is
no matching specific subroutine<br class="">
>>>>> for this generic subroutine call.
[DMDACREATE3D]<br class="">
>>>>> call<br class="">
>>>>>
DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&<br class="">
>>>>> ---------^<br class="">
>>>>> global.F90(1005): error #6285: There is
no matching specific subroutine<br class="">
>>>>> for this generic subroutine call.
[DMDACREATE3D]<br class="">
>>>>> call<br class="">
>>>>>
DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&<br class="">
>>>>> ---------^<br class="">
>>>>> global.F90(1013): error #6285: There is
no matching specific subroutine<br class="">
>>>>> for this generic subroutine call.
[DMDACREATE3D]<br class="">
>>>>> call<br class="">
>>>>>
DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&<br class="">
>>>>> ---------^<br class="">
>>>>> global.F90(1021): error #6285: There is
no matching specific subroutine<br class="">
>>>>> for this generic subroutine call.
[DMDACREATE3D]<br class="">
>>>>> call<br class="">
>>>>>
DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&<br class="">
>>>>> ---------^<br class="">
>>>>> global.F90(1029): error #6285: There is
no matching specific subroutine<br class="">
>>>>> for this generic subroutine call.
[DMDACREATE3D]<br class="">
>>>>> call<br class="">
>>>>>
DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&<br class="">
>>>>> ---------^<br class="">
>>>>> compilation aborted for global.F90
(code 1)<br class="">
>>>>><br class="">
>>>>> -- <br class="">
>>>>> Thank you very much.<br class="">
>>>>><br class="">
>>>>> Yours sincerely,<br class="">
>>>>><br class="">
>>>>>
================================================<br class="">
>>>>> TAY Wee-Beng (Zheng Weiming) 郑伟明<br class="">
>>>>> Personal research webpage: <a href="http://tayweebeng.wixsite.com/website" rel="noreferrer" target="_blank" moz-do-not-send="true" class="">http://tayweebeng.wixsite.com/website</a><br class="">
>>>>> Youtube research showcase: <a href="https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA" rel="noreferrer" target="_blank" moz-do-not-send="true" class="">https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA</a><br class="">
>>>>> linkedin: <a href="http://www.linkedin.com/in/tay-weebeng" rel="noreferrer" target="_blank" moz-do-not-send="true" class="">www.linkedin.com/in/tay-weebeng</a><br class="">
>>>>>
================================================<br class="">
>>>>><br class="">
>>>>><br class="">
>>>>><br class="">
>>>>> -- <br class="">
>>>>> What most experimenters take for
granted before they begin their experiments is infinitely
more interesting than any results to which their experiments
lead.<br class="">
>>>>> -- Norbert Wiener<br class="">
>>>>><br class="">
>>>>> <a href="https://www.cse.buffalo.edu/%7Eknepley/" rel="noreferrer" target="_blank" moz-do-not-send="true" class="">https://www.cse.buffalo.edu/~knepley/</a><br class="">
<br class="">
</blockquote>
</div>
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">
<div class="">What most experimenters take for granted before
they begin their experiments is infinitely more
interesting than any results to which their
experiments lead.<br class="">
-- Norbert Wiener</div>
<div class=""><br class="">
</div>
<div class=""><a href="http://www.cse.buffalo.edu/%7Eknepley/" target="_blank" moz-do-not-send="true" class="">https://www.cse.buffalo.edu/~knepley/</a><br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br class="">
</div>
</div></blockquote></div><br class=""></div></div></body></html>