I have some HOL code that runs to completion in ~24 seconds user time.
On 5.7.1 it runs in about that much wall clock time too. (Unfortunately, this test is running on a different machine, necessarily, but this is an old Linux desktop which is far less powerful than the new Macbook Pro which is running 5.8.)
On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time is 8 minutes.
The relevant code is the selftest in examples/miller/miller which is a big arithmetic normalisation.
On the Mac, memory consumption (as reported by the Activity Monitor) gets as high as 20GB; on the Linux machine running 5.7.1, the consumption remains very slight (top reports 3% in its %MEM column; the machine has 16GB)
Michael
I also found that 5.8 can consume a huge amount of memory compared to 5.7.1. In my case, it was a very small example doing simple arithmetic operations (demonstrating Fermat's method to find pairs of factors) so it may be related. I have raised an issue for it: https://github.com/polyml/polyml/issues/121
Phil
On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote:
I have some HOL code that runs to completion in ~24 seconds user time.
On 5.7.1 it runs in about that much wall clock time too. (Unfortunately, this test is running on a different machine, necessarily, but this is an old Linux desktop which is far less powerful than the new Macbook Pro which is running 5.8.)
On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time is 8 minutes.
The relevant code is the selftest in examples/miller/miller which is a big arithmetic normalisation.
On the Mac, memory consumption (as reported by the Activity Monitor) gets as high as 20GB; on the Linux machine running 5.7.1, the consumption remains very slight (top reports 3% in its %MEM column; the machine has 16GB)
Michael
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
Thanks, Phil, for reminding me of this. I've committed a fix (0ad5aa8) for that. There was a tail-recursive function in your example that returned a tuple. Poly/ML puts these on the stack where it can but in this case it was causing the function to cease to be tail-recursive, eating up the stack. The reason for the regression was a change in the way tuples on the stack are handled in the 32-in-64 bit version. Your example now works as it used to.
Michael, it would be worth trying your code with the latest version to see if this has fixed it. If it hasn't then presumably it's a different problem and I'll have to investigate further.
David
On 16/06/2020 09:58, Phil Clayton wrote:
I also found that 5.8 can consume a huge amount of memory compared to 5.7.1.? In my case, it was a very small example doing simple arithmetic operations (demonstrating Fermat's method to find pairs of factors) so it may be related.? I have raised an issue for it: https://github.com/polyml/polyml/issues/121
Phil
On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote:
I have some HOL code that runs to completion in ~24 seconds user time.
On 5.7.1 it runs in about that much wall clock time too. (Unfortunately, this test is running on a different machine, necessarily, but this is an old Linux desktop which is far less powerful than the new Macbook Pro which is running 5.8.)
On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time is 8 minutes.
The relevant code is the selftest in examples/miller/miller which is a big arithmetic normalisation.
On the Mac, memory consumption (as reported by the Activity Monitor) gets as high as 20GB; on the Linux machine running 5.7.1, the consumption remains very slight (top reports 3% in its %MEM column; the machine has 16GB)
Michael
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
Hi David,
I rebuilt and installed PolyML 5.8 ('master', up to 0ad5aa8) and ran again the 'miller' selftests as Michael mentioned, but the results seem unchanged:
``` Composite test on 91 ... (0.018s) OK Composite test on 123 ... [GC = 0.037] (0.013s) OK Composite test on 4294967297 ... [GC = 3.487] (0.376s) OK Composite test on 18446744073709551617 ... [GC = 84.370] (2.846s) OK Composite test on 340282366920938463463374607431768211457 ... [GC = 429.267] (21.935s) OK
real 9m19.723s user 9m7.408s sys 0m12.139s ```
I'm on macOS 10.15 (catalina) with 2,3 GHz Intel Core i9 (8 core). The same tests took less than 30s with PolyML 5.7.
Hope this helps,
Chun Tian
On Fri, Jun 19, 2020 at 6:54 PM David Matthews < David.Matthews at prolingua.co.uk> wrote:
Thanks, Phil, for reminding me of this. I've committed a fix (0ad5aa8) for that. There was a tail-recursive function in your example that returned a tuple. Poly/ML puts these on the stack where it can but in this case it was causing the function to cease to be tail-recursive, eating up the stack. The reason for the regression was a change in the way tuples on the stack are handled in the 32-in-64 bit version. Your example now works as it used to.
Michael, it would be worth trying your code with the latest version to see if this has fixed it. If it hasn't then presumably it's a different problem and I'll have to investigate further.
David
On 16/06/2020 09:58, Phil Clayton wrote:
I also found that 5.8 can consume a huge amount of memory compared to 5.7.1. In my case, it was a very small example doing simple arithmetic operations (demonstrating Fermat's method to find pairs of factors) so it may be related. I have raised an issue for it: https://github.com/polyml/polyml/issues/121
Phil
On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote:
I have some HOL code that runs to completion in ~24 seconds user time.
On 5.7.1 it runs in about that much wall clock time too. (Unfortunately, this test is running on a different machine, necessarily, but this is an old Linux desktop which is far less powerful than the new Macbook Pro which is running 5.8.)
On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time is 8 minutes.
The relevant code is the selftest in examples/miller/miller which is a big arithmetic normalisation.
On the Mac, memory consumption (as reported by the Activity Monitor) gets as high as 20GB; on the Linux machine running 5.7.1, the consumption remains very slight (top reports 3% in its %MEM column; the machine has 16GB)
Michael
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
Hi, You did run "make compiler" at least once after running "configure" and "make", didn't you? David
On 19/06/2020 18:17, Chun Tian (binghe) wrote:
Hi David,
I rebuilt and installed PolyML 5.8 ('master', up to 0ad5aa8) and ran again the 'miller' selftests as Michael mentioned, but the results seem unchanged:
Composite test on 91 ... (0.018s) OK Composite test on 123 ... [GC = 0.037] (0.013s) OK Composite test on 4294967297 ... [GC = 3.487] (0.376s) OK Composite test on 18446744073709551617 ... [GC = 84.370] (2.846s) OK Composite test on 340282366920938463463374607431768211457 ... [GC = 429.267] (21.935s) OK real 9m19.723s user 9m7.408s sys 0m12.139s
I'm on macOS 10.15 (catalina) with 2,3 GHz Intel Core i9 (8 core). The same tests took less than 30s with PolyML 5.7.
Hope this helps,
Chun Tian
On Fri, Jun 19, 2020 at 6:54 PM David Matthews < David.Matthews at prolingua.co.uk> wrote:
Thanks, Phil, for reminding me of this. I've committed a fix (0ad5aa8) for that. There was a tail-recursive function in your example that returned a tuple. Poly/ML puts these on the stack where it can but in this case it was causing the function to cease to be tail-recursive, eating up the stack. The reason for the regression was a change in the way tuples on the stack are handled in the 32-in-64 bit version. Your example now works as it used to.
Michael, it would be worth trying your code with the latest version to see if this has fixed it. If it hasn't then presumably it's a different problem and I'll have to investigate further.
David
On 16/06/2020 09:58, Phil Clayton wrote:
I also found that 5.8 can consume a huge amount of memory compared to 5.7.1. In my case, it was a very small example doing simple arithmetic operations (demonstrating Fermat's method to find pairs of factors) so it may be related. I have raised an issue for it: https://github.com/polyml/polyml/issues/121
Phil
On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote:
I have some HOL code that runs to completion in ~24 seconds user time.
On 5.7.1 it runs in about that much wall clock time too. (Unfortunately, this test is running on a different machine, necessarily, but this is an old Linux desktop which is far less powerful than the new Macbook Pro which is running 5.8.)
On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time is 8 minutes.
The relevant code is the selftest in examples/miller/miller which is a big arithmetic normalisation.
On the Mac, memory consumption (as reported by the Activity Monitor) gets as high as 20GB; on the Linux machine running 5.7.1, the consumption remains very slight (top reports 3% in its %MEM column; the machine has 16GB)
Michael
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
Hi David,
no I didn't do "make compiler" in my previous tests... But after I did it (make compiler; make install) and rebuilt HOL, the "miller" selftest result is the same. The whole testing process still need more than 8 minutes to finish.
Regards,
Chun
On Sat, Jun 20, 2020 at 1:23 AM David Matthews < David.Matthews at prolingua.co.uk> wrote:
Hi, You did run "make compiler" at least once after running "configure" and "make", didn't you? David
On 19/06/2020 18:17, Chun Tian (binghe) wrote:
Hi David,
I rebuilt and installed PolyML 5.8 ('master', up to 0ad5aa8) and ran
again
the 'miller' selftests as Michael mentioned, but the results seem
unchanged:
Composite test on 91 ... (0.018s) OK Composite test on 123 ... [GC =
0.037]
(0.013s) OK Composite test on 4294967297 ... [GC =
3.487]
(0.376s) OK Composite test on 18446744073709551617 ... [GC =
84.370]
(2.846s) OK Composite test on 340282366920938463463374607431768211457 ... [GC = 429.267] (21.935s) OK
real 9m19.723s user 9m7.408s sys 0m12.139s
I'm on macOS 10.15 (catalina) with 2,3 GHz Intel Core i9 (8 core). The
same
tests took less than 30s with PolyML 5.7.
Hope this helps,
Chun Tian
On Fri, Jun 19, 2020 at 6:54 PM David Matthews < David.Matthews at prolingua.co.uk> wrote:
Thanks, Phil, for reminding me of this. I've committed a fix (0ad5aa8) for that. There was a tail-recursive function in your example that returned a tuple. Poly/ML puts these on the stack where it can but in this case it was causing the function to cease to be tail-recursive, eating up the stack. The reason for the regression was a change in the way tuples on the stack are handled in the 32-in-64 bit version. Your example now works as it used to.
Michael, it would be worth trying your code with the latest version to see if this has fixed it. If it hasn't then presumably it's a different problem and I'll have to investigate further.
David
On 16/06/2020 09:58, Phil Clayton wrote:
I also found that 5.8 can consume a huge amount of memory compared to 5.7.1. In my case, it was a very small example doing simple arithmetic operations (demonstrating Fermat's method to find pairs of factors) so it may be related. I have raised an issue for it: https://github.com/polyml/polyml/issues/121
Phil
On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote:
I have some HOL code that runs to completion in ~24 seconds user time.
On 5.7.1 it runs in about that much wall clock time too. (Unfortunately, this test is running on a different machine, necessarily, but this is an old Linux desktop which is far less powerful than the new Macbook Pro which is running 5.8.)
On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time is 8 minutes.
The relevant code is the selftest in examples/miller/miller which is a big arithmetic normalisation.
On the Mac, memory consumption (as reported by the Activity Monitor) gets as high as 20GB; on the Linux machine running 5.7.1, the consumption remains very slight (top reports 3% in its %MEM column; the machine has 16GB)
Michael
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
I've built HOL4 with versions of Poly/ML before and after the fix (c355b21 and 0ad5aa8) on Linux x86_64. I ran the miller example (with fixes for Poly/ML reverted) and it appears that 0ad5aa8 fixes the issue.
Under c355b21:
[pclayton at localhost miller]$ ./selftest.exe Composite test on 91 ... (0.024s) OK Composite test on 123 ... (0.016s) OK Composite test on 4294967297 ... [GC = 3.401] (0.394s) OK Composite test on 18446744073709551617 ... [GC = 186.871] (3.216s) OK Composite test on 340282366920938463463374607431768211457 ... ^C^C
Under 0ad5aa8:
[pclayton at localhost miller]$ ./selftest.exe Composite test on 91 ... [GC = 0.027] (0.023s) OK Composite test on 123 ... (0.018s) OK Composite test on 4294967297 ... (0.360s) OK Composite test on 18446744073709551617 ... (2.540s) OK Composite test on 340282366920938463463374607431768211457 ... (19.700s) OK
Chun - your Poly/ML build commands (make compiler; make install) don't specify "make compiler" after "make" - see https://www.polyml.org/download.html I wonder therefore whether the compiler was rebuilt in your test.
Phil
On 20/06/20 04:32, Chun Tian (binghe) wrote:
Hi David,
no I didn't do "make compiler" in my previous tests...? But after I did it (make compiler; make install) and rebuilt HOL, the "miller" selftest result is the same. The whole testing process still need more than 8 minutes to finish.
Regards,
Chun
On Sat, Jun 20, 2020 at 1:23 AM David Matthews <David.Matthews at prolingua.co.uk <mailto:David.Matthews at prolingua.co.uk>> wrote:
Hi, You did run "make compiler" at least once after running "configure" and "make", didn't you? David On 19/06/2020 18:17, Chun Tian (binghe) wrote: > Hi David, > > I rebuilt and installed PolyML 5.8 ('master', up to 0ad5aa8) and ran again > the 'miller' selftests as Michael mentioned, but the results seem unchanged: > > ``` > Composite test on 91 ... > (0.018s)? ? ? OK > Composite test on 123 ...? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[GC = 0.037] > (0.013s)? ? ? OK > Composite test on 4294967297 ...? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [GC = 3.487] > (0.376s)? ? ? OK > Composite test on 18446744073709551617 ...? ? ? ? ? ? ? ? ? ? [GC = 84.370] > (2.846s)? ? ?OK > Composite test on 340282366920938463463374607431768211457 ... [GC = > 429.267] (21.935s)? ?OK > > real 9m19.723s > user 9m7.408s > sys 0m12.139s > ``` > > I'm on macOS 10.15 (catalina) with 2,3 GHz Intel Core i9 (8 core). The same > tests took less than 30s with PolyML 5.7. > > Hope this helps, > > Chun Tian > > > On Fri, Jun 19, 2020 at 6:54 PM David Matthews < > David.Matthews at prolingua.co.uk <mailto:David.Matthews at prolingua.co.uk>> wrote: > >> Thanks, Phil, for reminding me of this.? I've committed a fix (0ad5aa8) >> for that.? There was a tail-recursive function in your example that >> returned a tuple.? Poly/ML puts these on the stack where it can but in >> this case it was causing the function to cease to be tail-recursive, >> eating up the stack.? The reason for the regression was a change in the >> way tuples on the stack are handled in the 32-in-64 bit version.? Your >> example now works as it used to. >> >> Michael, it would be worth trying your code with the latest version to >> see if this has fixed it.? If it hasn't then presumably it's a different >> problem and I'll have to investigate further. >> >> David >> >> On 16/06/2020 09:58, Phil Clayton wrote: >>> I also found that 5.8 can consume a huge amount of memory compared to >>> 5.7.1.? In my case, it was a very small example doing simple arithmetic >>> operations (demonstrating Fermat's method to find pairs of factors) so >>> it may be related.? I have raised an issue for it: >>> https://github.com/polyml/polyml/issues/121 >>> >>> Phil >>> >>> On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote: >>>> I have some HOL code that runs to completion in ~24 seconds user time. >>>> >>>> On 5.7.1 it runs in about that much wall clock time too. >>>> (Unfortunately, this test is running on a different machine, >>>> necessarily, but this is an old Linux desktop which is far less >>>> powerful than the new Macbook Pro which is running 5.8.) >>>> >>>> On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time >>>> is 8 minutes. >>>> >>>> The relevant code is the selftest in examples/miller/miller which is a >>>> big arithmetic normalisation. >>>> >>>> On the Mac, memory consumption (as reported by the Activity Monitor) >>>> gets as high as 20GB; on the Linux machine running 5.7.1, the >>>> consumption remains very slight (top reports 3% in its %MEM column; >>>> the machine has 16GB) >>>> >>>> Michael >>>> >>>> >>>> >>>> _______________________________________________ >>>> polyml mailing list >>>> polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> >>>> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml >>>> >>> _______________________________________________ >>> polyml mailing list >>> polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> >>> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml >> _______________________________________________ >> polyml mailing list >> polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> >> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml > > > > > _______________________________________________ > polyml mailing list > polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> > http://lists.inf.ed.ac.uk/mailman/listinfo/polyml > _______________________________________________ polyml mailing list polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
-- Chun Tian (binghe) Fondazione Bruno Kessler (Italy)
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
Thanks everyone. Now I see the issue is indeed fixed. That's great.
--Chun
On Sat, Jun 20, 2020 at 6:33 PM Phil Clayton <phil.clayton at veonix.com> wrote:
I've built HOL4 with versions of Poly/ML before and after the fix (c355b21 and 0ad5aa8) on Linux x86_64. I ran the miller example (with fixes for Poly/ML reverted) and it appears that 0ad5aa8 fixes the issue.
Under c355b21:
[pclayton at localhost miller]$ ./selftest.exe Composite test on 91 ... (0.024s) OK Composite test on 123 ... (0.016s) OK Composite test on 4294967297 ... [GC = 3.401] (0.394s) OK Composite test on 18446744073709551617 ... [GC = 186.871] (3.216s) OK Composite test on 340282366920938463463374607431768211457 ... ^C^C
Under 0ad5aa8:
[pclayton at localhost miller]$ ./selftest.exe Composite test on 91 ... [GC = 0.027] (0.023s) OK Composite test on 123 ... (0.018s) OK Composite test on 4294967297 ... (0.360s) OK Composite test on 18446744073709551617 ... (2.540s) OK Composite test on 340282366920938463463374607431768211457 ... (19.700s) OK
Chun - your Poly/ML build commands (make compiler; make install) don't specify "make compiler" after "make" - see https://www.polyml.org/download.html I wonder therefore whether the compiler was rebuilt in your test.
Phil
On 20/06/20 04:32, Chun Tian (binghe) wrote:
Hi David,
no I didn't do "make compiler" in my previous tests... But after I did it (make compiler; make install) and rebuilt HOL, the "miller" selftest result is the same. The whole testing process still need more than 8 minutes to finish.
Regards,
Chun
On Sat, Jun 20, 2020 at 1:23 AM David Matthews <David.Matthews at prolingua.co.uk <mailto:David.Matthews at prolingua.co.uk>>
wrote:
Hi, You did run "make compiler" at least once after running "configure"
and
"make", didn't you? David On 19/06/2020 18:17, Chun Tian (binghe) wrote: > Hi David, > > I rebuilt and installed PolyML 5.8 ('master', up to 0ad5aa8) and ran again > the 'miller' selftests as Michael mentioned, but the results seem unchanged: > > ``` > Composite test on 91 ... > (0.018s) OK > Composite test on 123 ... [GC = 0.037] > (0.013s) OK > Composite test on 4294967297 ... [GC = 3.487] > (0.376s) OK > Composite test on 18446744073709551617 ... [GC = 84.370] > (2.846s) OK > Composite test on 340282366920938463463374607431768211457 ... [GC
=
> 429.267] (21.935s) OK > > real 9m19.723s > user 9m7.408s > sys 0m12.139s > ``` > > I'm on macOS 10.15 (catalina) with 2,3 GHz Intel Core i9 (8 core). The same > tests took less than 30s with PolyML 5.7. > > Hope this helps, > > Chun Tian > > > On Fri, Jun 19, 2020 at 6:54 PM David Matthews < > David.Matthews at prolingua.co.uk <mailto:David.Matthews at prolingua.co.uk>> wrote: > >> Thanks, Phil, for reminding me of this. I've committed a fix (0ad5aa8) >> for that. There was a tail-recursive function in your example
that
>> returned a tuple. Poly/ML puts these on the stack where it can but in >> this case it was causing the function to cease to be
tail-recursive,
>> eating up the stack. The reason for the regression was a change in the >> way tuples on the stack are handled in the 32-in-64 bit version. Your >> example now works as it used to. >> >> Michael, it would be worth trying your code with the latest version to >> see if this has fixed it. If it hasn't then presumably it's a different >> problem and I'll have to investigate further. >> >> David >> >> On 16/06/2020 09:58, Phil Clayton wrote: >>> I also found that 5.8 can consume a huge amount of memory compared to >>> 5.7.1. In my case, it was a very small example doing simple arithmetic >>> operations (demonstrating Fermat's method to find pairs of factors) so >>> it may be related. I have raised an issue for it: >>> https://github.com/polyml/polyml/issues/121 >>> >>> Phil >>> >>> On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote: >>>> I have some HOL code that runs to completion in ~24 seconds user time. >>>> >>>> On 5.7.1 it runs in about that much wall clock time too. >>>> (Unfortunately, this test is running on a different machine, >>>> necessarily, but this is an old Linux desktop which is far less >>>> powerful than the new Macbook Pro which is running 5.8.) >>>> >>>> On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time >>>> is 8 minutes. >>>> >>>> The relevant code is the selftest in examples/miller/miller which is a >>>> big arithmetic normalisation. >>>> >>>> On the Mac, memory consumption (as reported by the Activity Monitor) >>>> gets as high as 20GB; on the Linux machine running 5.7.1, the >>>> consumption remains very slight (top reports 3% in its %MEM column; >>>> the machine has 16GB) >>>> >>>> Michael >>>>
Many thanks for this speedy fix!
Michael
?On 20/6/20, 03:23, "polyml on behalf of David Matthews" <polyml-bounces at inf.ed.ac.uk on behalf of David.Matthews at prolingua.co.uk> wrote:
Hi, You did run "make compiler" at least once after running "configure" and "make", didn't you? David
On 19/06/2020 18:17, Chun Tian (binghe) wrote:
Hi David,
I rebuilt and installed PolyML 5.8 ('master', up to 0ad5aa8) and ran again the 'miller' selftests as Michael mentioned, but the results seem unchanged:
Composite test on 91 ... (0.018s) OK Composite test on 123 ... [GC = 0.037] (0.013s) OK Composite test on 4294967297 ... [GC = 3.487] (0.376s) OK Composite test on 18446744073709551617 ... [GC = 84.370] (2.846s) OK Composite test on 340282366920938463463374607431768211457 ... [GC = 429.267] (21.935s) OK real 9m19.723s user 9m7.408s sys 0m12.139s
I'm on macOS 10.15 (catalina) with 2,3 GHz Intel Core i9 (8 core). The same tests took less than 30s with PolyML 5.7.
Hope this helps,
Chun Tian
On Fri, Jun 19, 2020 at 6:54 PM David Matthews < David.Matthews at prolingua.co.uk> wrote:
Thanks, Phil, for reminding me of this. I've committed a fix (0ad5aa8) for that. There was a tail-recursive function in your example that returned a tuple. Poly/ML puts these on the stack where it can but in this case it was causing the function to cease to be tail-recursive, eating up the stack. The reason for the regression was a change in the way tuples on the stack are handled in the 32-in-64 bit version. Your example now works as it used to.
Michael, it would be worth trying your code with the latest version to see if this has fixed it. If it hasn't then presumably it's a different problem and I'll have to investigate further.
David
On 16/06/2020 09:58, Phil Clayton wrote:
I also found that 5.8 can consume a huge amount of memory compared to 5.7.1. In my case, it was a very small example doing simple arithmetic operations (demonstrating Fermat's method to find pairs of factors) so it may be related. I have raised an issue for it: https://github.com/polyml/polyml/issues/121
Phil
On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote:
I have some HOL code that runs to completion in ~24 seconds user time.
On 5.7.1 it runs in about that much wall clock time too. (Unfortunately, this test is running on a different machine, necessarily, but this is an old Linux desktop which is far less powerful than the new Macbook Pro which is running 5.8.)
On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time is 8 minutes.
The relevant code is the selftest in examples/miller/miller which is a big arithmetic normalisation.
On the Mac, memory consumption (as reported by the Activity Monitor) gets as high as 20GB; on the Linux machine running 5.7.1, the consumption remains very slight (top reports 3% in its %MEM column; the machine has 16GB)
Michael
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
_______________________________________________ polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml