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.
"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," Somasegar 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.