SETIv8 for Linux skylake-avx512 available

Message boards : Number crunching : SETIv8 for Linux skylake-avx512 available
Message board moderation

To post messages, you must log in.

1 · 2 · Next

AuthorMessage
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938334 - Posted: 5 Jun 2018, 19:49:52 UTC

Hi everyone,

I've compiled SETI@home v8 for Linux on the skylake-avx512 architecture and I'm using it on this account. If anyone is interested, I can provide the binary and the app_info.xml to save the effort of doing it yourself (the source is a bit tricky to compile). It completes roughly 4 work units per hour on my equipment (i9-7960X@3.6GHz).
ID: 1938334 · Report as offensive
Profile Keith Myers Special Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 29 Apr 01
Posts: 13164
Credit: 1,160,866,277
RAC: 1,873
United States
Message 1938336 - Posted: 5 Jun 2018, 20:09:50 UTC - in response to Message 1938334.  

Thanks for contributing to the Linux ecosystem. I don't have any processors that can use the app but would be interested in hearing from others that do and what their results are.
Seti@Home classic workunits:20,676 CPU time:74,226 hours

A proud member of the OFA (Old Farts Association)
ID: 1938336 · Report as offensive
rob smith Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer moderator
Volunteer tester

Send message
Joined: 7 Mar 03
Posts: 22182
Credit: 416,307,556
RAC: 380
United Kingdom
Message 1938339 - Posted: 5 Jun 2018, 20:41:53 UTC

Run times look VERY slow - comparing your ~26,600 seconds against stock (Linux) app of ~7,150 seconds for the same task (and the stock app running on a much slower processor).
https://setiathome.berkeley.edu/workunit.php?wuid=3001587575

OK, you've got loads of threads running, but I would expect to see an i9 getting though a task in less than 90 minutes, so in your case about a dozen or more tasks per hour.
Bob Smith
Member of Seti PIPPS (Pluto is a Planet Protest Society)
Somewhere in the (un)known Universe?
ID: 1938339 · Report as offensive
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938340 - Posted: 5 Jun 2018, 20:57:06 UTC - in response to Message 1938339.  

Are you taking into account that I'm multitasking 32 at once? BOINC Manager says it takes 8 hours to complete 32 tasks; if that's slow, then maybe it's erroneously calculating the estimated time remaining, on which I'm basing the figure of 4 per hour.
ID: 1938340 · Report as offensive
Profile Wiggo
Avatar

Send message
Joined: 24 Jan 00
Posts: 34744
Credit: 261,360,520
RAC: 489
Australia
Message 1938341 - Posted: 5 Jun 2018, 21:00:08 UTC

It's back to the drawing board I'd say when an i9-7960X core can't keep up with an old C2Q core. ;-)

Cheers.
ID: 1938341 · Report as offensive
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938342 - Posted: 5 Jun 2018, 21:04:41 UTC - in response to Message 1938341.  

I'm skeptical about how these figures are calculated. I suspect that it's including in the run time all of the time during which BOINC is suspended. I'm doubting the BOINC implementation before I doubt the efficiency of my compiled app, but thank you both for the comments. I'd like to see how many work units you complete per hour of 100% CPU run time, as opposed to per hour elapsed, which I think is what's being considered by the implementation; I only run BOINC when I'm not using the computer.
ID: 1938342 · Report as offensive
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938344 - Posted: 5 Jun 2018, 21:10:12 UTC - in response to Message 1938342.  

I base my skepticism on this: Fraction of time BOINC is running 93.53%

It thinks BOINC is running nearly all the time, when in fact, it's running maybe 30-40% of the time.
ID: 1938344 · Report as offensive
Profile Mike Special Project $75 donor
Volunteer tester
Avatar

Send message
Joined: 17 Feb 01
Posts: 34255
Credit: 79,922,639
RAC: 80
Germany
Message 1938345 - Posted: 5 Jun 2018, 21:20:22 UTC

It seems you compiled from stock code base not optimzed.

