+ 15

What is the relationship between Degree of parallelism and Number of processors ?

Can we say that "Degree of parallelism is always <= number of processors" ? What will happen if I increase number of processors will it increase my Degree of parallelism ?

27th Jul 2019, 5:53 PM
Aaditya Deshpande
Aaditya Deshpande - avatar
9 Answers
+ 13
I remember reading this somewhere but never came across a use case so couldn't retain it, but on searching online. This is a good 3 min intro to parallel processors discussing why we need them and the complication with multiple processors. https://youtu.be/q7sgzDH1cR8 On further looking it seems that this DOP concept keeps coming up at Optimizing queries in servers. https://www.mssqltips.com/sqlservertip/5404/parallelism-in-sql-server-execution-plan/ But this one ā˜ seems bit inaccurate or maybe I couldn't get it. It seems to me that DOP is just the no of processors used by a program at a given time. Therefore DOP cannot exceed no. of processors. If you increase your processors then it automatically doesn't increase the DOP for that program. The program will have to use the extra processors to increase its existing DOP to the new processors count. This answer is written by quick googling, I myself am waiting for a better answer.
27th Jul 2019, 6:37 PM
Morpheus
Morpheus - avatar
+ 11
After reading all the answers and watching video suggested by Morpheus, till this point I have understood is that, What exactly happens when a parallel processing is need to be done is, -> processors containing different layers named cores, that are used for different threads (provided a processor should support and program to generate threads) -> so, [according to BroFarOps answer] number of processors used to execute a program is DOP. -> hence the DOP depends upon the program I am running ie, support for parallelism (as per 怌ļ¼Øļ¼”ļ¼°ļ¼°ļ¼¹ ļ¼“ļ¼Æ ļ¼Øļ¼„ļ¼¬ļ¼°ć€ ) -> again converse of example consider, program developed in 2019, having DOP is 4 (assuming quad core) this program I am trying to execute on a 90's computer (single processors having only 1 core Right??) then my DOP is =1. -conclusion: "more number of processors gives more faster execution speed (provided a program should support) and Yet it is impossible to achieve 100% parallelism"..!! Have i got it correctly guys? If wrong plz correct me..šŸ˜„ Thank you all
27th Jul 2019, 7:57 PM
Aaditya Deshpande
Aaditya Deshpande - avatar
+ 8
TheĀ degree of parallelismĀ (DOP) is a metric which indicates how manyĀ operationsĀ <- "can be" or -> are being simultaneously executed -> by a computer.... not processor... A program running on a parallel computer may utilize different numbers of processors at different times... . For each time period, the number of processors used to execute a program is ->defined as "the degree of parallelism". The plot<- of the DOP -> as a function of time for a given program is called "theĀ parallelism profile". source: https://en.m.wikipedia.org/wiki/Degree_of_parallelism
27th Jul 2019, 6:44 PM
BroFar
BroFar - avatar
+ 7
There are good answers here. Thanks for the mention Aaditya Deshpande but there is nothing I can add without looking things up online.
27th Jul 2019, 11:04 PM
Sonic
Sonic - avatar
+ 6
Aaditya Deshpande here is a good read which almost directly answers your question & answer in parallel expression... as you answered. https://www.howtogeek.com/194756/cpu-basics-multiple-cpus-cores-and-hyper-threading-explained/amp/ Systems with multiple CPUs arenā€™t very common among home-user PCs today. Even a high-powered gaming desktop with multiple graphics cards will generally only have a single CPU. Youā€™ll find multiple CPU systems among supercomputers, servers, and similar high-end systems that need as much number-crunching power as they can get. The more CPUs or cores a computer has, the more things it can do at once, helping improve performance on most tasks. Most computers now have CPUs with multiple coresā€”the most efficient option weā€™ve discussed. Youā€™ll even find CPUs with multiple cores on modern smartphones and tablets. Intel CPUs also feature hyper-threading, which is kind of a bonus. Some computers that need a large amount of CPU power may have multiple CPUs, but itā€™s much less efficient...
27th Jul 2019, 9:04 PM
BroFar
BroFar - avatar
+ 5
Depends on - Degree of complexity Processor power Requirement šŸ¤”
28th Jul 2019, 4:52 AM
Sanjay Kamath
Sanjay Kamath - avatar
+ 2
depends fundamentally on the algorithm and its rate limiting steps. the task needs to be distributed in separate processes running on different threads. then results need to be aggregated. treads cannot all be modyfying simultaneously the same data, which even for embarrassingly parallel algorithms imposes a lock (when operations from one thread cause the others to halt). Also, in general, parts of the code require the result from previous calculations to be completed and will be waiting for the last thread to finish. some operations cannot be made parallel
28th Jul 2019, 2:53 PM
bell
bell - avatar
0
Degree of parallelism is the no. Of processes which is running concurrently in same time using your processor. Processor defines equal time period to each process for the processing of program at same time.
30th Jul 2019, 8:27 AM
Ayush Agrawal
Ayush Agrawal - avatar