# How to increase processing speed / power of a computer?

1. Aug 28, 2016

### Tabaristiio

How to increase external information processing speed / power of a Computer / CPU? When I say external information, I mean external stimuli. When I say processing speed, I mean the speed at which the CPU / Computer processes external stimuli.

So for example, one Computer might take 10 seconds to process information which another Computer would take only 1 second to process that same information from the external world. By information, I'm talking about things like for example, how fast a computer can process what's written on a ball. As in, random letters or writings are put on a ball and how long the computer takes to process what the writing is after being exposed to the writing. So if a computer can process that information in 80 miliseconds (random number) for example, how would I decrease the time even further so that it can process the information even quicker?

Please explain in simplest terms and format because I'm not very knowledgeable with Computers.

Thanks

2. Aug 28, 2016

### Tabaristiio

Another example of what I mean is: suppose you have 10 tennis balls. Each tennis ball has something written on it. One Computer would take specific amount of time to process what's written on all 10 tennis balls. Whereas another Computer could potentially take less time than the former Computer at processing the same information, which is to process what's written on all 10 tennis balls. So how could one make the latter computer so that it processes information faster?

3. Aug 28, 2016

### Staff: Mentor

Have a look at this article on parallel computing, and let us know if you have specific questions about it. There are some limitations in how you implement your parallel processing algorithm (how you divide up the tasks, and how you combine all of the results). The article should help you understand some of those issues...

https://en.wikipedia.org/wiki/Parallel_computing

4. Aug 28, 2016

### CWatters

You need to figure out all the steps that the system has to perform and work out which is the most significant consumer of time. That will probably be the bit of code that does the image recognition and analysis. In which case you have two possibilities...

Speed up the software by using a different/faster algorithm.

Speed up the hardware by using a faster processor, or perhaps adding more memory etc.

or both.

5. Aug 28, 2016

### Hesch

Use a DSP as for signal processing ( e.g. audio ).

Use a videoprocessor as for pattern recognition ( e.g. tennisballs handwriting ).

Write ( critical parts of ) your program in assembly code.

6. Aug 28, 2016

### phinds

If this is something you want to do pretty much yourself, then based on your question I would estimate that you are at least several years of intense study away from even beginning to be able to do much. You would need to study both hardware (computer architecture) and software and each take at least a few years of study to get much of a real grip on them and to get into optimization of either one takes even more.

7. Aug 28, 2016

### Tabaristiio

My question is a theoretical question, not a practical one. I have no plans on doing any such thing. My question is purely driven by curiosity.

8. Aug 28, 2016

### Tabaristiio

From my current knowledge and understanding, I thought of Parallel Computing as something that works for internal processing mainly. Such as performing calculations and such of internal info.

However, does parallel computing work also on increasing processing speed of external stimuli / info?

9. Aug 28, 2016

### phinds

Of course increasing internal processing speed increases the processing of external info. You seem to have a somewhat garbled understanding of how computers work. There are two parts to processing external stemuli. The first is getting the data. That is generally VERY fast and in any case there's nothing that you can do to the computer that will increase it, you would have to get faster transducers. The second is internal processing speed to actually process the data.

10. Aug 28, 2016

### Tabaristiio

A apologize as I am admittedly relatively ignorant on Computers, so excuse me for my ignorance of the topic. Again, my quest for answers is driven by curiosity, so that's the reason I am asking these questions in the first place.

Thank you and everyone else for answering and enlightening me on this topic!

11. Aug 28, 2016

### sophiecentaur

It all depends on what you really want your computer to do for you. A general purpose computer - such as the one you are probably working on at the moment, can do all sorts of things moderately fast and accurately. It has specialist hardware and software to take care of the heavy duty stuff like graphics, video, sound, some Maths functions etc and those functions have improved fantastically over the last decades. But the main processor is not the fastest thing on legs. A racehorse is great in a straight line but it needs to be a carthorse, a police horse and a circus pony.
If you happen to have a particular problem - like deciphering codes - a quantum computer can do it amazingly quickly but it won't be much use in a games console or a search engine.
Horses for courses.

