Your suggestion to instead use powm in GMP does indeed make things faster.

 I used the powm function which has been in GMP for a long time (this
time using GMP 4.3.2 because powm itself has reportedly been improved
in GMP 5):

                    8 =>    36422
                    10 =>     1518
                    12 =>     32.1 =>  1211, 1514 =>   113,  141 =>  1129, 1412

Here for comparison are the original times I reported for MPIR and GMP 5:

8 :                              87725      6791
10 :                             3241        635
12 :                              80.3       25.0

The improvement using your powm is not so great when things get large,
but now the comparison is much more reasonable!

So in retrospect, yes it should *definitely* have been implemented at
least using powm. But the reason it was not (I presume) is that powm
cannot be used efficiently as a replacement for mpn_mulmod_2expp1. It
was coded with that in mind, nothing else. I think it is much, much
harder to come up with a simple replacement for the mpn_mulmod_2expp1
function without just doing precisely what we do in MPIR 1.3.0.

Now, GMP actually has such a function in GMP 5 and we will definitely
be changing the benchmark to reflect this. Just give us a little time.

Bill.

2010/1/11 Bill Hart <[email protected]>:
> Also, the reason we haven't optimised things for your machine is that
> at present none of our build farms contains such a machine, none of
> the developers owns one, none of our friends own one. It is just very
> hard to get hold of one.
>
> It is *absolutely impossible* for us to optimise the assembly
> functions for such a machine without access to one. I'm sure Jason
> would have liked to try.
>
> As I suggested, you might try the --build=pentium4 thing if you want
> to see if it will go any faster. I don't guarantee it, but you might
> be surprised.
>
> Bill.
>
> 2010/1/11 Bill Hart <[email protected]>:
>> Yes, it comes across the same way in English! You got your point across.
>>
>> We don't document functions that are not available in GMP because when
>> they implement the same functions (which they have now done) they
>> invariably choose a different name (which they did), which means we
>> have to change the name of our function to match. Not much point
>> documenting it then is there!
>>
>> If you had asked about this, you might have found there was a good
>> reason for it! You seem overly eager to find some fault....
>>
>> Bill.
>>
>> 2010/1/11 Gianrico Fini <[email protected]>:
>>> Hi cheater,
>>>
>>>> Some of the program benchmarks that we have in our full benchmark
>>>> suite tell a completely different story, putting MPIR well ahead for
>>>> those sorts of things. They show that in an overall program, we do
>>>> quite well.
>>>
>>> Those programs are FAKE! Unfortunately for you I'm able to read some
>>> lines of code.
>>> This bench_two program _is_a_silly_fake_!!!!
>>>
>>> I wrote in another thread, because I wanted to have an explicit
>>> subject.
>>> Try to remove the cheating programs, then tell me again if "you do
>>> quite well" in an "overall program".
>>>
>>> And do not expect any other help from me, you cheater!
>>>
>>> I'll go and sleep the sleep of the just (I hope it means the same
>>> thing as in my mother-language)... what about you?
>>>
>>> Gian.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "mpir-devel" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to 
>>> [email protected].
>>> For more options, visit this group at 
>>> http://groups.google.com/group/mpir-devel?hl=en.
>>>
>>>
>>>
>>>
>>
>
-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.


Reply via email to