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
Sega TeraDrive similar in design to 9-pin male serial ports, and 2 PS/2 ports to the right side of the unit to accommodate for the mouse and keyboard. The system also contained several ports to its rear. In order from left to right: 9-pin male serial port, 25-pin parallel port for connection to a printer, stereo RCA jacks and composite NTSC video output for connection to a TV, analogue RGB for monitor connection, and a 2nd 9-pin male serial connector labelled "EXT", similar to that found on the rear of an original Mega Drive base unit. The motherboard also had a spare