The future of concurrent programming
freeagle
dalibor.free at gmail.com
Tue May 29 04:59:36 PDT 2007
Henrik wrote:
> Todays rant on Slashdot is about parallel programming and why the support for multiple cores in programs is only rarely seen. There are a lot of different opinions on why we haven’t seen a veritable rush to adopt parallelized programming strategies, some which include:
>
> * Multiple cores haven't been available/affordable all that long, programmers just need some time to catch up.
> * Parallel programming is hard to do (as we lack the proper programming tools for it). We need new concepts, new tools, or simply a new generation of programming languages created to handle parallelization from start.
> * Parallel programming is hard to do (as we tend to think in straight lines, lacking the proper cognitive faculties to parallelize problem solving). We must accept that this is an inherently difficult thing for us, and that there never will be an easy solution.
> * We have both the programming tools needed and the cognitive capacity to deal with them, only the stupidity of the current crop of programmers or their inability to adapt stand in the way. Wait a generation and the situation will have sorted itself out.
>
> I know concurrent programming has been a frequent topic in the D community forums, so I would be interested to hear the community’s opinions on this. What will the future of parallel programming look like?
> Are new concepts and tools that support parallel programming needed, or just a new way of thinking? Will the “old school” programming languages fade away, as some seem to suggest, to be replaced by HOFL:s (Highly Optimized Functional Languages)? Where will/should D be in all this? Is it a doomed language if it does incorporate an efficient way of dealing with this (natively)?
>
>
> Link to TFA: http://developers.slashdot.org/developers/07/05/29/0058246.shtml
>
>
> /// Henrik
>
I think the languages are enough for concurrent programming. I'm planing
to work on a project that will use concurrency from the ground up ( it
will be a multimedia library ). I'm also interested in game/graphics
development. I've read a few articles that talk about using multiple
threads and multi-core CPUs in such environments. The ideas published
were based on current generation of programming languages. They provide
methods/approaches of coding a multi-threaded game engine with
performance rising nearly linearly with additional CPU cores. So I think
the problem with MT applications is that people has not yet adapted to
thinking in parallel. They don't divide the problem correctly into parts
that can be executed concurrently. Therefor they use a lot of locking
mechanisms, which lead into other, and harder to solve, problems, like
deadlocks. What may be lacking are not features in current programming
languages, but maybe tools that would help with designing such applications.
freeagle
More information about the Digitalmars-d
mailing list