## Comparing computational speeds

Ask questions about projects relating to: computer science or pure mathematics (such as probability, statistics, geometry, etc...).

Moderators: MelissaB, kgudger, Ray Trent, Moderators

### Comparing computational speeds

Hello,

My name is Royce, and I am planning to have a project comparing multiplication speeds of two algorithms. One of these algorithms is based off of the CORDIC algorithm. I would like to use a platform which already has the CORDIC algorithm already coded, yet I could not find it anywhere online. I have researched sufficiently on my topic but I have no clue where to start when it comes to the programming segment of my experiment.

As a student without experience in Computer Programming, what platform should I use to to create my algorithm, given that I have 2-3 months to learn a language/platform?

What do I need to get started with programming? What program do I need? Which books/resources can you suggest?

Also, what can I use to time process speed?

Thank you for your time dear experts!
r0ycep

Posts: 1
Joined: Fri Nov 02, 2012 1:02 pm
Occupation: Student
Project Question: Is the Trachtenberg multiplication algorithm better than the conventional multiplication algorithm for computers?
Project Due Date: February 01, 2013
Project Status: I am just starting

### Re: Comparing computational speeds

Hello Royce!

I've done a few quick searches, and I couldn't find a built-in CORDIC algorithm either. However, I did find some implementations that you might be able to look at for your background research. If you're familiar with the math, a Google or Google Scholar search of "CORDIC Algorithm" should turn up a few helpful results. I'd recommend reading as many of the papers on Google Scholar as you can; though they can be hard to understand, they will also contain the greatest depth of information.

In my experience, Java is the easiest language to learn, but for this application I'd actually highly recommend that you use C++ or MatLab. C++ is free, but MatLab will cost you some money. Both of those are generally good for algorithms and are fairly easy to learn quickly. There are plenty of online tutorials that you might be able to use- again, a Google search should turn up good results for those.

C++ has reliable functions for you to measure and record system time before and after a process; I think MatLab also has something similar.

For actual programming mechanics, I would recommend starting with simple programs and getting familiar with the language before attempting to code your algorithm. From there, I'd suggest that you first implement the CORDIC algorithm, then make the modifications necessary for your approach.

Feel free to ask if something is unclear- I typed this up in a little bit of a hurry, and may have accidentally skipped important information.

Hope this helped!
-Vysarge

~~~~~~~~~~~~~
Nature uses only the longest threads to weave her patterns, so that each small piece of her fabric reveals the organization of the entire tapestry.
-Richard Feynman
vysarge
Expert

Posts: 65
Joined: Tue Sep 27, 2011 4:56 pm
Project Question: Student volunteer.
Project Due Date: N/a: see above.
Project Status: Not applicable

### Re: Comparing computational speeds

While the approach used to initiate a programming project above is very good, I would suggest that you reconsider trying to develop software source code in the time that you have available especially considering that you do not have experience with programming. Learning to programming well takes considerable time (probably more time than you have available). I would hate to have you spend precious time and learn later on that this project is not doable.

That said, perhaps another approach to compare systems is to use simulation packages to recreate conditions that are exploring and see what the results are from simulation models. It would require understanding the simulation's underlying theory, its limitations (what conditions can be accurately modeled), and what the results mean. Suggest that you come up with a problem that you have interest in and find the corresponding modeling software to do your research.

Some sample modeling software:

http://usa.autodesk.com/simulation-software/

http://www.simio.com/index.html

Good luck!
akbarkhan
Expert

Posts: 28
Joined: Thu Aug 30, 2012 9:21 pm
Occupation: Computer Engineer
Project Question: NA
Project Due Date: NA
Project Status: Not applicable

### Re: Comparing computational speeds

I agree that learning how to program in a couple of months is fraught with peril.

Since you are evaluating raw algorithm speed you would probably want to use a compiled language like C, C++, or (gods forbid) fortran. These are not easy to master, and there is all sorts of trickery and depth to evaluating algorithms that way. People have written PhD theses and weighty academic monographs on the subject.

Google these terms to find free alternatives to MatLab:

Code: Select all
`open source matlab replacement`

I would recommend you start off with one or two of those. That is far more do-able in the time budget you have and won't require spending lots of money.

Good luck!

Heinz Hemken
Heinz Hemken
Mentor
Science Buddies Expert Forum
hhemken
Expert

Posts: 266
Joined: Mon Oct 03, 2005 3:16 pm