Parallel programming (also concurrent programming), is a computerprogramming technique that provides for the execution of operations concurrently, either within a single computer, or across a number of systems. In the latter case, the term distributed computing is used. Multiprocessor machines achieve better performance by taking advantage of this kind of programming.
In parallel programming, single tasks are split into a number of subtasks that can be computed relatively independently and then aggregated to form a single coherent solution. Parallel programming is most effective for tasks that can easily broken down into independent tasks such as purely mathematical problems, e.g. factorisation.
One way to achieve parallel programming is through distributed computing, which is a method of information processing in which work is performed by separate computers linked through a communications network.
Article "Multiprocessor Optimizations: Fine-Tuning Concurrent Access to Large Data Collections (http://msdn.microsoft.com/msdnmag/issues/01/08/concur/default.aspx)" by Ian Emmons
A program leading to a Juris Doctor degree and an advanced degree in any discipline of the Graduate School at the University of Washington can be developed with the approval of the Dean of the Law School, the Dean of the Graduate School, and the student's Graduate Program Adviser.
Candidates who are acccepted to concurrentprograms might prefer to begin the master's program first, which would allow them to go straight through the JD program in 3 years, thus graduating with the same JD class they began with.
Concurrent enrollment in the Evans School of Public Affairs, leading to a Master of Public Administration, is ideal for students interested in administrative or legislative practice.
Concurrentprogramming is becoming increasingly important in both scientific and commercial areas.
The main focus is in the understanding of the semantics of a concurrentprogram, especially where communication between tasks occurs.
Due to the way concurrency is presently understood, as a consequence of the implementation's complexity, one often loses track of the original abstractions as they are expressed in programs.