InfoQ Homepage Parallel Programming Content on InfoQ
-
Designing for flexibility and robustness: Asynchronous message model, OOP and Functional Programming
According to Pragmatic Programmers it is preferable in OOP to avoid design based on returning values. Michael Feathers argues that it may also be better to use the asynchronous message model that might be instrumental for improving adaptability and robustness. This maps well to the Erlang model though opposing some of the principles of pure functional programming.
-
Think you know what scalability is?
Many people talk about scalability, but do you know what it really means? Royans K Tharakan dispels some myths and provides a detailed explanation of some of the common scalability terms.
-
The Software Architecture Impact of the Multi-Core Processor Trend
A JDJ article explains that as we move towards Multi-Core processor architectures, single threaded performance improvement is likely to see a significant slowdown over the next one to three years. In some cases, single-thread performance may even drop. This in turn will require software developers change the way we develop software, increasing our utilization of parallel execution architectures.
-
Programming for Parrallelism: The Parallel Hierarchies Pattern
Multi-core processors offer new performance opportunities. Shekhar Borkar from Intel highlighted, however, that software development practices have to be retooled to leverage this potential. In this vein, Prof. Jorge L. Ortega-Arjona from the National Autonomous University of Mexico has recently introduced a new architectural pattern for parallel programming: Parallel Hierarchies pattern.
-
Ruby 1.9 adds Fibers for lightweight concurrency
Fibers were recently in the Ruby 1.9 branch. The Coroutine-like concept has many uses, such as implementing lightweight concurrency and others. We look at the concept and influences of Fibers in Ruby 1.9, as well as code samples.
-
Is Erlang the Java for the concurrent future?
The future of computing is going to be concurrent. Even desktop CPUs are multicore nowadays, and when customers are buying more and more CPUs to their servers, they expect their applications to scale well to utilize their new investment. But that's not going to happen with many software systems of today. Can Erlang help?
-
Microsoft Research's Accelerator: A Data-Parallel Library for .NET that Targets GPUs
Microsoft Research's Accelerator Project exposes a .NET library for performing parallel data processing using a computer's GPU.