[petsc-users] ASCIIRead error for multiple processors

Matthew Knepley knepley at gmail.com
Fri Apr 5 07:16:12 CDT 2019


On Thu, Apr 4, 2019 at 10:56 PM Yuyun Yang <yyang85 at stanford.edu> wrote:

> So do I call MPI_Bcast right after I call PetscViewerASCIIRead? Is that
> going to prevent the other processors from trying to read the same file but
> were unable to?
>

No, all this does is replicate data from process 0 on the other processes.

   Matt


> Thanks,
> Yuyun
>
> Get Outlook for iOS <https://aka.ms/o0ukef>
> ------------------------------
> *From:* Matthew Knepley <knepley at gmail.com>
> *Sent:* Thursday, April 4, 2019 7:30:20 PM
> *To:* Yuyun Yang
> *Cc:* Smith, Barry F.; petsc-users at mcs.anl.gov
> *Subject:* Re: [petsc-users] ASCIIRead error for multiple processors
>
> On Thu, Apr 4, 2019 at 9:19 PM Yuyun Yang via petsc-users <
> petsc-users at mcs.anl.gov> wrote:
>
>> We are probably not going to use hundreds of processors, but i think it
>> would be good to just have processor 0 read the input and broadcast that to
>> all the other processors. Would that be a possible fix? And what would you
>> suggest to work around this problem for now?
>>
>
> Explicitly call MPI_Bcast().
>
>    Matt
>
>
>> Thanks!
>> Yuyun
>>
>> Get Outlook for iOS <https://aka.ms/o0ukef>
>> ------------------------------
>> *From:* Smith, Barry F. <bsmith at mcs.anl.gov>
>> *Sent:* Thursday, April 4, 2019 3:07:37 PM
>> *To:* Yuyun Yang
>> *Cc:* petsc-users at mcs.anl.gov
>> *Subject:* Re: [petsc-users] ASCIIRead error for multiple processors
>>
>>
>>    Currently PetscViewerFileSetName_ASCII() only opens the file on
>> process 0 (for read or write) thus when you call PetscViewerASCIIRead()
>> from any process but the first it will be reading from an fd that has not
>> been set and you could get unpredictable results.
>>
>>    The implementation and documentation for PetscViewerASCIIRead() is
>> buggy.
>>
>>    There are two possible fixes we could make
>>
>> 1) have PetscViewerFileSetName_ASCII()  open the file for reading on all
>> processes or
>> 2) have PetscViewerASCIIRead() generate an error if the process is not
>> rank == 0
>>
>>    Barry
>>
>> Note that using PetscViewerASCIIRead() from a handful of processes is
>> probably fine but having hundreds or thousands of processes open the same
>> ASCII file and reading from it will likely not be scalable.
>>
>>
>>
>>
>> > On Apr 4, 2019, at 3:15 PM, Yuyun Yang via petsc-users <
>> petsc-users at mcs.anl.gov> wrote:
>> >
>> > Hello team,
>> >
>> > I’m trying to use PetscViewerASCIIRead() to read in a single
>> interger/scalar value from an input file. It works for one processor.
>> However, when running on multiple processors, I’m getting the below error:
>> >
>> > [1]PETSC ERROR: Invalid argument
>> > [1]PETSC ERROR: Insufficient data, read only 0 < 1 items
>> > [1]PETSC ERROR: #1 PetscViewerASCIIRead() line 1054 in
>> /usr/local/CLAB-2/petsc-3.6/src/sys/classes/viewer/impls/ascii/filev.c
>> >
>> > Is there something wrong with how I’m implementing this, or ASCIIRead
>> does not work with multiple processors?
>> >
>> > Thanks,
>> > Yuyun
>>
>>
>
> --
> 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.cse.buffalo.edu/~knepley/>
>


-- 
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.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190405/1855d880/attachment-0001.html>


More information about the petsc-users mailing list