I`m doing 14 tasks in one hour no matter on win 7 or Linux on my Ryzen.

Our Lunatics in house testing has shown that avx2 and above have no benefit for seti app.
On Linux SSE4.x is slightly faster than avx but this is host and compiler dependent.


With each crime and every kindness we birth our future.
ID: 1938345 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 14650
Credit: 200,643,578
RAC: 874
United Kingdom
Message 1938346 - Posted: 5 Jun 2018, 21:21:15 UTC - in response to Message 1938340.  
Last modified: 5 Jun 2018, 21:25:40 UTC

Are you taking into account that I'm multitasking 32 at once? BOINC Manager says it takes 8 hours to complete 32 tasks; if that's slow, then maybe it's erroneously calculating the estimated time remaining, on which I'm basing the figure of 4 per hour.
BOINC's runtime estimates are known to be unreliable in the early stages. I haven't looked to see how many tasks you have completed and validated, but a minimum of 11 ('more than 10') are required before the estimates begin to reflect reality. After that, they get to be pretty good - especially for CPU applications.

On the other hand, BOINC's time accountancy is generally pretty good from the start. If a task is showing an 'elapsed time' of n hours, you can generally believe it. If people here are seeing extended runtimes, then the runtime is long - possibly caused by running more than one task per physical CPU core.

You should perhaps get a feel for how BOINC accounts for time with the stock application running one task per core, before attempting to interpret the changes introduced by your private build.
ID: 1938346 · Report as offensive
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938349 - Posted: 5 Jun 2018, 21:25:17 UTC - in response to Message 1938345.  

Thank you, that's very helpful. I did indeed compile from the stock code base. After a google search for optimized SETI@home, I've found no optimized sources. Could you please point me in the right direction?
ID: 1938349 · Report as offensive
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938350 - Posted: 5 Jun 2018, 21:28:04 UTC - in response to Message 1938346.  

Thanks for that info. I've been told that there's an optimized code base available somewhere to compile from, which would give me better results. I've done more than 11 tasks so the estimates should be reliable in BOINC Manager. The run time figures on the website are inaccurate AFAIK, as it appears to be including suspended time.
ID: 1938350 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 14650
Credit: 200,643,578
RAC: 874
United Kingdom
Message 1938351 - Posted: 5 Jun 2018, 21:34:28 UTC - in response to Message 1938349.  

Thank you, that's very helpful. I did indeed compile from the stock code base. After a google search for optimized SETI@home, I've found no optimized sources. Could you please point me in the right direction?
Start from Porting and optimizing SETI@home. There are various generations of optimised code in the SVN repository, but you may need help from one of the existing optimised code developers (Mike has good contacts) to locate the best starting point for the current v8 search specification. Despite the name, "branches/sah_v7_opt/AKv8/client" is probably the one, but take advice.
ID: 1938351 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 14650
Credit: 200,643,578
RAC: 874
United Kingdom
Message 1938352 - Posted: 5 Jun 2018, 21:42:45 UTC - in response to Message 1938350.  

Thanks for that info. I've been told that there's an optimized code base available somewhere to compile from, which would give me better results. I've done more than 11 tasks so the estimates should be reliable in BOINC Manager. The run time figures on the website are inaccurate AFAIK, as it appears to be including suspended time.
I'd expect not - as I said, actual recorded time is usually good (though I'm Windows, not Linux). I'd suggest you let some tasks run through uninterrupted (maybe overnight?): double-check the starting and finishing times in BOINC's Event Log, and work out elapsed time for yourself.

One possible cause for the discrepancy would be if your application failed to actually suspend when BOINC gave it that instruction: use OS tools to verify that the application is truly idle when BOINC says it is suspended.
ID: 1938352 · Report as offensive
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938353 - Posted: 5 Jun 2018, 21:47:47 UTC - in response to Message 1938351.  

Thanks, I've tried compiling that version with no success. There are multiple errors on Linux; it appears to be meant for Windows. Any other advice would be greatly appreciated.
ID: 1938353 · Report as offensive
luz

Send message
Joined: 3 Jun 18
Posts: 18
Credit: 11,853
RAC: 0
Message 1938354 - Posted: 5 Jun 2018, 21:50:36 UTC - in response to Message 1938352.  

It appears that the problem is that the server isn't being told when BOINC is suspended. BOINC Manager gives me a different estimate. I'll have to gather some statistics over a longer period of time as I've only been at this for 2 days.
ID: 1938354 · Report as offensive
Profile Keith Myers Special Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 29 Apr 01
Posts: 13164
Credit: 1,160,866,277
RAC: 1,873
United States
Message 1938355 - Posted: 5 Jun 2018, 22:02:04 UTC - in response to Message 1938353.  

Thanks, I've tried compiling that version with no success. There are multiple errors on Linux; it appears to be meant for Windows. Any other advice would be greatly appreciated.

I don't think you will have any success compiling in a current Linux build. TBar, one of our main Linux/MacOS developers has stated that any Linux build past 15.04 does not compile the AKV8 SVN repository with current GCC builds. See this post
Seti@Home classic workunits:20,676 CPU time:74,226 hours

A proud member of the OFA (Old Farts Association)
ID: 1938355 · Report as offensive
Richard Haselgrove Project Donor
Volunteer tester

Send message
Joined: 4 Jul 99
Posts: 14650
Credit: 200,643,578
RAC: 874
United Kingdom
Message 1938356 - Posted: 5 Jun 2018, 22:04:20 UTC - in response to Message 1938353.  

Thanks, I've tried compiling that version with no success. There are multiple errors on Linux; it appears to be meant for Windows. Any other advice would be greatly appreciated.
It's meant to be cross-platform and portable, but the most recent authors with editing rights to the repo have been Windows-based. There was a pretty good Windows AVX build released from that branch as MB8_win_x64_AVX_VS2010_r3330.exe - the 'r' number (3330 in this case) gives you the SVN source revision which was stable at that time.

All that work was done by Raistmer - he'll probably discover this thread in the morning. I'm on UK time, so I'll sign off for tonight.
ID: 1938356 · Report as offensive
rob smith Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer moderator
Volunteer tester

Send message
Joined: 7 Mar 03
Posts: 22182
Credit: 416,307,556
RAC: 380
United Kingdom
Message 1938375 - Posted: 6 Jun 2018, 5:18:22 UTC - in response to Message 1938342.  

I'm skeptical about how these figures are calculated. I suspect that it's including in the run time all of the time during which BOINC is suspended. I'm doubting the BOINC implementation before I doubt the efficiency of my compiled app, but thank you both for the comments. I'd like to see how many work units you complete per hour of 100% CPU run time, as opposed to per hour elapsed, which I think is what's being considered by the implementation; I only run BOINC when I'm not using the computer.

The run-time is the actual time that a task is doing work, as opposed to "clock-face" time which includes any time BOINC is suspended. Run-time is generally accurate to a few seconds in an hour.

The first thing one should do in any exercise like this is to try the stock application - this way you know where you are starting from. My guess is that the stock application running on your computer would take less than 90 minutes to complete a task, or, in terms of your metric it would be completing about 15-20 tasks per hour, if not more (I'm basing my figures on an old 8 core Xeon and scaling them up to 32 cores).
Bob Smith
Member of Seti PIPPS (Pluto is a Planet Protest Society)
Somewhere in the (un)known Universe?
ID: 1938375 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1938385 - Posted: 6 Jun 2018, 7:40:11 UTC - in response to Message 1938349.  

Thank you, that's very helpful. I did indeed compile from the stock code base. After a google search for optimized SETI@home, I've found no optimized sources. Could you please point me in the right direction?

I would expect more from Google's AI ;)

Anyway, here you go: https://setisvn.ssl.berkeley.edu/svn/branches/sah_v7_opt
SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1938385 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1938386 - Posted: 6 Jun 2018, 7:47:57 UTC - in response to Message 1938350.  
Last modified: 6 Jun 2018, 7:48:21 UTC

Thanks for that info. I've been told that there's an optimized code base available somewhere to compile from, which would give me better results. I've done more than 11 tasks so the estimates should be reliable in BOINC Manager. The run time figures on the website are inaccurate AFAIK, as it appears to be including suspended time.


Much better to do more formal and stable tests with package availble here: http://lunatics.kwsn.info/index.php?action=downloads;cat=5

Compare your binary with those: http://lunatics.kwsn.info/index.php?action=downloads;cat=48

And as concluding remark: one should understand that w/o direct AVX2 instructions addition to code one will completely depending from compiler own autovectorising abilities.
And if I could believe that optimizing compiler can autoinject SIMD instead of high-level code I hardly believe it will replace already existing SIMD with another one. So, rebuild could touch only small part of existing codebase anyway.
And regarding AVX2 per se - what particular instructions SETI could use from that IA?
SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1938386 · Report as offensive
1 · 2 · Next

Message boards : Number crunching : SETIv8 for Linux skylake-avx512 available


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.