whizard is hosted by Hepforge, IPPP Durham

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#115 closed defect (fixed)

Parallel builds (make -j) fail

Reported by: ohl Owned by: ohl
Priority: P3 Milestone:
Component: configure Version: 2.0.0beta
Severity: minor Keywords:
Cc:

Description (last modified by ohl)

Parallel builds (i.e. make -j) fail in the main tree. The new Makefiles in the O'Mega subtree support this feature and it makes a huge difference on multi core/CPU machines. Caveat: the O'Mega Makefiles can handle not yet handle unlimited number of jobs on fast machines with many cores. It appears that dependencies are missing.

Change History (11)

comment:1 Changed 14 years ago by ohl

Illustration

ohl@wthp058:~whizard$ make -j -C _build_gfortran/

goes awry in

Making all in misc
/scratch/ohl/whizard/_build_gfortran/src/misc
make[2]: Entering directory `/scratch/ohl/whizard/_build_gfortran/src/misc'
/bin/sh ../../libtool --mode=compile /archive/ohl/tools64/bin/gfortran  -g -O2 -c -o kinds.lo kinds.f90
/bin/sh ../../libtool --mode=compile /archive/ohl/tools64/bin/gfortran  -g -O2 -c -o iso_varying_string.lo /scratch/ohl/whizard/src/misc/iso_varying_string.f90
/bin/sh ../../libtool --mode=compile /archive/ohl/tools64/bin/gfortran  -g -O2 -c -o system_dependencies.lo system_dependencies.f90
make[2]: *** No rule to make target `kinds.mod', needed by `all-am'.  Stop.
make[2]: *** Waiting for unfinished jobs....
for src in limits.f90 file_utils.f90 diagnostics.f90 lorentz.f90 sm_physics.f90; do \
          /usr/bin/X11/notangle -R[[$src]] /scratch/ohl/whizard/src/whizard-core/whizard.nw | /usr/bin/X11/cpif $src; \
        done
libtool: compile:  /archive/ohl/tools64/bin/gfortran -g -O2 -c system_dependencies.f90  -fPIC -o .libs/system_dependencies.o
libtool: compile:  /archive/ohl/tools64/bin/gfortran -g -O2 -c /scratch/ohl/whizard/src/misc/iso_varying_string.f90  -fPIC -o .libs/iso_varying_string.o
libtool: compile:  /archive/ohl/tools64/bin/gfortran -g -O2 -c system_dependencies.f90 -o system_dependencies.o >/dev/null 2>&1
libtool: compile:  /archive/ohl/tools64/bin/gfortran -g -O2 -c kinds.f90  -fPIC -o .libs/kinds.o
libtool: compile:  /archive/ohl/tools64/bin/gfortran -g -O2 -c kinds.f90 -o kinds.o >/dev/null 2>&1
libtool: compile:  /archive/ohl/tools64/bin/gfortran -g -O2 -c /scratch/ohl/whizard/src/misc/iso_varying_string.f90 -o iso_varying_string.o >/dev/null 2>&1
make[2]: Leaving directory `/scratch/ohl/whizard/_build_gfortran/src/misc'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/scratch/ohl/whizard/_build_gfortran/src'
make: *** [all-recursive] Error 1
make: Leaving directory `/scratch/ohl/whizard/_build_gfortran'

comment:2 Changed 14 years ago by ohl

Description: modified (diff)

Note that unlimited # of jobs on fast machines fail in the O'Mega tree as well.

comment:3 Changed 14 years ago by ohl

Owner: changed from ALL to ohl
Status: newassigned

comment:4 Changed 14 years ago by Juergen Reuter

I also get problems in the O'Mega subdirectory, look:

Fatal Error: Can't delete temporary module file 'omega_vectors.mod0': No such file or directory
make[3]: *** [omega_vectors.o] Error 1
make[3]: *** Waiting for unfinished jobs....
libtool: compile:  gfortran -g -O2 -c omega_bispinors.f90 -o omega_bispinors.o >/dev/null 2>&1
libtool: compile:  gfortran -g -O2 -c omega_spinors.f90 -o omega_spinors.o >/dev/null 2>&1
libtool: compile:  gfortran -g -O2 -c omega_vectors.f90 -o omega_vectors.o >/dev/null 2>&1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

Maybe the same error?

comment:5 Changed 14 years ago by ohl

Resolution: fixed
Status: assignedclosed

adding the proper dependencies for .mod files solves the problem (NB: src/models/Makefile is hard to maintain, because file names and module names disagree).

Closing the ticket after a successful make -j distcheck.

comment:6 Changed 14 years ago by Juergen Reuter

Resolution: fixed
Status: closedreopened

Sorry, guys, but on MAC OS X the TeX parts fail with make -j. Maybe its a problem of TeXLive 2009, I don't know.

comment:7 Changed 14 years ago by Juergen Reuter

Here is some more info:

