Today I read an interesting news on PcworldVn . It relates to a new programming language of Microsoft which can work with Visual Studio 2008 and .Net framework. This new is called “Axum, “a language that builds upon the architecture of the Web and principles of isolation, actors, and message-passing to increase application safety, responsiveness, scalability, and developer productivity”.
So what is the meaning of parallel programming? I quote parallel programmings definition from other website.
- Parallel programming involves:
- Decomposing an algorithm or data into parts
- Distributing the parts as tasks which are worked on by multiple processors simultaneously
- Coordinating work and communications of those processors
- Parallel programming considerations:
- Type of parallel architecture being used
- Type of processor communications used
An obvious motivation for writing a parallel program is to make it run faster. Closely related to that is a desire to make the program do more while it’s running. This is especially important for interactive applications that must process user input while performing a background task.
Very often, responsiveness of interactive applications is hindered by long-latency components such as I/O or user input. For example, an email client must wait for the data from the server, which might be behind a slow network. It is desirable that such an application remains responsive while requesting data from the server.
All describation above seems like to a well-know concept Multi-Threading. If you know a platform for Multi-Threading in C++ “OpenMP”, you will understand what Axum is for. They all support multi-task and parallel programming. However there are a big differences between OpenMP and Axum. OpenMP is a library and it is very easy to use with your source code but you can really not define the way it work. You can only configure it, not define it. Axum provides another way for you. With Axum you control most everything because it is only a programming language.