At present time I am crunching h1_1028.60_S5R4_693_S5R6a using app Hierarchical S5 all-sky GW search #6 S5R6a. Is this app the current version, and is there an optimized app available? Also, for ABP1 my two apps are 3.10 and 3.12, both einsteinbinary, windows, intelx86. Are these the current versions, and are there optimized apps? Thanks, Steve
Copyright © 2024 Einstein@Home. All rights reserved.
Current Version and Optimized Apps
)
There are two separate links on the front page. One lists the current official applications, including the date they were released. The other link is to the beta test program where any new (and perhaps improved/faster) apps will be announced and made available.
At E@H, the usual procedure is to test new apps through a beta test using the AP mechanism by way of an appropriate 'app_info.xml' file. If you check the beta test link you will find that right at the moment, there are no such apps under test. The most efficient apps currently available are, therefore, the official apps that your machine downloads automatically.
If you are not using the listed official apps, you must have failed to cancel an old beta test participation. The easiest way to cancel out of an old beta test is to set NNT and allow your cache to drain and be reported. Then stop BOINC, delete app_info.xml (and nothing else) and restart BOINC. If you don't immediately automatically download the new apps, just select the E@H project in BOINC Manager and click 'update'. You may need to do this twice (after a short delay - 1 min) if you get a message about no tasks available.
Cheers,
Gary.
Hi! The term "optimized
)
Hi!
The term "optimized app" is used in many ways in the BOINC-world, so maybe some explanation is in order.
If "optimized app" is meant to be an app that is not distributed automatically by the project (but either by a third party or as a beta test app by the project) and is faster than the official (stock) app (you see this kind of third party apps a lot at SETI@HOME) then the answer is NO, there are no such apps for E@H at the moment.
If (perhaps more fitting) "optimzed app" is meant to be any app that was written to take advantage of special CPU capabilities that some CPUs have and others don't (="optimzed for feature XXX"), then YES, the offical apps are optimized apps:
S5R6 for Windows and Linux : The app is distributed as a combo of 3 variants, the best variant for a given hardware is automatically chosen:
a) "unoptimized" app runs an virtually all x86 CPUs (since the 486, I guess)
b) SSE optimized app: runs on Pentium 3 and later (intel) and Athlon XP and later (AMD)
c) SSE2 optimized app: runs on Pentium 4, Pentium M and later, and Athlon 64 and later
S5R6 for OSX (Intel): All Intel Macs support at least SSE2, so the apps are always "optimzed" for SSE2, if you want to call it that way
S5R6 for OSX (PowerPC): there's an optimized app for AltiVec capable Macs
ABP1 (Windows and Linux):
The app takes advantage of SSE
ABP1 (OSX Intel):
same as with S5R6
The ABP1 app's optimization is left to the compiler, while the S5R6 was "handoptimized" to use SSE vector instructions in handcrafted assembly code, most of it derived from the work that Akos has done in his legendary optimized apps. So his optimizations continue to benefit the offical apps until today.
CU
Bikeman
RE: Hi! The term
)
Thanks for the explanation, Bikeman. So, in my ...projects/einstein.phys.uwm.edu folder I have 3 apps: einstein_S5R6_3.01_windows_intelx86_0(or 1)(or 2).exe. Since I have an Athlon-XP-M, which is SSE capable, can I assume that the _1 version was chosen? BOINC Manager just lists the app as Hierarchical S5 all-sky GW search #6 3.01.
Steve
RE: Thanks for the
)
Correct. Open task manager, go to the processes tab. You'll see the _1.exe running there.
It's also visible in the
)
It's also visible in the logging output of the S5R6 tasks, e.g. here
http://einsteinathome.org/task/149137610
Happy Crunching
Bikeman
RE: It's also visible in
)
I see what you mean. But the link you provided was for a completed task. The app appears in the 7th line down, as well as elsewhere. For the current task there's not nearly as much detail. In fact the application version is given as ----- in the last line. Can you tell me why there is so little detail? Also, can you tell me how using SSE imparts an advantage? TIA
Cheers, Steve
RE: RE: It's also visible
)
For unfinished work, there is no way BOINC can predict the version, and the log is only sent to the server after the WU has finished. But you can be assured that if one job used the *_1.exe variant, all will do.
SSE stands for Streaming SIMD Extensions and is an extension to the rather ancient x86 CPU instruction set.
SSE has (among other things) instructions that can perform the same arithmetic operation on 4 different operands in one go, e.g. multiply 4 numbers pairwise to another 4 numbers(SIMD = single instruction, multiple data).
If the computation allows this kind of grouping, the potential for speed-up is obvious: less instructions , less clock-cylcles.
However, it was not until the Core2 (Intel) and Phenom (AMD) series CPUs that CPUs would fully use this parallelism, as older SSE-capable chips like the Pentium 3,4 or Athlons would internally divide the 128 bit wide SSE instructions into two 64 bit wide instructions. But even that's better than without SSE, of course.
CU
Bikeman
RE: I see what you mean.
)
The database server doesn’t know exactly what application is working on a task while it’s in progress; it’s up to the download server to make sure the client has an appropriate app when sending out work. Most of the information you see in a completed task comes from the result file that was uploaded at the end of the computation.
I know next to nothing about how it works, but I believe the general idea is that such features allow groups of similar computations to be performed in parallel rather than serially. For a simple-minded example, suppose you need to multiply each of the numbers 2, 3, 5, & 9 by 7. Assuming your calculator has enough digits, you could just multiply the number 2030509 by 7, yielding 14213563, in which each pair of digits represents one of the answers. Where the computation is ‘expensive’ in terms of CPU-time, the ‘overhead’ from concatenating the operands and breaking down the result is more than compensated for by the savings obtained from doing only one calculation instead of four.
RE: Can you tell me why
)
A task cannot be sure, in advance, of the details of exactly how it will be crunched. In other words, it's just a common template suitable for all hosts whose details will be filled in by your particular client at the time it is crunched. That's why you have to look at returned results if you want to see all the nitty gritty details.
If you remember the bad old days of Intel's 486 processor you may recall there were two versions, a 486SX and a 486DX. The former had no hardware to do floating point and relied on emulation of the hardware in software. The 486DX had a hardware FPU and was therefore much faster if floating point was involved. Similarly, modern processors with SSE, SSE2, etc instructions can perform complex calculations much faster than if those instructions had to be emulated. The cleverness of the E@H approach is that the 'switcher' app will always choose the crunching program that best matches the capabilities of your processor quite automatically without you having to make any decisions whatsoever.
EDIT: Looks like a bunch of us decided to pen a reply at much the same time :-). I guess the OP can really get a quite diverse set of answers to his questions. That should help confuse him no end :-).
Cheers,
Gary.
RE: RE: Can you tell me
)
Thank you all for taking the time to answer my questions.
Happy crunching, Steve