Wednesday 13 October 2010

How Quantum Computers Work

 
How stuff works
How Quantum Computers Work



The massive amount of processing power generated by computer manufacturers has not yet been able to quench our thirst for speed and computing capacity. In 1947, American computer engineer Howard Aiken said that just six electronic digital computers would satisfy the computing needs of the United States. Others have made similar errant predictions about the amount of computing power that would support our growing technological needs. Of course, Aiken didn't count on the large amounts of data generated by scientific research, the proliferation of personal computers or the emergence of the Internet, which have only fueled our need for more, more and more computing power.

Will we ever have the amount of computing power we need or want? If, as Moore's Law states, the number of transistors on a microprocessor continues to double every 18 months, the year 2020 or 2030 will find the circuits on a microprocessor measured on an atomic scale. And the logical next step will be to create quantum computers, which will harness the power of atoms and molecules to perform memory and processing tasks. Quantum computers have the potential to perform certain calculations significantly faster than any silicon-based computer.

Scientists have already built basic quantum computers that can perform certain calculations; but a practical quantum computer is still years away. In this article, you'll learn what a quantum computer is and just what it'll be used for in the next era of computing.

You don't have to go back too far to find the origins of quantum computing. While computers have been around for the majority of the 20th century, quantum computing was first theorized less than 30 years ago, by a physicist at the Argonne National Laboratory. Paul Benioff is credited with first applying quantum theory to computers in 1981. Benioff theorized about creating a quantum Turing machine. Most digital computers, like the one you are using to read this article, are based on the Turing Theory. Learn what this is in the next section.


Defining the Quantum Computer

The Turing machine, developed by Alan Turing in the 1930s, is a theoretical device that consists of tape of unlimited length that is divided into little squares. Each square can either hold a symbol (1 or 0) or be left blank. A read-write device reads these symbols and blanks, which gives the machine its instructions to perform a certain program. Does this sound familiar? Well, in a quantum Turing machine, the difference is that the tape exists in a quantum state, as does the read-write head. This means that the symbols on the tape can be either 0 or 1 or a superposition of 0 and 1; in other words the symbols are both 0 and 1 (and all points in between) at the same time. While a normal Turing machine can only perform one calculation at a time, a quantum Turing machine can perform many calculations at once.

Today's computers, like a Turing machine, work by manipulating bits that exist in one of two states: a 0 or a 1. Quantum computers aren't limited to two states; they encode information as quantum bits, or qubits, which can exist in superposition. Qubits represent atoms, ions, photons or electrons and their respective control devices that are working together to act as computer memoryprocessor. Because a quantum computer can contain these multiple states simultaneously, it has the potential to be millions of times more powerful than today's most powerful supercomputers. and a


The Bloch sphere is a representation of a qubit, the fundamental building block of quantum computers.

This superposition of qubits is what gives quantum computers their inherent parallelism. According to physicist David Deutsch, this parallelism allows a quantum computer to work on a million computations at once, while your desktop PC works on one. A 30-qubit quantum computer would equal the processing power of a conventional computer that could run at 10 teraflops (trillions of floating-point operations per second). Today's typical desktop computers run at speeds measured in gigaflops (billions of floating-point operations per second).

Quantum computers also utilize another aspect of quantum mechanics known as entanglement. One problem with the idea of quantum computers is that if you try to look at the subatomic particles, you could bump them, and thereby change their value. If you look at a qubit in superposition to determine its value, the qubit will assume the value of either 0 or 1, but not both (effectively turning your spiffy quantum computer into a mundane digital computer). To make a practical quantum computer, scientists have to devise ways of making measurements indirectly to preserve the system's integrity. Entanglement provides a potential answer. In quantum physics, if you apply an outside force to two atoms, it can cause them to become entangled, and the second atom can take on the properties of the first atom. So if left alone, an atom will spin in all directions. The instant it is disturbed it chooses one spin, or one value; and at the same time, the second entangled atom will choose an opposite spin, or value. This allows scientists to know the value of the qubits without actually looking at them.

