我有一个Java程序,用于计算两个文档之间的语义相似度。该程序从指定的文件系统检索文档并计算相似度。大约有20万个这样的文档。
我创建了10个线程来完成此任务,并将数据块分配给每个线程。例如,将文档1-20000分配给第一个线程,将20001-40000分配给下一个线程,依此类推。
目前,我在一台8 CPU核心的机器上运行上述程序。计算需要很长时间才能完成。
我想在一个拥有64个核心的5节点Linux集群上运行该程序。
我创建了10个线程来完成此任务,并将数据块分配给每个线程。例如,将文档1-20000分配给第一个线程,将20001-40000分配给下一个线程,依此类推。
目前,我在一台8 CPU核心的机器上运行上述程序。计算需要很长时间才能完成。
我想在一个拥有64个核心的5节点Linux集群上运行该程序。
- 是否有像EXECUTOR Framework这样的Java框架可以完成此任务?
- 有没有办法计算最大可生成的线程数?
如果您有任何解决此问题或改进的建议,请提供。