Posts by Slicker

1) Message boards : Number crunching : Rosetta support OpenCL ? (Message 66074)
Posted 11 May 2010 by Profile Slicker
Post:
When one has a hammer, everything looks like a nail, but the reality is that there is a proper tool for each type of job. While you can pound a screw in with a hammer with some success, a screwdriver works much better for that job. You can also use the handle of a screwdriver to pound in a nail, but a hammer is better suited for that task. And good luck cutting a 2"x4" board with either a hammer or a screwdriver!

Some projects will run better on a CPU and others are better suited for GPUs. Collatz runs well on GPUs because I wanted to learn about GPU programming and therefore chose an unsolved math problem that I know would run well on a GPU. Collatz needs very little external data and does the same relatively small equation over and over and over again. Since none of the results affect the next iteration of results, it runs in parallel very well.

In comparison, Rosetta uses rather large data files and loading and unloading them from the GPU memory would likely end up making the GPU app run as slow or even slower than Rosetta's CPU apps. The key to fast GPU apps is to keep all those stream processors busy and not have them waiting for data to be copied to/from the GPU. GPUs may have double precision capabilities, but they don't necessarily round the same way as a CPU does and the number of digits of precision may or may not be the same. Collatz didn't have to worry about that because it uses only integer math (192 bit integers at present, but integers none the less). Collatz was also partly chosen so people without the latest and greatest GPU hardware would still be able to utilize their GPUs while crunching with their CPUs on projects such as Rosetta.

Depending upon the project, a CPU may be the best tool for the job irregardless of how highly skilled the project developers are. It sounds like that is the case here.






©2024 University of Washington
https://www.bakerlab.org