Results 1 to 33 of 33

Thread: testing new client on Haiku

  1. #1

    testing new client on Haiku

    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?

  2. #2

  3. #3
    Quote Originally Posted by prime95 View Post
    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

  4. #4
    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

  5. #5
    Quote Originally Posted by jjjjL View Post
    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

    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 - 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

  6. #6
    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

  7. #7
    Those screenshot bring me back.

  8. #8
    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.

  9. #9
    Quote Originally Posted by umccullough View Post
    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
    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);

  10. #10
    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.

  11. #11
    Quote Originally Posted by prime95 View Post
    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

  12. #12
    Quote Originally Posted by umccullough View Post
    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

  13. #13
    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..

  14. #14
    Quote Originally Posted by jjjjL View Post
    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"

  15. #15
    Quote Originally Posted by enderak View Post
    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

  16. #16
    Quote Originally Posted by umccullough View Post
    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

  17. #17
    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

  18. #18
    Quote Originally Posted by umccullough View Post
    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



  19. #19
    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 )

  20. #20
    Quote Originally Posted by umccullough View Post
    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

  21. #21
    jjjjl,

    Any chance those two tests are done, or at least nearly done by now?

    - Urias

  22. #22
    Quote Originally Posted by umccullough View Post
    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

  23. #23
    Quote Originally Posted by jjjjL View Post
    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

  24. #24
    Quote Originally Posted by jjjjL View Post
    Both are being done together on a single, new machine. About 25% complete.
    Quote Originally Posted by umccullough View Post
    Ah... ok..

    I'm almost done with another two tests :P
    Any news? They should be done by now, right?

  25. #25
    Quote Originally Posted by umccullough View Post
    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.

  26. #26
    Both tests came back matched residues!

    Email me the bundles when they're ready and I'll post them for download.

    Cheers,
    Louie

  27. #27
    Quote Originally Posted by jjjjL View Post
    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

  28. #28
    Quote Originally Posted by jjjjL View Post
    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

  29. #29
    Quote Originally Posted by umccullough View Post
    ....
    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?

  30. #30
    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!

  31. #31
    Quote Originally Posted by ShoeLace View Post
    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

  32. #32
    Quote Originally Posted by jjjjL View Post
    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

  33. #33
    Ah, one more humble request

    Any chance we can get Haiku stats added here: http://seventeenorbust.com/stats/byOS.mhtml

    That would be awesome

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •