Differences between two applications
log in

Advanced search

Message boards : Science : Differences between two applications

Author Message
Jesse Viviano
Send message
Joined: 11 Feb 11
Posts: 5
Credit: 1,181,483
RAC: 0
Message 11421 - Posted: 11 Feb 2011, 18:00:05 UTC

I noticed these two collatz applications which are giving me questions:


  • Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU version 2.00 which was installed into this project on 13 Sep 2009 16:01:09 UTC
  • Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU version 2.00 (sse) which was installed into this project on 13 Sep 2009 16:01:09 UTC


If you know anything about the AMD64 (aka x86-64, EM64T, and Intel 64) architecture, you would know that SSE2 (which includes SSE) is guaranteed to be present because AMD made SSE2 into the standard FPU for AMD64, extended SSE2 to 16 registers, and deprecated the x87 FPU in 64-bit mode, so OS support for saving the x87 FPU's contents is not guaranteed for 64-bit applications.

Therefore, my questions are as follows: What are the differences between the two, and why do we need both of them? I would think that you could have just one of them and get rid of the slower one. The same thing could be asked about the mini-collatz applications.

Jesse Viviano
Send message
Joined: 11 Feb 11
Posts: 5
Credit: 1,181,483
RAC: 0
Message 11449 - Posted: 14 Feb 2011, 5:51:34 UTC

I just noticed that the "64-bit" applications are just rereleased 32-bit applications by looking in the task manager and noticing the *32 next to its process name. Since SSE is guaranteed to be in 64-bit x86 processors because it was included as part of AMD's definition of AMD64 which Intel then mostly copied, why isn't the SSE application sent for regular collatz CPU work units to 64-bit clients and only is sent for mini-collatz CPU work units?

Jesse Viviano
Send message
Joined: 11 Feb 11
Posts: 5
Credit: 1,181,483
RAC: 0
Message 11450 - Posted: 14 Feb 2011, 6:12:01 UTC

The reason I am interested is that I am running into EDF mode on the non-SSE regular collatz work units. If SSE was used like in the mini-collatz application, I think that I would not get into this situation.

Profile mikey
Avatar
Send message
Joined: 11 Aug 09
Posts: 3246
Credit: 1,702,038,888
RAC: 4,764,822
Message 11456 - Posted: 14 Feb 2011, 12:20:43 UTC - in response to Message 11450.

The reason I am interested is that I am running into EDF mode on the non-SSE regular collatz work units. If SSE was used like in the mini-collatz application, I think that I would not get into this situation.


What is "EDF mode" is that deadline troubles? If so a smaller cache would help alot.

Profile Slicker
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist
Avatar
Send message
Joined: 11 Jun 09
Posts: 2525
Credit: 740,580,099
RAC: 1
Message 11467 - Posted: 14 Feb 2011, 23:12:30 UTC

If you do a binary comparison of the two apps you will find out that they are the same exact app.

We don't need both of them. I just got tired of people running 64-bit machines thinking they were getting cheated because the 32-bit app had an SSE version and the 64-bit didn't because, as you said, in order to be 64-bit it also has to have SSE and SSE2. So I simply copied it and renamed it to "SSE". It's kind of like the security in the airports. It doesn't really help, but it makes people feel better. :-)

Jesse Viviano
Send message
Joined: 11 Feb 11
Posts: 5
Credit: 1,181,483
RAC: 0
Message 11472 - Posted: 15 Feb 2011, 11:01:52 UTC - in response to Message 11467.

I did not know that. I thought that I was being given the non-SSE application. I guess that this means that my initial guess as why I am going into EDF mode is ruled out. I am now noticing that the deadlines set on the regular application are probably too low, or they were set with non hyper-threading processors in mind like the Core 2 series. Hyper-threading improves work unit throughput, but lengthens the compute time of each one individually.

By the way, has anyone tried to write a true 64-bit application to see if it offers any significant performance benefits on various processors? Because both the SSE unit and the integer unit in 64-bit mode can now operate with 64-bit integers instead of only the SSE unit which is the only unit that could handle 64-bit math directly in 32-bit mode, could this lead to more speed due to having the integer unit and the SSE unit working in parallel? The numbers shown at http://boinc.thesonntags.com/collatz/highest_steps.php certainly exceed the 64-bit width of a 64-bit processor's integer unit, but the same limitation applies to SSE, which cannot handle 128-bit integers directly. However, the 64-bit register is only exceeded once with such numbers, while these numbers would exceed a 32-bit register many times over making the SSE unit the only viable location to handle such numbers in 32-bit x86, and that 64-bit x86 would handle these numbers with a small amount of difficulty.


Post to thread

Message boards : Science : Differences between two applications


Main page · Your account · Message boards


Copyright © 2018 Jon Sonntag; All rights reserved.