12. Aug 28, 2016

### phinds

Nothing to apologize for. We are all ignorant about far more than we are knowledgeable about.

Since you don't really have the base-line knowledge to understand any kind of technically detailed answer, I would think that for your purposes a more interesting question would be the more simple one of "CAN we increase the speed of a computer's processing of external information?". What I find very interesting is that the answer to all such questions about evolutionary changes in technology (rather than revolutionary changes) is pretty much always the same and it goes something like this:

Of course we can do that. The important questions are:
how much improvement do we actually want to achieve?
how much cost is acceptable to achieve it?
how much time to achieve it is acceptable?

When you have the answers to THOSE questions, then you can actually begin to think about specifics of how to do it. The reason you need to answer those questions first is that the answers may well rule out some implementation paths that would prove to be blind alleys if you pursue them without first answering the important questions.

Failure to clearly answer those questions at the outset is the cause of the failure of many technological projects.

13. Aug 28, 2016

### Aaron Crowl

Here are some basic ways you could speed this up:

SOFTWARE: Clever programmers can use hardware more efficiently. This is not within my expertise.

PHYSICS: Computers are based on CMOS transistors. There's an insulating gap in the transistor gate which, as it gets smaller, allows the transistors to switch more quickly and increases CPU speed. We'll probably reach the lower limit of this shrinking process in our lifetime.

ARCHITECTURE: Computers have to do things one step at a time. Processors have a limited amount of instructions they can perform in a single step. Doing complex things requires a long procession of more simple instructions. CPU designers can add specialized hardware to their chips to speed up complex operations when needed. An example of this is a floating point unit (FPU). Floating point calculations take many cycles of the processor to complete without specialized hardware. By the way, there are specialized machine vision chips on the market now.

FPGA's: Someone mentioned these already. FPGA's are logic devices that the user can program to do any logic function at very high speed. A handy use of these is to perform matrix operations (linear algebra) which I'm sure would be useful for machine vision.

14. Aug 28, 2016

### phinds

And to extend you comments on architecture a bit, don't forget about ASICs.

15. Aug 28, 2016

### CWatters

In case it matters...they usually stop selling lottery tickets before the first ball is drawn not the last one :-)

16. Aug 28, 2016

### sophiecentaur

Oh I wish!!!

17. Aug 28, 2016

### sophiecentaur

That brings up the big problem of interfacing with the outside world and pre-processing high volume information in a way that it can be presented to the computer.

Memory lane time: At my place of work, they were trying to analyse reverberation characteristics of studios. The computer (an Eliot 803) used 5hole punched paper tape for its input but. they couldn't get a 5 hole punch to work fast enough (i.e. not a high enough sample rate) to get the decay pattern. Solution was to record with an 8 hole tape punch (just fast enough) and build a machine to read 8 holes and transcribe the data onto 5 holes for the computer to digest. That was only 50 years ago.

18. Aug 30, 2016

### Tabaristiio

OK! Fair point. I have another, more practical question in relation to this same topic of discussion. It is to do with something that has already happened and has been achieved using supercomputers.

I read an article previously which talked about a Supercomputer reading scientific books in 2 hours, which would take a lifetime for a human to read, due to the sheer quantities of books. What I want to know is how did the supercomputer achieve such feat? What is it about the computer that allowed it to read the books as fast as it did? How was the computer set up to achieve that feat?

19. Aug 30, 2016

### phinds

"Read" in this context is very vague. I assume the supercomputer gained NO actual knowledge from its "reading" (but possibly a catalog of facts). This kind of "reading" is just optical character recognition. People read things to get knowledge, not to just have the characters on the page pass through their eyeballs and into their memory with zero understanding of what is actually meant by the words.

20. Aug 30, 2016

### Tabaristiio

Oh
Oh I see. Thanks for clarifying.