论文部分内容阅读
随着多核计算机的日益普及,大规模科学与工程计算、事务处理与商业计算的需求,以及数据挖掘应用领域的不断扩大,基于多核平台的线性方程组数值求解算法和大数据量数值关联规则算法的研究显得非常重要。由于多核技术会增加多线程的创建、通信和销毁等开销,如何有效发现程序中的可并行性能、优化多核并行程序及发挥多核的最佳性能,成为高性能计算领域研究的重要课题。本文给出了Cholesky分解算法的详细推导过程,分析了Cholesky分解并行按照块分配的任务分配策略存在负载不均衡,提出了块交叉分配方案,并与卷帘分配方案对比。对这三种算法均采用了提前发送策略,并在MPI集群系统上进行了实验和分析。针对Cholesky分解基于MPI的并行算法设计复杂、进程负载均衡困难、消息传递和数据移动开销大问题,以及基于多核采用OpenMP并行化的并行性开销增大和线程负载不平衡的问题,着重考虑多核计算机的优势,提出了一种基于任务划分的Cholesky分解多核并行优化算法。该算法将大循环问题划分成各个相互独立的小任务,并运用递归技术﹑任务窃取技术和动态负载均衡算法使这些任务能够并行完成。在分析了关联规则挖掘Apriori算法及其并行算法存在的不足的基础上,提出了一种改进的关联规则挖掘的多核并行优化算法。该算法对Apriori算法的压缩矩阵进行了改造,并在多核平台下利用OpenMP技术和TBB技术,对串行程序进行循环并行化和任务分配的并行化设计,最大限度地实现并行关联规则挖掘,提高关联规则挖掘效率和多核CPU的利用率。算法程序设计过程引入了Intel Parallel Studio并行套件,对基于多核的并行算法进行内存﹑线程检查和性能优化,消除采用多核平台并行化所造成的数据泄漏﹑数据竞争﹑死锁和效率低等问题。实验结果证明基于多核所提出的算法具有较高的并行效率和较好的加速比。