• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Nicholas Kong

Difference between multiprocessing and multiprocessor

11 posts in this topic

Multiprocessing means using 2 or more CPU to run different parts of the same program. <-Meaning one program.

 

Source: http://www.britannica.com/EBchecked/topic/397249/multiprocessing

 

But this the link above said multiprocessing involves 2 or more CPU to run multiple programs at the same time. <-But the source below says multiple programs.

 

http://www.webopedia.com/TERM/M/multiprocessing.html

Multiprocessor is a computer system having two or more CPUs each sharing main memory and peripherals in order to process programs at the same time

 

http://en.wikipedia.org/wiki/Multiprocessing <-But wikipedia uses the definition of multiprocessing (2nd paragraph of the post) to define multiprocessing.

 

Which internet source is saying the right thing or does multiprocessing can apply to one or more programs?

Edited by warnexus
0

Share this post


Link to post
Share on other sites

The definition from britannica.com seems bogus to me. In particular, it requires the parts of the code to be different. What if all the CPUs run the same part of the program?

 

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.

2

Share this post


Link to post
Share on other sites

Multiprocessing is to processing as multiprocessor is to processor. I agree with Alvaro, the term is pretty broad so it should be clear from context what you're saying.

0

Share this post


Link to post
Share on other sites

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
0

Share this post


Link to post
Share on other sites

Multiprocessing is to processing as multiprocessor is to processor. I agree with Alvaro, the term is pretty broad so it should be clear from context what you're saying.

So the second and third sources are reliable?

0

Share this post


Link to post
Share on other sites


Multiprocessing (again, in my book) would be anything where you are actually performing multiple independent computing tasks concurrently.

 

As in executing different instructions of the same program or instructions from different programs at the same time?

0

Share this post


Link to post
Share on other sites

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.

And if you are writing an article, define the terms you use yourself.

English is all in how you use it, with terminology invented by someone using it in a particular way. If two people use the same word to mean different things, that doesn't mean one of them is wrong, it means there word has two meanings. The important thing is to get your ideas across.

However I this case there might be something else confusing you: to run a single computation on a cluster requires each computer in the cluster to be running it's own program. The program's the same (usually) for each computer, but it has separate instances. However it's logically one task. This kind of cluster computer has been called multiprocessing, and would be the first kind of multiprocessing possible. Shared memory systems came later.
1

Share this post


Link to post
Share on other sites

 

Multiprocessing (again, in my book) would be anything where you are actually performing multiple independent computing tasks concurrently.

 
As in executing different instructions of the same program or instructions from different programs at the same time?

 

 
Either one or both, depending on the system you are talking about and how you defined the terms.
 
Just because an operating system takes advantage of multiple concurrent processors does not mean a specific application also uses concurrent processors.  The operating system might have four or six or eight processes running at the same time, but each of those programs might be written to only use a single processor.  Also if you are running programs across a network and two or ten or fifty computers all work on the problem together, that type of parallel processing might be considered multiprocessing by some definitions, it might not for other definitions.
 
When I look at your links, they clearly show that the terms are not fixed.  The articles refer to these differences while still trying to maintain an authoritative writing sytle: "sometimes used to refer to", "there are many others", providing definitions (1) and (2), and by listing differences in efforts by IBM, Microsoft and Apple. If there was only one single fixed definition they wouldn't need any of those things.

Living natural languages are just going to be that way. English does not have standardization committees where there is a single well-formed meaning where any non-conforming meaning is undefined. The meanings are whatever people say they are.

1

Share this post


Link to post
Share on other sites

Consider things like threading. Does using threads mean multiprocessing?

I'd say no. A "thread" is an abstraction layer above "multiprocessing", which is why we refer to it as being a threading model. Threads define sections of code that could be executed independently, that is, their execution order is allowed to be undefined, but it definitely does not imply multiprocessing.

 

As many have said, I would also define multiprocessing as performing independent computational tasks concurrently, and I'd define threads as an enforcement of rules upon sections of code allowing them to be executed independently, but not implying they will be - only that they can be.

Edited by TheComet
0

Share this post


Link to post
Share on other sites

This anecdotal information might shed light on things:

 

I wrote a an application that on Windows Vista ran multi threaded and was clearly using multiple processor cores on an i7 4 core machine. However running the same program on Windows NT and a multi processor, multi core Xeon machine, the same exact executable did not use multiple processors, neither mulitple cores and ran slower than on the single processor machine.

 

What gives?

Edited by jbadams
Restored post contents from history.
0

Share this post


Link to post
Share on other sites

I do not think that deifnition in britanica of word multiprocessing, as computing termine, is vague. There is a difference from multithreading and multiprocessing I believe. From OS definition, process is an object that encapsulates memory and CPU usage, memory between processes is exclusive. While on the other hand, process can hold a thread or more of them, having threads process shared memory by more cores if possible- multithreading. It is like for me that multithreading promisses a a paralel memory access over more cores in a single process,  while multiprocessing promisses parallel processing of processes.So if for example an OS that supports multithreading hold a multiprocessing CPU, it cannot create more than one thread for a process, but can distribute CPUs for those processes that can run parallel smoothly.

0

Share this post


Link to post
Share on other sites

This anecdotal information might shed light on things:

 

I wrote a an application that on Windows Vista ran multi threaded and was clearly using multiple processor cores on an i7 4 core machine. However running the same program on Windows NT and a multi processor, multi core Xeon machine, the same exact executable did not use multiple processors, neither mulitple cores and ran slower than on the single processor machine.

 

What gives?

 

spinningcube

Are you sure it was using multiple cores? Windows Vista will do better schedualing that often moves threads between cores, so a single theaded application will use multiple cores, but never two at once.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0