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 cable correspond to a fixed length of cable since varying cables have different characteristics. Empirically tested combinations of bit rate, serial ports, cable type, and lengths may provide reliable communications, but generally RS-232-compatible ports are intended to be connected by, at the most, a few tens of metres of cable. Other serial communications standards are better adapted to drive hundreds or thousands of metres of cable. This cable has short transmission distance because of noise limiting the transmission of high numbers of bits per second when the cable is more than 15m long. This means that the transmitting and receiving lines