摘要
针对KNN算法计算比较耗时的问题,提出将计算任务分解为多个子任务,每个子任务分配给一个线程完成,通过多个线程的并行执行完成工作.将训练集读入一个二维数组,二维数组的每一行只分配给一个线程使用;每个新数据被同时广播给多个线程,每个线程计算该新数据在自己训练集中的最近邻,并将最近邻反馈给主程序;主程序收集每个线程返回的最近邻,以最近邻中的最佳近邻的类别作为新数据的类别.实验证明该并行设计方案充分利用计算资源,加快了计算速度.
基金项目
贵州省教育厅自然科学研究项目(黔教技[2022]047号)
贵州省教育厅自然科学研究项目(黔教技[2022]015号)