In: Computer Science
Research a computer operation that could be improved through parallelization on a multi-core CPU. Include the following: A short description of the operation (e.g., “Bitcoin mining”) in the subject of your post A longer description of the computer operation A description of how it could be improved through parallelization Unique challenges in a parallelized version that are not present in a single-process version
Hi mate
i will try to write in as easy words as possible for better understanding.. Hope it helps to you.Like please if its helpful .
Parallelization:- Parallelism can be understood by taking an example of .a case where 10 labours completing a task in 50 days.while what if only 1 worker is there to complete to whole task.Seems inefficient and time taking. This is the main advantage of parallelization. Actually this is the main concept of parallel computing. In other words Parallel computing is the use of two or more processors in combination to solve a single problem.
For example we can take chess game.As in chess each move changes the entire scenario of the game and programmer have to take care of breaking the complexity into small pieces and each move need to run parallely on different cores at a time to see how game would continue from that point. At the end, these results have to be combined to figure out which is the best first move. Actually, the situation is even more complicated, because if the program is looking ahead several moves, then different starts can end up at the same board position.To handle all this there's a must need of parallelization on a multi-core CPU.
Short Description:-
The multicore processor comprises of two or more cores or computational/processing units that operate in parallel to read and execute instructions.
The key factor about multicore processor is that it gives the same performance of a single faster processor at lower power dissipation and at a lower clock frequency by handling more tasks or instructions in parallel.
The power dissipation formula is given by:-
P = QCV2F Q:No. of transistors
C: Load capacitance
F: frequency
V:Supply Voltage
So if we increase the frequency, power dissipation increases which results to overheating. So we better use multiple cores instead of one core at low frequency. Multicore processors work on multiple instructions and multiple data. Multiple cores execute multiple threads while using different parts of memory (multiple data).
Description:-
The parallel computing capabilities of modern GPUs means that they can perform certain specialized computing tasks much more quickly than traditional CPUs. And Bitcoin mining, which involves computing trillions of hashes, happens to be one such task.Regardless of why bitcoin is hot, it’s inextricably linked to math. Bitcoin and most other cryptocurrencies are built on blockchain technology, a series of complex math calculations.
And these all are not an easy task to do. Take an example of such as Microsoft Outlook or a video player is parallelized, certain tasks are divided up among the processors. But often, these separate tasks need to dip into a shared memory cache to access data. When one transaction is accessing memory and another transaction needs to access the same part of the memory, and proper safeguards aren’t put in place, a system can crash. This can be compared to a couple with a shared checking account with limited funds writing checks simultaneously and inadvertently overdrawing from the account.
Standard parallel programming requires a programmer to take care of these simultaneous activities and make sure that once a certain activity begins to access memory, it “locks” out other activities so they wait until the transaction is completed.
But even after having its complexity of implementation it has its own advantages.
The good processing speed of the multicore processors is due to the multiple cores which operate simultaneously on instructions, at lower frequency than the single core. At the same clock frequency, the multicore processor will process more data than the single core processor. In addition to this, multicore processors deliver high performance and handle complex tasks at a comparatively lower energy or lower power as compared with a single core, which is crucial factor in appliances such as mobile phones, laptop etc. which operate on batteries. Also, since the cores are fabricated close to each other on the same chip, the signals travel shorter distance between them due to which there is less attenuation of signals. Since the signals don’t attenuate much, more data is transferred in a given time and there is no need of repeating the signals.
Challenges in parallelized version:-
Funding, mostly by the Defense Advanced Projects Research Agency, produced some successes in systems with large numbers of processors designed to solve computations problems by breaking them into many pieces that could be run simultaneously, but these massively parallel systems never achieved commercial viability.
The biggest mathematical impediment to parallel approaches is that many processes are recursive: each step depends on the result of previous step. Also software for effective utilization of large numbers of cores, both CPU and GPU, remains a challenge.
There's a problem of experience too. most programmers have little or no experience with parallel computing.
As per price point of view also its expensive. Distributed memory computers with better performance have faster interconnections among the processors, and software better tuned to support parallelism, but this increases the cost because many of the parts are more non-standard.