On Dec 8, 2010, at 9:28 AM, Eric A. Borisch wrote:

> == Executive summary ==
> The OS python has different numpy exception handling settings, and this is 
> the reason for the performance difference.
> 
> == The brief results ==
> with numpy.seterr(all='ignore') -> 13s system, 12s macports
> with numpy.seterr(all='print') and numpy.seterr(under='ignore') -> 56s 
> system, 46s macports
> 
> == The extended desription ==
> By adding the following after the imports to bench2.py:
> 
> old = numpy.seterr(all='ignore')
> print old
> 
> We get these results:
> 
> MacPro:Downloads$ /usr/bin/python  bench2.py
> {'over': 'ignore', 'divide': 'ignore', 'invalid': 'ignore', 'under': 'ignore'}
> CPU time: 13 s
> 
> MacPro:Downloads$ /opt/local/bin/python bench2.py
> {'over': 'print', 'divide': 'print', 'invalid': 'print', 'under': 'ignore'}
> CPU time: 12 s
> 
> Without the changes, the system python is still 13s, but the macports python 
> is 46s. By setting the error handling on the system python to match the 
> macports default (print, print, print, ignore) the system python takes 56s.
> 
> == Conclusion ==
> 
> I haven't looked at how or why these settings are different, but I believe 
> this is the culprit.

Nice detective work. I can confirm that setting "numpy.seterr(all='ignore')" 
causes the benchmark to run at the faster time. 


Cheers!
Frank

_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users

Reply via email to