Hi Jan,<div>My relatively uneducated first impression is &quot;interesting, but will probably consume a lot of developer time, for a relatively moderate speed gain&quot;.</div><div>In general, most performance-critical parts of cctbx are implemented in C++. Most application spend only a relatively small amount of time in Python. Let&#39;s try to overestimate: 30%. Even if you make that 10x faster (don&#39;t know if that&#39;s realistic) the total runtime for that application will still be 73%. Which is nice, but I believe many people won&#39;t even notice.</div>
<div>In the bigger picture, I&#39;m most excited about the large numbers of cores now available in one machine (e.g. we have one machine with 64 cores, a few more with 48 cores). For certain things you can get large speed increases with a relatively small effort. This is more the direction we&#39;re moving in in general.</div>
<div>If you want to start playing around with PyPy, to see how it could be integrated into the cctbx environment, I&#39;m happy to answer your questions if you run into problems. Maybe a good limited scope for a start is to get some trivial module in boost_adaptbx to work, or if that&#39;s too simple, scitbx. There isn&#39;t any performance critical Python code in there, but should be good enough to develop the framework. Then it should be relatively straightforward to move to e.g. smtbx.refine of even phenix.refine. The latter probably has some Python bottlenecks.</div>
<div>A different idea is to make the fable module in cctbx work with PyPy, as a proof of concept. The Boost.Python dependency is optional. It also works with pure Python. So you could first get an impression how much PyPy does for pure Python code, then try to see how it works in combination with Boost.Python extensions. fable is relatively small, which means you can move quickly.�</div>
<div>Ralf</div><div><br><br><div class="gmail_quote">2011/11/24 Jan Marten Simons <span dir="ltr">&lt;<a href="mailto:marten@xtal.rwth-aachen.de">marten@xtal.rwth-aachen.de</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
PyPy 1.7 was released just a few days ago:<br>
<a href="http://morepypy.blogspot.com/2011/11/pypy-17-widening-sweet-spot.html" target="_blank">http://morepypy.blogspot.com/2011/11/pypy-17-widening-sweet-spot.html</a><br>
<br>
After taking a look at <a href="http://speed.pypy.org/" target="_blank">http://speed.pypy.org/</a> I&#39;m wondering if it would be<br>
possible to get cctbx to work with PyPy-jit instead of CPython.<br>
<br>
Perhaps it&#39;s a little bit early, as they are still working on a complete numpy<br>
integration and I&#39;m not sure how well boost.python fits into this. But in<br>
general speeding up the python parts looks nice if one does not have to invest<br>
too much time into this.<br>
<br>
Has any of you already done some tests with PyPy?<br>
<br>
Cheers,<br>
Jan<br>
_______________________________________________<br>
cctbxbb mailing list<br>
<a href="mailto:cctbxbb@phenix-online.org">cctbxbb@phenix-online.org</a><br>
<a href="http://phenix-online.org/mailman/listinfo/cctbxbb" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
</blockquote></div><br></div>