2011/5/14 Stéphane Ducasse <stephane.ducasse@inria.fr>:
Here is what I suggest. - Keep a log of these fixes may be on the cog vm - did you publish your fixes using the git infrastructure we put in place - because without it we will not work.
No, this is just 3 or 4 methods to be change in VMMaker, no external C code, only slang.
- Write some tests
bitShift has tests, for Montgomery I don't remember, but that's easy.
- Soon igor will resume his work on vm building with hudson and we should get some regression testing tests. - Soon we should be able to introduce these changes and evaluate their impact. - we should push the git infrastructure.
I just need a commit right in VMMaker if we want to push this. Nicolas
Stef
On May 14, 2011, at 1:13 PM, Nicolas Cellier wrote:
2011/5/14 Stéphane Ducasse <stephane.ducasse@inria.fr>:
I accelerated raisedTo:modulo: a bit with a primitive (http://bugs.squeak.org/view.php?id=7120) but that's not enough Nicolas
do you know why it was not integrated? It is a good candidate to check the build system of the VM and their evolution. Igor (I gave the windows distribution) to the arnaud so I hope that soon we will get a new windows slave for jenkins.
Stef
Don't know. I also have my modest bitShift: improvments pending (http://bugs.squeak.org/view.php?id=7109). Maybe I haven't performed enough tests to assert the performance gain. The changes are reliable, I run a VM with both improvments without crash for months.
I could try to further improve the exponentiation algorithm by mixing a sliding window exponentiation with Montgomery multiplication. There would be other optimisations possible : each modular product fits on a given number of bytes so we could recycle allocated LargeInteger for storing intermediate results rather than letting vm do it.
Nicolas