[petsc-dev] generatefortranstubs.py cannot run concurrently

Barry Smith bsmith at mcs.anl.gov
Sat Mar 26 13:20:30 CDT 2011


   I thought of that. But it takes seconds to build and it could be a later run did come after some change to the files so see no harm in rebuilding. If setting up the locking mechanism is as messy as doing them in parallel we might as well do them in parallel.

   Barry

On Mar 26, 2011, at 9:36 AM, Satish Balay wrote:

> fortranstubs,etags are common data for all builds. In case of multiple
> builds one after another - it was ok to just rebuild each time.
> 
> With parallel builds - it doesn't make sense to rebuild fortranstubs,
> etags parallely.
> 
> Perhaps we need some kind of locking mechanism? The first configure
> cleates a lock - before starting a build and removes after completion.
> 
> If a subsequent configure comes to the state fo building etags [or
> fortranstubs] - it checks the lock - and if it exists - skips the
> build?
> 
> Satish
> 
> On Sat, 26 Mar 2011, Jed Brown wrote:
> 
>> Can temporary files be put in a private directory so that multiple
>> reconfigures can be run simultaneously? I think the rest of configure works.
>> 
>> 
>> *******************************************************************************
>>                    UNABLE to EXECUTE BINARIES for ./configure
>> -------------------------------------------------------------------------------
>> [Errno 2] No such file or directory:
>> '/home/jed/petsc/src/sys/viewer/interface/f90module.f90'
>> *******************************************************************************
>>  File "/home/jed/petsc/config/configure.py", line 272, in petsc_configure
>>    framework.configure(out = sys.stdout)
>>  File "/home/jed/petsc/config/BuildSystem/config/framework.py", line 922,
>> in configure
>>    child.configure()
>>  File "/home/jed/petsc/config/PETSc/packages/sowing.py", line 123, in
>> configure
>>    self.buildFortranStubs()
>>  File "/home/jed/petsc/config/PETSc/packages/sowing.py", line 83, in
>> buildFortranStubs
>>    generatefortranstubs.main(self.petscdir.dir, self.bfort,
>> self.petscdir.dir)
>>  File "/home/jed/petsc/bin/maint/generatefortranstubs.py", line 196, in
>> main
>>    os.path.walk(dir, processDir, [petscdir, bfort])
>>  File "/usr/lib/python2.7/posixpath.py", line 237, in walk
>>    walk(name, func, arg)
>>  File "/usr/lib/python2.7/posixpath.py", line 237, in walk
>>    walk(name, func, arg)
>>  File "/usr/lib/python2.7/posixpath.py", line 237, in walk
>>    walk(name, func, arg)
>>  File "/usr/lib/python2.7/posixpath.py", line 237, in walk
>>    walk(name, func, arg)
>>  File "/usr/lib/python2.7/posixpath.py", line 229, in walk
>>    func(arg, top, names)
>>  File "/home/jed/petsc/bin/maint/generatefortranstubs.py", line 161, in
>> processDir
>>    FixDir(petscdir,outdir)
>>  File "/home/jed/petsc/bin/maint/generatefortranstubs.py", line 123, in
>> FixDir
>> 
> 




More information about the petsc-dev mailing list