I have noticed that Robert Wessel didn't understood my ideas..
So i will prove it to you right now , so follow with me carefully please...
Let say we have 4 threads, and 4 cores, and let say that each
thread is running the same parallel code, and let say we have also a serial code inside some critical section, and let say that the parallel part is
0.1% and the serial part is 0.9%, so let say that the serial part
takes 1 second(it means 0.1%) and the parallel part takes 9 seconds(it means 0.9%), what i have tried to explain to you is that the Amadhl's law or equation is not a correct law and it doesn't give a correct results,
here is why: so if the 4 threads are all looping and looping again
for a number of times running the same parallel code and the same serial code and let say that they are contending at the same time
for the critical section, this is why i have called an ideal contention
scenario, so if they are contending AT THE SAME TIME for the critical section(the serial part) they will run 4 serial parts in 4 seconds in one loop and they will run 4 parallel parts in 9 seconds in one loop, hence it will take 13 seconds in one loop , but if you run the parallel part and the serial part serially they will take 40 seconds, so the scalability will equal 40 seconds divide by 13 seconds = 3.07X, this is the result that gives us the Amdahl's law, it's 1 /(0.1 + 0.9/4) = 3.07X, but this is not the end of the story , so follow now carefully with me, so let divide the parallel part into 9 small parts each equal to
1 seconds, and the serial part is equal to 1 second, so if the threads
are looping and not contending at the same time for the critical section and let say that when the threads are looping the first thread will be on the first small part equal to 1 seconds of the 9 small parts of the 9 seconds of the parallel part , the second thread will be on the second small part equal to 1 seconds of the 9 parts of the 9 seconds of the parallel part, and the third threads will be on the third small part equal to 1 second of the 9 parts of the 9 seconds of the parallel part , and the fourth thread will be on the third small part equal to 1 second of the 9 parts of the 9 seconds of the parallel part , so imagine the 4 threads
looping again and again and not changing there places like that , so
there will be no serial part at all, cause when each thread will be on the 1 second of the serial part the other threads will not be on the the same serial part, so this is a none contention scenario , so since
there is no serial part so the scalability will be perfect and
equal to 4X , so as you have noticed the Amdahl equation gives
the scalability of the ideal contention scenario all the threads
are contending at the same time so the scalability will equal 3.07X, but if they are not contending at all the scalability will be perfect
and equal to 4X, and if you have less contention this will scale
better than 3.07X, so now i have proved to you that the Amdahl's law
doesn't give you a correct result.
Hope you have understood my arguments and my ideas against the
Amine Moulay Ramdane.