There are all kinds of issues such as MPICH's underlying communication structure (Tree, Linear, Cube, whatever). The fact that he could not get his MPI test program results consistant tells me that he has no idea how to configure it.
Most likely he did the standard autoconf/make install. The code for MPICH is out there if you want to see it. Basically for TCP/IP it is all-to-all, or at least it was for the 5 years I ported it and helped maintain it. It wasn't that efficient because of other reasons.
Something like this then from Intel? (found on google by searching for "SSE2 library" http://cedar.intel.com/media/pdf/games/c ode_zohar. pdf
or any of the intrinsics in the Microsoft compilers (same search) http://msdn.microsoft.com/library/default .asp?url=/library/en-us/vclang/html/vcrefwillamettefloating pointintrinsics.asp
or maybe one of the other 2,770 hits I got by doing that search.
In the worst case, you can bite the bullet and write your own SSE2 C wrappers like someone did for the AltiVec functionality?
There is no such thing as a "special" C interface.
But your comparison is inherently biased since you are basically saying you are running optimized code on the G4 and non-optimized code on the P4. IIRC, the P4 doesn't require context switches to do SSE/SSE2 (not 100% sure, I know the P3s required them).
Go look up SSE and SSE2 and 3DNow! etc. and compare their goals to "AltiVec". I'm not saying which is the better implementation.
The algorithm can be copied anyway, even if there isn't direct hardware support for it, it's just vector math for which you'd use software routines instead of accessing the hardware.
Cling to your dogma. Variety is the spice of life, as they say. With your logic, PacMan and Mrs. PacMan should still be the top games in the arcades and MYST should still be the hottest game on the PC. The fact is that some games do enjoy long life (StarCraft, etc.) but people do like to play new games.
One of the reasons that games do well on the PC is that evne though the game will be pirated, there will still be enough sales to warrant the initial investment and recoup your costs of paying the programmers.
The problem is that games don't fit into the enterprise software model (which is one of the few ways to make money in the Linux/OSS world). You have to have money to start the development on one and you won't make any money on support/training for it. In addition, few people are likely to even want to pay for the initial copy of it. In addition, even without piracy, the market segment for Linux/OSS is not that big. This leaves you in the area of doing it for FreeBeer(tm) style development. How many game developers are going to code a game for free? Some, sure. How many who code games for a big game house will have the free time (unless supported by the game house) of developing/porting for Linux/OSS? Maybe a few.
Game lifespan is too short (among other things) to fit the enterprise model. Until you can make money developing games on Linux/OSS so you can pay people to code them, I'll predict that the rate of new games emergence will be slow.
I'll slow it down for you... Whether a processor runs at 1Hz or at 1GHz, the IPC is the exact same... Instructions per clock (notice the "per clock" part of that - it means how many instructions are retired per clock cycle of the cpu - note again that I have never mentioned frequency wrt IPC). So, an Athlon at 1Hz has an IPC of 3 instructions per clock. An Athlon at 1GHz has an IPC of 3 instructions per clock. If you fall into the trap of believing that IPC is the measure of performance, then you would be happy with a 1Hz Athlon rather than a 3.06GHz P4 to do your work because the IPC is higher with the Athlon than the P4 (again, regardless of clock speed).
Now, if you were to say that the Athlon is a 3 IPC processor at 2GHz which can be faster than a 1.5 IPC processor at 3GHz, then you have at least stated something that has some meaning as to performance.
Who cares... If I had a chip that was 1000 way superscalar and had an IPC of 1000 but ran at only 1MHz, it would do 200x as many instructions per clock cycle as the G4 or the AMD processors but it would still be SLOWER than any of the mainstream machines today. IPC means nothing without also mentioning the mentioning the frequency. An Athlon or G4 running at 1Hz has more IPC than a P4 but would you then contend that the 1Hz Athlon was the machine you'd want on your desk?
I no longer work at the place where I did that work but iirc, we were using Oracle8 (one of the lower licensing ones, not Enterprise for sure) there running on a Windows2K server. I do know that Oracle licensing schemes enable certain functionalities with more $$ (like functional indices) and later versions (9i).
Yup, but you'd almost *have* to think that the optimizer could figure out what we meant by that query but it didn't.
Yes, a part of the optimizations I did were simply making sure that the queries used the indices that were actually there (where many times the queries didn't) and to actually make sure there were indices there for the common queries that we had.
The DB was locking up when trying to retrieve data from a large table (>10 M rows) using a very complex query
Maybe look at the query(ies) and optimize them or at least make sure they are optimized before freaking out. Do things like check to see if the right indices are being used.
I spent about 4 months optimizing queries for a product I worked on once. The best job was taking a set of queries that routinely took 24+ hours of execution (these were unrealistic performance for the goal of our product) and optimized them to execute in ~1 hour on the same data set.
(The Oracle optimizer isn't very good, IMO. For example, an Index on TABLE(A,B) isn't used if you SELECT * FROM TABLE WHERE B=X AND A=Y even though that is kind of an obvious optimization.)
bailout911 says: Video playback works just fine on most new distributions (read NOT Red Hat 7.2).
From the article: By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because it is (http://www.jwz.org/doc/linux.html). But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every question -- no matter how simple -- results in someone suggesting that you either A) patch your kernel or B) change distros. It's inevitable and inescapable, like Hitler.
Yes, and to the point, critical systems software tests have use code coverage as one of the measures of being 'fit' to use. Dead code cannot be executed and thus falls into the 'untouched code' category. If the software package has much of this untouched/untouchable code, it can't be used in a critical system. For example (going from memory here), Motif couldn't be certified for digital graphical primary instrument display because of this (I think that even after exhaustive testing, it only hit the 66% coverage mark, IIRC) on the Boeing 777. It could therefore only be used for an alternate display and the primary displays had to be implemented using something else.
The problem is that if the code can't be tested, it cannot be trusted and if *somehow* that code got executed while operational, the results could be "bad".
"Do I trust that person", instead of, "Do I trust that person and every bloody person who just might be able to alter a file in the long chain of responsibility from him compiling it to me installing it."
Actually... it's more like: "Do I trust that person and every bloody other person in the 'bazaar' that has access to add/modify the code before I compile it and install it."
vs.
"Do I trust that person and every bloody person who just might be able to alter a file in the long chain of responsibility from him compiling it to me installing it."
Volunary peer review is just that... everyone assuming that some other peers are reviewing the code means that it most likely doesn't get done unless you do it yourself. md5 checksums just mean that you downloaded the stuff that was on the site and it matches the md5 number that was generated when it was put out (could already have had bad stuff in it). In the end, unless you examine the code yourself, you are engaging in the same amount of trust either way.
Yeah, I dunno wtf the stuff is doing using that much host CPU. At least in the TiVo, the PPC is just there to run the user interface and stuff and probably set up DMA transfers or shovel data to/from the disc at the most. I would figure something similar would be the case with this thing... guess not.
... and that TiVo also has dedicated MPEG hardward and a custom ASIC (dunno what the custom ASIC does, didn't both to check further than to see if it had MPEG hardware, which it pretty much would have to have).
http://penguinppc.org/embedded/tivo/hardware/
The PPC is just there for the user interface and possibly shoveling data around (probably for just setting up DMA engines). The PPC403 is *not* a heavyweight computing device.
There are all kinds of issues such as MPICH's underlying communication structure (Tree, Linear, Cube, whatever). The fact that he could not get his MPI test program results consistant tells me that he has no idea how to configure it.
Most likely he did the standard autoconf/make install. The code for MPICH is out there if you want to see it. Basically for TCP/IP it is all-to-all, or at least it was for the 5 years I ported it and helped maintain it. It wasn't that efficient because of other reasons.
Something like this then from Intel? (found on google by searching for "SSE2 library"c ode_zohar. pdf
t .asp?url= /library/en-us/vclang/html/vcrefwillamettefloating pointintrinsics.asp
http://cedar.intel.com/media/pdf/games/
or any of the intrinsics in the Microsoft compilers (same search)
http://msdn.microsoft.com/library/defaul
or maybe one of the other 2,770 hits I got by doing that search.
In the worst case, you can bite the bullet and write your own SSE2 C wrappers like someone did for the AltiVec functionality?
There is no such thing as a "special" C interface.
But your comparison is inherently biased since you are basically saying you are running optimized code on the G4 and non-optimized code on the P4. IIRC, the P4 doesn't require context switches to do SSE/SSE2 (not 100% sure, I know the P3s required them).
"AltiVec" is a marketing name.
Go look up SSE and SSE2 and 3DNow! etc. and compare their goals to "AltiVec". I'm not saying which is the better implementation.
The algorithm can be copied anyway, even if there isn't direct hardware support for it, it's just vector math for which you'd use software routines instead of accessing the hardware.
I embrace my geekness as well... one of my tatoos says so...
I also find dates when I want them.
Yup... use that word of mouth to put food on your programmers' tables.
Cling to your dogma. Variety is the spice of life, as they say. With your logic, PacMan and Mrs. PacMan should still be the top games in the arcades and MYST should still be the hottest game on the PC. The fact is that some games do enjoy long life (StarCraft, etc.) but people do like to play new games.
One of the reasons that games do well on the PC is that evne though the game will be pirated, there will still be enough sales to warrant the initial investment and recoup your costs of paying the programmers.
The problem is that games don't fit into the enterprise software model (which is one of the few ways to make money in the Linux/OSS world). You have to have money to start the development on one and you won't make any money on support/training for it. In addition, few people are likely to even want to pay for the initial copy of it. In addition, even without piracy, the market segment for Linux/OSS is not that big. This leaves you in the area of doing it for FreeBeer(tm) style development. How many game developers are going to code a game for free? Some, sure. How many who code games for a big game house will have the free time (unless supported by the game house) of developing/porting for Linux/OSS? Maybe a few.
Game lifespan is too short (among other things) to fit the enterprise model. Until you can make money developing games on Linux/OSS so you can pay people to code them, I'll predict that the rate of new games emergence will be slow.
Umm... not to folks who know what IPC means.
I'll slow it down for you... Whether a processor runs at 1Hz or at 1GHz, the IPC is the exact same... Instructions per clock (notice the "per clock" part of that - it means how many instructions are retired per clock cycle of the cpu - note again that I have never mentioned frequency wrt IPC). So, an Athlon at 1Hz has an IPC of 3 instructions per clock. An Athlon at 1GHz has an IPC of 3 instructions per clock. If you fall into the trap of believing that IPC is the measure of performance, then you would be happy with a 1Hz Athlon rather than a 3.06GHz P4 to do your work because the IPC is higher with the Athlon than the P4 (again, regardless of clock speed).
Now, if you were to say that the Athlon is a 3 IPC processor at 2GHz which can be faster than a 1.5 IPC processor at 3GHz, then you have at least stated something that has some meaning as to performance.
Yes... and compilers can choose instruction sequences that help this process along.
Who cares... If I had a chip that was 1000 way superscalar and had an IPC of 1000 but ran at only 1MHz, it would do 200x as many instructions per clock cycle as the G4 or the AMD processors but it would still be SLOWER than any of the mainstream machines today. IPC means nothing without also mentioning the mentioning the frequency. An Athlon or G4 running at 1Hz has more IPC than a P4 but would you then contend that the 1Hz Athlon was the machine you'd want on your desk?
What version of Oracle are you using?
I no longer work at the place where I did that work but iirc, we were using Oracle8 (one of the lower licensing ones, not Enterprise for sure) there running on a Windows2K server. I do know that Oracle licensing schemes enable certain functionalities with more $$ (like functional indices) and later versions (9i).
Yup, but you'd almost *have* to think that the optimizer could figure out what we meant by that query but it didn't.
Yes, a part of the optimizations I did were simply making sure that the queries used the indices that were actually there (where many times the queries didn't) and to actually make sure there were indices there for the common queries that we had.
The DB was locking up when trying to retrieve data from a large table (>10 M rows) using a very complex query
Maybe look at the query(ies) and optimize them or at least make sure they are optimized before freaking out. Do things like check to see if the right indices are being used.
I spent about 4 months optimizing queries for a product I worked on once. The best job was taking a set of queries that routinely took 24+ hours of execution (these were unrealistic performance for the goal of our product) and optimized them to execute in ~1 hour on the same data set.
(The Oracle optimizer isn't very good, IMO. For example, an Index on TABLE(A,B) isn't used if you SELECT * FROM TABLE WHERE B=X AND A=Y even though that is kind of an obvious optimization.)
bailout911 says:
Video playback works just fine on most new distributions (read NOT Red Hat 7.2).
From the article:
By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because it is (http://www.jwz.org/doc/linux.html). But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every question -- no matter how simple -- results in someone suggesting that you either A) patch your kernel or B) change distros. It's inevitable and inescapable, like Hitler.
Interaction is a bit different than usual, i'll admit, but it's intuitive and easy once you get used to it.
Doesn't "intuitive" mean you can figure out how to fiddle with it without having to get used to it first?
Yes, and to the point, critical systems software tests have use code coverage as one of the measures of being 'fit' to use. Dead code cannot be executed and thus falls into the 'untouched code' category. If the software package has much of this untouched/untouchable code, it can't be used in a critical system. For example (going from memory here), Motif couldn't be certified for digital graphical primary instrument display because of this (I think that even after exhaustive testing, it only hit the 66% coverage mark, IIRC) on the Boeing 777. It could therefore only be used for an alternate display and the primary displays had to be implemented using something else.
The problem is that if the code can't be tested, it cannot be trusted and if *somehow* that code got executed while operational, the results could be "bad".
"Do I trust that person", instead of, "Do I trust that person and every bloody person who just might be able to alter a file in the long chain of responsibility from him compiling it to me installing it."
Actually... it's more like:
"Do I trust that person and every bloody other person in the 'bazaar' that has access to add/modify the code before I compile it and install it."
vs.
"Do I trust that person and every bloody person who just might be able to alter a file in the long chain of responsibility from him compiling it to me installing it."
Volunary peer review is just that... everyone assuming that some other peers are reviewing the code means that it most likely doesn't get done unless you do it yourself. md5 checksums just mean that you downloaded the stuff that was on the site and it matches the md5 number that was generated when it was put out (could already have had bad stuff in it). In the end, unless you examine the code yourself, you are engaging in the same amount of trust either way.
Heh... yeah... it is *supposed* to be about that... but in general it just sucks, IMO.
Amen.
Been there, done that.
This isn't just an RT application, it is a critical system application. I would trust neither Linux nor MSWindows with either.
LoL... SPECWeb...
Yeah, I dunno wtf the stuff is doing using that much host CPU. At least in the TiVo, the PPC is just there to run the user interface and stuff and probably set up DMA transfers or shovel data to/from the disc at the most. I would figure something similar would be the case with this thing... guess not.
... and that TiVo also has dedicated MPEG hardward and a custom ASIC (dunno what the custom ASIC does, didn't both to check further than to see if it had MPEG hardware, which it pretty much would have to have).
http://penguinppc.org/embedded/tivo/hardware/
The PPC is just there for the user interface and possibly shoveling data around (probably for just setting up DMA engines). The PPC403 is *not* a heavyweight computing device.
....is that you don't know what "mission critical" really means if you are running them on any form of PC, to begin with, and Linux, to end with.
Second thing that pops into my head is that you are simply a fanboy troll.
A wee bit defensive, are we?