Re:right.. but what happened to Tera?!
on
Cray XD1 Now Available
·
· Score: 2, Informative
Well, partially. The scheduling did still have some severe benefits. Most importantly was for memory bandwidth. One of the threads can do a fetch, and the scheduler continues onward executing other instructions. As long as you can guarantee that a fetch doesn't take longer than 128 clock cycles, you've lost nothing. Which also means you can put a highly latent, extremely high bandwidth memory bus on there and reasonably expect to get 99.9% utilization of it. Combine that with some specialized instructions for working with big data sets and you have a pretty decent machine.
Only problem was they couldn't get the damn thing to work for so long that it was practically obselete by the time they got it out. They sold all of 2 of them.
Don't count on it. It's actually a flaw in XFree, xinerama and dri (which the ati drivers do depend on) don't function simultaneously. And the reason you only get 80 fps in glxgears is because its pure software rendering. The XFree drivers for ATI cards past the 8500 have absolutely no 3d acceleration.
Regardless of the irrelevance of RISC vs. CISC, it is easier to emulate an x86 on PowerPC, but only because PowerPC has more general purpose registers.
I work at amazon. All of the servers in this company run a homebrew (heavily modified redhat that no longer really resembles its original distribution) that we support internally. That's thousands of servers that had no preload and no support contract. I wouldn't be surprised if there are other companies like us.
You don't really seem to understand how an operating system works. I don't mean the gui/desktop/environment that has become part of the OS, I mean the kernel (which in computer science terms IS the operating system). You can't just have programs just multitask because they're on the same computer. They're competing for resources! There's only one (ok maybe two) proccessor. Only one video card. Only one sound card. Only a single memory address space. Something has to mediate, hand out these resources to the programs that need them, and stop those programs that don't. This, is the operatings system. You don't actually have 5 or 6 programs running on your processor at the same time, you have an operating system that interupts each program when its allocated time slot is up and hands it over. It also divides up memory, protects regions of memory from other programs, allows multiple programs to draw to screen at once, allows multiple programs to send internet traffic, all because these programs make requests of it and it passes the requests on to hardware.
Now considering your previous direction, you're probably going to say each program can just be good and give up control of the processor when it doesn't need it, or just be good enough not to go outside of its bounds in ram. What you would have described, in this case is Windows 3.1 or MacOS Classic. Both of these systems are horribly crash prone, and low performing because they don't keep sloppy programs from doing bad things, hogging proccessor time, straying in memory, accessing the sound card when another is using it. Hell, even if you have well written programs, a cooperative multitask system isn't going to perform as well. The way you split up processor and memory is highly dependant on what is going on in the system as a whole. A single program can't make the proper judgement call on how much processor time to take. Only a program that's monitoring the whole system and who's sole purpose is dividing up resources can make that call. That program again is the operating system.
And you say you don't want to multitask. Well what if some of the other tasks are things being handled by the os? Each program shouldn't contain an entire TCPIP stack. That's a massively complex piece of software. That lives in the operating system. Or it could be in a separate program that you communicate to but that's just describing a microkernel system with a tcpip server. Just another form of operating system.
And lastly, even if you don't need services like tcpip and you don't need to multitask, and you just want a program to have access to hardware, you have to deal with the fact that hardware is different! Doom3 written directly to the radeon X800 wouldn't work on the geforce 6800, or other radeons for that matter. You need something to abstract the hardware, a driver. And guess what, drivers are just a plugin to your operating system. They OS needs to present the hardware as a generic abstract device, with the implementation details handled by the driver.
Consoles get around this by having consistent hardware. Carmack can write directly to the hardware because he knows what it is. And things like tcpip are implemented in the developer kit which is kind of like a very stripped down OS.
Well maybe they're messing with the "near-perfect" formula because Dice managed to find a nearer-perfect formula with the battlefield games.
On the same note, the reason battlefield vietnam is so much better of a game in my opinion is that the sides AREN'T equal. The maps will lay things in favor of one team or the other and then make the team with the advantage do more.
Ok, people always say that OO perl is bad, or tacked on or something to that effect. I find that most of these people aren't exactly perl experts, and usually haven't bothered to learn OO perl.
In reality, perl hashes are such a powerful concept that they almost become objects in themselves. Which is why OO perl is achieved by having a module named the same as your class, a hash to represent your object, and ONE keyword to make that hash an object. How many non-OO languages can become OO with the addition of a single keyword? With this comes inherritance, encapsulation, runtime binding, polymorphism and all the other things you expect from OO, in a fairly clean syntax.
Ok so there's no data hiding. But that's just a matter of programmer disipline:)
See, this is what I love (and admittedly alot of people hate) about Perl. I remembered reading that use of the for keyword, back when I was reading the camel book, but foreach (@x){ do_something($_); } was simple enough so I promptly forgot about it. But do_something($_) for @x; is so obvious in its syntax that I immediately know what it's saying, at least if I understand other simpler statements like: print if something_bad();
I just don't get the recent animosity towards perl. It's honestly one of the most powerful languages I've used. The unreadable code argument falls apart when you've seen some of the COMPLEATLY unreadable Java, Python, Lisp (although I personally think that language is unreadable by design) code I've seen. Any language can and will be abused. Strict languages like Java just punish the creative programmer for the failings of his incompetant coworkers.
People keep saying "use nocat to redirect people to your site". This is overkill people! Nocat is cool, because it lets you log in and then get outside access. This isn't going to have outside access. With a linux router this would be as simple as typing: iptables -t nat -A PREROUTING -s 10.0.0.0/8 -j DNAT --to and then on the webserver a simple mod_rewrite rule that rewrote every url with a different domain/ip to the front page of the correct domain.
Except that Cray Inc. was reborn and they've made recent super computers. Not piddly little beowulf clusters or boxes of a hundred commodity processors, but real vector supercomputers that have kept up to today's technology. Take a look at the X1 (formerly known as the SV2, the successor to the relatively widespread SV1).
An F22 doesn't have the equivalent power of even an SV1, I can tell you.
(disclaimer: I used to work for cray and I still have a fondness for those lumbering beasts of machines)
I remember, back when I lived in the DC area several years ago, I went to the wedding of an aquaintence of mine (a friend of my friend Cat). She was this girl who was just learning C and invited me to be part of her CCNA study group. Being in the middle of one the most antisocial periods of my life, I just kind of dropped off the face of the earth (and eventually moved to Seattle). Now I see articles about her on slashdot. Raven, if you remember this long haired, antisocial, larval stage techie named Joe, drop me a message.
DC is a hole in the ground. The tech jobs that are there are all out in Reston, just out of reach of the metro (and in some of the most bland, boring places on earth). So you have to drive to them. Problem is, to get to the Reston/Fairfax/Dulles tech area, you have to brave the nightmare that's 66. Not to mention that the startups that used to proliferate through that area have all dissapeared unless they're a division of AOL or some goverment contractor. And don't forget that you need security clearance (a 6 month process to aquire) to be a help desk person at the office of some low level lobbyist. Maybe the economy there has picked up since I last looked for a job there (3 years ago). The local bands, while great in the mid 90s are in high stagnation right now. And yes, in the city, rent is astronomical, but that's ok because unless you're a clerk, politician, or crack dealer, there's no work actually in the city. Oh but wait, I forgot, the rent in the suburbs is almost as high (you can just find parking there). And, just to continue disagreeing with you, I actually found a lot of good pizza there. Look in Old Town Alexandria, tons of places.
In case you hadn't guessed, I grew up in the place. And as soon as the economy went down I ran like hell (to Seattle, and I see that Washington is right below Maryland/Virginia on that list).
Mind you I do loath the language, and only learned it to do an interview there, and when I didn't get the job refused to touch that abomination ever again, but the point still stands that there are people doing large things in TCL
I forgot about those two, and no there isn't any equivalent to DirectMusic as far as I know. But as for DirectShow, I see more games these days using Bink than that. And Bink does have a Linux port.
As for force feedback, yes it does (both in terms of drivers and SDL input support) but I think the hardware support is limited.
Well, if you take OpenGL, OpenAL, and SDL (which wraps and integrates the other two in a portable, window system agnostic way), you get just about everything that DirectX has, I think. Except for networking, but I know alot of developers that, although they like DirectX, consider DirectPlay a monstrosity and avoid it like the plague (and honestly, how many games outside of MS Game Studios actually use it?). Is there some other part of DirectX that isn't covered that I'm missing?
It would be a superscaler cpu if the search for paralelism was done in hardware. The crusoe actually has a piece of software in nvram that acts as a JIT for x86 code. This ends up being potentially more efficient than either approach, having a benefit over the traditional VLIW approach because paralelisms sometimes arise from a usage pattern, and wouldn't be observable from a compiler, and a benefit over the superscaler approach from the fact that found paralelisms can be cached (and more complex paralelisms can be found). Not to mention the fact that the decode unit is effectively in software, making the chip smaller and simpler. Which is the real reason they did this, all the other things are an attempt to gain back speed they'd loose from using a non-native instruction set. And it works pretty well.
I don't think you really understand how NUMA works. The whole point of NUMA is that memory DOES have to flow from controllers on other processors. Xeons use a uniform memory architecture, meaning that they all share a memory controller. Even if that memory controller is faster than a single proc system's memory controller, they're still contending for it. However, they do all have equal access to it.
NUMA is a tradeoff. Each processor has its own memory controller and its own bank of memory. Therefore each processor has preferential access to that bank of memory. If, however, a processor attempts to access memory in another processor's bank, its slower. This cost is mitigated by intelligent VMs that attempt to put the memory for processes in the memory bank controlled by the processor running that process. If this is done efficiently enough, the benifit of having 4 memory controllers far outweighs the cost of possibly having to get memory slowly from another processor.
Mostly they've just changed the build system. Someone mentioned that they're using automake/autoconf. But that's only a minor part of it. The big thing is that they're making it so that you can compile these libraries without having the entire X11 tree. X until now was this giant monolithic source tree with tons of interdependancies so you'd have to build it all at once. Their first goal is to modularize X and that means making the Xserver, Xlibs and the basic X programs all build separately.
There are people working on exactly this. They work at a nice company called Transgaming, though most slashdotters don't really seem to like them.
http://www.tyan.com/products/html/thunderk8qspro.h tml
Well, partially. The scheduling did still have some severe benefits. Most importantly was for memory bandwidth. One of the threads can do a fetch, and the scheduler continues onward executing other instructions. As long as you can guarantee that a fetch doesn't take longer than 128 clock cycles, you've lost nothing. Which also means you can put a highly latent, extremely high bandwidth memory bus on there and reasonably expect to get 99.9% utilization of it. Combine that with some specialized instructions for working with big data sets and you have a pretty decent machine.
Only problem was they couldn't get the damn thing to work for so long that it was practically obselete by the time they got it out. They sold all of 2 of them.
You think its a joke, but I used to work there and they do refer to employees of the company as Crayons.
Don't count on it. It's actually a flaw in XFree, xinerama and dri (which the ati drivers do depend on) don't function simultaneously. And the reason you only get 80 fps in glxgears is because its pure software rendering. The XFree drivers for ATI cards past the 8500 have absolutely no 3d acceleration.
Regardless of the irrelevance of RISC vs. CISC, it is easier to emulate an x86 on PowerPC, but only because PowerPC has more general purpose registers.
I work at amazon. All of the servers in this company run a homebrew (heavily modified redhat that no longer really resembles its original distribution) that we support internally. That's thousands of servers that had no preload and no support contract. I wouldn't be surprised if there are other companies like us.
Yeah I was thinking that halfway through the post. But I was bored at work so I thought I'd just keep going.
You don't really seem to understand how an operating system works. I don't mean the gui/desktop/environment that has become part of the OS, I mean the kernel (which in computer science terms IS the operating system). You can't just have programs just multitask because they're on the same computer. They're competing for resources! There's only one (ok maybe two) proccessor. Only one video card. Only one sound card. Only a single memory address space. Something has to mediate, hand out these resources to the programs that need them, and stop those programs that don't. This, is the operatings system. You don't actually have 5 or 6 programs running on your processor at the same time, you have an operating system that interupts each program when its allocated time slot is up and hands it over. It also divides up memory, protects regions of memory from other programs, allows multiple programs to draw to screen at once, allows multiple programs to send internet traffic, all because these programs make requests of it and it passes the requests on to hardware.
Now considering your previous direction, you're probably going to say each program can just be good and give up control of the processor when it doesn't need it, or just be good enough not to go outside of its bounds in ram. What you would have described, in this case is Windows 3.1 or MacOS Classic. Both of these systems are horribly crash prone, and low performing because they don't keep sloppy programs from doing bad things, hogging proccessor time, straying in memory, accessing the sound card when another is using it. Hell, even if you have well written programs, a cooperative multitask system isn't going to perform as well. The way you split up processor and memory is highly dependant on what is going on in the system as a whole. A single program can't make the proper judgement call on how much processor time to take. Only a program that's monitoring the whole system and who's sole purpose is dividing up resources can make that call. That program again is the operating system.
And you say you don't want to multitask. Well what if some of the other tasks are things being handled by the os? Each program shouldn't contain an entire TCPIP stack. That's a massively complex piece of software. That lives in the operating system. Or it could be in a separate program that you communicate to but that's just describing a microkernel system with a tcpip server. Just another form of operating system.
And lastly, even if you don't need services like tcpip and you don't need to multitask, and you just want a program to have access to hardware, you have to deal with the fact that hardware is different! Doom3 written directly to the radeon X800 wouldn't work on the geforce 6800, or other radeons for that matter. You need something to abstract the hardware, a driver. And guess what, drivers are just a plugin to your operating system. They OS needs to present the hardware as a generic abstract device, with the implementation details handled by the driver.
Consoles get around this by having consistent hardware. Carmack can write directly to the hardware because he knows what it is. And things like tcpip are implemented in the developer kit which is kind of like a very stripped down OS.
God I ramble....someone needs to shut me up.
Well maybe they're messing with the "near-perfect" formula because Dice managed to find a nearer-perfect formula with the battlefield games.
On the same note, the reason battlefield vietnam is so much better of a game in my opinion is that the sides AREN'T equal. The maps will lay things in favor of one team or the other and then make the team with the advantage do more.
Actually fnord was at perlmonks before I got there. I'm jsadusk.
And you could do:
eval{blah($_);blahblah($_)} for @x;
Ok, people always say that OO perl is bad, or tacked on or something to that effect. I find that most of these people aren't exactly perl experts, and usually haven't bothered to learn OO perl.
In reality, perl hashes are such a powerful concept that they almost become objects in themselves. Which is why OO perl is achieved by having a module named the same as your class, a hash to represent your object, and ONE keyword to make that hash an object. How many non-OO languages can become OO with the addition of a single keyword? With this comes inherritance, encapsulation, runtime binding, polymorphism and all the other things you expect from OO, in a fairly clean syntax.
Ok so there's no data hiding. But that's just a matter of programmer disipline:)
See, this is what I love (and admittedly alot of people hate) about Perl. I remembered reading that use of the for keyword, back when I was reading the camel book, but
foreach (@x){ do_something($_); }
was simple enough so I promptly forgot about it. But
do_something($_) for @x;
is so obvious in its syntax that I immediately know what it's saying, at least if I understand other simpler statements like:
print if something_bad();
I just don't get the recent animosity towards perl. It's honestly one of the most powerful languages I've used. The unreadable code argument falls apart when you've seen some of the COMPLEATLY unreadable Java, Python, Lisp (although I personally think that language is unreadable by design) code I've seen. Any language can and will be abused. Strict languages like Java just punish the creative programmer for the failings of his incompetant coworkers.
Doesn't anyone like Perl anymore??
foreach $thing (@list){ do_something($thing); }
People keep saying "use nocat to redirect people to your site". This is overkill people! Nocat is cool, because it lets you log in and then get outside access. This isn't going to have outside access. With a linux router this would be as simple as typing:
iptables -t nat -A PREROUTING -s 10.0.0.0/8 -j DNAT --to
and then on the webserver a simple mod_rewrite rule that rewrote every url with a different domain/ip to the front page of the correct domain.
Except that Cray Inc. was reborn and they've made recent super computers. Not piddly little beowulf clusters or boxes of a hundred commodity processors, but real vector supercomputers that have kept up to today's technology. Take a look at the X1 (formerly known as the SV2, the successor to the relatively widespread SV1).
An F22 doesn't have the equivalent power of even an SV1, I can tell you.
(disclaimer: I used to work for cray and I still have a fondness for those lumbering beasts of machines)
Not all the laws, just P != NP.
I remember, back when I lived in the DC area several years ago, I went to the wedding of an aquaintence of mine (a friend of my friend Cat). She was this girl who was just learning C and invited me to be part of her CCNA study group. Being in the middle of one the most antisocial periods of my life, I just kind of dropped off the face of the earth (and eventually moved to Seattle). Now I see articles about her on slashdot. Raven, if you remember this long haired, antisocial, larval stage techie named Joe, drop me a message.
DC is a hole in the ground. The tech jobs that are there are all out in Reston, just out of reach of the metro (and in some of the most bland, boring places on earth). So you have to drive to them. Problem is, to get to the Reston/Fairfax/Dulles tech area, you have to brave the nightmare that's 66. Not to mention that the startups that used to proliferate through that area have all dissapeared unless they're a division of AOL or some goverment contractor. And don't forget that you need security clearance (a 6 month process to aquire) to be a help desk person at the office of some low level lobbyist. Maybe the economy there has picked up since I last looked for a job there (3 years ago). The local bands, while great in the mid 90s are in high stagnation right now. And yes, in the city, rent is astronomical, but that's ok because unless you're a clerk, politician, or crack dealer, there's no work actually in the city. Oh but wait, I forgot, the rent in the suburbs is almost as high (you can just find parking there).
And, just to continue disagreeing with you, I actually found a lot of good pizza there. Look in Old Town Alexandria, tons of places.
In case you hadn't guessed, I grew up in the place. And as soon as the economy went down I ran like hell (to Seattle, and I see that Washington is right below Maryland/Virginia on that list).
AOL does everything in TCL.
Mind you I do loath the language, and only learned it to do an interview there, and when I didn't get the job refused to touch that abomination ever again, but the point still stands that there are people doing large things in TCL
I forgot about those two, and no there isn't any equivalent to DirectMusic as far as I know. But as for DirectShow, I see more games these days using Bink than that. And Bink does have a Linux port.
As for force feedback, yes it does (both in terms of drivers and SDL input support) but I think the hardware support is limited.
Well, if you take OpenGL, OpenAL, and SDL (which wraps and integrates the other two in a portable, window system agnostic way), you get just about everything that DirectX has, I think. Except for networking, but I know alot of developers that, although they like DirectX, consider DirectPlay a monstrosity and avoid it like the plague (and honestly, how many games outside of MS Game Studios actually use it?). Is there some other part of DirectX that isn't covered that I'm missing?
It would be a superscaler cpu if the search for paralelism was done in hardware. The crusoe actually has a piece of software in nvram that acts as a JIT for x86 code. This ends up being potentially more efficient than either approach, having a benefit over the traditional VLIW approach because paralelisms sometimes arise from a usage pattern, and wouldn't be observable from a compiler, and a benefit over the superscaler approach from the fact that found paralelisms can be cached (and more complex paralelisms can be found). Not to mention the fact that the decode unit is effectively in software, making the chip smaller and simpler. Which is the real reason they did this, all the other things are an attempt to gain back speed they'd loose from using a non-native instruction set. And it works pretty well.
I don't think you really understand how NUMA works. The whole point of NUMA is that memory DOES have to flow from controllers on other processors. Xeons use a uniform memory architecture, meaning that they all share a memory controller. Even if that memory controller is faster than a single proc system's memory controller, they're still contending for it. However, they do all have equal access to it.
NUMA is a tradeoff. Each processor has its own memory controller and its own bank of memory. Therefore each processor has preferential access to that bank of memory. If, however, a processor attempts to access memory in another processor's bank, its slower. This cost is mitigated by intelligent VMs that attempt to put the memory for processes in the memory bank controlled by the processor running that process. If this is done efficiently enough, the benifit of having 4 memory controllers far outweighs the cost of possibly having to get memory slowly from another processor.
Mostly they've just changed the build system. Someone mentioned that they're using automake/autoconf. But that's only a minor part of it. The big thing is that they're making it so that you can compile these libraries without having the entire X11 tree. X until now was this giant monolithic source tree with tons of interdependancies so you'd have to build it all at once. Their first goal is to modularize X and that means making the Xserver, Xlibs and the basic X programs all build separately.