摘要 - 随着多核加速器不断整合更多的处理单元,对于有效利用所有可用资源的并行应用,它变得越来越困难。改善硬件利用率的一种有效方法是通过多重计算和通信任务(一种称为异质流媒体流量)来利用异质处理单元的空间和时间共享。实现有效的异质流需要在任务之间仔细划分硬件,并将任务并行性的粒度与资源分区相匹配。但是,找到正确的资源分区和任务粒度是极具挑战性的,因为有大量可能的解决方案,并且最佳解决方案在程序和数据集之间各不相同。本文提出了一种自动方法,可以快速得出用于硬件资源分区和任务粒度的良好解决方案,用于基于任务的并行多核体系结构的并行应用程序。我们的方法采用绩效模型来估计给定资源分区和任务粒度配置下的目标应用的绩效。该模型被用作快速在运行时快速搜索良好配置的实用程序。我们不需要手工制作分析模型,该模型需要专家洞悉低级硬件细节,而是采用机器学习技术来自动学习。我们首先学习使用培训计划的通道预测模型来实现这一目标。然后可以使用学习的模型来预测运行时任何看不见程序的性能。我们将方法应用于39个代表性并行应用程序,并在两个代表性的异质多核平台上进行评估:CPU-Xeonphi平台和一个CPU-GPU平台。与单流版本相比,我们的方法平均在Xeonphi和GPU平台上分别达到1.6倍和1.1倍的速度。这些结果转化为理论上完美预测因子所提供的性能的93%以上。
主要关键词