Pages

Wednesday, April 25, 2012

The NERW Concurrency Model

Welcome

The NERW Concurrency Model extends the traditional von Neumann computing model into concurrent processing. The von Neumann machine consists of 3 elements: (1) a memory to store information, (2) a central processing unit (CPU) to process the information, and (3) a computer to host the first two elements.

The NERW model extends the von Neumann machine in two ways: (1) it gives a concurrency capability to the existing elements, and (2) it adds a fourth element to represent the distributed dimension. The NERW reference model consists of four elements:
  1. The memory element (or mel) for storing and sharing information
  2. The processing element (or pel) for execution on the shared information
  3. The computer element (or cel) to host the mels and pels
  4. The network element (or nerw) for communication between the cels
The original von Neumann machine can be viewed as a simplified case of the NERW Concurrency Model, with only one cel (the CPU) hosting one pel (the single thread) and supporting one mel (the memory unit), without any need for a networking nerw.

A multitasking operating system where a single-core machine time slices its processing unit to handle multiple execution threads is represented in the NERW Concurrency Model as having one cel (the single core CPU), multiple pels (threads), multiple mels (segmented memory), and no networking nerw.

A parallel computer with a multicore processor which allows threads to be executed simultaneously is a step-up in the NERW reference model. Such a system is viewed as having multiple cels (CPU cores), multiple pels (threads or tasks), multiple mels (shared memory), and no networking nerw.

A distributed system where there are multiple computers networked locally or over a wide area (such as over the web or cloud), is the most advanced embodiment of the NERW reference model. Such a system makes use of the nerw element.

While there is a semantic difference between parallel and concurrent, unless a specific parallel or concurrent case is referred to, this blog will use the term concurrent for discussion, since it is the more generic term to describe tasks that can start and end in overlapping time periods.

In this chapter:

Previous Next Top

3 comments:

  1. Whereas there may be merit in introducing mel, pel, cel, and newr, the document seems to describes those concepts for an OS rather than for a language.

    ReplyDelete
  2. Also mel, pel, cel, and newr are abbreviations. be consistent. Either mel or Mel, but not both. Example: always IBM. Used to be AT&T, now become at&t, but never be both at the same time.

    ReplyDelete
  3. Adding references:

    https://www.quora.com/What-is-the-exact-difference-between-parallel-and-concurrent-programming

    ReplyDelete