Next, we'll look at some recent advancements in the field of quantum computing.

Qubit Control

Computer scientists control the microscopic particles that act as qubits in quantum computers by using control devices.

· Ion traps use optical or magnetic fields (or a combination of both) to trap ions.

· Optical traps use light waves to trap and control particles.

· Quantum dots are made of semiconductor material and are used to contain and manipulate electrons.

· Semiconductor impurities contain electrons by using "unwanted" atoms found in semiconductor material.

· Superconducting circuits allow electrons to flow with almost no resistance at very low temperatures.


Today's Quantum Computers

Quantum computers could one day replace silicon chips, just like the transistor once replaced the vacuum tube. But for now, the technology required to develop such a quantum computer is beyond our reach. Most research in quantum computing is still very theoretical.

The most advanced quantum computers have not gone beyond manipulating more than 16 qubits, meaning that they are a far cry from practical application. However, the potential remains that quantum computers one day could perform, quickly and easily, calculations that are incredibly time-consuming on conventional computers. Several key advancements have been made in quantum computing in the last few years. Let's look at a few of the quantum computers that have been developed.

1998
Los Alamos and MIT researchers managed to spread a single qubit across three nuclear spins in each molecule of a liquid solution of alanine (an amino acid used to analyze quantum state decay) or trichloroethylene (a chlorinated hydrocarbon used for quantum error correction) molecules. Spreading out the qubit made it harder to corrupt, allowing researchers to use entanglement to study interactions between states as an indirect method for analyzing the quantum information.

2000
In March, scientists at Los Alamos National Laboratory announced the development of a 7-qubit quantum computer within a single drop of liquid. The quantum computer uses nuclear magnetic resonance (NMR) to manipulate particles in the atomic nuclei of molecules of trans-crotonic acid, a simple fluid consisting of molecules made up of six hydrogen and four carbon atoms. The NMR is used to apply electromagnetic pulses, which force the particles to line up. These particles in positions parallel or counter to the magnetic field allow the quantum computer to mimic the information-encoding of bits in digital computers.

Researchers at IBM-Almaden Research Center developed what they claimed was the most advanced quantum computer to date in August. The 5-qubit quantum computer was designed to allow the nuclei of five fluorine atoms to interact with each other as qubits, be programmed by radio frequency pulses and be detected by NMR instruments similar to those used in hospitals (see How Magnetic Resonance Imaging Works for details). Led by Dr. Isaac Chuang, the IBM team was able to solve in one step a mathematical problem that would take conventional computers repeated cycles. The problem, called order-finding, involves finding the period of a particular function, a typical aspect of many mathematical problems involved in cryptography.

2001
Scientists from IBM and Stanford University successfully demonstrated Shor's Algorithm on a quantum computer. Shor's Algorithm is a method for finding the prime factors of numbers (which plays an intrinsic role in cryptography). They used a 7-qubit computer to find the factors of 15. The computer correctly deduced that the prime factors were 3 and 5.

2005
The Institute of Quantum Optics and Quantum Information at the University of Innsbruck announced that scientists had created the first qubyte, or series of 8 qubits, using ion traps.

2006
Scientists in Waterloo and Massachusetts devised methods for quantum control on a 12-qubit system. Quantum control becomes more complex as systems employ more qubits.

2007
Canadian startup company D-Wave demonstrated a 16-qubit quantum computer. The computer solved a sudoku puzzle and other pattern matching problems. The company claims it will produce practical systems by 2008. Skeptics believe practical quantum computers are still decades away, that the system D-Wave has created isn't scaleable, and that many of the claims on D-Wave's Web site are simply impossible (or at least impossible to know for certain given our understanding of quantum mechanics).

