mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Sierpinski/Riesel Base 5 (https://www.mersenneforum.org/forumdisplay.php?f=54)
-   -   Compiling Phrot (https://www.mersenneforum.org/showthread.php?t=10188)

rogue 2008-04-04 00:18

Compiling Phrot
 
One more thing, although the test results are from LLR, I have finally been able to build and run phrot on a Core 2 Duo.

phrot is about 33% faster than LLR for bases that are not powers of 2. LLR is still king (by a long shot) for bases that are powers of 2. phrot can produce residues that are compatible with LLR, so PRP tests with phrot are valid. I have run a number of tests and have verified that it is running correctly. I'm switching over to it as I write this.

BTW, I haven't tested this on a P4, but I think it would have similar results. If anyone needs help setting it up, let me know. BTW, I have made a couple of changes to Phil's latest version of phrot that might be useful to anyone choosing to go that route.

mdettweiler 2008-04-04 01:44

[quote=rogue;130670]One more thing, although the test results are from LLR, I have finally been able to build and run phrot on a Core 2 Duo.

phrot is about 33% faster than LLR for bases that are not powers of 2. LLR is still king (by a long shot) for bases that are powers of 2. phrot can produce residues that are compatible with LLR, so PRP tests with phrot are valid. I have run a number of tests and have verified that it is running correctly. I'm switching over to it as I write this.

BTW, I haven't tested this on a P4, but I think it would have similar results. If anyone needs help setting it up, let me know. BTW, I have made a couple of changes to Phil's latest version of phrot that might be useful to anyone choosing to go that route.[/quote]
Could you please email me your Core 2 Duo-optimized version of phrot? My email address is bugmesticky AT googlemail DOT com (yes, googlemail not gmail--I figured I'd clear that up at the start since people have gotten confused with that before. :smile: It's actually just an alternate domain for Gmail that I, for some wacky reason, was assigned an address from.). :smile:

Thanks! :smile:

P.S.: Your build of phrot for Core 2 Duo, is it by any chance a Linux build? I'd actually prefer a Linux build, as my Core 2 Duo runs Ubuntu, though a Windows build would be find, if that's all you've got. :smile:

Mini-Geek 2008-04-04 01:50

[quote=Anonymous;130680]My email address is bugmesticky AT googlemail DOT com (yes, googlemail not gmail--I figured I'd clear that up at the start since people have gotten confused with that before. :smile: It's actually just an alternate domain for Gmail that I, for some wacky reason, was assigned an address from.). :smile:[/quote]
Have you tried if using gmail.com works? Try sending yourself a message at bugmesticky at gmail dot com. I know that for my Gmail account, which is by default tim.sorbera at gmail dot com, I can even send it to something like t.i.m.s.o.r.b.era+76bda764fjuyg2 at googlemail dot com and still receive it.
[url]http://en.wikipedia.org/wiki/Gmail#Addresses[/url]
It seems that googlemail.com is supposed to be for if you're in UK or Germany...I don't know why it gave you that.

mdettweiler 2008-04-04 01:57

[quote=Mini-Geek;130682]Have you tried if using gmail.com works? Try sending yourself a message at bugmesticky at gmail dot com. I know that for my Gmail account, which is by default tim.sorbera at gmail dot com, I can even send it to something like t.i.m.s.o.r.b.era+76bda764fjuyg2 at googlemail dot com and still receive it.
[URL]http://en.wikipedia.org/wiki/Gmail#Addresses[/URL]
It seems that googlemail.com is supposed to be for if you're in UK or Germany...I don't know why it gave you that.[/quote]
Okay, I'll try that. You're right, it should work, last time I checked the MX records matched. :smile:

As for the googlemail.com thing--actually, even though I'm in the United States, I think I know why I got that address, after reading the Wikipedia link you pointed me to. You see, I got the address shortly before Google removed the requirement that you first be invited by an existing member; I had received my invite from a Gmail-invite-spooler website (sort of like one of those "take a penny-leave a penny" things you see at stores, just for Gmail invites instead), so most likely, the invite that I happened to draw from the system had been donated by someone in the UK or Germany. :smile:

Thus, conversely, when I put some spare invites back into the system after I had received my account, when I started getting messages saying "so-and-so has responded to your Google Mail invitation", the users were all listed with gmail.com addresses--because I had defined my country as USA when I signed up. :smile:

But yes, anyway, thanks for the link and the tips--I'll be sure to try it! :smile:

Edit: Well, I tried sending myself a message at bugmesticky AT gmail DOT com, and it worked! So, I guess either one will work fine. :smile:

rogue 2008-04-04 12:32

[QUOTE=Anonymous;130680]Could you please email me your Core 2 Duo-optimized version of phrot? My email address is bugmesticky AT googlemail DOT com (yes, googlemail not gmail--I figured I'd clear that up at the start since people have gotten confused with that before. :smile: It's actually just an alternate domain for Gmail that I, for some wacky reason, was assigned an address from.). :smile:

Thanks! :smile:

P.S.: Your build of phrot for Core 2 Duo, is it by any chance a Linux build? I'd actually prefer a Linux build, as my Core 2 Duo runs Ubuntu, though a Windows build would be find, if that's all you've got. :smile:[/QUOTE]

I have found that compiler options vary depending upon the OS and version of gcc. I built the one I'm using with gcc 4 on MacIntel. I have also built with gcc 3.3 under Cygwin, but haven't timed that build. The compiler options were completely different.

I suggest that you start with a d/l of glucas and run the configure script. I can post the compiler options I've used along with the yeafft_defines.h and a small code change to glucas later today. I will also post my version of phrot source.

One major different between phrot and LLR is that phrot does not save intermediate results. If you stop a test in the middle, you will have to redo the entire test when you restart.

mdettweiler 2008-04-04 16:39

[quote=rogue;130716]I have found that compiler options vary depending upon the OS and version of gcc. I built the one I'm using with gcc 4 on MacIntel. I have also built with gcc 3.3 under Cygwin, but haven't timed that build. The compiler options were completely different.

I suggest that you start with a d/l of glucas and run the configure script. I can post the compiler options I've used along with the yeafft_defines.h and a small code change to glucas later today. I will also post my version of phrot source.

One major different between phrot and LLR is that phrot does not save intermediate results. If you stop a test in the middle, you will have to redo the entire test when you restart.[/quote]
Okay. I already had a copy of the latest version of phrot as found here in the forum, which I'd noticed doesn't save the intermediate results as you said--I was wondering whether that was one of your "small modifications" that you made, I guess not. :smile:

Anyway, though, thanks for the tips--I'll be sure to do all then as soon as you can send me the source for phrot. :smile:

rogue 2008-04-04 18:12

[QUOTE=Anonymous;130753]Okay. I already had a copy of the latest version of phrot as found here in the forum, which I'd noticed doesn't save the intermediate results as you said--I was wondering whether that was one of your "small modifications" that you made, I guess not. :smile:

Anyway, though, thanks for the tips--I'll be sure to do all then as soon as you can send me the source for phrot. :smile:[/QUOTE]

I don't recall all of the changes I made. I know that I did add an ini file so that it knows which line was the last line it processed. I also added an unrolled version of the modular reduction code that gives a 15% speed-up on PowerPC. There is no speed-up on x86 as the unrolled code is geared towards RISC CPUs. I also added reverse video (as I did for command line LLR) so that PRPs can easily been seen when scrolling through the terminal.

I believe that I also modified the Makefile to build two versions, one with and one without -DERRCHECK. I think I also added a -o option to write the results to an output file in addition to stdout. The -DERRCHECK is only needed when using bases that are powers of 2.

mdettweiler 2008-04-04 18:15

[quote=rogue;130762]I don't recall all of the changes I made. I know that I did add an ini file so that it knows which line was the last line it processed. I also added an unrolled version of the modular reduction code that gives a 15% speed-up on PowerPC. There is no speed-up on x86 as the unrolled code is geared towards RISC CPUs. I also added reverse video (as I did for command line LLR) so that PRPs can easily been seen when scrolling through the terminal.

I believe that I also modified the Makefile to build two versions, one with and one without -DERRCHECK. I think I also added a -o option to write the results to an output file in addition to stdout. The -DERRCHECK is only needed when using bases that are powers of 2.[/quote]
Okay, cool--the ini file will make it MUCH more user friendly! :smile:

tnerual 2008-04-04 18:21

[QUOTE=rogue;130670]One more thing, although the test results are from LLR, I have finally been able to build and run phrot on a Core 2 Duo.

phrot is about 33% faster than LLR for bases that are not powers of 2. LLR is still king (by a long shot) for bases that are powers of 2. phrot can produce residues that are compatible with LLR, so PRP tests with phrot are valid. I have run a number of tests and have verified that it is running correctly. I'm switching over to it as I write this.

BTW, I haven't tested this on a P4, but I think it would have similar results. If anyone needs help setting it up, let me know. BTW, I have made a couple of changes to Phil's latest version of phrot that might be useful to anyone choosing to go that route.[/QUOTE]

just for info: using phil's last version on base 6 (anonymous: it's a fast test, gary have all residues to compare with the llrnet output), i have timings up to 2,8 times faster (processor: centrino duo, same test, one core with llr one with phrot)

phrot seems extremely fast with amd and "old fashioned" intel ... (or more precisely, LLR sucks with these processors)

mdettweiler 2008-04-04 18:34

[quote=tnerual;130764]just for info: using phil's last version on base 6 (anonymous: it's a fast test, gary have all residues to compare with the llrnet output), i have timings up to 2,8 times faster (processor: centrino duo, same test, one core with llr one with phrot)

