Microsoft is offering its .Net language for building parallel applications - Axum - enabling developers to build scalable applications for multcore systems via the .Net Framework, a Microsoft official said in a blog entry.
Axum is a .Net language building on principles of isolation, agents, message-passing, and data flow, Microsoft said. The company late last week made Axum available via MSDN Labs.
"In Axum, concurrency is the default. All agents execute concurrently unless you explicitly restrict them. This means you spend less time on boilerplate code for multi-threading and more time on your code," said S "Soma" Somasegar, senior vice president of the Microsoft developer division, in his blog last Friday evening.
Agents in Axum can be hosted in a single or separate process or on a separate machine.
"This unified programming model means you don't need to rewrite your code when you want to run it in a distributed scenario, he said.
Axum leverages several concepts to enable "safe" parallel programming, Somasegar said. Among these concepts is domains isolate state, to avoid implicit dependencies that can result in difficult-to-find concurrency bugs.
"Domains make you more productive by allowing you to worry less about concurrency and focus more on your algorithms and code," Somasegar said.
Also used is a cooperative blocking model using latencies to do meaningful work. Axum offers the option to declaratively state how an agent intents to use domain state.
"The compiler will enforce that agents uphold their stated intentions and the runtime will schedule your agents accordingly to maintain safety," Somasegar said.