首页> 外文会议>International Conference series on Parallel Computing >Towards Compiler-Agnostic Performance in Finite-Difference Codes
【24h】

Towards Compiler-Agnostic Performance in Finite-Difference Codes

机译:在有限差分码中朝着编译器 - 不可知性能

获取原文

摘要

In this paper we evaluate the performance implications of applying a technique which we call PSyKAl to finite difference Ocean models. In PSyKAl the code related to the underlying science is formally separated from code related to parallelisation and single core optimisations. This separation of concerns allows scientists to code their science independently of the underlying hardware architecture (thereby keeping a single code base) and for optimisation specialists to be able to tailor the code for a particular machine independently of the science code. A finite difference shallow water benchmark optimised for cache-based architectures is taken as the starting point. A vanilla PSyKAl version is written and the performance of the two compared. The optimisations that were applied to the original benchmark (loop fusion etc.) are then manually applied to the PSyKAl version as a set of code modifications to the optimisation layer. Performance results are presented for the Cray, Intel and GNU compilers on Intel Ivybridge and Haswell processors and for the IBM compiler on Power8. Results show that the combined set of code modifications obtain performance that is within a few percent of the original code for all compiler and architecture combinations on all tested problem sizes. The only exception to this (other than where we see performance improvement) is the Gnu compiler on Haswell for one problem size. Our tests indicate that this may be due to immature support for that architecture in the Gnu compiler - no such problem is seen on the Ivy Bridge system. Further, the original code performed poorly using the IBM compiler on Power8 and needed to be modified to obtain performant code. Therefore, the PSyKAl approach can be used with negligible performance loss and sometimes small performance gains compared to the original optimised code. We also find that there is no single best hand-optimised implementation of the code for all of the compilers tested.
机译:在本文中,我们评估应用我们称PSYKAL调用PSYKAL以有限差异海洋模型的技能影响。在psykal中,与底层科学相关的代码与与平行化和单核优化相关的代码分开。这种关注的分离允许科学家独立于底层硬件架构(维持单个代码基础)和优化专家来编写他们的科学家,以便能够独立于科学代码来定制特定机器的代码。针对基于缓存的架构优化的有限差分浅水基准作为起点。编写了一个香草psykal版本,比较了两者的性能。然后将应用于原始基准(环融合等)的优化作为一组代码修改手动应用于优化层的代码修改。在英特尔Ivybridge和Haswell处理器上的CRAY,Intel和GNU编译器以及POWER中的IBM编译器提供了绩效结果。结果表明,组合的代码修改集获得了所有在所有测试问题大小的所有编译器和架构组合的原始代码的百分比内的性能。唯一的例外(除了我们看到性能改进的地方)是一个问题大小的GNU编译器。我们的测试表明,这可能是由于GNU编译器中对该架构的不成熟支持 - 在常春藤桥系统上没有看到这样的问题。此外,原始代码使用POWE1上的IBM编译器执行不足,并且需要修改以获取执行性代码。因此,与原始优化代码相比,PSYKAL方法可以与可忽略的性能损失和有时小的性能增益一起使用。我们还发现,对于所有测试的所有编译器,没有单一的单一最佳手工优化实现。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号