开发者社区> 问答> 正文

关于并行计算的一些基础开放问题

题目: 关于并行计算的一些基础开放问题。

出题人:阿里巴巴出题专家:何万青/阿里云高性能计算资深技术专家

◼ 如何定义并计算,请分别阐述分布式内存到共享内存模式行编程的区别和实现(例子代码)?

◼ 请使用 MPI 和 OpenMP 分别实现 N 个处理器对 M 个变量的求和?

◼ 请说明 SIMD 指令在循环中使用的权限?向量化优化有哪些手段?

◼ 请用 Amdahl 定律说明什么是并行效率以及并行算法的扩展性?并说明扩展性的性能指标和限制因素,最后请说明在共享内存计算机中,共享内存的限制?OpenMP 是怎样实现共享内存编程环境的?MPI 阻塞和非阻塞读写的区别?

展开
收起
Runt 2020-04-14 18:20:04 5142 0
1 条回答
写回答
取消 提交回答
  • 参考答案: (简要答案,但必须触及,可以展开) ◼ 同时执行多个/算法/逻辑操作/内存访问/IO,相互独立同时运行,分三个层次:进程级,多个节点分布式内存通过MPI通信并行;线程级,共享内存的多路机器,通过OpenMP实现多线程并行;指令集:通过SIM指令实现单指令多数据。。。。举例吧啦吧啦。

    ◼ MPI代码,,,OpenMP代码,分别写出来 M个元素,N个处理器的累加,后者注意private 参数。

    ◼ SIMD在循环中的应用,限制在于 SIMD指令处理的每一个数组的长度,cache line利用,内部循环间的依赖和条件调用等。

    ◼ 向量化,主要看SSE和AVX指令占比率,通过编译器优化...... 在loop代码中使用。

    ◼ 性能和计算规模随处理器增加的变化曲线,实测HPL和峰值HPL比率,能用用Amdahl定律表达Tpar(N) = (an + (1-a)n/N )t + C (n,N), 能够讲明白串行部分对整个并行的天花板效应,扩展性能够解释清楚算法的扩展性=并行效率随处理器数目的变化关系,画出来。

    ◼ 共享内存计算机OpenMP对变量的限制描述,EREW,CREW,ERCW,CRCW等区别,NUMA概念,如何保持coherent等。

    ◼ 写出OpenMP和MPI的核心函数,回答问题即可。

    2020-04-14 18:20:18
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
大规模无服务器计算服务的挑战和实践 立即下载
端到端GPU性能在深度学学习场景下的应用实践 立即下载
企业级安全加速-技术架构以及核心能力解析 立即下载