gamelan: Writing MetaPost commands to gmltest.mp
gamelan: File gmltest.1 not found:
gamelan: Process gmltest.mp with GAMELAN and then reprocess this file.
(/usr/local/texlive/2009/texmf-dist/tex/latex/base/ulasy.fd) [1] (./gmltest.aux
) )
Output written on gmltest.dvi (1 page, 284 bytes).
Transcript written on gmltest.log.
./gml gmltest
This is MetaPost, version 1.208 (kpathsea version 5.0.0)
(./gamelan.mp (./gmlaux.mp) (./gmlhatch.mp) (./gmlbox.mp) (./gmlshapes.mp)
(./gmlspectra.mp) (./gmlarith.mp) (./gmlformat.mp) (./gmlfiles.mp) (./gmlset.mp
) (./gmlscan.mp) (./gmlcoords.mp) (./gmldraw.mp) (./gmlgrid.mp))
(./gmllongtest.mp
Package: `gamelan' 0.40 <1998/11/02>
This is MetaPost, version 1.208 (kpathsea version 5.0.0)
(./gamelan.mp (./gmlaux.mp) (./gmlhatch.mp) (./gmlbox.mp) (./gmlshapes.mp)
(./gmlspectra.mp) (./gmlarith.mp) (./gmlformat.mp) (./gmlfiles.mp) (./gmlset.mp
) (./gmlscan.mp) (./gmlcoords.mp) (./gmldraw.mp) (./gmlgrid.mp)) (./gmltest.mp
Package: `gamelan' 0.40 <1998/11/02>
These should be 1, 20, 300, 4e10, 5e-13, -6, -7e8, -8e-2.
>> "1.00000009E+00"
>> "2.00000020E+01"
>> "3.00000026E+02"
>> "4.00000027E+10"
>> "5.00000047E-13"
>> "-6.00000017E+00"
>> "-7.00000052E+08"
>> "-8.00000010E-02"
This should be 1.2345678.
>> "1.23456801E+00"
Defining boolean dataset: u
Cleared dataset: u
Contents of dataset u:
Point *0: (-4.00000005E+00, 0)
Point *1: (1.00000009E+00, 3.20000052E+00)
Point *2: (2.00000020E+00, 3.60000027E+00)
Point *3: (3.00000026E+00, 1.00000009E+00)
Point *4: (4.00000027E+00, 2.20000020E+00)
Point *5: (5.00000047E+00, 3.00000026E+00)
Point *6: (6.00000052E+00, 1.00000009E+00)
Point *7: (7.00000093E+00, 0)
Point *8: (8.00000058E+00, 1.00000009E+00)
Point *9: (9.00000095E+00, 4.00000027E+00)
End of part 0.
End of dataset u.  Number of points: 10
Defining boolean dataset: t
Cleared dataset: t
Contents of dataset t:
Point 0: (5.00000166E-01, 4.00000027E+00)
Point *1: (1.50000017E+00, 4.00000027E+00)
Point 2: (2.50000023E+00, 4.00000027E+00)
End of part 0.
Point 3: (1.50000017E+00, 2.00000043E+00)
Point 4: (1.50000017E+00, 6.00000052E+00)
End of part 1.
Point 5: (3.50000046E+00, 3.00000026E+00)
Point *6: (4.50000046E+00, 3.00000026E+00)
Point 7: (5.50000066E+00, 3.00000026E+00)
End of part 2.
Point 8: (4.50000046E+00, 1.00000034E+00)
Point 9: (4.50000046E+00, 5.00000047E+00)
End of part 3.
Point 10: (6.25000075E+00, 1.50000017E+00)
Point *11: (7.50000089E+00, 1.50000017E+00)
Point 12: (8.75000139E+00, 1.50000017E+00)
End of part 4.
Point 13: (7.50000089E+00, -1.00000003E+00)
Point 14: (7.50000089E+00, 4.00000027E+00)
End of part 5.
Point 15: (8.00000154E+00, 5.00000047E-01)
Point *16: (8.50000145E+00, 5.00000047E-01)
Point 17: (9.00000201E+00, 5.00000047E-01)
End of part 6.
Point 18: (8.50000145E+00, -5.00000017E-01)
Point 19: (8.50000145E+00, 1.50000017E+00)
End of part 7.
Point 20: (9.00000095E+00, 5.00000047E-01)
Point *21: (9.50000131E+00, 5.00000047E-01)
Point 22: (1.00000009E+01, 5.00000047E-01)
End of part 8.
Point 23: (9.50000131E+00, -5.00000017E-01)
Point 24: (9.50000131E+00, 1.50000017E+00)
End of part 9.
End of dataset t.  Number of points: 25
Defining boolean dataset: a[]
Cleared dataset: a1
Cleared dataset: a2
Contents of dataset a1:
Point *0: (2.00000020E+00, 2.00000020E+00)
Point *1: (3.00000026E+00, 2.50000023E+00)
Point *2: (6.00000052E+00, 3.00000026E+00)
Point *3: (8.00000058E+00, 3.00000026E+00)
End of part 0.
End of dataset a1.  Number of points: 4
Contents of dataset a2:
Point *0: (2.00000020E+00, 3.00000026E+00)
Point *1: (3.00000026E+00, 3.50000046E+00)
Point *2: (6.00000052E+00, 5.00000047E+00)
Point *3: (8.00000058E+00, 5.50000066E+00)
End of part 0.
End of dataset a2.  Number of points: 4
Defining boolean dataset: s
Cleared dataset: s
Contents of dataset s:
Point 0: (6.10000066E+00, 6.50000064E+00)
Point *1: (6.20000127E+00, 6.50000064E+00)
Point 2: (6.30000087E+00, 6.50000064E+00)
End of part 0.
Point 3: (6.30000087E+00, 6.40000032E+00)
Point *4: (6.40000108E+00, 6.40000032E+00)
Point 5: (6.50000064E+00, 6.40000032E+00)
End of part 1.
Point 6: (6.50000064E+00, 6.30000087E+00)
Point *7: (6.60000081E+00, 6.30000087E+00)
Point 8: (6.70000090E+00, 6.30000087E+00)
End of part 2.
End of dataset s.  Number of points: 9
Defining boolean dataset: bb
Cleared dataset: bb
Defining boolean dataset: tmp_
Cleared dataset: tmp_
! mpx file ended unexpectedly.
l.69 
     
? fatal: Command failed: latex --parse-first-line --interaction=nonstopmode mp620913.tex; see mpxerr.log>> gmltest.mp
>> gmltest.mpx
! Unable to make mpx file.
l.9 btex
        $-$etex,
Transcript written on gmltest.log.
latex gmltest
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009)
entering extended mode
(./gmltest.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, german-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, ar
abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc
h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono
greek, greek, hungarian, icelandic, indonesian, interlingua, irish, italian, ku
rmanji, latin, latvian, lithuanian, mongolian, mongolian2a, bokmal, nynorsk, po
lish, portuguese, romanian, russian, sanskrit, serbian, slovak, slovenian, span
ish, swedish, turkish, ukenglish, ukrainian, uppersorbian, welsh, loaded.
(/usr/local/texlive/2009/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/local/texlive/2009/texmf-dist/tex/latex/base/size12.clo)) (./gamelan.sty
(/usr/local/texlive/2009/texmf-dist/tex/latex/tools/verbatim.sty)
(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/graphics.sty
(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/trig.sty)
(/usr/local/texlive/2009/texmf-dist/tex/latex/latexconfig/graphics.cfg)
(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/dvips.def))
Package: `gamelan' 0.40 <1998/11/02>
) (./gmltest.aux) (./gmltest.ltp
(/usr/local/texlive/2009/texmf-dist/tex/latex/base/latexsym.sty))
gamelan: Writing MetaPost commands to gmltest.mp
gamelan: File gmltest.1 not found:
gamelan: Process gmltest.mp with GAMELAN and then reprocess this file.
(/usr/local/texlive/2009/texmf-dist/tex/latex/base/ulasy.fd) [1] (./gmltest.aux
) )
Output written on gmltest.dvi (1 page, 284 bytes).
Transcript written on gmltest.log.
dvips gmltest
This is dvips(k) 5.98 Copyright 2009 Radical Eye Software (www.radicaleye.com)
' TeX output 2010.01.27:2035' -> gmltest.ps
</usr/local/texlive/2009/texmf/dvips/base/tex.pro>
</usr/local/texlive/2009/texmf/dvips/base/texps.pro>. 
</usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/latxfont/lasy10.pfb>
</usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb>
[1] 

! An expression can't begin with `,'.
<inserted text> 
                0
<to be read again> 
                   ,
<argument> drawarrow(1cm,-1cm)--origin;label.lrt(,
                                                  (1cm,-1cm))
image->...ture;currentpicture:=nullpicture;(TEXT2)
                                                  ;currentpicture.endgroup
l.213 ...label.lrt(btex $(8,6)$ etex, (1cm,-1cm)))
                                                  ,
