我希望这个标题不会误导你。
我的问题如下:目前我尝试加速光线跟踪器,这是在显卡的帮助下完成的。尽管事情变得缓慢,但它工作得很好。 :)
这是因为我在显卡(我的“跟踪服务器”)上一次跟踪整个几何体上的一条射线,然后获取结果,这非常慢,所以我必须聚集一些光线并计算它们并一起获取结果以加快速度。
接下来的问题是,我不允许重写周围的框架,该框架应该对此并行化一无所知或最不可能。
所以这是我的方法: 我想过使用几个线程,每个线程都获取一条光线并请求我的“跟踪服务器”来计算交叉点。然后停止线程,直到收集到足够的光线来计算显卡上的交叉点,并有效地恢复结果。这意味着每个线程都会等到获取结果。
你看我已经有了一些计划,但我不知道:
但我也可以想象用一个
的线程来做这件事此外,如果你有更好的想法如何并行化这个,请告诉我。
此致
没有人
PS 如果您需要此信息:我想要使用的两个平台是Linux和Windows。
答案 0 :(得分:2)
使用Thread Building Blocks或boost :: thread。
http://www.boost.org/doc/libs/1_46_0/doc/html/thread.html
http://threadingbuildingblocks.org/
就线程池/按需线程而言 - 线程池通常更好主意,因为它避免了创建开销。
等待线程的数量将取决于底层系统,而不是其他任何东西: