Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Parallel Languages

Sign in to follow this  


Been reading some interesting stuff about new programming languages being developed at Cray (Chapel), DARPA, IBM (X10) and so on. As we know, the transition to more accessible parallel programming in inevitable. It's even happening in the browers with javascript worker threads.

One of the problems when you get a lot of CPUs with their own cache and possibly their own RAM pools is that your data is no longer uniform. When you start working with one set of data on one CPU, if the thread moves to another CPU, you have a serious performance penalty as the data is moved over to it. On the CELL, the use of private address spaces on the SPEs ameliorates this, but brings its own management complexities. One proposed solution to this is maintaining a global address space, with everything accessible to all processors, but making segments of this space associated with specific processors and RAM pools. This can be still complimented with private spaces, but the point is that you still have direct access to a global space, which simplifies code and can improve performance.

To do this, these new languages (and language extensions) use the concept of mapping data/memory to places/domains (representing these pools of cache, RAM and even remote computers) with distribution objects and annotations (e.g. shared/private data). The point of having that extra information is that you can intelligently manage what is executed where. You can ensure that one thread does not go where it's data would be slow to access. Now, these particular languages are focused on supercomputers, but once we hit 8 cores per CPU this sort of system with be necessary, imho. I expect mainstream languages to pick up on it in a few years.
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!