How to Parallel Compute
Level of difficulty:
Parallel computing involves the simultaneous utilization of various computer resources to facilitate the resolution of a particular computer problem. It is used to allow a computer user to save time and money by simplifying the use of system resources to complete a certain task. This process also allows the resolution of complex or large and at times impossible computer-related problems that cannot be resolved by a single computer, particularly those computers with limited memory capacity. Parallel computing has been used in intricate processes that cannot be resolved by a single computer such as study of weather and ocean patterns, planetary movement, rush hour traffic, building a space shuttle, and planetary movements. Parallel Computing has different communication patterns such as point to point, one to all broadcast, and all to all broadcast. Point to point communication pattern is the most elementary way of communicating between parallel tasks which involve one task sending a message to another who on the other hand receives the message. The pattern usually includes information regarding the length, destination, identification tag, and address of the message. In “one to all broadcast”, a task has the data needed in other tasks while in “all to all broadcast” or “global reduction operations”, each task performs a similar operation on a particular information.
- Environment to produce and handle parallel programs (compiler
- parallel programming (message passing or shared memory) library
- parallel program with communicating patterns
Take the first step by checking the existing serial code or by starting to develop a parallel code.
Several steps are involved in order to develop a parallel code. The first step is to choose a programming paradigm such as MPI and then try to determine the code’s communication points and pattern.
Insert the code to complete the communication and task controls.
Compile, test, and perform a debugging process to ensure that the code runs properly with the computer system and produces the results desired by the user.
Comprehend and try to get fully familiar with the logic and algorithms to be used for computer paralleling.
Identify the parts of the program as well as other programs desired to be executed concurrently by the computers.
Make use of any parallelism inherently available on the computer to be used for parallel computing. If there is no available parallelism, the user may restructure the entire program or reconfigure the algorithm. In some instances, reconfiguring the algorithm is not enough and an entirely new algorithm may be required from the computer.