作者ko27tye (好滋好滋)
看板C_and_CPP
标题[讨论] 撰写多执行绪程式
时间Sat May 11 01:06:45 2019
最近把c++11有关多执行绪的部分
大概看了一遍,想写点东西练练手
把新学到的东西用一用增加熟练度。
但我发现,除了防止UI freeze
和增加运算效率之外,好像没有
特别必须要用到multi thread的地方...?
而效能的部分,不会一开始就计画
就使用多执行绪吧? 而是在测试阶段发现效能
不足後尝试使用多执行绪改善。
这样我有点困惑,到底哪些地方是"一定"
用得到多执行绪呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.235.164
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1557508007.A.515.html
1F:推 Schottky: 有些时候想引入多执行绪时才发现演算法一开始就用错了 05/11 01:30
2F:→ Schottky: ,根本无法拆分,只好整个砍掉重练,所以也是有一开始 05/11 01:30
3F:→ Schottky: 就以多执行绪设计或至少采用有可能多执行绪化的方法。 05/11 01:30
4F:→ Schottky: 以 #1IENu5lb 这篇来说,我用 Chudnovsky 法还有机会多 05/11 01:34
5F:→ Schottky: 执行绪化 (但无法使用 N 个 CPU 核心就快 N 倍),如果 05/11 01:34
6F:→ Schottky: 我用 Gauss-Legendre 法要怎麽改多执行绪?後一轮要使 05/11 01:34
7F:→ Schottky: 用前一轮的计算结果的。 05/11 01:35
8F:→ Schottky: 各计算间有依存性就无法切割分工、平行(同时)运算 05/11 01:35
Schottky大说的状况有碰过
架构一开始设计有误,虽然不算砍掉重练
但改的很丑难阅读。
也就是说要保留对多绪的扩充是吗?
9F:→ sarafciel: 你这问题其实还蛮.....微妙的 05/11 03:37
10F:→ sarafciel: 我也可以说除了搜寻以外二分搜寻这算法好像就没用了吧? 05/11 03:39
11F:→ sarafciel: 难道大家都是先写线性搜寻 发现效能不足再来写二分吗? 05/11 03:41
有点不太一样...
我知道二分搜寻该在哪使用以及使用的情境,
也就是说它的套路我看的懂。
但多绪的使用情境,撇开内文的两种状况,我就不清楚
还有哪些地方可以使用了。以sarafciel大的举例来说,
就是我不清楚二分搜寻该在何种情况使用,所以会先用线性搜寻
try一次,效能不足後才再用二分搜寻。
当然有经验的人一看就知道这该用二分搜寻,但我不知道。
12F:→ Jockey66666: 非同步、平行运算 没了 05/11 09:50
※ 编辑: ko27tye (59.115.235.164), 05/11/2019 11:12:56
13F:→ loveme00835: 主要是去思考单绪/多绪各自能做/不能做什麽, 那适用 05/11 11:38
14F:→ loveme00835: 的情境就比较明朗了, 有时候是以好不好设计, 或是对 05/11 11:38
15F:→ loveme00835: 执行时机有要求而做的选择. 譬如你想想两个元件做 ha 05/11 11:38
16F:→ loveme00835: ndshaking 用单绪/多绪该怎麽实现? 05/11 11:38
17F:→ hichcock: 可以考虑一下 Server 应对多个 client 时的问题 05/14 09:53