Page 2 of 3

Posted: Thu Apr 05, 2007 10:36 am
by sqook
koneko wrote:it just make me sad though, to see more CPU power coming at us, and less smart programming. why would software developer bother with a better code when a 16-core is over the corner. . . .
The situation isn't quite as simple as you think...


For years, software developers had a "free ride". They were basically assured that as the speed of chips increased, their software would automatically run faster, and they wouldn't need to make significant changes to their code to benefit from these performance boosts.

However, the times, they are a' changin'. CPU clock speeds are not increasing at the rates that they did in the past. Instead, emphasis on SMP (multicore/multiprocessor, that is) architecture is dominating the market, and it's frankly a good thing, because eventually CPU chips will reach a physical limit of how much data they can move around anyways. Transistors can only be made so small, after all. The next logical step isn't to make faster chips, it's to make more intelligent chips that can harness the power of parallel communication... that's how the human brain works, after all... many millions of small, relatively slow processing units all working together in a neural network.

That being said, these architectural changes mean quite a great deal of work for software developers. In order to take advantage of multicore architecture, a program needs to be threaded, meaning that it spawns out several smaller sub-processes each in charge of doing different things. The rub is, when you have many dozens of threads, it's a real challenge to keep them from stepping on each others toes. To make matters worse, a software developer really has no idea how these threads will interact on a system once their software is running... it's up to the OS to decide how they will be scheduled, so finding bugs that occur between threads becomes a very difficult task.

So, devs have a few large problems that haven't really been fully addressed. First of all, there are no widely adopted, cross-platform threading solutions on the market. Each OS and programming language offers a wide variety to choose from, some offering better performance than others. I think that the larger problem is that many students are not properly trained in writing multiprocessor compatible code... this is often taught as an "advanced topic" in most programming classes, meaning that it is saved for the last week or so of the semester after everything else is said and done.

In the next five or so years, we will see a major shift in programming paradigms... multicore programming will no longer be seen as an "extra feature" of programs; instead, it will be implemented in almost all programs, and multicore programming will be given a much greater degree of attention in computer science education. This is the root cause of the lack of "smart programming", and I believe it can only be solved first by a greater degree of community consensus (ie, native support in more programming languages for threading) and then education.

Also, as long as I'm making random predictions, I'll bet you dollars-to-dimes that we will see 4-core laptops within 2 years, max. :) Multicore really is the future of computing... and although people have been saying that for years, I'm glad to see that the predictions are finally coming true.


Anyways, sorry to go on such a rant about this, but this topic has probably been the most debated and problematic thing I've had to deal with at work for the last year or so. :D

Posted: Thu Apr 05, 2007 10:41 am
by koneko
sqook wrote:
koneko wrote:it just make me sad though, to see more CPU power coming at us, and less smart programming. why would software developer bother with a better code when a 16-core is over the corner. . . .
The situation isn't quite as simple as you think...


For years, software developers had a "free ride". They were basically assured that as the speed of chips increased, their software would automatically run faster, and they wouldn't need to make significant changes to their code to benefit from these performance boosts.

However, the times, they are a' changin'. CPU clock speeds are not increasing at the rates that they did in the past. Instead, emphasis on SMP (multicore/multiprocessor, that is) architecture is dominating the market, and it's frankly a good thing, because eventually CPU chips will reach a physical limit of how much data they can move around anyways. Transistors can only be made so small, after all. The next logical step isn't to make faster chips, it's to make more intelligent chips that can harness the power of parallel communication... that's how the human brain works, after all... many millions of small, relatively slow processing units all working together in a neural network.

That being said, these architectural changes mean quite a great deal of work for software developers. In order to take advantage of multicore architecture, a program needs to be threaded, meaning that it spawns out several smaller sub-processes each in charge of doing different things. The rub is, when you have many dozens of threads, it's a real challenge to keep them from stepping on each others toes. To make matters worse, a software developer really has no idea how these threads will interact on a system once their software is running... it's up to the OS to decide how they will be scheduled, so finding bugs that occur between threads becomes a very difficult task.

So, devs have a few large problems that haven't really been fully addressed. First of all, there are no widely adopted, cross-platform threading solutions on the market. Each OS and programming language offers a wide variety to choose from, some offering better performance than others. I think that the larger problem is that many students are not properly trained in writing multiprocessor compatible code... this is often taught as an "advanced topic" in most programming classes, meaning that it is saved for the last week or so of the semester after everything else is said and done.