phrot seems extremely fast with amd and "old fashioned" intel ... (or more precisely, LLR sucks with these processors)[/quote]
Yeah, Gary had forwarded to me your instructions and go.bat file for using phrot. I had to run it in a Windows virtual machine, though (my primary machine runs Ubuntu), so that would have thrown off any speed boosts. As soon as I can get the modified source from rogue, though, I'll try building it for Linux using his instructions--then I should be able to reap the full speed benefits. :smile:

rogue 2008-04-04 22:25

1 Attachment(s)
I have attached the latest. Don't forget to apply the patch described [URL="http://www.mersenneforum.org/showpost.php?p=92081&postcount=15"]here[/URL].

On a MacIntel Core 2 Duo with gcc 4, I have the following options in glucas/src/Makefile:

CFLAGS = -m64 -O3 -mtune=nocona -msse2 -msse3 -DNO_HACK_ALIGN -DY_DEFINES_FILE
CFLAGS0 = -m64 -mtune=nocona -msse2 -msse3 -DNO_HACK_ALIGN -DY_DEFINES_FILE

yeafft_defines.h is
#define Y_AVAL 4
#define Y_BLOCKSIZE 4096
#define Y_SHIFT 3

I use the same compile options for glprov.c

Finally, for those of you on AMD, try adding -DUNROLLED_MR to the glprov Makefile and do some tests to see if you get better tims.


All times are UTC. The time now is 09:13.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.