Results 1 to 33 of 33

Thread: testing new client on Haiku

Hybrid View

Previous Post Previous Post   Next Post Next Post
  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
    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);

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

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



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

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

  12. #12
    jjjjl,

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

    - Urias

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

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

  15. #15
    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?

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

Posting Permissions

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