By: Howard Chu (hyc.delete@this.symas.com), February 15, 2008 12:49 pm
Room: Moderated Discussions
David Kanter (dkanter@realworldtech.com) on 2/15/08 wrote:
---------------------------
>Howard Chu (hyc@symas.com) on 2/14/08 wrote:
>---------------------------
>>* The overarching goal should be to make it easy to write programs that execute
>>efficiently on highly parallel computing systems
>>
>>Of course "easy" and "efficient" are opposed goals.
>
>Of course, but python is a reasonably efficient language and it is easy. I think
>the idea is to provide a parallel language that is simple and easy for the app
>programmers, and then system developers can use C or C++ or whatever they want.
OK, I'll accept that existing programming languages aren't really helping much here. I'm sure that system programmers would appreciate aids to parallelism too. There's plenty of useful machine instructions that aren't accessible as C primitives; it would be nice to have a language that provides these features without having to rely on non-portable assembler or compiler-specific extensions.
>>* "Autotuners" should play a larger role than conventional compilers in translating parallel programs.
>>
>>These guys seem to like introspective JVMs and JIT optimizers. I always view this
>>as a losing proposition. I can either have 100% of my CPU resources crunching a
>>solution to my problem, or 100-N% crunching, and N% trying to dynamically re-optimize
>>my code. Hint - write your code correctly in the first >place.
>
>This is one place where I think they are spot on. Parallel programming is obscenely
>expensive, and we need to drive the cost down in order to get more out of future
>MPUs. One way to do that is to ensure that a lot of parallelism is automatically extracted.
>
>Once upon a time, people thought compilers were stupid. But once they were able
>to get 80-90% of the performance of a human coding assembly, they became pretty
>damn popular (that and when architectures stopped being programmer friendly).
>
>I think there's a clear trend towards HLL for applications programmers. I don't
>see why this would stop for parallelism.
I'm not saying that this shouldn't be done in a higher level language. I'm saying that I would prefer not to waste cycles re-discovering optimizations each time my code is executed. I'd prefer to pay all of the cost of optimization once, and then just let the code run without any introspection/virtualization overhead.
>>* To maximize programmer productivity, future programming >models must be more
>>human-centric than the conventional focus on hardware or >applications.
>>
>>Kinda like what I touched on before, designing programming >languages whose input
>>tokens aren't character-based. Aside from that it's all >bunk. 3000+ years ago a
>>guy named Hercules had to clean out the Augean stables. >Today mucking horse stalls
>>is still a dirty job. That's the nature of the job.
>
>Some things are easier in python than in C though...
I guess. It just strikes me that you can go too far here. Make a job so easy that any idiot can do it, and you'll wind up with lots of products created by idiots.
>>* Architects should not include features that significantly affect performance
>>or energy if programmers cannot accurately measure their >impact via performance counters and energy counters.
>
>This sounds like a good idea. Energy counters is definitely an interesting one.
Yes, sounds nice to me for system programmers. Doesn't sound like something most application programmers should have to think about. Though it's good to have an API to expose it all, definitely.
---------------------------
>Howard Chu (hyc@symas.com) on 2/14/08 wrote:
>---------------------------
>>* The overarching goal should be to make it easy to write programs that execute
>>efficiently on highly parallel computing systems
>>
>>Of course "easy" and "efficient" are opposed goals.
>
>Of course, but python is a reasonably efficient language and it is easy. I think
>the idea is to provide a parallel language that is simple and easy for the app
>programmers, and then system developers can use C or C++ or whatever they want.
OK, I'll accept that existing programming languages aren't really helping much here. I'm sure that system programmers would appreciate aids to parallelism too. There's plenty of useful machine instructions that aren't accessible as C primitives; it would be nice to have a language that provides these features without having to rely on non-portable assembler or compiler-specific extensions.
>>* "Autotuners" should play a larger role than conventional compilers in translating parallel programs.
>>
>>These guys seem to like introspective JVMs and JIT optimizers. I always view this
>>as a losing proposition. I can either have 100% of my CPU resources crunching a
>>solution to my problem, or 100-N% crunching, and N% trying to dynamically re-optimize
>>my code. Hint - write your code correctly in the first >place.
>
>This is one place where I think they are spot on. Parallel programming is obscenely
>expensive, and we need to drive the cost down in order to get more out of future
>MPUs. One way to do that is to ensure that a lot of parallelism is automatically extracted.
>
>Once upon a time, people thought compilers were stupid. But once they were able
>to get 80-90% of the performance of a human coding assembly, they became pretty
>damn popular (that and when architectures stopped being programmer friendly).
>
>I think there's a clear trend towards HLL for applications programmers. I don't
>see why this would stop for parallelism.
I'm not saying that this shouldn't be done in a higher level language. I'm saying that I would prefer not to waste cycles re-discovering optimizations each time my code is executed. I'd prefer to pay all of the cost of optimization once, and then just let the code run without any introspection/virtualization overhead.
>>* To maximize programmer productivity, future programming >models must be more
>>human-centric than the conventional focus on hardware or >applications.
>>
>>Kinda like what I touched on before, designing programming >languages whose input
>>tokens aren't character-based. Aside from that it's all >bunk. 3000+ years ago a
>>guy named Hercules had to clean out the Augean stables. >Today mucking horse stalls
>>is still a dirty job. That's the nature of the job.
>
>Some things are easier in python than in C though...
I guess. It just strikes me that you can go too far here. Make a job so easy that any idiot can do it, and you'll wind up with lots of products created by idiots.
>>* Architects should not include features that significantly affect performance
>>or energy if programmers cannot accurately measure their >impact via performance counters and energy counters.
>
>This sounds like a good idea. Energy counters is definitely an interesting one.
Yes, sounds nice to me for system programmers. Doesn't sound like something most application programmers should have to think about. Though it's good to have an API to expose it all, definitely.
Topic | Posted By | Date |
---|---|---|
Multicore is unlikely to be the ideal answer. | Anders Jensen | 2008/02/14 04:24 AM |
And the links.. | Anders Jensen | 2008/02/14 04:25 AM |
Disappointing.. | Linus Torvalds | 2008/02/14 10:17 AM |
Disappointing.. | Mark Roulo | 2008/02/14 11:03 AM |
LOL (NT) | Linus Torvalds | 2008/02/14 05:43 PM |
Disappointing.. | David Patterson | 2008/02/15 11:53 AM |
Disappointing.. | Linus Torvalds | 2008/02/15 05:01 PM |
Disappointing.. | anon | 2008/02/15 08:54 PM |
Disappointing.. | JasonB | 2008/02/19 07:45 PM |
Disappointing.. | Ilya Lipovsky | 2008/02/22 06:27 PM |
Disappointing.. | Scott Bolt | 2008/03/16 11:36 AM |
Need for new programming languages | Vincent Diepeveen | 2008/02/19 06:18 AM |
Need for new programming languages | Pete Wilson | 2008/02/24 11:41 AM |
Disappointing.. | Zan | 2008/02/25 10:52 PM |
Disappointing.. | Robert Myers | 2008/02/19 09:47 PM |
Disappointing.. | Fred Bosick | 2008/02/22 06:38 PM |
Disappointing.. | Robert Myers | 2008/03/01 01:17 PM |
The limits of single CPU speed are here. | John Nagle | 2008/03/14 10:55 AM |
The limits of single CPU speed are here. | Howard Chu | 2008/03/15 01:02 AM |
The limits of single CPU speed are here. | slacker | 2008/03/15 08:08 AM |
The limits of single CPU speed are here. | Howard Chu | 2008/03/17 01:47 AM |
The limits of single CPU speed are here. | slacker | 2008/03/17 10:04 AM |
And the links.. | Howard Chu | 2008/02/14 12:58 PM |
I take some of that back | Howard Chu | 2008/02/14 01:55 PM |
And the links.. | Jesper Frimann | 2008/02/14 02:02 PM |
And the links.. | Ilya Lipovsky | 2008/02/15 02:24 PM |
And the links.. | iz | 2008/02/17 10:55 AM |
And the links.. | JasonB | 2008/02/17 07:09 PM |
And the links.. | Ilya Lipovsky | 2008/02/18 01:54 PM |
And the links.. | JasonB | 2008/02/18 10:34 PM |
And the links.. | Thiago Kurovski | 2008/02/19 07:01 PM |
And the links.. | iz | 2008/02/20 10:36 AM |
And the links.. | Ilya Lipovsky | 2008/02/20 03:37 PM |
And the links.. | JasonB | 2008/02/20 06:28 PM |
And the links.. | JasonB | 2008/02/17 06:47 PM |
And the links.. | Ilya Lipovsky | 2008/02/18 02:27 PM |
And the links.. | JasonB | 2008/02/18 10:00 PM |
And the links.. | JasonB | 2008/02/19 03:14 AM |
And the links.. | Ilya Lipovsky | 2008/02/20 04:29 PM |
And the links.. | JasonB | 2008/02/20 06:14 PM |
And the links.. | Ilya Lipovsky | 2008/02/21 11:07 AM |
And the links.. | Howard Chu | 2008/02/14 01:16 PM |
And the links.. | Jukka Larja | 2008/02/15 03:00 AM |
Berkeley View on Parallelism | David Kanter | 2008/02/15 11:41 AM |
Berkeley View on Parallelism | Howard Chu | 2008/02/15 12:49 PM |
Berkeley View on Parallelism | David Kanter | 2008/02/15 03:48 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/17 05:42 PM |
Berkeley View on Parallelism | nick | 2008/02/17 09:15 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/18 04:23 PM |
Berkeley View on Parallelism | nick | 2008/02/18 10:03 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/19 01:39 AM |
Berkeley View on Parallelism | rcf | 2008/02/19 12:44 PM |
Berkeley View on Parallelism | Howard Chu | 2008/02/19 03:25 PM |
Average programmers | anon | 2008/02/18 12:40 PM |
Berkeley View on Parallelism | JasonB | 2008/02/15 08:02 PM |
Berkeley View on Parallelism | JasonB | 2008/02/15 08:02 PM |
Berkeley View on Parallelism | Dean Kent | 2008/02/15 08:07 PM |
Berkeley View on Parallelism | Ray | 2008/02/20 03:20 PM |
Berkeley View on Parallelism | JasonB | 2008/02/20 06:11 PM |
Berkeley View on Parallelism | FritzR | 2008/02/24 03:08 PM |
rubyinline, etc. | nordsieck | 2008/02/22 03:38 PM |
rubyinline, etc. | JasonB | 2008/02/23 05:53 AM |
rubyinline, etc. | nordsieck | 2008/03/02 01:40 AM |
rubyinline, etc. | Michael S | 2008/03/02 02:49 AM |
rubyinline, etc. | Dean Kent | 2008/03/02 07:41 AM |
rubyinline, etc. | Michael S | 2008/03/02 08:19 AM |
rubyinline, etc. | Dean Kent | 2008/03/02 08:30 AM |
rubyinline, etc. | JasonB | 2008/03/02 05:26 PM |
rubyinline, etc. | JasonB | 2008/03/02 06:01 PM |
rubyinline, etc. | Anonymous | 2008/03/03 02:11 AM |
rubyinline, etc. | JasonB | 2008/03/03 09:40 AM |
rubyinline, etc. | Foo_ | 2008/03/09 09:59 AM |
rubyinline, etc. | JasonB | 2008/03/10 01:12 AM |
rubyinline, etc. | Gabriele Svelto | 2008/03/10 02:22 AM |
rubyinline, etc. | JasonB | 2008/03/10 04:35 AM |
C++ for beginners | Michael S | 2008/03/10 05:16 AM |
C++ for beginners | JasonB | 2008/03/10 06:35 AM |
C++ | Michael S | 2008/03/10 04:55 AM |
rubyinline, etc. | Linus Torvalds | 2008/03/03 11:35 AM |
rubyinline, etc. | Dean Kent | 2008/03/03 02:35 PM |
rubyinline, etc. | JasonB | 2008/03/03 03:57 PM |
rubyinline, etc. | Dean Kent | 2008/03/03 08:10 PM |
rubyinline, etc. | Michael S | 2008/03/04 01:53 AM |
rubyinline, etc. | Dean Kent | 2008/03/04 07:51 AM |
rubyinline, etc. | Michael S | 2008/03/04 08:29 AM |
rubyinline, etc. | Dean Kent | 2008/03/04 08:53 AM |
rubyinline, etc. | Michael S | 2008/03/04 11:20 AM |
rubyinline, etc. | Dean Kent | 2008/03/04 02:13 PM |
read it. thanks (NT) | Michael S | 2008/03/04 04:31 PM |
efficient HLL's | Patrik Hägglund | 2008/03/04 03:34 PM |
efficient HLL's | Wes Felter | 2008/03/04 09:33 PM |
efficient HLL's | Patrik Hägglund | 2008/03/05 01:23 AM |
efficient HLL's | Michael S | 2008/03/05 02:45 AM |
efficient HLL's | Wilco | 2008/03/05 05:34 PM |
efficient HLL's | Howard Chu | 2008/03/05 07:11 PM |
efficient HLL's | Wilco | 2008/03/06 02:27 PM |
efficient HLL's | anon | 2008/03/05 08:20 AM |
And the links.. | Groo | 2008/02/17 04:28 PM |
And the links.. | Vincent Diepeveen | 2008/02/18 02:33 AM |