In any case, unless you are writing an article for publication or something like that, I wouldn't worry about the precise definition: In context the meaning is usually clear.
There is another important word, "concurrent", that comes into play.
Consider things like threading. Does using threads mean multiprocessing?
You can have multiple threads on a single-CPU device, it means the scheduler pauses one thread and resumes another. Nothing is concurrent. You can also have multiple threads on a multi-CPU device, it can mean (but doesn't guarantee) that threads are running concurrently on another processors.
The best example I remember from years ago was a shopping analogy. You can have lots of customers (=processes) waiting in lines behind lots of checkstands. You can have a single checker (=processor) that works at one checkstand for a few moments, then stops and moves to the next checkstand, then stops and moves to the next checkstand, cycling through them all. This means the customers with the least work get processed quickly and they don't need to wait behind the customers with a lot of work, so it feels faster. But it also means the customers requiring a lot of work take much more time, so it feels slower. According to the actual clock, it takes more time for the checker to accomplish all the work because of the time spent jumping from checkstand to checkstand. But if you can get additional checkers to the checkstands the work can be done more quickly. It feels faster because the customers with a small amount of work are addressed more frequently, and two workers are nearly as fast as one worker, but again the actual time being spent combined to accomplish all the work is roughly the same.
If you were writing a book, I would define 'multiprocessing' in terms of concurrency. Threading by itself, or breaking the work into multiple independently compatible pieces, is not multiprocessing. Threading can be useful to achieve multiprocessing, but is not the only way. Multiprocessing (again, in my book) would be anything where you are actually performing multiple independent computing tasks concurrently.
Further, there are many algorithms out there where you can exchange linear clock time with parallel space. That is, something takes one amount of time, you can sometimes split the work to achieve better results. For example, when searching you can break it up in to search zones. When sorting you can have everyone sort a portion, then work together to merge the results. Some tasks are easily done concurrently, other tasks cannot be done concurrently. The two most popular parallels are post-holes and babies. Many people can dig a construction site, only one person can dig a post hole; Many women can produce many babies, but each baby still stakes 9 months no matter how many women are assigned.
Edited by frob, 11 March 2014 - 02:18 PM.