why I get SSE2 units on my SSE3/AVX CPU? how to force SSE3/AVX?
Message boards :
Problems and bug reports :
why I get SSE2 units on my SSE3/AVX CPU? how to force SSE3/AVX?
Message board moderation
Author | Message |
---|---|
Send message Joined: 22 Aug 15 Posts: 1 Credit: 87,360 RAC: 0 |
I mostly get SSE2 work units on my Sandy Bridge Intel Core i7-2600 CPU (which has SSE3 and AVX1 but not AVX2). I sometimes get SSE3 units too and I have seen AVX units once or twice as well, but the server seems to prefer sending me SSE2 work. Why I get SSE2 work on my SSE3/AVX CPU? How can I force SSE3 or AVX work? Is the AVX app happy with AVX1 CPUs or does it require AVX2? (Haswell New Instructions) Are the SSE3/AVX work units equivalent in terms of science output to the SSE2 units? Or do the SSE2 units implement different scientific computations that cannot be done by the SSE3/AVX apps? |
Send message Joined: 19 Jun 12 Posts: 221 Credit: 623,640 RAC: 0 |
Last modified: 13 Sep 2015, 19:20:58 UTC Are the SSE3/AVX work units equivalent in terms of science output to the SSE2 units? Of course - all apps (CPU/GPU, Windows/Linux/Android) are equivalent and tasks are the same. http://asteroidsathome.net/boinc/apps.php Why I get SSE2 work on my SSE3/AVX CPU? You have "Number of tasks completed" ~equal for SSE2 vs SSE3 http://asteroidsathome.net/boinc/host_app_versions.php?hostid=221254 At the moment server thinks the best for you is SSE3 app: "Average processing rate 159.04 GFLOPS" ... and should send mostly tasks labelled "(sse3)" There is randomizing parameter (on the server) to send from time to time not-the-best app to test the speed of that 'bad' apps again. Since different batches of tasks take different time to compute (by the same app): http://asteroidsathome.net/boinc/results.php?hostid=221254&offset=0&show_names=0&state=2&appid= ... the server may be fooled to think some app is fast when in fact the case may be that the current tasks are easier/shorter to compute. "Run time" matters (Not the "CPU time") - so if you use the computer at the same time for 'heavy' tasks (e.g. encode video) - BOINC will think the app is slow. How can I force SSE3 or AVX work? Only by app_info.xml P.S. Technical - for Advanced users: EXAMPLE of app_info.xml - DO NOT COPY BLINDLY, EDIT IT IF NEEDED - Copy the .exe files somewhere - they may be deleted by BOINC - Copy the name of YOUR .exe file and Paste in the text of app_info.xml where needed <app_info> <app> <name>period_search</name> <user_friendly_name>Period Search Application SSE3</user_friendly_name> </app> <file_info> <name>period_search_10210_windows_intelx86__sse3.exe</name> <executable/> </file_info> <app_version> <app_name>period_search</app_name> <version_num>10210</version_num> <file_ref> <file_name>period_search_10210_windows_intelx86__sse3.exe</file_name> <main_program/> </file_ref> </app_version> </app_info> ! If you have tasks on-board BOINC may just Delete them without warning if something is wrong with the app_info.xml ! - ALF - "Find out what you don't do well ..... then don't do it!" :) |
Send message Joined: 12 May 13 Posts: 2 Credit: 1,536,480 RAC: 0 |
Last modified: 8 Oct 2015, 4:20:33 UTC |
Send message Joined: 26 Sep 13 Posts: 33 Credit: 6,065,688 RAC: 0 |
Last modified: 10 Oct 2015, 7:04:26 UTC So there is no other method to force the server to use the AVX application than using the app_info.xml anonymous platform solution? I tried the modified app_info.xml method and am forcing the HP8560p to run two WU of SSE3 x64, SSE3 x86, and AVX x64 and comparing results but I want the history of WU data to be factored into the results here and not show up as anonymous since the native apps are actually being used. This method isn't going to convince the server that AVX is faster if it shows up as anonymous platform/CPU. One solution I tried was to delete all applications but the AVX 64 bit version with the result of the server refusing to send WU's. There is one solution that will work with some special care given to the machine in the first week of operations. Rename the computer so that the server starts a new data record and a new application history. This would lose this machine it's WU history though and I'm not liking that solution. EDIT: I'm going to rename the 8560p and leave it run 2 cores at top speed (Throttlestop setting the i5 to 32x clock) and use it for nothing else for a week and hopefully get the server to settle in on the AVX app. This is going to be more of a problem as the desktop market continues it's declines and BOINC is having most of it's work done by tablets and smart phones. |
Send message Joined: 26 Sep 13 Posts: 33 Credit: 6,065,688 RAC: 0 |
Last modified: 10 Oct 2015, 8:22:55 UTC My last post excluded that you'd need to rename the machine after a fresh install of a new OS (yeah, huge omission, sorry). It should be possible to get away with not having to install a new OS and I'll post what was necessary to accomplish that after I figure it out. You just need to get a new Host ID for the machine.
|
Send message Joined: 26 Sep 13 Posts: 33 Credit: 6,065,688 RAC: 0 |
Last modified: 10 Oct 2015, 9:59:02 UTC Update: The OS certainly did not need to be reinstalled. All that had to be done to get the AVX app working the data on the 8560p, is change the computer name, copy the project folders to a safe place, then uninstall BOINC with an uninstaller (like Revo) to make sure all registry entries are removed (the uninstall and reinstall might be unnecessary and only a project remove/re-add or reset might be all that is needed), reboot the machine then reinstall BOINC and finally copy the old BOINC folder back to restore the other projects work making sure not to copy over newer files from the new installation. This is the old HOST ID for the HP 8560p a new Host ID named 8560p was created. A problem occurred that upon clicking update, the server decided to send 18 WU's and then choice to use the SSE2 app to compute on them. It only downloaded the period_search_10210_windows_x86_64__sse2.exe application. I reset the project and clicked update and then 42 new WU's came down, along with the period_search_10210_windows_x86_64__AVX.exe executable, and are being worked on by the AVX app. Wish that resetting the project was enough on the old installation. The 1090t machine is supposed to be using SSE3 for optimal data crunching but is using SSE2 so I'll try just doing a project reset, then a name change+project reset and see if that fixes it's problems. Update2: I tried various combinations of resetting the Asteroids@Home project, removing the project then re-adding, then resetting it on the 1090t machine but the server refuses to use SSE3 application on the WU's. I'll have to change the machine name, and possibly only need to remove Asteroids@Home then re-add it and reset the project. The reinstall is probably unnecessary too. |
Send message Joined: 19 Jun 12 Posts: 221 Credit: 623,640 RAC: 0 |
just need to get a new Host ID for the machine Warning: this is not advice for anyone - this is only explanation how to change hostid if you want this for any reason You will probably lose your tasks (that are currently in the computer) *** The only thing needed to change hostid (to a newer one) is to alter rpc_seqno in client_state.xml Exit BOINC Copy client_state.xml (to have backup in any case) Edit client_state.xml by Notepad Find rpc_seqno: <rpc_seqno>28371</rpc_seqno> * !!! Be sure you found the correct <rpc_seqno> for the project you want to generate new hostid In this case <rpc_seqno> will be near line: <master_url>http://asteroidsathome.net/boinc/</master_url> Change rpc_seqno backwards. From the above example (which is from my client_state.xml) you may make it e.g.: <rpc_seqno>28355</rpc_seqno> Save client_state.xml Start BOINC Click [Update] for the project Look in Event Log (Ctrl+Shift+E) to see what happens - ALF - "Find out what you don't do well ..... then don't do it!" :) |
Send message Joined: 26 Sep 13 Posts: 33 Credit: 6,065,688 RAC: 0 |
Last modified: 15 Oct 2015, 13:56:35 UTC
I tried your method and it didn't change the HOSTID. For the Moo! WU the entry looked like: <rpc_seqno>29</rpc_seqno> which I changed to <rpc_seqno>22</rpc_seqno> then started BOINC and reset the Moo! project. Now it's <rpc_seqno>0</rpc_seqno> with the same HOSTID and new set of WU d/led. Also tried changing the <HOSTID>32476</HOSTID> to another number but of course that would only change if it was a HOST already attached to my account ID. Next attempt at correcting this, without reinstalling BOINC, was to do some maintenance of merging the two 1090t HOSTID's into one and now the SSE3 has an average turn around of 1.17 days while the SSE2 has 1.14 days. There are 8 WU's sitting in queue and suspended. Will the SSE2 average climb to greater than 1.17 as those SSE2 WU's sit there suspended while 24 to 48 hours passes without any WU coming back? I calculated that if these 8 WU are allowed to start after 3 days then my average on 310 WU should then exceed 1.18 days turn-around and then would be greater than the SSE3 1.17 days and get the server to d/l SSE3 WU's. So in 3 days I'll either have SSE3 WU or reinstall BOINC. It would be nice if the faster HOSTID tactic worked. |
Send message Joined: 19 Jun 12 Posts: 221 Credit: 623,640 RAC: 0 |
which I changed to <rpc_seqno>22</rpc_seqno> then started BOINC and reset the Moo! project. Where did I say "reset the project"? I said: Click [Update] for the project Resetting the project deletes almost all info about it including the edited rpc_seqno (that's why you see <rpc_seqno>0</rpc_seqno>) Try again Notes: rpc_seqno = Remote Procedure Call _ Sequence Number Changing rpc_seqno backwards is considered "cheating" by BOINC server - it thinks user uses 2 computers with the same HOSTID (which may happen if you copy files (BOINC Data directory)) So the server "punishes" you generating new HOSTID - ALF - "Find out what you don't do well ..... then don't do it!" :) |
Send message Joined: 26 Sep 13 Posts: 33 Credit: 6,065,688 RAC: 0 |
Last modified: 17 Oct 2015, 22:04:00 UTC Followed the steps again for Moo! project (I forced Asteroids to send SSE3 by aborting an entire day of SSE2 WU's, since server refused to send SSE3 even when SSE2 turn-around was 1.18 days>1.16 days for SSE3) Stopped BOINC Edit <rpc_seqno>29</rpc_seqno> to <rpc_seqno>11</rpc_seqno> Save client_state.xml restart BOINC BOINC updated Moo! automatically upon restart. Log file reads:
Clicked Update on Moo! project and event log reads:
Checked Moo! account to see No new HOSTID's created Checked the client state file to find <rpc_seqno>1</rpc_seqno>. Have you tried this since version 3.6.9 came out? ------------------------ Correction to above post: New 8560p HOSTID created |
Send message Joined: 19 Jun 12 Posts: 221 Credit: 623,640 RAC: 0 |
Last modified: 19 Oct 2015, 6:08:24 UTC Version 3.6.9 of what? I never needed/wanted to try it but sometimes this happens on its own. See how on ~ 17 Jul 2014 I had >100 new hostids created (I deleted most of them): http://wuprop.boinc-af.org/hosts_user.php?sort=rpc_time&rev=0&show_all=1&userid=5849 Happens (maybe) when Internet is not working good - "theory" is one Scheduler request is delayed somewhere on the Internet, second Scheduler request is sent OK, then the first is "unlocked" and reaches the server. Server see out of order Scheduler requests (lower rpc_seqno reaches the server after higher) and generates new hostid Another example and (opposite) advice "How to revert to an older HostID number?" http://setiathome.berkeley.edu/forum_thread.php?id=77248&postid=1673215#1673215 Claggy: "As i said, you can't just go and revert to a copy of Boinc with less contacts than the server knows about, it'll eithier give you a new host id, or abandon your work," http://setiathome.berkeley.edu/forum_thread.php?id=71398&postid=1356918#1356918 HAL9000: "From time to time I generate new IDs for my machines": http://setiathome.berkeley.edu/forum_thread.php?id=77248&postid=1673473#1673473 But maybe the server is sometimes "too smart" - you may need to change also the computer name? I think Josef W. Segur knows the source code of BOINC server and may definitely tell the conditions needed for a new hostid - if you want to PM him: http://setiathome.berkeley.edu/show_user.php?userid=276784 Or post at SETI@home Number Crunching - ALF - "Find out what you don't do well ..... then don't do it!" :) |
Send message Joined: 26 Sep 13 Posts: 33 Credit: 6,065,688 RAC: 0 |
Last modified: 8 Nov 2015, 18:41:41 UTC Version 3.6.9 of what? That was a typo for 7.6.9 of BOINC manager.
Yeah, I tried and succeeded to change the HostID to a previous version with just a simple edit of the state file.
He states: "and change the <rpc_seqno> number for Seti to one or two [i]greater[/i] than what the Computer details page says, restore Network connectivity,..." Which is not what I tried. I set the rpc_seqno to a lesser number and the network was probably running at the time. This may very well be the solution to setting the sequence a not yet achieved number, instead of to a past sequence.
That's what I was wondering if you had attempted it since client 7.6.9 had been released and maybe the server side HostID assigning code has also changed since 2014.
I'll try this again sometime but for this event I just reinstalled BOINC to a different directory and changed the computer name. Reinstalling BOINC to the same directory without cleaning the Registry of all BOINC traces would just come back with the same HostID. I didn't try the case of keeping the computer name the same and installing to a new directory to see if both variables were necessary. Results of the new HostID and experiemnt with 3 methods to calculation Asteroid@home data: Asteroids@Home offers up SSE2, SSE3, AVX code and after getting the new HOSTID the server sent down hundreds of SSE2 and AVX's for the Dell e5420 and the HP8560w but sent only requested 1 SSE3 WU to the HP. I set the Anonymous client to test SSE3 speed but the data sets from day to day would be slightly different so I'm still not sure which algorithm is fastest on this HP8560w i5 2nd gen. It appears that AVX ~5%>SSE3 ~5%> SSE2 when running 4 WU BUT the other 2nd Gen i5 (e5420) is running 1 WU at a time and the SSE2 seems to be beating SSE3 and AVX and the server has locked in SSE2 on that other machine. Either Asteroids@Home has more efficient code for SSE2 that allows multi-threading even though 1 core is chosen in BOINC settings or the CPU uses burst mode more often on SSE2 algorithms. SSE2 being faster in single WU mode surprised me. |
Send message Joined: 19 Jun 12 Posts: 221 Credit: 623,640 RAC: 0 |
That's what I was wondering if you had attempted it since client 7.6.9 had been released and maybe the server side HostID assigning code has also changed since 2014. This function do not depend on version of BOINC client, only on "server side HostID assigning code" It was/is discussed here: "How Do You Assign A Cruncher A New Computer ID?" http://setiathome.berkeley.edu/forum_thread.php?id=78418 Seems the server side "host recognition has been tightened": http://setiathome.berkeley.edu/forum_thread.php?id=78418&postid=1739028#1739028 I don't know when they changed the code (may be year ago??) but should not be connected to any BOINC client version release - ALF - "Find out what you don't do well ..... then don't do it!" :) |
Message boards :
Problems and bug reports :
why I get SSE2 units on my SSE3/AVX CPU? how to force SSE3/AVX?