? 
>> 0
>> "cmr10"
! Not implemented: (known numeric)infont(string).

Any ideas???

comment:8 Changed 14 years ago by Juergen Reuter

The behavior depends on the single runs one does. Sometimes it goes through, sometimes it doesn't. Thorsten, can you reproduce this somehow with TeXLive 2009? If it TeX+MAC specific, then my proposal would be (if possible) to disable the flag -j to the LaTeX targets and checks (i.e. not pass the flag to those targets).

comment:9 Changed 14 years ago by ohl

It's not MAC specific. I can reproduce it 10-20% of the time with Debian and TeXLive 2009, but not with Debian's tex-live. I'll try to debug it, but if I don't manage, we should simply write in the release notes:

don't try run make in parallel with TeXLive 2009, it's bad for your health.

I don't know if there's a portable way of disabling the parallel option of make.

comment:10 Changed 14 years ago by ohl

Resolution: fixed
Status: reopenedclosed

the gml script used a global temp file, use $$ to make it unique. But this wasn;t the problem after all. Inserted

gmllongtest.ps: gmltest.ps

into the gamelan Makefile to ensure sequential processing.

Works now, closing the ticket.

comment:11 Changed 14 years ago by Juergen Reuter

Milestone: v2.0.0final

Milestone v2.0.0final deleted

Note: See TracTickets for help on using tickets.