Please help me with my Computer Science project...Check out my new, cross-platform compatible benchmark!

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

KF

Golden Member
Dec 3, 1999
1,371
0
0
Well, you could put a 3 minute hi res movie in front of it, featuring nude young ladies. People aren't that impressed by black screen text. Then you could claim it is a media creation/DirectX10/Hypertransport/USB2 benchmark that pushs computers to the brink of destruction. Then you could charge $5000 for the Pro version, which allows access to professional features not available in the free version. That ought to impress people.

Then you need a new name. Sortmark isn't bad, but how about UltraUberMark?
 

sambao21

Member
Feb 27, 2003
151
0
0
and then you can have a beta program where hardware makers can participate in, and have certain video card makers find "optimizations" in your program and make the sort complete in under 10 seconds.
 

adlep

Diamond Member
Mar 25, 2001
5,287
6
81
Lol.....
<Spongebob's voice on>
Use your IMAGINATION
</ Spongebob's voice off>
 

Corsairpro

Platinum Member
Feb 12, 2001
2,543
0
0
currently running this on a AMD k6-2 350MHz... will let you know the time when it completes

EDIT:

I managed to close the box w/out copy and pasting but the time was 521 seconds roughly. Like I said this was an AMD k6-2 350MHz w/ 128MB RAM on Win98.
 

snowwie

Member
Aug 8, 2002
137
0
0
I used to do this when I got bored during my computer science class (almos every day)

I would enter an obsenely high number, then my program (called bored.exe) would generate that number of integers between 0 and 999 and place them into an array. Then I would sort the array (usually either mergesort or bubble or binary, all took up 100% cpu usage on the 466 celery I used), and see if the "little celeron that could" would sort it before class was over
 

adlep

Diamond Member
Mar 25, 2001
5,287
6
81
snowwie, this is exactly what I have done....
Now, someone have any ideas on how to make it better?
Open for ideas..
 

redpriest_

Senior member
Oct 30, 1999
223
0
0
Athlon XP 1800+ overclocked to 2500 mhz
nforce2 dual channel memory 333 mhz.

79.999 seconds to run the benchmark. (first run)
79.560 seconds to run the benchmark (second run)

I had a myriad variety of background tasks running, so they are not exactly 'optimal' results for my machine.

Here is an issue however -- you cannot compare these times to any other runs because the number of comparisons will vary wildly depending on what the data set you are running on is -- there could be a data set, which potentially would have very few comparisons and one that would have many. Hence you cannot compare this number from any other number irregardless of the platform. I would suggest creating a data set that you would have everyone universally use and that everyone could download -- that way you can make comparisons irregardless of what time you ran the benchmark. As it stands right now, each run will generate different results -- as illustrated a bit above.

Hope this helps. Incidentally, I'm sure there's room for optimization but I don't know what your specific intentions regarding this benchmark were...

redpriest
http://www.sciencemark.de
Lieutenant Junior Grade, USNR
 

redpriest_

Senior member
Oct 30, 1999
223
0
0
As it stands, your benchmark is a poster-child for branches (thousands of comparisons). However, this could be completely eliminated by use of conditional move code that's been available since the pentium pro. Hence, one of the greatest weaknesses of the p4 could be nullified, and I imagine the performance would skyrocket irregardless of the platform, but again, what is your intention with regards to the benchmark? =)


redpriest
http://www.sciencemark.de
Lieutenant Junior Grade, USNR
 

adlep

Diamond Member
Mar 25, 2001
5,287
6
81
Thank you redpriest_
This is the first possible improvement :light:
Here is an issue however -- you cannot compare these times to any other runs because the number of comparisons will vary wildly depending on what the data set you are running on is -- there could be a data set, which potentially would have very few comparisons and one that would have many. Hence you cannot compare this number from any other number irregardless of the platform. I would suggest creating a data set that you would have everyone universally use and that everyone could download -- that way you can make comparisons irregardless of what time you ran the benchmark. As it stands right now, each run will generate different results -- as illustrated a bit above.
I might just generate uniform data set and then hard code it into the benchmark :D
The .dat file with integers takes only 639kb and the number of comparisons will be the same for every run...
Thank you for your tip.

Hope this helps. Incidentally, I'm sure there's room for optimization but I don't know what your specific intentions regarding this benchmark were...
There are no limitations on the benchmark....
However I am trying to make it cross-platform compatible, which means that the single version (with small code modifications which are not affecting anything... for example system("PAUSE"); for Windows...) can be compiled on Windows, Linux, Unix, Mac OS X... etc
So the development of the code will be limited to generic C++ operations compatible with all platforms.
(so far I am successfully, the code compiles on Mandrake 9, Sun OS 5.8, Windows)
Also, this is just an undergraduate summer class . It is not a master thesis, I am not even sure if it is going to even count toward my degree. Therefore I do not have a long therm goal set with this project just yet. But who knows what is going to happen?

As it stands, your benchmark is a poster-child for branches (thousands of comparisons). However, this could be completely eliminated by use of conditional move code that's been available since the pentium pro. Hence, one of the greatest weaknesses of the p4 could be nullified, and I imagine the performance would skyrocket irregardless of the platform, but again, what is your intention with regards to the benchmark? =)

One of the proposes of the benchmark is to make the computer scream. The CPU utilization currently is at constant 100% for every platform. I would imagine that the conditional move code is available to only Intel processors, therefore it does not fit the goal of it being platform-independant...
Edit: The only goal of the project would be to give at least a ball-park way of estimating the performance of one platform, CPU, to another....(such us G4 to Athlon, G4 to Pentium III etc, etc)
Right now the idea is ridiculously simple but I am positive that the code might be tweaked up in terms of complexity.


 

