目录
采用线程池我们可以充分利用本地的计算性能,但是有些时候本地的计算性能已经无法满足业务需求,这时候我们就需要将任务进行分解然后分发到多台机器上进行计算处理。我们将计算任务拆分分发,计算结果回收,计算结果整合的这个业务流程称为并行计算。这里将使用QT搭建一个并行计算框架,满足日常业务中的大规模计算任务。
并行计算框架中有一个主应用负责对用户请求的任务进行拆分和派发,同时该应用还负责对计算子节点进行管理。并行计算框架中可以同时存在多个计算节点,这些节点受主应用的管理,负责实际的计算任务。框架的节点关系图如下图所示:
并行计算框架的难点主要分为以下三个方面:
1.节点和主应用的通信协议
2.TCP通信服务端和客户端实现
3.任务派发回收及进度监控
下面针对这三个方面分别进行介绍
节点和主应用的通信协议
为了实现主应用和子节点之间的有效通