Parallel computing those that use concurrency, are more difficult to write than sequential ones, because concurrency introduces several new classes of potential software bugs, of which race conditions are the most common. Communication and synchronization between the different subtasks are typically some of the greatest obstacles to getting good parallel program performance. A theoretical upper bound on the speed-up of a single program as a result of parallelization is given by Amdahl's law. Traditionally, computer software has been written for serial computation. To solve a problem, an algorithm is constructed and implemented as a serial stream of instructions. These instructions are executed
Serial memory processing Serial memory processing Serial memory processing is the act of attending to and processing one item at a time. This is usually contrasted against parallel memory processing, which is the act of attending to and processing all items simultaneously. In short-term memory tasks, participants are given a set of items (e.g. letters, digits) one at a time and then, after varying periods of delay, are asked for recall of the items. As well, participants could be asked whether a specific target item was present in their original set. The serial order of items and the relationships between them can have