Abzstrak

Platinum Member
Mar 11, 2000
2,450
0
0
alright, finished in 64.83s on my Barton @ 2400MHz running Gentoo. A7N8X Deluxe motherboard on 200 bus
 

adlep

Diamond Member
Mar 25, 2001
5,287
6
81
Bump...
I am going to change the code as suggested above to incorporate for the fixed, random data file...
 

JonnyBlaze

Diamond Member
May 24, 2001
3,114
1
0
Step 5.
Timer stop!
Benchmark complete.
It takes 59.969 seconds to sort 98304 randomly generated integers.


systems in sig.
 

MadTom

Senior member
Sep 4, 2002
208
0
0
Result: 262.828 seconds

PC at work:
P3 800MHz, 256 MB RAM, Win2K, integrated graphics
 

tkdkid

Senior member
Oct 13, 2000
956
0
0
Originally posted by: redpriest_
As it stands, your benchmark is a poster-child for branches (thousands of comparisons). However, this could be completely eliminated by use of conditional move code that's been available since the pentium pro. Hence, one of the greatest weaknesses of the p4 could be nullified, and I imagine the performance would skyrocket irregardless of the platform, but again, what is your intention with regards to the benchmark? =)


redpriest
http://www.sciencemark.de
Lieutenant Junior Grade, USNR

Irregardless is not a word. Thank you, please drive through.
 

adlep

Diamond Member
Mar 25, 2001
5,287
6
81
Currently I am modifying the code to accommodate the uniform .dat file, so the number of comparisons will be this same for everybody. You should still get very similar results though....
 

Vadatajs

Diamond Member
Aug 28, 2001
3,475
0
0
Gentoo 1.4
P4- 2.53
Intel D845EBT
1024MB ram (ddr 266)

took 74.01 seconds with tvtime going
 

redpriest_

Senior member
Oct 30, 1999
223
0
0
"Irregardless" is a word, listed in several dictionaries, including Websters. It might not be 'proper' English, but its use is commonplace, much like 'normalcy' or 'ain't' was coined but isn't really a word at all. I didn't realize I was being graded on writing proper English, however. If we were being graded on relevancy, your post would be a definite F -- for having nothing to do with the topic.
 

tkdkid

Senior member
Oct 13, 2000
956
0
0
Originally posted by: redpriest_
"Irregardless" is a word, listed in several dictionaries, including Websters. It might not be 'proper' English, but its use is commonplace, much like 'normalcy' or 'ain't' was coined but isn't really a word at all. I didn't realize I was being graded on writing proper English, however. If we were being graded on relevancy, your post would be a definite F -- for having nothing to do with the topic.

You're really pretty stupid. The reason I mentioned it was so that in your normal writings or speech, you don't come off looking like an idiot. I was just trying to help you. However, judging from your reply, I could never give you enough help to make that happen.

And I was hoping you'd look it up. Here's the usage note from dictionary.com:
Usage Note: Irregardless is a word that many mistakenly believe to be correct usage in formal style, when in fact it is used chiefly in nonstandard speech or casual writing. Coined in the United States in the early 20th century, it has met with a blizzard of condemnation for being an improper yoking of irrespective and regardless and for the logical absurdity of combining the negative ir- prefix and -less suffix in a single term. Although one might reasonably argue that it is no different from words with redundant affixes like debone and unravel, it has been considered a blunder for decades and will probably continue to be so.

Now with that diversion out of the way, back on topic.
 

chsh1ca

Golden Member
Feb 17, 2003
1,179
0
0
I'd agree with redpriest on this. Different data means the sort takes a varying length of time. For it to be a real benchmark, you need to have the same data set, and JUST test the sort itself. Try coming up with your own set of 98034 random numbers in a large array or something to that effect, and simply iterate through the data that way. Otherwise one test is actually more difficult to complete than the other, effectively rendering your benchmark useless.
 

adlep

Diamond Member
Mar 25, 2001
5,287
6
81
I'd agree with redpriest on this. Different data means the sort takes a varying length of time. For it to be a real benchmark, you need to have the same data set, and JUST test the sort itself. Try coming up with your own set of 98034 random numbers in a large array or something to that effect, and simply iterate through the data that way. Otherwise one test is actually more difficult to complete than the other, effectively rendering your benchmark useless.

chsh1ca Thank you for your feedback. I am in a process of creating uniform data set right now!
Your concern will be fixed in about two hours!


Edit: New version 1.1 is out!
Feedback taken!
Program has been improved.
Now the data.dat is this same for everybody, every time.
Number of swaps and comparisons is normalized!
If you won't download the data.dat, the program will just exit out...
 

adlep

Diamond Member
Mar 25, 2001
5,287
6
81
I am open for feedback and ideas on how to improve the code....
If you have any ideas, feel free to share them. C++ coders are especially encouraged to share the opinion about the program...

What other generic operations could be used in adition to sorting?
Do you know some good, CPU cache intensive, yet generic routine?
Help!
 

redpriest_

Senior member
Oct 30, 1999
223
0
0
tkdkid, if you want to grade other people on English, perhaps you would want to ensure that your own writing is flawless, that is after all, the first rule when flaming somebody. If you were so concerned about the fact that I was passing off as an idiot, you could have relayed your concerns via PM. LOL.