Many signal processing applications such as medical imaging, 3-D graphics acceleration, radar, sonar, multichannel audio mixers, telephony and software radio communications require more number crunching power than can be provided by a single processor. Multiprocessor systems are the solution to these applications but tend to increase the complexity of the design. When moving from a single processor system to a multiple processor system a new set of design considerations needs to be addressed in order to make the system as efficient as possible. The goal of a multiprocessor design is to optimize for computations/$, computations/watt, and computations/sq. inch. Questions that will arise include how will the data be distributed between processors, how will the algorithm be partitioned, and how many processors are necessary. Each one of these concerns has the potential to be the limiting performance factor in the system. This paper will examine the concerns of designing a multiprocessor system including methods for distribution of data, the partitioning of an algorithm across multiple processors, and the calculation of the number of processors required for a particular algorithm. An Analog Devices SHARC DSP based example will be used to illustrate the tradeoffs made in each of these. A 1024 point complex FFT has been implemented on a dual SHARC multiprocessing system. This example will demonstrate DSP architectural features that make the hardware and software design of a multiprocessor system easier. Multiprocessing software and hardware tools from Spectrum Signal Processing will be discussed. These tools help in the mapping of algorithms and determining the efficiency of a multiprocessing system.