If functional quantum computers can be built, they will be valuable in factoring large numbers, and therefore extremely useful for decoding and encoding secret information. If one were to be built today, no information on the Internet would be safe. Our current methods of encryption are simple compared to the complicated methods possible in quantum computers. Quantum computers could also be used to search large databases in a fraction of the time that it would take a conventional computer. Other applications could include using quantum computers to study quantum mechanics, or even to design other quantum computers.

But quantum computing is still in its early stages of development, and many computer scientists believe the technology needed to create a practical quantum computer is years away. Quantum computers must have at least several dozen qubits to be able to solve real-world problems, and thus serve as a viable computing method.

For more information on quantum computers and related topics, check out the links on the next page.


Photo courtesy © 2007 D-Wave Systems, Inc.
D-Wave's 16-qubit quantum computer




Lots More Information

Related HowStuffWorks Articles












More Great Links






Sources

· "12-qubits Reached In Quantum Information Quest." Science Daily, May 2006.
http://www.sciencedaily.com/releases/2006/05/060508164700.htm

· Aaronson, Scott. "Shtetl-Optimized." April 10, 2007.
http://scottaaronson.com/blog

· Bone, Simone and Matias Castro. "A Brief History of Quantum Computing." Imperial College, London, Department of Computing. 1997.
http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol4/spb3/

· Boyle, Alan. "A quantum leap in computing." MSNBC, May 18, 2000.
http://www.msnbc.msn.com/id/3077363

· "Center for Extreme Quantum Information Theory (xQIT), MIT." TechNews, March 2007.
http://www.technologynewsdaily.com/node/6280

· Centre for Quantum Computer Technology
http://www.qcaustralia.org/

· Cory, D.G., et al. "Experimental Quantum Error Correction." Amerian Physical Society, Physical Review Online Archive, September 1998.
http://prola.aps.org/abstract/PRL/v81/i10/p2152_1

· Grover, Lov K. "Quantum Computing." The Sciences, July/August 1999.
http://cryptome.org/qc-grover.htm

· Hogg, Tad. "An Overview of Quantum Computing." Quantum Computing and Phase Transitions in Combinatorial Search. Journal of Artificial Intelligence Research, 4, 91-128 (1996).
http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/ hogg96a-html/node6.html

· "IBM's Test-Tube Quantum Computer Makes History." IBM Research, December 19, 2001.
http://domino.watson.ibm.com/comm/pr.nsf/pages/ news.20011219_quantum.html

· Institute for Quantum Computing.
http://www.iqc.ca

· Jonietz, Erika. "Quantum Calculation." Technology Review, July 2005.
http://www.technologyreview.com/Infotech/14591

· Maney, Kevin. "Beyond the PC: Atomic QC." USA Today.
http://www.amd1.com/quantum_computers.html

· "Quantum Computing." Stanford Encyclopedia of Philosophy, February 26, 2007.
http://plato.stanford.edu/entries/qt-quantcomp

· Qubit.org
http://www.qubit.org

· Simonite, Tom. "Flat 'ion trap' holds quantum computing promise." NewScientistTech, July 2006.
http://www.newscientisttech.com/article/ dn9502-flat-ion-trap-holds-quantum-computing-promise.html

· Vance, Ashlee. "D-Wave qubits in the era of Quantum Computing." The Register, February 13, 2007.
http://www.theregister.co.uk/2007/02/13/dwave_quantum

· West, Jacob. "The Quantum Computer." Computer Science at CalTech, April 28, 2000.
http://www.cs.caltech.edu/~westside/quantum-intro.html

Monday 11 October 2010

Second Life - Use shortcut keys for easier navigation

Task: Use Second Life Shortcut Keys
Required software: Second Life

1.
Alt+Left (Right) Arrow key- when you hold the Alt key, point to an object (by mouse left-clicking on it) and press the Left (Right) Arrow key, then the video camera will start rotating arround this object

Alt+Mouse Left Button+Left(Right) Moving the mouse - does the same thing as specified above

