本文针对不同架构下的混合并行编程模型和应用,基于申威异构众核处理器的采用 Athread 方式的众核编程,提出一些优化方法和研发一些接口函数,比如使用结构体传参、静态局存变量和从核分区并行等,添加从核间通信接口函数和主从异步混合并行接口函数。经过试验验证, 采用上述的优化方法和接口函数对于提高程序性能和易用性有较大的帮助。 2.为了解决国产神威环境下众核代码编写工作量大的问题,提高国产异构众核环境下的众核代码编程效率,设计实现了一个可以将核心段的串行代码自动转换 为 Athread 代码的工具。本文基于主程序调用 master 程序,再由 master 程序调用 slave 程序的三层模板程序架构,采用 Rust 语言进行词法和语法分析,提出一种可 以使源程序自动转换为 Athread 代码的方法。同时,添加一些有助有程序优化的接口函数,进一步提升程序性能和减轻程序移植的代码工作量,最终设计实现了适用 于 Fortran 和 C 代码到申威众核处理器下 Athread 代码的转换工具原型系统。经过实验分析,采用该自动转换工具生成的 Athread 代码相较于人工编写的 OpenACC* 加速的程序有更高的加速比,特别是对多个核心段进行众核化加速时的加速比相差 15%,证明该转换工具具有很好的实用性。该工具能够避免开发人员绝大多数的代码书写错误,极大地提高了开发人员的众核化工作效率。