A pipeline is a series of processing elements where the output of one element is input to the next. Pipelines can operate sequentially or in parallel. Common types of pipelines include instruction pipelines in CPUs, graphics pipelines in GPUs, software pipelines using system calls, and HTTP pipelining. The key aspect of pipeline design is balancing stage processing times so the pipeline outputs finished items at the rate of its slowest stage. Reservation tables are used to visualize scheduling in pipelines. Multiprocessing uses multiple CPUs connected with shared memory and I/O to boost system speed, provide fault tolerance, and better match applications.