In the next five or so years, we will see a major shift in programming paradigms... multicore programming will no longer be seen as an "extra feature" of programs; instead, it will be implemented in almost all programs, and multicore programming will be given a much greater degree of attention in computer science education. This is the root cause of the lack of "smart programming", and I believe it can only be solved first by a greater degree of community consensus (ie, native support in more programming languages for threading) and then education.

Also, as long as I'm making random predictions, I'll bet you dollars-to-dimes that we will see 4-core laptops within 2 years, max. :) Multicore really is the future of computing... and although people have been saying that for years, I'm glad to see that the predictions are finally coming true.


Anyways, sorry to go on such a rant about this, but this topic has probably been the most debated and problematic thing I've had to deal with at work for the last year or so. :D
thanks for that :D

Posted: Thu Apr 05, 2007 3:10 pm
by muthafunka
What's the word on quad/octa-cores Abes?

Posted: Thu Apr 05, 2007 4:21 pm
by nebulae
I believe Machinate reported that Live scales up to quad cores. Not sure beyond that.

I configured a simple Octa-Mac with 4gb ram, two drives, and a 23inch display, and it was only $5,973.00. Pocket change. And it'll make awesome trance.

Posted: Thu Apr 05, 2007 4:42 pm
by dpel
sqook wrote:
dave999z wrote:Is Live going to benefit from this machine as much as Logic will?

How much can Live utilize all 8 cores? I know Live is "multithreaded". Does that mean it's all set to take advantage of an unlimited number of processors and/or cores?

I cannot wait to see the Live performance test result on this thing to see if the CPU meter is significantly lower than the dual dual-core machine.
Theoretically, yes, though I've personally never run live on a machine with more than two cores. If the abes did their job right, they would have implemented multicore support to scale to an unlimited number of cores, rather than doing core-specific processing (ie, assiging the graphics thread to one specific core, audio thread to another, etc.).
Yep. I'm running Live 6.0.5 on a Dual Core 3ghz MacPro (3GB of RAM). tons of cpu headroom but when it comes to the "smoothness" an application operates Live is still a little unstable, unpredictable. I believe this is a multi-processor/threading issue/strategy the programmers are getting up to speed with. So save your $$$ for now (or the next 6 months at least) ;-)

Posted: Thu Apr 05, 2007 5:20 pm
by Caymus Cab
sqook wrote:
koneko wrote:it just make me sad though, to see more CPU power coming at us, and less smart programming. why would software developer bother with a better code when a 16-core is over the corner. . . .
The situation isn't quite as simple as you think...


For years, software developers had a "free ride". They were basically assured that as the speed of chips increased, their software would automatically run faster, and they wouldn't need to make significant changes to their code to benefit from these performance boosts.

However, the times, they are a' changin'. CPU clock speeds are not increasing at the rates that they did in the past. Instead, emphasis on SMP (multicore/multiprocessor, that is) architecture is dominating the market, and it's frankly a good thing, because eventually CPU chips will reach a physical limit of how much data they can move around anyways. Transistors can only be made so small, after all. The next logical step isn't to make faster chips, it's to make more intelligent chips that can harness the power of parallel communication... that's how the human brain works, after all... many millions of small, relatively slow processing units all working together in a neural network.

That being said, these architectural changes mean quite a great deal of work for software developers. In order to take advantage of multicore architecture, a program needs to be threaded, meaning that it spawns out several smaller sub-processes each in charge of doing different things. The rub is, when you have many dozens of threads, it's a real challenge to keep them from stepping on each others toes. To make matters worse, a software developer really has no idea how these threads will interact on a system once their software is running... it's up to the OS to decide how they will be scheduled, so finding bugs that occur between threads becomes a very difficult task.

So, devs have a few large problems that haven't really been fully addressed. First of all, there are no widely adopted, cross-platform threading solutions on the market. Each OS and programming language offers a wide variety to choose from, some offering better performance than others. I think that the larger problem is that many students are not properly trained in writing multiprocessor compatible code... this is often taught as an "advanced topic" in most programming classes, meaning that it is saved for the last week or so of the semester after everything else is said and done.

In the next five or so years, we will see a major shift in programming paradigms... multicore programming will no longer be seen as an "extra feature" of programs; instead, it will be implemented in almost all programs, and multicore programming will be given a much greater degree of attention in computer science education. This is the root cause of the lack of "smart programming", and I believe it can only be solved first by a greater degree of community consensus (ie, native support in more programming languages for threading) and then education.

