<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div>Hi Miller,</div><div dir="ltr" id="yui_3_16_0_1_1422893946199_5614">What do you think is causing that performance increase on the version of Pd that is compiled for the 64-bit architecture?</div><div id="yui_3_16_0_1_1422893946199_5950" dir="ltr"><br></div><div id="yui_3_16_0_1_1422893946199_5951" dir="ltr">-Jonathan<br></div><div id="yui_3_16_0_1_1422893946199_5944" dir="ltr"><br></div><div id="yui_3_16_0_1_1422893946199_5428"><span></span></div> <div class="qtdSeparateBR"><br><br></div><div style="display: block;" class="yahoo_quoted"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"> <font face="Arial" size="2"> On Monday, February 2, 2015 11:16 AM, Miller Puckette <msp@ucsd.edu> wrote:<br> </font> </div>  <br><br> <div class="y_msg_container">There are indeed two matters here.  What (rather little) I know about it is<br clear="none">this...  On Mac OSX, it's easy to compare the performance of the 32 and 64<br clear="none">bit versions of Pd on a single 64-bit machine - and the 64 bit Pd consistently <br clear="none">out-performs the 32-bit one by, as I recall, 15-20%.<br clear="none"><br clear="none">I believe Katja's benchmarks show that it would be possible to make a Pd<br clear="none">for Mac that not only runs "in 64 bit" (compiled fro a different instruction<br clear="none">set than the 32-bit version, and with 64-bit pointers) but also making  Pd's<br clear="none">"float" and audio samples use double precision, and still eseitially get the<br clear="none">same performance (i.e., there would be little penalty for increasing the <br clear="none">precision of all numerical calculations in Pd).<br clear="none"><br clear="none">This raises horrible compatibility problems, of which the worst might be that<br clear="none">there would then have to be three formats for externs on Mac and linux.  But<br clear="none">another ugly thing is that someone could develop a patch in 64 bits which<br clear="none">wouldn't work in 32 bits - that could cause a world of misery and confusion.<br clear="none"><br clear="none">So although I'm strongly tempted to add new "double" versions of Pd for Mac<br clear="none">and linux, I simply don't know whether the benefits really outweight the<br clear="none">dangers.<br clear="none"><br clear="none">cheers<br clear="none">Miller<br clear="none"><br clear="none">On Mon, Feb 02, 2015 at 03:49:03PM +0000, Jonathan Wilkes via Pd-list wrote:<br clear="none">> I think you're talking about several things at once.  Katja's Pd Double is essentially about changing t_float to be a double-precision floating point number.  But as I understand it she also revised the code in some of the core tilde classes like osc~ and phasor~ to optimize their performance.  Those optimizations matter even if you compile her version of Pd to have a _single_ precision t_float.  (I.e., with single-precision it will still outperform Pd Vanilla in her tests.)<br clear="none">> <br clear="none">> That's a different issue than what happens when you run Pd on a 64-bit architecture.  I don't understand how a 64-bit architecture would improve efficiency for math involving double-precision floats.  Does it?<br clear="none">> <br clear="none">> -Jonathan<br clear="none">> <br clear="none">>      On Sunday, February 1, 2015 11:52 PM, Alexandre Torres Porres <<a href="" class="removed-link" shape="rect" ymailto="mailto:porres@gmail.com">porres@gmail.com</a>> wrote:<br clear="none">>    <br clear="none">> <br clear="none">>  >> sure, but it still runs faster if compiled to 64 bits in a 64 bit OS, right?<br clear="none">> >><br clear="none">> <br clear="none">> >why?<br clear="none">> <br clear="none">> The only thing I have to back this assumption up is a recollection of a message by miller to the list saying that tests with the 64 bit version showed it was running faster, but I don't know anything about it, really. Still trying to learn from you.<br clear="none">> I'd also suspect that a double precision in Pd would make it much slower, but the benchmarks from Katja didn;t point this out.<br clear="none">> Seems like some future version of Pd running in full double precision is not too crazy, huh?<br clear="none">> cheers<br clear="none">> 2015-02-01 19:08 GMT-02:00 IOhannes m zmölnig <<a href="" class="removed-link" shape="rect" ymailto="mailto:zmoelnig@iem.at">zmoelnig@iem.at</a>>:<br clear="none">> <br clear="none">> On 02/01/2015 06:05 PM, Alexandre Torres Porres wrote:<br clear="none">> >><br clear="none">> >> Seems Pd runs faster if compiled to 64 bits in a 64 bit OS than if it were<br clear="none">> >> compiled as 32, which does makes sense. That's all?<br clear="none">> >><br clear="none">> ><br clear="none">> > "*no : pd compiled for 64 bit system will not run on 32 bit sytem, and it<br clear="none">> > will not load 32 bit externals.*"<br clear="none">> ><br clear="none">> > sure, but it still runs faster if compiled to 64 bits in a 64 bit OS, right?<br clear="none">> ><br clear="none">> <br clear="none">> why?<br clear="none">> <br clear="none">> if you run a 32bit binary on a 64bit OS, there might be some overhead<br clear="none">> involved (bit then i really don't know much about the performance of<br clear="none">> multi-arch systems)<br clear="none">> <br clear="none">> if you run a 32bit binary on a 32bit OS on a 64bit CPU (x86_64, which is<br clear="none">> compatible with 32bit CPUs), then it might be slightly slower than<br clear="none">> compared to a full 64bit system.<br clear="none">> <br clear="none">> <br clear="none">> the real advantages are:<br clear="none">> - memory access!<br clear="none">>  a 32bit application/OS uses 32bit pointers to access memory. this<br clear="none">> limits the accessible memory to 4GB (your OS might be able to manage<br clear="none">> more using PAE; but the application itself will have a maximum of 4GB.)<br clear="none">>  a 64bit application uses 64bit pointers to access memory. thats much<br clear="none">> more as you are likely to ever see in your lifetime (but then: 2640k are<br clear="none">> enough" anybody?)<br clear="none">> <br clear="none">> - modern OSs are 64bit (even the not-so-modern w32[sic!] has started to<br clear="none">> become a 64bit system).<br clear="none">> it seems silly to run 32bit applications on such systems (and a waste of<br clear="none">> ressources, as you need to install a 32bit version the entire<br clear="none">> runtime-environment)<br clear="none">> <br clear="none">> <br clear="none">> also check out: <a href="" class="removed-link" shape="rect" target="_blank">http://en.wikipedia.org/wiki/64-bit_computing</a><br clear="none">> <br clear="none">> fgrsam<br clear="none">> IOhannes<br clear="none">> <br clear="none">> <br clear="none">> _______________________________________________<br clear="none">> <a href="" class="removed-link" shape="rect" ymailto="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br clear="none">> UNSUBSCRIBE and account-management -> <a href="" class="removed-link" shape="rect" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><div class="yqt6034219511" id="yqtfd25327"><br clear="none">> <br clear="none">> <br clear="none">> <br clear="none">> <br clear="none">> _______________________________________________<br clear="none">> <a href="" class="removed-link" shape="rect" ymailto="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br clear="none">> UNSUBSCRIBE and account-management -> <a href="" class="removed-link" shape="rect" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br clear="none">> <br clear="none">> <br clear="none">>    <br clear="none"><br clear="none">> _______________________________________________<br clear="none">> <a href="" class="removed-link" shape="rect" ymailto="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br clear="none">> UNSUBSCRIBE and account-management -> <a href="" class="removed-link" shape="rect" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br clear="none"><br clear="none"></div><br><br></div>  </div> </div>  </div> </div></body></html>