> On Oct 22, 2018, at 12:17 PM, Jed Brown <[email protected]> wrote:
>
> "Smith, Barry F." <[email protected]> writes:
>
>> Jed,
>>
>> Why are the modules always built last?
>>
>> .....
>> FC arch-basic/obj/sys/objects/f2003-src/fsrc/optionenum.o
>> FC arch-basic/obj/sys/classes/bag/f2003-src/fsrc/bagenum.o
>> FC arch-basic/obj/mat/f90-mod/petscmatmod.o
>> FC arch-basic/obj/dm/f90-mod/petscdmmod.o
>> FC arch-basic/obj/dm/f90-mod/petscdmplexmod.o
>> FC arch-basic/obj/ksp/f90-mod/petsckspmod.o
>> FC arch-basic/obj/snes/f90-mod/petscsnesmod.o
>> FC arch-basic/obj/ts/f90-mod/petsctsmod.o
>> FC arch-basic/obj/tao/f90-mod/petsctaomod.o
>>
>> I don't think they have any dependency on the compiled C code so couldn't
>> each module (still build sequentially within the list of modules) run in
>> parallel with a bunch of C compilers? Why are they always scheduled last,
>> forcing sequential?
>
> The Fortran modules depend on each other so build sequentially. Look
> way up in your compilation history and you'll see lines for
> petscsysmod.o and later petscvecmod.o. Compiling those modules is just
> that slow compared to the hundreds of C compilations that run in
> parallel.
Ok.