<div>
<span id="obmessage">Jason,<br><br>Have you tried running the program with output NOT to stdout, but to file?<br>I
don't think the "conversion" from GMP-internal format to decimal takes
*that* much time, but the actual formatted output on-screen (think
"printf") might slow things down (especially for the number of
characters you're outputting)...<br><br>CU, JDO<br></span>
<blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">From: "賴 秀琴" <chyn0610@yahoo.com.tw><br>
To: gmp-discuss@swox.com<br>
Subject: Low efficiency of the  mpf_out_str  function !<br>
Date: Wed, 7 Nov 2007 21:39:13 +0800 (CST)<br>
<br>

</chyn0610@yahoo.com.tw><div>I am a newbie to the GMP</div>  <div>and trying to run some example codes !</div>  <div>&nbsp;</div>  <div>I find the result of gmp-chudnovsky.c running strange on my computer. It shows the efficiency of the mpf_out_str function seems to be very low. When I try to calculate 800000 digits of pi , the core calculation take 13.6 sec , but the digits print-out task take more than 56 sec ( use a stop watch)</div>  <div>&nbsp;</div>  <div>why ??</div>  <div>&nbsp;</div>  <div>Jason Lin</div>  <div>&nbsp;</div>  <div>the following are the details</div>  <div>-------------------</div>  <div>&nbsp;</div>  <div>djgpp 2.03<br>with gmp 4.1.2 (precompiled package)<br>on a Windows XP command console running with Pentium-4 1.6 GHz / 1G RAM</div>  <div>&nbsp;</div>  <div>d:\dp&gt;gcc -Wall -O2 -s -o chud.exe gmp-chudnovsky.c -lm -lgmp</div>  <div>&nbsp;</div>  <div>case1:</div>  <div>d:\dp&gt;chud 500000 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;-&nbsp; to get
 500000 digits</div>  <div>#terms=35256, depth=17<br>sieve&nbsp;&nbsp; time =&nbsp; 0.000<br>...................................................<br>bs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time =&nbsp; 5.110<br>&nbsp;&nbsp; gcd&nbsp; time =&nbsp; 0.330<br>div&nbsp;&nbsp;&nbsp;&nbsp; time =&nbsp; 1.099<br>sqrt&nbsp;&nbsp;&nbsp; time =&nbsp; 0.604<br>mul&nbsp;&nbsp;&nbsp;&nbsp; time =&nbsp; 0.385<br>total&nbsp;&nbsp; time =&nbsp; 7.198<br>&nbsp;&nbsp; P size=727581 digits (1.455162)<br>&nbsp;&nbsp; Q size=727575 digits (1.455150)<br>pi(0,35256)=</div>  <div>Totally 29 sec to get the final result<br>(22 sec for the mpf_out_str function )</div>  <div>&nbsp;</div>  <div>&nbsp;</div>  <div>case2:<br>d:\dp&gt;chud 800000 1&nbsp;&nbsp;&nbsp; &lt;- to get 800000 digits<br>#terms=56410, depth=17<br>sieve&nbsp;&nbsp; time =&nbsp; 0.000<br>...................................................<br>bs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time = 10.000<br>&nbsp;&nbsp; gcd&nbsp; time =&nbsp;
 0.495<br>div&nbsp;&nbsp;&nbsp;&nbsp; time =&nbsp; 1.923<br>sqrt&nbsp;&nbsp;&nbsp; time =&nbsp; 0.989<br>mul&nbsp;&nbsp;&nbsp;&nbsp; time =&nbsp; 0.714<br>total&nbsp;&nbsp; time = 13.626<br>&nbsp;&nbsp; P size=1164133 digits (1.455166)<br>&nbsp;&nbsp; Q size=1164127 digits (1.455159)<br>pi(0,56410)=</div>  <div>Totally 69 sec to get the final result<br>(56 sec for the mpf_out_str function )</div>  <div>&nbsp;</div>  <div>---------------------------------------------</div>  <div>print out code in gmp-chudnovsky.c</div>  <div>&nbsp;</div>  <div>if (out&amp;1)&nbsp; {<br>&nbsp;&nbsp;&nbsp; printf("pi(0,%ld)=\n", terms);<br>&nbsp;&nbsp;&nbsp; mpf_out_str(stdout, 10, d+2, qi);&nbsp;&nbsp;&nbsp; &nbsp; &lt;---- it is the hot spot<br>&nbsp;&nbsp;&nbsp; printf("\n");</div><p> 



      ___________________________________________________________________<br>
體驗全新Yahoo!奇摩電子信箱2.0 - <a href="http://tw.rd.yahoo.com/referurl/mail/mail20/tag_1022/*http://tw.mg0.mail.yahoo.com/dc/landing"><strong>馬上體驗</strong></a>!

<br>
_______________________________________________<br>
gmp-discuss mailing list<br>
gmp-discuss@swox.com<br>
https://gmplib.org/mailman/listinfo/gmp-discuss<br>
</p></blockquote>
</div>
<BR>

-- 
<div> Want an e-mail address like mine? </b><br>
Get a <b>free e-mail </b>account today at <a href="http://www.mail.com/Product.aspx" target="_blank">www.mail.com</a>!</div>