Archive for the “Featured” Category

From Central-Processing on the CPU to Co-Processing on CPU & GPU

Hope you have read

Will The GPU Replace The CPU Or Will It Be The Other Way Around?


Here we discuss about the coordinated and synchronized use of CPU and GPU to improve efficiency of applications even further than using either device independently. This is made possible with the help NVIDIA’s parallel computing architecture, CUDA.

Computing is evolving from “central processing” on the CPU to “co-processing” on the CPU and GPU. To enable this new computing paradigm, NVIDIA invented the CUDA parallel computing architecture that is now shipping in GeForce, ION, Quadro, and Tesla GPUs, representing a significant installed base for application developers.

CUDA parallel computing architecture which is now being shipped with GeForce, ION,Quadro and Tesla GPUs ,make the new computing paradigm possible. The CUDA architecture’s applications can now be found in Medical Simulations like in analysis of CT and MRI scan images, Fluid Dynamics Simulation, Seismic Analysis and much more. The buzz is that in the near future itself almost every application which uses video rendering will be accelerated by CUDA.

With the recent launches of Microsoft Windows 7 and Apple Snow Leopard, GPU computing has got even more better with the GPU being evolved GPGPU which stands for General Purpose Graphical Processing Unit. It’s being said that BOINC distributed computing now uses CUDA technology for it’s better efficiency.

OpenCL (Open Computing Language) and Microsoft’s DirectCompute, a new GPU Computing API are just two tools which make the developers possible to harness the power of GPU computing. A Fortran language solution is also in development which can use the power GPU computing.

Download CUDA SDK, Developer’s Drivers, Code Samples and Toolkits for Windows, Linux and MacOS.

Popularity: 13% [?]

Getting Started with GTK and GLade for GUI programming

Considering you have read the previous article on GUI programming, this article will give an insight about GTK.

When starting learning Glade, it is essential to learn the basic concepts of GTK+. Unfortunately there is a misconception that it’s enough to learn Glade for learning GUI designing rather than learning GTK+. Glade is definitely an easier way to implement GTK but it is impossible to create interface for your application with only Glade knowledge.

Official GTK+ tutorial is the best place to learn the Basic things about GTK+. Though reading the entire documentation may seem to be a herculean task, it would good to cover important topics like packing of widgets. After having a basic knowledge about GTK+, next step is having a look at the official Glade3 manual. Version that is supplied with Glade3 is outdated,you can find a simpler and more updated one here.

Now if you think, you are well and comfortable with GTK+ Basics, you will definitely want to try a real world example. Many authors provide tutorials with real world examples. I managed to find out two such, one by Micah carrick and other by Tadej Borovšak. It would be better to follow Tadej’s Tutorial as the former one does not use Glade3-3.6.7 which is latest version. Anyway you can also give a look at the tutorial by Micah. Now when you start seriously with GTK programming, never forget to visit GTK Forum for getting your doubts cleared.

Now if you are ready to spend a few bucks try to get a copy of  Foundations Of GTK development.

Here are a few other resources which would with worth giving a look though I haven’t tried them personally.

Tutorial for How to set the colour of a widget in GTK+
Tutorial

Gtk+ 2.0 Tree View tutorial
Tutorial Pdf

Gtk+ 2.0 Text View tutorial
Tutorial Pdf

Gtk+ 2.0 GtkComboBox Widget Tutorial
Part1
Part 2
Part 3

GtkDialog tutorial
Part 1
Part 2

Wrapping and resizing GtkLabel dynamically
Tutorial

Using pop-up windows
Tutorial

Gtk memory management in a nutshell
Tutorial
Gtk Menu Tutorial
Tutorial

Popularity: 72% [?]

Arch Linux, First step in creating your own OS

It’s a dream of every noob that even before coding the first “Hello World” program, student want to know how to code an OS. Dreams are good but this is harder than one can image. If you are so strong with your dream, rather than thinking of coding your OS from scratch better you try building your own Arch. Arch Linux is a fully customizable, light weight operating system. The CD image can be downloaded. But this is actually a very slim installation and it’s not at all usable. You will have to install the window manager, desktop environment and everything else you see on a full fledged operating system.

One of the main disadvantage of Arch Linux is it’s cryptic text based installer. So better you watch some video and get familiarised with the instalation procedure.

Here are a few video tutorials for the installation and customization of Arch Linux.


Popularity: 17% [?]

Wednesday, March 17, 2010 Categorized under: Open Source, Tech Buzz
Author: ajithpaul ajithpaul ajithpaul

Differences between UNIX and Linux

We are very familiar with Linux and its relation with UNIX. But most us of don’t actually know what are differences between the two.
Linux is called Unix-like and is not a true Unix operating system. Linux is a Unix clone written from scratch by Linus Torvalds.
Unix is popular operating system, developed by AT&T in 1969 whereas Linux was first released in 1991. Note that the time difference between the introduction of the two is a long 22 yrs. It is a myth that Linux is a GUI for the UNIX core. However, GNOME and KDE are GUIs for GNU/Linux. UNIX is the foundation for a number of operating systems, with Linux being the most popular one.

1.DIFFERENT AT THEIR KERNEL LEVELS
UNIX kernel is not freely available. So a geek, named Linus Torvalds, at the age of 21 sat down and wrote a kernel right from scratch borrowing ideas from UNIX. This later came to be known as Linux Kernel which he licensed under the GPL (GNU General Public License). Linux kernel is freely available. Hence Linux is called UNIX-like. He later said in an interview that “This is the best thing I have done in my life”.