2.
Alt+Up (Down) Arrow key - when you hold the Alt key, point to an object (by mouse left-clicking on it) and press the Up (Down) Arrow key, the camera will start zooming in (out) to (from) the object.

Alt+Mouse Left Button+Mouse Move Forward (Backwards) - does the same thing as specified above

*If you want to return to the default camera angle view just press the Left (Right) Arrow key or "C" key

3.
Ctrl+Alt+Mouse Left Button+move mouse to the left / right - rotates camera to the left / right of the focused object horizontally (the distance between the camera and object stays fixed)
Ctrl+Alt+Mouse Left Button+move mouse forward / backwards - rotates camera up / down (the distance between the camera and object stays fixed)

4.
Ctrl+8 - Zoom out from the object that is on focus

Ctrl+0 - Zoom in to the object that the camera is shooting at

Ctrl+9 - switches to the default distance between the camera and the object in focus


5. By pressing the M key you will switch into Mouse view which means that the camera will be actually your eyesight view. In this view when you move the mouse to the sides or up/down your body will start turning to the sides or respectively your head will turn up/down (during this movements you don't see your avatar's body).


6. E (PgUp) key - Jump

7. F (Home) - Fly on / off

*Note: Most basic keys:

Left (Right) Arrow Key - turn left , turn right
Up (Down) Arrow Key - move forward, move backwards

References:
- special thanks to Melissa
- http://wiki.secondlife.com/wiki/All_keyboard_shortcut_keys
- http://wiki.secondlife.com/wiki/Help:Keyboard_shortcut_keys

Linux (Ubuntu) - Capture, convert and edit Second Life videos with glc and kdenlive


Task: Capture, edit and convert Second Life videos
Operating System: Ubuntu Linux 10.04 LTS
Used software: glc, kdenlive


The 2nd video that I have captured in Second Life The Galaxy Night Club: http://www.youtube.com/watch?v=BzJ_qV-HU-U

Full instructions for Second Life videos capturing using Ubuntu Linux 10.04 and glc:


Part A.

Install glc and mencoder on your computer (running Ubuntu Linux)

1. Ubuntu (32-bit) users need following packages installed in order to compile glc:
sudo apt-get install build-essential cmake libx11-dev libxxf86vm-dev libgl1-mesa-dev libasound2-dev libpng12-dev


2. Additionally on 64-bit systems following commands are necessary:

sudo apt-get install gcc-multilib
sudo ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so
sudo ln -s /usr/lib32/libasound.so.2 /usr/lib32/libasound.so
sudo ln -s /usr/lib32/libXxf86vm.so.1 /usr/lib32/libXxf86vm.so
sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
sudo ln -s /usr/lib32/libpng12.so.0 /usr/lib32/libpng.so

Note: For some other Linux distributions, please follow the instructions on the link:
http://nullkey.ath.cx/projects/glc/wiki/HowtoInstall

3. Install and compile glc from the Terminal

wget http://nullkey.ath.cx/glc/scripts/glc-build.sh
chmod a+x glc-build.sh
./glc-build.sh

*while installing the package you will be prompted to choose from some options (yes / no) - please choose the default values and complete the installation

4. Install mencoder which is required in Part B, Step 6 for converting the .glc project file to .avi video

Open Synaptics Package Manager and on the left side highlight All. In the search field type mencoder, mark the box (if it is not installed yet) and click on Apply



Part B.


1. Download the Second Life Viewer for Linux from http://secondlife.com/support/downloads/?lang=en-US

Then unarchive the .tar.bz2 file in a folder on your computer (for ex. on your Desktop):

/home/username/Desktop/SecondLife-i686-2.1.1.208043/secondlife

2. Create a GLC Project folder where you will save your glc project file (.glc) and the converted .avi file:

sudo mkdir /home/username/Desktop/glcvideos

