推荐并行化多通道算法的方法

时间:2013-04-06 20:43:34

标签: parallel-processing go multipass

我正在编写自定义视频格式(QTC)的de和编码器。解码过程由多个阶段组成,每个阶段的输出传递到下一阶段:

  1. 反序列化输入流
  2. 使用范围编码器生成符号序列
  3. 从符号流
  4. 生成图像流
  5. 将图像流序列化为输出格式
  6. 第三步和第四步占据了几乎所有的处理时间,第三步约占35%,第四步约占60%,第一步和最后一步相当微不足道。

    并行运行这四个步骤的建议和思路是什么?我最感兴趣的是如何处理各部件之间的通信。我计划在第二步使用一个Goroutine,在第三步使用一个,例程与缓冲通道连接。这是正确的方法吗?

2 个答案:

答案 0 :(得分:3)

对于某些具有“共享”数据结构的任务,通过谨慎使用mutexes来“保护”更容易,但缓冲通道将是在Go中执行此操作的“标准”方式,并且对于您的任务而言也是正确的解决方案。

你问这个问题,你是否遇到过任何问题?

答案 1 :(得分:0)

不要过度思考。只需编写一些代码。 Go代码很容易改变 - 编译器抓住你的手。写一些测试/基准来保持自己的诚实。

亚历