English 中文(简体)
衡量相互依存的线索的平行计算时间
原标题:Measuring parallel computation time for interdependent threads

我在平行方案中有一个时间测量问题(我使用了C++,但我认为问题更为笼统)。

Some short explanations: 3 threads are running parallel (pthread), solving the same problem in different ways. Each thread may pass information to the other thread (e.g. partial solutions obtained by the one thread but not by the other, yet) for speeding up the other threads, depending on his own status / available information in his own calculation. The whole process stops as soon as the first thread is ready. Now I would like to have a unique time measurement for evaluating the runtime from start until the problem is solved. ( In the end, I want to determine if using synergy effects through a parallel calculation is faster then calculation on a single thread).

在我看来,问题在于(由于运行系统暂停/不铺设单一线透镜),在过程通过信息时,每个过程状态都不是决定性的。 这意味着,某种信息是在接近1时的xxx装置之后获得的,但不能控制这种信息,无论是在计算中花去的 y脏或zz脏时间之后,read2接收这种信息。 假设这一信息在任何情况下都会达到2的计算结果,根据操作系统的行动,2版的运行时间要么是 y或zz。

在进行时间比较时,我能做些什么来获得决定性行为? 曼 谷 我命令操作系统操作每一条read的“捆绑床”(多分机)? 在执行(c++)方面,我是否可以做些什么?

或者是否有其他概念来评价这种执行的时间(时间收益)?

Best regards Martin

最佳回答

任何人在同一个句子中使用术语和多分,都敲响了警钟:

您的方案中有两大非决定性来源: (1) 运行系统,它增加了噪音,使时间通过投放单位和安排决定;(2) 算法,因为方案采用不同的途径,取决于通信的顺序(部分解决办法)。

作为一个方案者,你对职业顾问办公室的噪音做的工作不多。 标准顾问办公室甚至为专门(默认)节点的方案增加了许多噪音。 用于计算 no的特别用途操作系统在一定程度上有助于减少这一噪音,例如。 蓝天系统显示,光辉功能明显减少,因此时间变化不大。

关于算法,你可以通过增加同步化的方式,对你的方案实行决定性。 如果两条镜子同步,例如交换部分解决办法,那么在同步化之前和之后进行计算是决定性的。 你目前的法典是不合时宜的,因为一线已经发出部分解决办法,但并不等待收到。 您可以通过将计算分为步骤和每一步骤之后在校对之间同步化的方式,将这种计算转化为一种决定性的法典。 例如,每条透镜:

  1. Compute one step
  2. Record partial solution (if any)
  3. Barrier - wait for all other threads
  4. Read partial solutions from other threads
  5. Repeat 1-4

当然,我们不会期望这一法典也能发挥作用,因为现在每一条路面必须等到所有其他路面,才能完成计算,然后才能进入下一步。

最好的办法或许是接受非决定性,并利用统计方法比较你的时间安排。 多次为一定数量的校对实施方案,并记录时间的大小、平均和标准偏差。 你们可能知道,例如,在一定数量的镜头上,所有镜头的最长计算时间,或者你可能需要一个统计测试,例如t-test,回答一些比较复杂的问题,例如,是否确定从4到8条深线缩小了时间? 正如DanielKO所说,时间的波动是用户实际经历的,因此,从统计角度衡量和量化时间,而不是完全消除时间。

问题回答

What s the use of such a measurement?

你们可以通过一些有争议的方法,以read子不受干扰的方式(甚至通过使用藏匿点的其他过程、MMU等等的间接事件)设立协调员办公室,这对实际使用平行方案来说是现实的?

现代职业介绍所很少能够控制一般中断处理、记忆管理、校对安排等。 除非你与金属直接交谈,否则您的定论测量不仅不切实际,而且贵方方案的使用者也永远不会经历过这些测量(除非他们与你一样接近金属)。

因此,我的问题是,为什么你们需要如此严格的条件来衡量你的方案? 在一般情况下,仅仅接受波动,因为用户最可能看到这种波动。 如果某种算法/执行速度太小,无法从背景噪音中解脱出来,那么,这种信息比知道实际的加速分数更有用。





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签