Friday, June 29, 2012

Optiplex 745 Signing on

In my very first blog post I mentioned that I was expanding my "farm" and the first machine I got almost solely for the purpose of crunching number ( will likely be used as a back up machine too), is an Optiplex 745 which in among itself is not the highest powered tower available. But as my second post indicated I got a CUDA enabled GPU with 144 CUDA cores, a nvidia GT 440, which at 80 dollars seems quite resonable, especially for a GPU that can still be used on a Machine that has only a 305 Watt PSU. As I also needed to buy a hard drive for the machine which otherwise I got for practically free due to some wonderful friends in IT, I needed to equip this machine with a brand new OS, what better than Linux? Swayed in my linux choice from my long time tech mentor and college roommate for 3 of 4 years of undergrad, I of course went with Ubuntu, and booted it from a flash drive.

The installation process, went easy. Way too easy, until I thought I got everything up and running, and BOINC could not recognize my graphics card. I was about to be PO'd because everything said this card should work, and I did not spend 80 dollars just so I could use HDMI cables rather than a Dell specific DVI format. Well a little bit of Google foo, lead me to a page that was incredibly helpful, but somehow I can not find at all when searching from my Windows PC. I swore it was under the Ubuntu help forums.

Well, let me just say getting CUDA up and running took my otherwise pain free set up and start up process, and turned it into a major pain. I have no problem working with a terminal, but so much of everything I had form the page to set it up was type these two commands, then wait 5 minutes, type two more commands, and wait another 5 minutes, until eventually you get to the compiling process of the entire SDK, which I almost wish I timed it, well lets just say for anyone that goes through this process, when you set it to compile, you might as well find something else to do for awhile, and just make sure you can look at it every 10 or so minutes to see if it is done. Sadly though the first and second time I tried to go through and get everything working, it failed. When I went to test to make sure the install worked properly I got an error. Thankfully the third time is the charm, and it is now happily crunching away.

While I personally love linux, and while it is becoming more and more user friendly, so much so, that I think the average user could get around and navigate just as well on a linux PC as they can on a Windows or a Mac ( after the brief adjustment phase), it sadly is still true that you can not really do any sort of heavy lifting in Linux without a little bit of knowledge in using the Terminal/ Command Line. Whereas Windows and Mac have gotten to the point that most people with those machines do not even know those things exist on their machines.

Tuesday, June 26, 2012

Why you should care about CUDA

I by no means started crunching projects expecting to get any sort of reward out of it other than knowing that I helped progress science. But lately I have found I have gravitated towards projects that offer some sort of reward, even if it is a measly graphic "badge" recognizing some level of accomplishment in the crunching. I do not know why but its nice to feel like you are getting recognized even with relatively little effort from the people running the project. A step up, is GPU grid offers two types of badges, level badges, which are based solely on credit towards the project, and publication badges, something that appeals to the academic in me, as these badges link to a specific scientific publication, and let you know how much you helped contribute to the science in that publication.

Possibly the most substantial reward I have yet to come across directly to the owners of the machines crunching the projects is done by Einstein at home. If you are the discoverer of a new pulsar you get rewarded with a nice framed certificate. For example a picture they shared from the last batch they sent out is here.

So I actually encourage projects to find some way you can quantify and reward their participants, even if it is in some completely small way. Also in my personal opinion the more you can tie it to success in a project the better. Currently the only badge I have is one for Harmonious Trees under Yoyo@home which appeals to the graph theorist in me, and I actually know some recent Ph'D students whose dissertation is in a closely related area of graph theory. Instead of just giving me a badge based on the number of credits crunched, it would be nice if they could "estimate" how many trees I found a Harmonious coloring for. Granted based on the projects this can get quite hard as I understand for some topics it may split that one task into many many projects to send out to the participants.

Monday, June 25, 2012

Expanding the Farm

If you want to use GPU's to crunch projects, and are a fan of NVIDIA graphics cards, then CUDA is essential, and might as well be your best friend for your crunching projects. CUDA is a parallel computing architecture which makes programs written in higher level languages (C and above, but mostly C) to be able to be executed on a GPU easier than it ever has been before. If you have a CUDA enabled GPU there is one more important bit of information which you should look for. This is the number of CUDA cores. As I do not yet have a GPU crunching projects yet, I am a bit unsure if CUDA cores behave similar to CPU cores for crunching BOINC projects. ( Intuition tells me no, but if it is yes I will be pleasantly surprised, as it is very easy to get GPUs with a substantial number of CUDA cores).

I've spend some time Googling, but sadly I can find no direct comparison for ATI/ AMD graphics cards. But this does not mean that they can not be used for crunching projects. For anyone looking to use GPU's to crunch projects there is this very helpful resource. In case anyone didn't really want to click the link, it sounds like it is mostly any AMD R600 or R700 platform GPU or later.

One last thing to note, not sure it matters with most semi-recent GPU, but for BOINC projects the card will need to have 256MB or memory designated to the card itself. This memory limit is the bare minimum for most projects ( even for standard CPU processing), with some projects needing more than to run on any given processor.

One more small fun fact about GPU and crunching projects. Most commercial CPU on the market today if not all of them top out at less than 100 GFLOPs even with overclocking. While it is easy to find a GPU for around 100 dollars that easily breaks 100 GFLOPs, if not several times that. A small reminder a FLOP is a floating point operation, the small s denotes that its a measurment of how many of them per second, and the G is Giga with the typical meaning of that prefix in the computing world.

World Community Grid Signature