View Full Version : testing new client on Haiku
umccullough
04-14-2009, 04:39 AM
I've finally figured out how to compile the mprime client for Haiku, and I'm testing it this very moment on my core 2 duo.
I can package up the binary and send it to louie once I confirm it's good :)
Assuming that everything seems to work, who do I submit my code patches to?
prime95
04-14-2009, 05:56 PM
You can email them to
[email protected]
umccullough
04-14-2009, 07:37 PM
You can email them to
[email protected]
Super :)
I just realized that since it links to libstdc++, I'll have to compile a separate version for Haiku/GCC4 (the one I built is compiled for Haiku/GCC2) due to the ABI changes... I'll try to do that this evening...
It was still running this morning when I left, so that looks good :D
- Urias
jjjjL
04-15-2009, 03:35 AM
Wow, compiled and running on Haiku?? Very exciting!
I see the client working (communication wise) from the server.
It's funny because most clients ID as something like:
"louie" "Windows,Prime95,v25.9,build 4"
"louie" "Linux64,Prime95,v25.9,build 4"
etc...
But your client shows up as:
"umccullough" "Unknown,Untrusted Prime95,v25.9,build 4"
Hahaha... awesome! I also see that you have two tests checked out, each around 12.5% done. That looks good too! Let them both finish and I'll dump those two tests back into the first-pass queue so we can check that the residues match. Then we'll know the math is fine. No reason it shouldn't be, but couldn't hurt to check.
There may be alignment issues with the SSE2 code depending on how you compiled it. IIRC, it doesn't break the code, but slows it down if not properly aligned. Is that still the case George or does the new gwnum.a remove the need to manually align the object files?
And I'll gladly distribute your binaries after we re-check the first tests. Can you make a regular, and 64-bit version please? That would be helpful.
Cheers,
Louie
umccullough
04-15-2009, 11:49 AM
Wow, compiled and running on Haiku?? Very exciting!
Haiku is pretty stable these days ;) I must say, the POSIX compliance is just awesome now, the pthreads support had everything needed it seems for compiling mprime.
I see the client working (communication wise) from the server.
It's funny because most clients ID as something like:
"louie" "Windows,Prime95,v25.9,build 4"
"louie" "Linux64,Prime95,v25.9,build 4"
etc...
But your client shows up as:
"umccullough" "Unknown,Untrusted Prime95,v25.9,build 4"
LOL, I set the PORT = 11 in prime.h in the __HAIKU__ section I created - I'm guessing that value is used to define the OS platform - once I confirm with prime95 that this number can be used officially for Haiku, I guess we can figure out how to update things so that it shows the proper platform info :D
Hahaha... awesome! I also see that you have two tests checked out, each around 12.5% done. That looks good too! Let them both finish and I'll dump those two tests back into the first-pass queue so we can check that the residues match. Then we'll know the math is fine. No reason it shouldn't be, but couldn't hurt to check.
There may be alignment issues with the SSE2 code depending on how you compiled it. IIRC, it doesn't break the code, but slows it down if not properly aligned. Is that still the case George or does the new gwnum.a remove the need to manually align the object files?
oh, TOTALLY, yes...I would definitely appreciate some sanity checking of the tests.
I've stopped and restarted the client a couple times, including an intentional forced update of the server (to make sure it was working in the client) - that's why you saw the 12% numbers there.
As for alignment issues, etc. - I really made *very* few changes to anything (surprisingly few in fact). I'll send you a diff at the same time that I send them to prime95 so you can see how clean it was. The biggest hurdle for me was understanding exactly how gwnum.a was supposed to be built - once I finally read the readme.txt and ran objdump on the linux/gwnum.a I realized why i was so confused :D - so, I basically just updated the bits that needed to be haiku-specific, and it *just worked*, I was totally amazed :)
And I'll gladly distribute your binaries after we re-check the first tests. Can you make a regular, and 64-bit version please? That would be helpful.
Ah...64 bit ;) I'm almost embarrassed to admit that Haiku does not support 64bit yet - plenty of the OS code needs to be reviewed and updated to be 64bit clean still. Haiku was started in 2001 as a fork from NewOS which was written in the last 90s and thus the entire codebase pre-dates x86-64... rather than focus on supporting many arch's, the Haiku developers have decided to stick with x86-32 until the OS is "stable" and then start updating the codebase for other arch's including x86-64 - so it will eventually happen, just not right away.
It looks like I will however need to make separate GCC2 and GCC4 binaries available as the ABI is different between both versions of Haiku and anything linking to libstdc++ will likely fail to run on both versions without fiddling with multiple libs, etc.
Thanks for the responses guys!
- Urias
umccullough
04-15-2009, 12:28 PM
Just for kicks, I threw a couple screenshots of it in picasa:
http://picasaweb.google.com/lh/photo/HEjBjCZTbi37SHG59ShEww?feat=directlink
and
http://picasaweb.google.com/lh/photo/VHbyfXb7onh1HOZvONSnnw?feat=directlink
Note that second one demonstrates a weird scheduler issue in Haiku that I've been experiencing where both threads are migrated to the same cpu (Haiku doesn't really have proper affinity support yet) fortunately there are a couple people who are looking at improving the scheduler, including adding better affinity support, and hopefully programs like mprime and dnetc will be helpful in that process ;)
jjjjL
04-15-2009, 01:01 PM
Those screenshot bring me back. :)
umccullough
04-16-2009, 02:12 AM
I have built a GCC4 version now, and it seems to be working just fine with the gimps tests - i haven't run it against seventeenorbust yet because it's on my old P4 laptop and I'd not likely finish the tests here ;)
Hopefully here shortly I'll be confident that things are working and send my patches and binaries.
prime95
04-16-2009, 04:51 AM
LOL, I set the PORT = 11 in prime.h in the __HAIKU__ section I created - I'm guessing that value is used to define the OS platform - once I confirm with prime95 that this number can be used officially for Haiku, I guess we can figure out how to update things so that it shows the proper platform info :D
You can use PORT = 11. Change this code in commonc.c:
PORT == 1 ? "Windows" :
PORT == 2 ? "Linux" :
PORT == 4 ? "Windows64" :
PORT == 5 ? "WindowsService" :
PORT == 6 ? "FreeBSD" :
PORT == 7 ? "OS/2" :
PORT == 8 ? "Linux64" :
PORT == 9 ? "Mac OS X" :
PORT == 10 ? "Mac OS X 64-bit" : "Unknown",
VERSION, BUILD_NUM);
umccullough
04-16-2009, 12:51 PM
Great, thanks - I missed that before :)
BTW, is there any mailing list or another official forum where discussion about mprime development already takes place? If so, I'd like to subscribe there.
umccullough
04-17-2009, 02:02 AM
You can use PORT = 11. Change this code in commonc.c:
Done.
jjjjL you should now be seeing "Haiku,Untrusted" as of the last communication i sent.
Should I create separate port numbers for gcc2/gcc4 versions? I really don't think it should be necessary, as the code doesn't change at all, but the linking does slightly... I don't care either way, just wanted to know what was preferred.
I cannot really get rid of the "Untrusted" part without the special security sources which aren't provided in the public source archive. I guess eventually I'll want to get that resolved as well :)
I also killed off two more tests that it obtained (to satisfy the 5-day queue default) and looks like the current tests are nearly 50%
Won't be long now
jjjjL
04-17-2009, 02:18 AM
Done.
jjjjL you should now be seeing "Haiku,Untrusted" as of the last communication i sent.
Should I create separate port numbers for gcc2/gcc4 versions? I really don't think it should be necessary, as the code doesn't change at all, but the linking does slightly... I don't care either way, just wanted to know what was preferred.
I cannot really get rid of the "Untrusted" part without the special security sources which aren't provided in the public source archive. I guess eventually I'll want to get that resolved as well :)
I also killed off two more tests that it obtained (to satisfy the 5-day queue default) and looks like the current tests are nearly 50%
Won't be long now
I still see it as "Unknown, Untrusted" but it's possible it just didn't do a computer information refresh last time it communicated. If you ran a new fresh copy from another directory and just connected, got a couple tests, and then expired them, I could see then if it's updated correctly.
I think one Port # is the way to go. It's up to George really.
The "Untrusted" part is fine for now. George would have to compile it for you to have these files. I was actually most surprised when you said you had a compiled version because dozens of others have attempted to port GIMPS or SB to other platforms, and they all give up when they get the compile error about that missing file (if they even get there). Much respect for going all the way here!
Cheers,
Louie
enderak
04-17-2009, 12:14 PM
Agreed! I know umccullough you have been wanting to get SoB working on Haiku for a long time.
I've never tried Haiku, but I ran BeOS for a while "back in the day" so maybe I'll give it a shot on one of my extra computers once this is released and do a little crunching.. :)
umccullough
04-17-2009, 10:54 PM
I still see it as "Unknown, Untrusted" but it's possible it just didn't do a computer information refresh last time it communicated. If you ran a new fresh copy from another directory and just connected, got a couple tests, and then expired them, I could see then if it's updated correctly.
Ok, I've used my gcc4 version to pull down a test and then i canceled it, hopefully that has done the trick?
I forgot to edit prime.txt at first, so don't be surprised if there was some communication using "louie" ;)
umccullough
04-17-2009, 10:57 PM
Agreed! I know umccullough you have been wanting to get SoB working on Haiku for a long time.
Heh, yes, I was trying pretty hard there for a couple years ;)
I've never tried Haiku, but I ran BeOS for a while "back in the day" so maybe I'll give it a shot on one of my extra computers once this is released and do a little crunching.. :)
Sure! Getting Haiku installed on a machine is still a little bit tricky, but there are a few different ways... each having advantages and drawbacks. I personally like to compile my own Haiku installs directly to a partition using linux (usually debian or ubuntu) - and I find this to be far easier to work and more flexible with than any other method of installation. It's a lot easier than one would imagine.
There isn't yet an official release or installation disc, but that should happen soon i think!
Hit me up privately if you have any questions... I can point you to plenty of info on how to get things going.
- Urias
jjjjL
04-18-2009, 01:57 AM
Ok, I've used my gcc4 version to pull down a test and then i canceled it, hopefully that has done the trick?
I forgot to edit prime.txt at first, so don't be surprised if there was some communication using "louie" ;)
"umccullough" "Haiku,Untrusted Prime95,v25.9,build 4"
Looking good!
Also, I make sure people can change from "louie" very easily. It updates that part of the record just fine at any point.
Cheers,
Louie
umccullough
04-21-2009, 04:03 PM
My two tests completed last night, btw - and looks like they were uploaded just fine... damn, not prime ;)
I hadn't bothered grabbing any new tests yet, but I did make another tweak the client per prime95's review of the code. I had neglected to add Haiku-specific logic to alter thread priorities, thus the cruncher threads were running at "normal" priority along with the others, but now with my new client build they are dropped to the lowest possible priority as desired. It was like 3 lines of code, so I guess that's no big deal... :)
I did use this new client to finish off the two tests, so I know it works just as well. I'll probably pick up another couple tests tonight and run with them - so keep an eye for them :D
- Urias
My two tests completed last night, btw - and looks like they were uploaded just fine... damn, not prime ;)
That would certainly have been a boon for the project, the new client and Haiku! You'll have to work extra hard on these next two tests to make sure they're prime - it'll be great for publicity :thumbs:
umccullough
04-23-2009, 01:27 PM
I know this belongs in the Sieving forum, but I just wanted to say I'm pretty excited that I now have an sr5sieve/sr2sieve port running in Haiku as well, with very close performance to the Linux version.
I only had to edit Makefile, config.h, and add the priority-setting code to priority.c - EASY! I am surprised at how portable it is :)
After I do some more testing on that (running some ranges through Haiku's version and then also Linux version) I'll get that published as well.
Next on my list: BOINC... boy that's gonna be fun (I already started, but stopped when I ran into the <sys/shm.h> requirement :P )
umccullough
04-24-2009, 01:53 AM
Next on my list: BOINC... boy that's gonna be fun (I already started, but stopped when I ran into the <sys/shm.h> requirement :P )
Wow, actually wasn't as bad as I thought...although it's still a rough port:
http://picasaweb.google.com/umccullough/HaikuScreenshots?feat=directlink#5328124982622759906
umccullough
04-27-2009, 03:42 PM
jjjjl,
Any chance those two tests are done, or at least nearly done by now?
- Urias
jjjjL
04-27-2009, 07:20 PM
jjjjl,
Any chance those two tests are done, or at least nearly done by now?
- Urias
Both are being done together on a single, new machine. About 25% complete.
Nice work on BOINC too! Been enjoying the burst of new porting activity... very exciting for Haiku and the DC community!
Cheers,
Louie
umccullough
04-27-2009, 08:46 PM
Both are being done together on a single, new machine. About 25% complete.
Ah... ok..
I'm almost done with another two tests :P
After this, I'm gonna give that particular Haiku box a rest from mprime so I can do some sieving with sr2sieve (which I haven't tested much yet).
Nice work on BOINC too! Been enjoying the burst of new porting activity... very exciting for Haiku and the DC community!
Thanks :)
I'm already in discussions with the PrimeGrid admin to get their applications ported over to Haiku's BOINC when it's ready for testing/use. I still have some work to go, however, as there are some areas that are definitely OS-specific (such as the CPU/Hostinfo detection code) and I haven't fleshed them out yet.
Hopefully this week I'll find the time for that.
- Urias
umccullough
05-04-2009, 02:25 PM
Both are being done together on a single, new machine. About 25% complete.
Ah... ok..
I'm almost done with another two tests :P
Any news? They should be done by now, right? ;)
jjjjL
05-04-2009, 04:04 PM
Any news? They should be done by now, right? ;)
Both @ 86%
Good news is both had a progress report in the last 24 hours! So it looks like they are being done by someone who will finish them.
My calculations put the completion time at 38 hours from the last check-in so at least 1 more day, probably 2 before they complete.
jjjjL
05-06-2009, 10:48 AM
Both tests came back matched residues!
Email me the bundles when they're ready and I'll post them for download. :)
Cheers,
Louie
umccullough
05-06-2009, 01:57 PM
Both tests came back matched residues!
Email me the bundles when they're ready and I'll post them for download. :)
Great news! :)
I'll package them up this evening.
- Urias
umccullough
05-07-2009, 01:20 PM
Email me the bundles when they're ready and I'll post them for download.
Emailed you links to them on my FTP server late last night, let me know if you don't receive them...
Haiku doesn't come with libcurl built-in, so I also provided links to those binary packages as well. If you could mirror those packages, I would greatly appreciate it, otherwise we're still working on an official location to host binary packages for Haiku and I can get you some updated links in the near future.
- Urias
ShoeLace
05-08-2009, 09:27 AM
....
Haiku doesn't come with libcurl built-in,...
without knowing haiku.. could you not statically link it instead?
or do you think thats not worth the trouble?
jjjjL
05-09-2009, 03:50 AM
Hey umccullough --
I uploaded and posted the clients on the main download page so your work is published and available now! :)
Can you download / install them to make sure it's all working?
Cheers,
Louie
PS - Great work following through with this whole process. Very impressive and SB is grateful for your hard work doing this port!
umccullough
05-09-2009, 12:44 PM
without knowing haiku.. could you not statically link it instead?
or do you think thats not worth the trouble?
Not worth the trouble, IMO.
There are several ported apps for Haiku that *do* already require curl - it's just that nobody has formally put together a "package management" system yet, and until there is one, it's sort of a "build-it-yourself" or "find-one-already-built" situation.
Haiku is still pre-alpha software, so we can't expect it to be perfect yet ;)
umccullough
05-09-2009, 01:51 PM
I uploaded and posted the clients on the main download page so your work is published and available now! :)
Can you download / install them to make sure it's all working?
I just grabbed the gcc4 version and tested it here on a fresh install of Haiku. Interestingly, I decided to try it with the gcc2 curl, which works fine. I guess since curl is a C-only library, it doesn't have any ABI issues. I'm still going to suggest people use the appropriate version until I can confirm that mis-matching them doesn't cause any issues.
I'll test out the gcc2 version shortly, I need to prep a clean gcc2 Haiku machine first.
PS - Great work following through with this whole process. Very impressive and SB is grateful for your hard work doing this port!
Thanks, I'm really not the greatest developer or anything, but I always enjoy a challenge ;)
Thanks for being so receptive :D
umccullough
05-10-2009, 03:37 AM
Ah, one more humble request :)
Any chance we can get Haiku stats added here: http://seventeenorbust.com/stats/byOS.mhtml
That would be awesome ;)
Powered by vBulletin® Version 4.2.4 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.