[petsc-users] Error while reading/writing petsc file
Nelson David Rufus
nelrufus at umich.edu
Mon Mar 5 13:10:07 CST 2018
Thanks Matt. I will try to use a 32 bit integer to see if the problem goes
away. I had a query about compatibility of while reading and writing files
compiled with different int varaints. For example, in the past, I've
noticed that a file written using an int32 petsc installation (using code
similar to below) had trouble being read by an int64 petsc installation. Is
this an issue?
--
Nelson David Rufus
PhD Student
Computational Materials Physics Group
Mechanical Engineering
University of Michigan
On Mon, Mar 5, 2018 at 1:56 PM, Matthew Knepley <knepley at gmail.com> wrote:
> On Mon, Mar 5, 2018 at 1:52 PM, Nelson David Rufus <nelrufus at umich.edu>
> wrote:
>
>> Hello,
>>
>> I am writing a vector on a petsc binary file and subsequently reading the
>> same in another part of the code.
>> This works well for smaller vector sizes but fails for a large vector
>> (vectorsize=2048000000 <(204)%20800-0000>; PetscScalar=PetscComplex).
>> For a large vector, when the read vector is probed for values, I seems to
>> me that it is populated with uninitialized values.
>>
>
> The number of bytes written will not fit in a 32-bit integer. We do not
> exhaustively check for problems. I recommend
> reconfiguring with 64-bit ints and retrying.
>
> Thanks,
>
> Matt
>
>
>> This size is close to the int32 limit (2^31 -1) but does not really
>> breach it. Hence i am nt using 64 bit integer. Can you please help me
>> figure out what might be going wrong here.? I'm appending with this mail
>> snippets of the code which read wnd write the petsc file.
>> //**********************************************************
>> ************************************************************
>> ***********************
>> //
>> // Snippet which writes v (a vector constructed using global size) to
>> the file. Note that this snippet is part of a parallel code
>> //
>> PetscViewer viewer;
>> error = PetscViewerBinaryOpen(PETSC_CO
>> MM_WORLD,fileName.c_str(),FILE_MODE_WRITE,&viewer);
>> checkPETScError(error, "unbale to open binary file");
>>
>> error = VecView(v,viewer);
>> checkPETScError(error, "unable to use VecView");
>>
>> error = PetscViewerDestroy(&viewer);
>> checkPETScError(error,"unable to destry viewer");
>>
>> //
>> // cleanup
>> //
>> error = VecDestroy(&v);
>> checkPETScError(error,"unable to destroy vector");
>>
>>
>> error = PetscOptionsSetValue(NULL,"-viewer_binary_mpiio","");
>> checkPETScError(error, "error in PetscOptionsSetValue");
>>
>> //**********************************************************
>> *********************************************************************
>> //
>> // Snippet which reads v (this is part of a serial code)
>> //
>> PetscViewer viewer;
>> error = PetscViewerBinaryOpen(PETSC_COMM_WORLD,fileName.c_str(),FILE
>> _MODE_READ,&viewer);
>> checkPETScError(error, "unbale to open binary file");
>>
>> error = VecLoad(v,viewer);
>> checkPETScError(error, "unable to use VecView");
>>
>> error = PetscViewerDestroy(&viewer);
>> checkPETScError(error,"unable to destry viewer");
>>
>> //
>> // write to console
>> //
>> //error = VecView(v,PETSC_VIEWER_STDOUT_WORLD);
>> //checkPETScError(error, "unable to write to console");
>>
>> //
>> // copy petsc vec to stl vector
>> //
>> std::vector<std::complex<double> > dummy(vecSize);
>> PetscScalar *pointerX;
>> VecGetArray(v, &pointerX);
>> std::copy(&(pointerX[0]),&(pointerX[vecSize]),dummy.begin());
>> VecRestoreArray(v, &pointerX);
>>
>> // subsequently dummy is written to an stl vector.
>> //**********************************************************
>> ************************************************************
>> ***********************
>>
>>
>> Thanks,
>> -
>> Nelson David Rufus
>> PhD Student
>> Computational Materials Physics Group
>> Mechanical Engineering
>> University of Michigan
>>
>
>
>
> --
> 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/ <http://www.caam.rice.edu/~mk51/>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180305/066d28da/attachment-0001.html>
More information about the petsc-users
mailing list