ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Supercomputing Performance using Graphical Processing Units(GPU)

Updated on April 7, 2011

Supercomputing For Cheap

For many, Supercomputers thew up vivid images of a huge room with towers of hardware, cables and power supply cables. These rooms looked scary but also evoked a sense of power and awe. These mean machines could crunch numbers at scary speeds. Till parallel processing came, Cray Computers were the fastest machines humans could build with exotic technologies like liquid nitrogen cooling to speed up things ( there are many technologies that go into making a supercomputer, but I shall not delve into it at present). These machines were very expensive, costing millions of dollars and were used to solve highly complex problems like Weather Simulation & modeling, Molecular dynamics, Genome mapping, Fluid Dynamics etc.

But with the maturing of parallel computing, scientists and designers realized that single processor or even some multiple processors could do only so much. They were not scalable beyond a certain point and required expensive exotic technologies to cool the processors and the associated circuits. Therefore building a supercomputer was pretty much out of reach of most organizations in the world. Then came the brilliant idea of harnessing the power of multiple processors, working in parallel to solve a problem. Parallel Computing has its drawbacks and challenges and requires applications to be reprogrammed to harness its full power, but,it also has the potential to bring supercomputing performance in the hands of the masses. However, using many single single core processors was also turning out to be expensive and interconnects for transferring data between them were becoming the new bottlenecks to scaling up speeds. In the mean time, gamers were driving the industry to give them hardware to render their computer games in greater detail and with higher refresh rates. As the games increased in complexity, the default graphics cards were not able to crunch numbers to render the graphic intensive scenes. 


Requirement for Dedicated Graphics Processors

So why do we need dedicated graphics processors? To put it in perspective, lets say a room in a game is made of 1000 points, with each point being represented by 32 bits. The room has walls, the walls have texture, therefore, these textures can be represented again by a combination of polygons (generally triangles as to represent every part of a wall by a point would mean that every wall would need millions of points to render it and that would need enormous memory and computing power. Therefore, triangles are used to model such surfaces to reduce the number of points required to render but at the cost of detail). That is why computer games have figures that look odd with pointed surfaces as they have been modeled using triangles. 

Now if you have to move this figure, you have to transpose every point of the triangle that makes this image by the amount of movement desired by the user. Therefore its new position has to be calculated. In order to keep the movement smooth, the image is refreshed multiple times so that to the human eye the movement looks fluid and not jerky. All this was pure maths and required tremendous memory capacity and computing power which the regular processors were not able to handle. Therefore special purpose cards called Graphics Processing units came into existence. These were separate cards which were fixed on to the PCI/AGP bus and computer games used these cards to do the number crunching when they were executed by the CPU's. Therefore, for eg, when Need for Speed is executed on the computer, the main processor would hand over the processing to the GPU for rendering and playing by the user. These cards (GPU's) had multiple processors, dedicated memory and faster interconnects that enable real time rendering. As hardware technology improved more processing cores were added to the GPU's along with memory and faster interconnects and efficient architectures to make these cards high performance computing devices. The processing cores on GPU's were not the complex processors like Pentium 4 or Core2Duo, but were streamlined for floating point computations with a far reduced instruction set. This meant that the Computer games had to be designed to leverage these multiple processors so that game rendering and refresh rate would be extremely fast and enjoyable. 

 

Harnessing Power of GPU's

But then considering that GPU's are not used most of the times and in order to leverage these processing cores for normal computation, NVIDIA came up with CUDA. To know more about CUDA visit this site:-

http://www.nvidia.com/object/what_is_cuda_new.html

Basically what CUDA does is to give an interface to the programmer to make use of the GPU cores. In programming language parlance, its an API (Application Programming interface). For eg A programmer downloads the CUDA development framework, installs its on his PC, ports his application using the CUDA calls to hand over processing to the GPU's (he also has to parallelize his code to make use of multiple cores), and hey presto- Application speedup!! Its not as simple as it sounds however, its far more easier than making a conventional supercomputer. Therefore, if you buy some high end motherboards from say Supermicro with 8 pci express slots, buy four GTX 295 or GTX 460 cards (only four can go as one card eats up 2 slots), put in a i7 processor, with some heavy duty SMPS's to take care of the GPU cards buy some custom made liquid cooling stuff from Koolance, to dissipate the heat generated and hey presto again, you have a 2-3 teraflop supercomputer for about $4000. Hows that.!!!!

There has been tremendous interest in this field and many organizations have started making their own rigs. THis article by the Fraunhofer institute gives a great overview on this technology. The flip side is that hackers can also use this technique to improve their processing power for cryptanalysis.

What I have brought out above is just the tip of the iceberg and one possible way to make such a rig. There is another competing framework called OPENCL (which as the name suggests is open standards and supports a plethora of cards). Just visit the site for more information. Stay tuned for more on this particular technology.

 

Comments

    0 of 8192 characters used
    Post Comment

    • profile imageAUTHOR

      movingfinger 

      5 years ago

      Well... there are many links to do it.. u need to let me know what u exactly want and I shall tell u the way to do it..

    • profile image

      technogeek 

      5 years ago

      Interesting article .. and achievable at home. keep such articles coming. do u have a hands on guide which I can use to make such a machine.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)