Also, as long as I'm making random predictions, I'll bet you dollars-to-dimes that we will see 4-core laptops within 2 years, max. :) Multicore really is the future of computing... and although people have been saying that for years, I'm glad to see that the predictions are finally coming true.


Anyways, sorry to go on such a rant about this, but this topic has probably been the most debated and problematic thing I've had to deal with at work for the last year or so. :D
very informative, thanks!!

cc

Posted: Fri Apr 06, 2007 2:04 pm
by dave999z
Someone, please, buy one and run the Live performance test. :roll: I don't think we'll get an answer from Apple or Ableton (that we can understand) explaining how well Live/OSX will utilize 8 cores on two chips. An empirical test is what we need.

Posted: Thu May 24, 2007 10:19 am
by yogz
I am getting this fat fat mac very soon (3g, 4go ram) . So I believe we can make this little test :wink:
- Can someone indicate me how to do it?
- I am planning also to make a win xp (or Vista) with with bootcamp. I am not an expert in software-computer relationship, and worryed about what makes working the multicore support: is it just Live? or also the system software (os X...., win xp, vista)

Posted: Thu May 24, 2007 10:27 am
by eyeknow
I have a headache......

"why is that eye?"

cause this shit can't keep up...............

I'm so dumb I thought that the "intelmac" would start a revolution......I thought it was a sign.........er, ya, of the APOCALYPSE! Coreduo, coreduo2, quadcore, quadcoreduo2/cubed-freak-orama...........

bitch of it is, this "outdated" pc I'm typing on right now seems to be doing a better job than the new faster faster, pussycat KILL intelmac...........

just gives me a headache........not to mention my bank account's pain..........

Posted: Thu May 24, 2007 10:27 am
by sqook
yogz wrote: - I am planning also to make a win xp (or Vista) with with bootcamp. I am not an expert in software-computer relationship, and worryed about what makes working the multicore support: is it just Live? or also the system software (os X...., win xp, vista)
It needs to be supported on both levels. That is, the OS must first provide support for multi-core chips, and then your software must be "optimized" to take advantage of it.

OSX supports multicore chips "out of the box", meaning that you will have no worries configuring it. Windows is a slightly different story... XP Home only supports a single processor (with any number of cores), and XP Pro supports up to two processors (also with any number of cores). So, you will almost certainly need XP Pro on this machine.

Vista... I would advise waiting on it. :) There are stil many devices and software that do not completely support it, and Microsoft is already promising better support for them in the upcoming SP1. Bootcamp does support Vista, by the way, but I don't know exactly how well, as I haven't gotten a chance to try it out yet. Also, I have no idea which flavors of Vista support multicore machines... but either way, XP is a pretty safe bet.

Posted: Thu May 24, 2007 10:53 am
by yogz
thank sqoop for all those precious infos. As you said, xp pro should be the right solution for the moment. As this machine as to work nice immediatly, I can't really experiment.

Posted: Thu May 24, 2007 3:53 pm
by thelocalhost
sqook wrote:Also, as long as I'm making random predictions, I'll bet you dollars-to-dimes that we will see 4-core laptops within 2 years, max. :) Multicore really is the future of computing... and although people have been saying that for years, I'm glad to see that the predictions are finally coming true.
I believe it's more a battery/power consumption issue for the 4-core laptops. Maybe a heat issue as well.

Posted: Thu May 24, 2007 4:11 pm
by sqook
thelocalhost wrote:
sqook wrote:Also, as long as I'm making random predictions, I'll bet you dollars-to-dimes that we will see 4-core laptops within 2 years, max. :) Multicore really is the future of computing... and although people have been saying that for years, I'm glad to see that the predictions are finally coming true.
I believe it's more a battery/power consumption issue for the 4-core laptops. Maybe a heat issue as well.
Indeed. However, I still believe that these technical obstacles will be overcome in two years time. :)

Just got one of these in the office...

Posted: Thu May 24, 2007 4:44 pm
by RobertX
I just got a octi-core Mac Pro in the office this week. It's sitting on the workbench behind my desk. :P Waiting for the RAM and 10k drives to show up.

This thing was DOA out of the box. There was thermal paste squeeze-out on the PCB of one of the RAM cards. The resulting short circuit caused the POST to fail immediately. A little alcohol solved that problem. :)

Shall I install Live, run the performance test and post results?

Posted: Thu May 24, 2007 4:49 pm
by ethios4
anti-banausic wrote:Well, it was never going to be cheap.
It will be in 5 years! ;)