我希望标题没有误导你。
我的问题如下:目前我尝试加速光线追踪器,这是在显卡的帮助下完成的。尽管它因此变慢了,但它工作正常。:)
这是因为我在显卡(我的“跟踪服务器”)上一次在整个几何图形上跟踪一条光线,然后获取结果,这非常慢,所以我必须收集一些光线并计算它们并一起获取结果以加快速度。
下一个问题是,我不允许重写对这种并行化一无所知或最不可能知道的周围框架。
所以这是我的方法:我考虑过使用多个线程,每个线程都获取一条射线并请求我的“跟踪服务器”计算交叉点。然后线程停止,直到收集到足够的光线来计算显卡上的交点并有效地返回结果。这意味着每个线程都将等待,直到获取结果。
你看我已经有一些计划但是我不知道:
- 我应该采用哪个线程框架独立于平台?
- 我应该使用固定大小的线程池还是根据需要创建它们?
- 任何给定的线程库都可以处理至少 1000 个等待线程(因为这将是我需要收集的数量才能使我的 fetch 有效)?
但我也可以想象用一个线程来做这件事
- 将其负载(新光线)转储到“跟踪服务器”并获取下一个负载,直到
- 有足够的获取结果。
- 然后线程将一一获取结果,进行进一步的计算,直到处理完所有结果,然后返回到第一步,直到完成所有光线。
另外,如果您对如何并行化有更好的想法,请告诉我。
问候,
没有人
PS 如果您需要此信息:我要使用的两个平台是 Linux 和 Windows。