Re: [PPL-devel] GMP 4.3.0 released

Torbjorn Granlund wrote:
It is my great pleasure to announce the availability a new major release of the GNU Multiple Precision Arithmetic Library (GMP). The new release is identified as 4.3.0.
Hi Torbjorn,
congratulations and thank you for the new release.
Speedups:
- Vastly improved assembly code for x86-64 processors from AMD and Intel.
I have run a couple of application programs based on the Parma Polyhedra Library (PPL), which heavily depends on GMP. On an AMD Opteron 2384 "Shanghai" I got the following running times (best run out of 10):
Application A Application B
GMP 4.2.4 GMP 4.3.0 GMP 4.2.4 GMP 4.3.0
238 s 187 s 34.2 s 34.8 s
On an Intel Core2 Q9400, instead, I got:
Application A Application B
GMP 4.2.4 GMP 4.3.0 GMP 4.2.4 GMP 4.3.0
339 s 213 s 29.8 s 28.9 s
Misc:
- The gmp_version variable now always contains three parts. For this release, it is "4.3.0".
Aaargh! This broke our GMP detection procedure. Moreover, PPL 0.10.1 was released only a few hours before the release of GMP 4.3.0. I guess now we have no choice but release PPL 0.10.2 with a revised GMP detection procedure.
Was a release candidate made available and announced somewhere? If so, I would like to subscribe the list for this kind of announcements. Thanks again,
Roberto

Roberto Bagnara bagnara@cs.unipr.it writes:
Speedups:
- Vastly improved assembly code for x86-64 processors from AMD and Intel.
I have run a couple of application programs based on the Parma Polyhedra Library (PPL), which heavily depends on GMP. On an AMD Opteron 2384 "Shanghai" I got the following running times (best run out of 10):
Application A Application B
GMP 4.2.4 GMP 4.3.0 GMP 4.2.4 GMP 4.3.0
238 s 187 s 34.2 s 34.8 s
On an Intel Core2 Q9400, instead, I got:
Application A Application B
GMP 4.2.4 GMP 4.3.0 GMP 4.2.4 GMP 4.3.0
339 s 213 s 29.8 s 28.9 s
You get less speedup than I expect to be typical (and a very slight slowdown in one case).
I am curious what GMP operations application B performs. Profile runs for both GMP versions would be helpful.
Misc:
- The gmp_version variable now always contains three parts. For this release, it is "4.3.0".
Aaargh! This broke our GMP detection procedure. Moreover, PPL 0.10.1 was released only a few hours before the release of GMP 4.3.0. I guess now we have no choice but release PPL 0.10.2 with a revised GMP detection procedure.
I am sorry about that! I think version GMP detection will be simpler with the new scheme, but this slight incompatibility will bite during a transitional period.
Was a release candidate made available and announced somewhere?
No, we did only internal testing this time, since our testing has been much extended.

Torbjorn Granlund wrote:
Roberto Bagnara bagnara@cs.unipr.it writes:
Speedups:
- Vastly improved assembly code for x86-64 processors from AMD and Intel.
I have run a couple of application programs based on the Parma Polyhedra Library (PPL), which heavily depends on GMP. On an AMD Opteron 2384 "Shanghai" I got the following running times (best run out of 10):
Application A Application B GMP 4.2.4 GMP 4.3.0 GMP 4.2.4 GMP 4.3.0 238 s 187 s 34.2 s 34.8 s
On an Intel Core2 Q9400, instead, I got:
Application A Application B GMP 4.2.4 GMP 4.3.0 GMP 4.2.4 GMP 4.3.0 339 s 213 s 29.8 s 28.9 s
You get less speedup than I expect to be typical (and a very slight slowdown in one case).
I am curious what GMP operations application B performs. Profile runs for both GMP versions would be helpful.
Hi Torbjorn,
I was in fact wrong. While the PPL is, generally speaking, heavily dependent on GMP, application B running time is dominated by non-GMP functions. For it, the most important GMP operation is __gmpn_popcount which consumes 12% of the running time. Thanks again,
Roberto
participants (2)
-
Roberto Bagnara
-
Torbjorn Granlund