C++ 阿姆达尔';“中的s定律”;C++;“行动中的并发性”;

C++ 阿姆达尔';“中的s定律”;C++;“行动中的并发性”;,c++,multithreading,concurrency,C++,Multithreading,Concurrency,我正在写一篇关于多线程的BSc论文,其中一篇参考文献是Anthony Williams的“C++并发性在运行”。它在使用std线程方面帮助了我很多,但是有一件事我不确定。提到的阿姆达尔定律公式是 p(N)=1/(f+(1-f)/N) 而我发现的所有其他来源给出: p(N)=1/(1-f+f/N) 在这两种情况下,p是性能增益因子,f是[0,1]中“串行”独立部分的常数分数,N是处理器数(自然数) 即使在第一种情况下,函数的水平渐近线为1/f,在第二种情况下,函数的水平渐近线为1/(1-f)。这是

我正在写一篇关于多线程的BSc论文,其中一篇参考文献是Anthony Williams的“C++并发性在运行”。它在使用std线程方面帮助了我很多,但是有一件事我不确定。提到的阿姆达尔定律公式是

p(N)=1/(f+(1-f)/N)

而我发现的所有其他来源给出:

p(N)=1/(1-f+f/N)

在这两种情况下,p是性能增益因子,f是[0,1]中“串行”独立部分的常数分数,N是处理器数(自然数)


即使在第一种情况下,函数的水平渐近线为1/f,在第二种情况下,函数的水平渐近线为1/(1-f)。这是一个错误还是我理解错了?

在第一个例子中,f是串行代码的分数,在第二个例子中,f是并行代码的分数


如果你把(1-f)插入其中一个方程中的f,你会得到另一个

这不是离题了吗?@Zeta是的。太宽泛/不清楚。一个特定的编程问题:对于线程,它是特定的编程问题软件算法:它描述了一般的软件架构和算法行为(本例中为线程)一个软件开发特有的实用、可回答的问题:是的,它是可回答的,是的,它是软件开发所独有的