3. In my specific case I get an error when I try to extract the audio from the raw .glc file and that is why I use the command that extracts only the video in order to avoid recording unreasonably large files. When you run the command below in the Terminal Second Life Viewer will launch and GLC will start capturing media from there:

glc-capture -o /home/username/Desktop/glcvideos/test.glc -r 1 -l disable-audio -s /home/username/Desktop/SecondLife-i686-2.1.1.208043/secondlife

If you want to use the resize option while recording (-r) and to have the audio capturing enabled, just type:

glc-capture -o /home/username/Desktop/glcvideos/test.glc -r 0.5 -s /home/username/Desktop/SecondLife-i686-2.1.1.208043/secondlife

* -r -- is a parameter specifying the resize level

4. While you have the Second Life window maximized, press Shift+F8 to stop capturing media

5. Go to the terminal and type the command below in order to play the already captured video from the created project file .glc saved in your GLC project folder:

glc-play /home/username/Desktop/glcvideos/test.glc

6. Transcode the video from the .glc file into .avi file (without sound)
*The glc audio compiling option explained on http://nullkey.ath.cx/projects/glc/wiki/HowtoEncode (Part 1: transcode audio to MP3) is not working for me with videos captured in Second Life (getting error "Warning: Unsupported audio format"), that is why I am applying only the command that compresses the video:

glc-play /home/username/Desktop/glcvideos/test.glc -o - -y 1 | mencoder -demuxer y4m - -nosound -ovc x264 -x264encopts qp=18:pass=1 -of avi -o /home/username/Desktop/glcvideos/video.avi

Part C.

In this part I will show you how to add an audio track to the already captured video, how to add some effects and save the video in .mp4 format using Kdenlive ... coming soon

References:


http://nullkey.ath.cx/projects/glc
http://nullkey.ath.cx/projects/glc/wiki/HowtoInstall
http://nullkey.ath.cx/projects/glc/wiki/HowtoCapture
http://nullkey.ath.cx/projects/glc/wiki/HowtoPlayback
http://nullkey.ath.cx/projects/glc/wiki/HowtoEncode
http://www.linux.com/community/blogs/Recording-your-3D-Games-Made-Easy.html
http://primforge.com/2009-02-07/capturing-with-glc/
http://www.5min.com/Video/How-to-Render-Videos-in-Kdenlive-161784133
http://www.kdenlive.org/rendering-profiles
http://www.kdenlive.org/youtube-1280x720-3000k-2-pass
http://www.kdenlive.org/mlt-profiles



Acknowledgements:


*I would like to express my endless gratitude to the glc & kdenlive developers and contributors, also to the people that have written the amazing user guides and articles for these software packages.

*Special thanks to my friend Pav for helping me out with my blog's web design and saving me a lot of time. Many kisses !!!

Wednesday 6 October 2010

Second Life - The Galaxy pt.2 (captured with glc & kdenlive, Ubuntu)



This is my second video uploaded to YouTube (captured in SL). I have improved the video capture by :

1. Enabling The Galaxy club's default permanent dancing option by left clicking with the mouse on the Galaxy Host , then a window popped up with a question: Do you want to animate your Avatar? I clicked Yes.

2. Using the Fade in / Fade out effect in kdenlive

Open your kdenlive project. Highlight the audio track on the timeline - click on Tools - Add Audio Effect - and click on Fade in / fade out . Choose the time span for the relevant fade in / fade out effect.

3. Using Second Life shortcut keys for easier navigation (please follow the link)

Sunday 3 October 2010

Second Life - The Galaxy pt.1 (captured with glc & kdenlive)



Hi, guys! I hope you will enjoy the video captured by me from the Galaxy club in Second Life. I have initially recorded it in .avi format using glc, then I have added the Korn's track to the video and converted it in .mp4 format using kdenlive (on Ubuntu Linux 10.04)

Here it is the link to the full article "Capture, edit & convert Second Life videos"