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

Postby r0ycep » Wed Nov 07, 2012 10:27 pm

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

Postby vysarge » Sat Nov 10, 2012 11:45 am

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
Occupation: Student: 12th grade
Project Question: Student volunteer.
Project Due Date: N/a: see above.
Project Status: Not applicable

Re: Comparing computational speeds

Postby akbarkhan » Thu Nov 15, 2012 3:12 pm

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

Postby hhemken » Thu Nov 15, 2012 4:01 pm

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: 262
Joined: Mon Oct 03, 2005 3:16 pm


Return to Grades 9-12: Math and Computer Science

Who is online

Users browsing this forum: No registered users and 1 guest