You can email them to woltman@alum.mit.edu
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?
You can email them to woltman@alum.mit.edu
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
- Urias
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
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.
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 infoI 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"
oh, TOTALLY, yes...I would definitely appreciate some sanity checking of the tests.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?
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 - so, I basically just updated the bits that needed to be haiku-specific, and it *just worked*, I was totally amazed
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.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.
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
Just for kicks, I threw a couple screenshots of it in picasa:
http://picasaweb.google.com/lh/photo...eat=directlink
and
http://picasaweb.google.com/lh/photo...eat=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
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.
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);
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.
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
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..
Heh, yes, I was trying pretty hard there for a couple years
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.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..
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
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
- Urias
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 )
Wow, actually wasn't as bad as I thought...although it's still a rough port:
http://picasaweb.google.com/umccullo...24982622759906
jjjjl,
Any chance those two tests are done, or at least nearly done by now?
- Urias
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).
ThanksNice work on BOINC too! Been enjoying the burst of new porting activity... very exciting for Haiku and the DC community!
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
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.
Both tests came back matched residues!
Email me the bundles when they're ready and I'll post them for download.
Cheers,
Louie
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
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!
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
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.
Thanks, I'm really not the greatest developer or anything, but I always enjoy a challengePS - Great work following through with this whole process. Very impressive and SB is grateful for your hard work doing this port!
Thanks for being so receptive
Ah, one more humble request
Any chance we can get Haiku stats added here: http://seventeenorbust.com/stats/byOS.mhtml
That would be awesome