Everyone always complains to me about how long the build takes, so I took a 
step to reduce that time.  

I have been manually setting AUTOMAKE_JOBS for a long time and run lots of 
other things at the same time as automake such as mail, ppt, etc. and haven't 
seen any noticeable difference.  Admittedly, I don't tend to run competing 
compute-intensive things -- that didn't seem like a good idea to me.

So -- fine, I removed the auto-set of AUTOMAKE_JOBS in r23802.


On Sep 24, 2010, at 11:55 PM, George Bosilca wrote:

> I would accept this behavior, at the condition that the threads are running 
> at the lowest priority. This will give us the best of the two worlds, 
> parallel build if the node is empty, and not a significant disturbance if I'm 
> still busy around the computer.
> 
>  George.
> 
> 
> "All the books in the world contain no more information than is broadcast as 
> video in a single large American city in a single year. Not all bits have 
> equal value.". -- Carl Sagan
> 
> On Sep 24, 2010, at 23:08, "Paul H. Hargrove" <phhargr...@lbl.gov> wrote:
> 
>> I don't feel as strongly about this as Ralph, but do think the new behavior 
>> violates the "principle of least surprise".
>> 
>> -Paul
>> 
>> Ralph Castain wrote:
>>> Been thinking about this more today, and I actually find this new "feature" 
>>> disturbing. It bothers me that OMPI is now dictating that it will do a 
>>> parallel build without my knowledge unless I specifically tell it not to. 
>>> If it were technically possible, would we next force "make -j4"?? How would 
>>> the developer community feel if the authors of "make" suddenly decided that 
>>> it would run 4 parallel threads under the covers unless you specifically 
>>> told it not to?
>>> 
>>> What bugs me here is that I now have to remember to set something in my 
>>> environment to tell OMPI "you don't get to hog all my processors". Maybe 
>>> others twiddle their thumbs and leave the computer alone while OMPI builds, 
>>> or maybe they rarely build - but I build frequently, and I am always 
>>> multi-tasking my time (running Word, Powerpoint, etc.). So having OMPI 
>>> default to running a parallel build is more than a little annoying - 
>>> frankly, it pisses me off.
>>> 
>>> I really feel that this "feature" should be implemented as an option passed 
>>> to autogen instead of a hidden forced behavior. If someone wants to run a 
>>> parallel build, then by all means let them ask for it (ala "make -j4"). But 
>>> don't just -do- it.
>>> 
>>> Grrrr....
>>> Ralph
>>> 
>>> 
>>> On Fri, Sep 24, 2010 at 7:28 AM, Ralph Castain <r...@open-mpi.org 
>>> <mailto:r...@open-mpi.org>> wrote:
>>> 
>>>   I hope you'll understand if I don't run that test while on the
>>>   road...one battery yank per week is my limit :-)
>>> 
>>> 
>>>   On Fri, Sep 24, 2010 at 4:40 AM, Jeff Squyres (jsquyres)
>>>   <jsquy...@cisco.com <mailto:jsquy...@cisco.com>> wrote:
>>> 
>>>       Also to clarify:
>>> 
>>>       - did autogen set am-jobs to 2 in your case?  (it should do
>>>       that if lstopo is not found - it also limits itself to 4 at max)
>>> 
>>>       - in the same scenario, what happens if you manually set
>>>       am-jobs to 1 and run autogen?  Ie do you get the same
>>>       heat/sluggishness?  I have experienced vms causing this kind
>>>       of behavior just because they are running - causing CPU and
>>>       memory pressure. 
>>>       Sent from my PDA. No type good. 
>>>       On Sep 24, 2010, at 12:49 AM, "Ralph Castain"
>>>       <r...@open-mpi.org <mailto:r...@open-mpi.org>> wrote:
>>> 
>>>>       Sent to both for reference (see below)
>>>> 
>>>>       Just to clarify. It wasn't a deadlock situation, but rather
>>>>       that the machine was overloaded and running so hard that the
>>>>       response to keystrokes was multiple seconds. Thus, there was
>>>>       no way to shut it down from the keyboard or screen. Even a
>>>>       ctrl-c was just getting ignored for a very long time due to
>>>>       the overload.
>>>> 
>>>>       I was running vmware on my machine, and doing a heavy
>>>>       compile/build in it. On top of this, I had email, editor, and
>>>>       browsers running - and then kicked off a fresh build in a
>>>>       terminal window. With Jeff's default settings, this latter
>>>>       build thought it would be running alone on the machine, and
>>>>       promptly generated a number of threads equal to all the
>>>>       processors. Since they were already loaded, this drove the
>>>>       machine into the ground.
>>>> 
>>>>       My point is just that it is unwise to assume that the OMPI
>>>>       build can utilize all available processors. I'm sure it's
>>>>       fine for the MTT runs, especially on Jeff's machines as they
>>>>       are dedicated to that purpose - just not a good general
>>>>       assumption.
>>>> 
>>>> 
>>>>       HTH
>>>>       Ralph
>>>> 
>>>>       ====================================
>>>>       Output of "perl -V":
>>>> 
>>>>       Summary of my perl5 (revision 5 version 8 subversion 9)
>>>>       configuration:
>>>>         Platform:
>>>>           osname=darwin, osvers=10.2.0, archname=darwin-2level
>>>>           uname='darwin sjc-rcastain-87111.cisco.com
>>>>       <http://sjc-rcastain-87111.cisco.com> 10.2.0 darwin kernel
>>>>       version 10.2.0: tue nov 3 10:37:10 pst 2009;
>>>>       root:xnu-1486.2.11~1release_i386 i386 '
>>>>           config_args='-des -D prefix=/opt/local -D
>>>>       scriptdir=/opt/local/bin -D cppflags=-I/opt/local/include -D
>>>>       ccflags=-O2 -arch x86_64 -D ldflags=-L/opt/local/lib -D
>>>>       vendorprefix=/opt/local -D man1ext=1pm -D man3ext=3pm -D
>>>>       cc=/usr/bin/gcc-4.2 -D ld=/usr/bin/gcc-4.2 -D
>>>>       man1dir=/opt/local/share/man/man1p -D
>>>>       man3dir=/opt/local/share/man/man3p -D
>>>>       siteman1dir=/opt/local/share/man/man1 -D
>>>>       siteman3dir=/opt/local/share/man/man3 -D
>>>>       vendorman1dir=/opt/local/share/man/man1 -D
>>>>       vendorman3dir=/opt/local/share/man/man3 -D
>>>>       inc_version_list=5.8.8 5.8.8/darwin-2level -U i_bind -U
>>>>       i_gdbm -U i_db'
>>>>           hint=recommended, useposix=true, d_sigaction=define
>>>>           usethreads=undef use5005threads=undef useithreads=undef
>>>>       usemultiplicity=undef
>>>>           useperlio=define d_sfio=undef uselargefiles=define
>>>>       usesocks=undef
>>>>           use64bitint=define use64bitall=define uselongdouble=undef
>>>>           usemymalloc=n, bincompat5005=undef
>>>>         Compiler:
>>>>           cc='/usr/bin/gcc-4.2', ccflags ='-O2 -arch x86_64
>>>>       -fno-common -DPERL_DARWIN -I/opt/local/include
>>>>       -no-cpp-precomp -fno-strict-aliasing -pipe
>>>>       -I/usr/local/include -I/opt/local/include',
>>>>           optimize='-O3',
>>>>           cppflags='-I/opt/local/include -no-cpp-precomp -O2 -arch
>>>>       x86_64 -fno-common -DPERL_DARWIN -I/opt/local/include
>>>>       -no-cpp-precomp -fno-strict-aliasing -pipe
>>>>       -I/usr/local/include -I/opt/local/include'
>>>>           ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)
>>>>       (dot 1)', gccosandvers=''
>>>>           intsize=4, longsize=8, ptrsize=8, doublesize=8,
>>>>       byteorder=12345678
>>>>           d_longlong=define, longlongsize=8, d_longdbl=define,
>>>>       longdblsize=16
>>>>           ivtype='long', ivsize=8, nvtype='double', nvsize=8,
>>>>       Off_t='off_t', lseeksize=8
>>>>           alignbytes=8, prototype=define
>>>>         Linker and Libraries:
>>>>           ld='env MACOSX_DEPLOYMENT_TARGET=10.3 /usr/bin/gcc-4.2',
>>>>       ldflags ='-L/opt/local/lib -L/usr/local/lib'
>>>>           libpth=/usr/local/lib /opt/local/lib /usr/lib
>>>>           libs=-ldbm -ldl -lm -lutil -lc
>>>>           perllibs=-ldl -lm -lutil -lc
>>>>           libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false,
>>>>       libperl=libperl.a
>>>>           gnulibc_version=''
>>>>         Dynamic Linking:
>>>>           dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef,
>>>>       ccdlflags=' '
>>>>           cccdlflags=' ', lddlflags='-L/opt/local/lib -bundle
>>>>       -undefined dynamic_lookup -L/usr/local/lib'
>>>> 
>>>> 
>>>>       Characteristics of this binary (from libperl):           
>>>> Compile-time options: PERL_MALLOC_WRAP USE_64_BIT_ALL
>>>>       USE_64_BIT_INT
>>>>                               USE_FAST_STDIO USE_LARGE_FILES USE_PERLIO
>>>>         Built under darwin
>>>>         Compiled at Feb 13 2010 13:19:33
>>>>         @INC:
>>>>           /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level
>>>>           /opt/local/lib/perl5/site_perl/5.8.9
>>>>           /opt/local/lib/perl5/site_perl
>>>>           /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level
>>>>           /opt/local/lib/perl5/vendor_perl/5.8.9
>>>>           /opt/local/lib/perl5/vendor_perl
>>>>           /opt/local/lib/perl5/5.8.9/darwin-2level
>>>>           /opt/local/lib/perl5/5.8.9
>>>>           .
>>>> 
>>>>       On Thu, Sep 23, 2010 at 10:26 PM, Ralf Wildenhues
>>>>       <ralf.wildenh...@gmx.de <mailto:ralf.wildenh...@gmx.de>> wrote:
>>>> 
>>>>           Hello Ralph,
>>>> 
>>>>           wow, that's not good to hear.  I knew the perl ithreads
>>>>           implementation
>>>>           wasn't all that efficient, but causing a deadlock sounds
>>>>           like you have
>>>>           more trouble than just perl; at least I hope so.  For
>>>>           reference, can
>>>>           you send 'perl -V' output (if you like, to the
>>>>           bug-automake at gnu.org <http://gnu.org>
>>>>           list).
>>>> 
>>>>           Thanks,
>>>>           Ralf
>>>> 
>>>>           * Ralph Castain wrote on Fri, Sep 24, 2010 at 03:12:16AM
>>>>           CEST:
>>>>> I found one major negative to this change - it assumes
>>>>           that my build is
>>>>> being done in exclusion of anything else on my
>>>>           computer. Unfortunately, this
>>>>> is never true.
>>>>> 
>>>>> So my laptop hemorrhaged itself into frozen silence,
>>>>           overheated to the point
>>>>> of being burning hot, and had to have its battery
>>>>           yanked to stop the runaway
>>>>> behavior. Not a really good thing.
>>>>> 
>>>>> I would suggest you default this "heuristic" out, and
>>>>           let someone set it to
>>>>> use multiple runs if-and-only-if they want it. Hate to
>>>>           cite the lowest
>>>>> common denominator, but this was a very nasty surprise.
>>>>> 
>>>>> 
>>>>> 
>>>>> On Wed, Sep 22, 2010 at 7:50 AM, Jeff Squyres
>>>>           <jsquy...@cisco.com <mailto:jsquy...@cisco.com>> wrote:
>>>>> 
>>>>>> Some of you may be unaware that recent versions of
>>>>           automake can run in
>>>>>> parallel.  That is, automake will run in parallel
>>>>           with a degree of (at most)
>>>>>> $AUTOMAKE_JOBS.  This can speed up the execution time
>>>>           of autogen.pl <http://autogen.pl> quite
>>>>>> a bit on some platforms.  On my cluster at cisco,
>>>>           here's a few quick timings
>>>>>> of the entire autogen.pl <http://autogen.pl> process
>>>>           (of which, automake is the bottleneck):
>>>>>> 
>>>>>> $AUTOMAKE_JOBS           Total wall time
>>>>>> value                    of autogen.pl
>>>>           <http://autogen.pl>
>>>>>> 8                        3:01.46
>>>>>> 4                        2:55.57
>>>>>> 2                        3:28.09
>>>>>> 1                        4:38.44
>>>>>> 
>>>>>> This is an older Xeon machine with 2 sockets, each
>>>>           with 2 cores.
>>>>>> 
>>>>>> There's a nice performance jump from 1 to 2, and a
>>>>           smaller jump from 2 to
>>>>>> 4.  4 and 8 are close enough to not matter.  YMMV.
>>>>>> 
>>>>>> I just committed a heuristic to autogen.pl
>>>>           <http://autogen.pl> to setenv AUTOMAKE_JOBS if it
>>>>>> is not already set
>>>>           (https://svn.open-mpi.org/trac/ompi/changeset/23788):
>>>>>> 
>>>>>> - If lstopo is found in your $PATH, runs it and count
>>>>           how many PU's
>>>>>> (processing units) you have.  It'll set AUTOMAKE_JOBS
>>>>           to that number, or a
>>>>>> maximum of 4 (which is admittedly a further heuristic).
>>>>>> - If lstopo is not found, it just sets AUTOMAKE_JOBS
>>>>           to 2.
>>>>>> 
>>>>>> Enjoy.
>>>>>> 
>>>>>> --
>>>>>> Jeff Squyres
>>>>>> jsquy...@cisco.com <mailto:jsquy...@cisco.com>
>>>>>> For corporate legal information go to:
>>>>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>>           _______________________________________________
>>>>           devel mailing list
>>>>           de...@open-mpi.org <mailto:de...@open-mpi.org>
>>>>           http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>> 
>>>> 
>>>>       _______________________________________________
>>>>       devel mailing list
>>>>       de...@open-mpi.org <mailto:de...@open-mpi.org>
>>>>       http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>> 
>>>       _______________________________________________
>>>       devel mailing list
>>>       de...@open-mpi.org <mailto:de...@open-mpi.org>
>>>       http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>> 
>>> 
>>> 
>>> ------------------------------------------------------------------------
>>> 
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> 
>> -- 
>> Paul H. Hargrove                          phhargr...@lbl.gov
>> Future Technologies Group
>> HPC Research Department                   Tel: +1-510-495-2352
>> Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900
>> 
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to