2.HARDWARE
Linux runs on many hardware platforms, including Intel x86 computers. On the other hand, UNIX is proprietary-hardware-bonded and this hardware is much more expensive than a typical PC.
Unix requires a more powerful hardware configuration. It will work in large mainframe computers but not in an x86 based personal computer. Linux will work on both a large mainframe computer and an x86 based personal computer.
Putting it in simple words, UNIX will not run in the normal desktops or laptops that most of us use.

3.LICENSE
Unix is a proprietary software and you would need to buy it if you want to use it.
GNU/Linux is licensed under the GPL (GNU General Public License) which is an open source license. This means that the kernel-code is available for anyone to use or change as long as the changes are again licensed under GPL.

4.LINUX – JUST A KERNEL & UNIX – A COMPLETE OS

Linux is just a kernel. All Linux distributions (Fedora,Ubuntu,OpenSUSE etc.) includes GUI system,GNU utilities and various other applications (such as OpenOffice, Firefox) and of course the kernel. It is the distributions that make Linux a complete, usable Operating System.
However, UNIX operating systems are considered as complete operating systems.

5.EASE OF USE
Linux was built with the common user in mind, therefore most Linux distributions provide users with a very capable GUI ( that also eats up a portion of the computer’s processing power). Owing to Linux’s flexibility, the GUI can be removed.

6.SUPPORT FOR FILESYSTEMS
Most commercial version of UNIX supports two, or possibly three, different local filesystem types. Linux, however, supports almost all of the filesystems that are currently available on any operating system.

SIMILARITIES

  • Both Linux and UNIX use same shells (eg. bash and korn).
  • Both are capable of using a command line and a GUI.
  • Linux is used in many applications that need to maintain up-time because Linux, like UNIX, can run for months at a time without rebooting. While the typical method of solving Microsoft problems is to “reboot”, that particular requirement does not seem to be appropriate in a Linux/Unix environment.

Appendix

Having said so much about kernel, let us see briefly what actually a kernel is.
Kernel is a bridge between applications and the actual data processing done at the hardware level. Its responsibilities include managing the system’s resources. Hence it forms the most vital part of an operating system.
A kernel has facilities to receive requests (eg.commands from user) and grant access to resources such as allocating space for a new file or creating a network connection (which mainly deals with hardware). Kernels use a system call (or syscall) interface to handshake with applications [Applications ==> syscall(INTERFACE) ==> Kernel]. At the user level the device details are not visible. The kernel recognizes what a device is (eg. I/O devices,RAM etc.) and how to communicate with it at the lowest level.
Generally, the boot loader starts executing the kernel in supervisor mode. The kernel then initializes itself and starts the first process. After this, the kernel does not typically execute directly, but only in response to external events (e.g., via system calls used by applications to request services from the kernel).

Popularity: 27% [?]

Encode Your Videos Using Your GPU

Encoding videos has always been time consuming task. Time consumption has been so long because of the CPU’s inability to use its raw power for image processing, which has always been below par when compared to GPU. Traditionally the encoding was done by the CPU with playback assist from DirectX. But with the introduction of Nvidia’s CUDA and Ati’s Stream  parallel processing power video encoding wont be the lazy bit of task anymore. GPU video encoding not only reduces the load on the CPU but also reduces the time for encoding, since GPU is more powerful than the CPU for image processing. Reducing the CPU load makes it possible to all possible things along with the encoding processes which were unimaginable otherwise.

Even though transcoding Blu-ray movies isn’t exactly at the top of everyone’s list, but one can significantly reduce its size using H.264/x264. x264 is the new DivX and its usefulness extends far beyond just ripping HD movies. Its use isn’t going to increase unless encoding using the codec gets faster. Elemental Technologies has been working on a technology they called RapiHD, which is a GPU-accelerated H.264 video encoder. This is introduced in Nvidia’s CUDA.

Many Software’s are already in market capable of using this raw GPU power.

Some of them are

1)Badaboom: Badaboom is a blazingly fast media converter that formats video files for a variety of devices, including iPod, PSP, Blackberry, and YouTube, by using your system’s graphics processing unit (GPU). In a practice that used to take several hours, Badaboom converts feature-length movies in a matter of minutes while keeping the videos looking crisp and clear. By harnessing the power of NVIDIA CUDA-enabled GPUs, Badaboom offloads the CPU to allow users to continue browsing the Internet or checking email without decreased system performance, making transcoding high-quality video fast, easy, and painless. Have a look at it here.

2)ATI Avivo Video Converter: ATI Avivo Video Converter supports transcoding between H.264, VC-1, WMV9, WMV9 PMC, MPEG-2, MPEG-4, DivX video formats, as well as formats used in iPod and PSP. Earlier versions of this software uses only the CPU for transcoding, but have been locked for exclusive use with the ATI X1000 series of GPUs. Software modifications have made it possible to use version 1.12 of converter on a wider range of graphics adapters. The ATI Avivo Video Converter with GPU transcoding acceleration is now also available for use with HD 4800 and HD 4600 series graphics cards and is included with the Catalyst 8.12 drivers. Support for Vista x64 is available via a separate download starting with Catalyst 9.6. The new software is faster than Badaboom, an encoder that uses NVIDIA’s CUDA to accelerate encoding, but has a higher CPU utilization than Badaboom.Have a look at it here.

3)CyberLink MediaShow Espresso: MediaShow Espresso’s support for NVIDIA® CUDA™ and ATI ® Stream™ technology delivers huge gains when transcoding high-definition video content. Delivering up to 10X FASTER performance, MediaShow Espresso leverages the power of the GPU to the maximum and produces faster results. With faster speeds for HD video transcoding, you’ll spend less time converting home videos to H.264, and more time enjoying your movie masterpieces. MediaShow Espresso allows the output of H.264 content for playback on PSP, iPod, iPhone and PS3 and a choice of video profiles for high quality or small file sizes.Have a look at it here.

Popularity: 25% [?]

Page 1 of 3123