From: Paul D. <sl...@pa...> - 2012-09-24 06:55:50
|
2012-09-24 01:59, Claudio Freire skrev: > On Sun, Sep 23, 2012 at 6:29 PM, Paul Dreik <sl...@pa...> wrote: >>> I just added: >>> make pkg able to supply extra configure and make flags, useful for >>> distributions, including -j for make >> Just curios, are there any octave packages that benefit from parallel >> compilation? > > Well, for openSUSE, we build all packages at once, and it takes a very > long time, like an hour and a half, for about 80 packages. That's an > average build time of a minute per package, big enough to make a > difference with parallel compilation. > > I actually haven't tried though, convincing pkg.m to add extra flags > wasn't documented and seemed left out. Packaging would benefit from > being able to send config and make-time flags, besides the parallel > compilation aspect. Things like CFLAGS, for instance. > I think this is good and I do not oppose it at all! My thought was that make -j makes child processes of make run in parallel, which is different from having several instances of make run in parallel. That is why I asked if there is a package that improves from it - I guess a package has to use multiple source files, where at least some are nondependent so they can be compiled in parallel. One could of course imagine a situation where a Makefile spanning several packages is possible, made from the dependency information in the packages. Invoking make at the root of the package tree would certainly improve package generation if -j is used for that make invokation. But that is maybe what you do for opensuse? @Stephen: no, I did not mean the benefit was negligible, I meant if -j would make any difference at all because it requires the build to be possible to parallelize. @Juan Pablo: You answered my question! I tried with -j4 and the compilation time dropped certainly dropped, but only when the slicot library has been built. Below, the "real" time output from the time command is used: cd control/src time make 72 seconds make clean (to get the caches warm. note, make clean does not remove slicotlibrary.a. Maybe it should?) time make 18 seconds make clean time make -j4 12 seconds make clean rm slicotlibrary.a time make -j4 63 seconds Paul |