What problems face parallel computing?
• Determining how to partition a computing task into a form that can be sub-divided across multiple processors. • Creating arbitration methods in software and hardware that allow processors to communicate the status of a task and their availability for task assignment. • Creating arbitration methods that allow processors to read and write a shared data pool, without improperly overwriting data in that pool that was written there by another processor. • Handling the asynchronous timing issues that occur when processors are separated by large geographical distances in an efficient manner.