42、利用 MPI 编写并行库:实践、问题与扩展

利用 MPI 编写并行库:实践、问题与扩展

1. 引言

模块化和抽象结构化编程是软件开发中的重要概念,而库是实现这些技术的常用手段。库可从通用语言中调用,提供特定功能,能简化软件开发过程,隐藏并行算法设计的复杂性。高性能库还能提供性能可移植性,隐藏特定架构的优化细节。重用库可提高生产力并减少错误。

本文将探讨在消息传递接口(MPI)背景下设计和开发并行库的原则,回顾 18 年前引入的特性,补充新发现的原则和接口问题,并讨论经验教训。同时分析当前实践以及先进库如何使用提供的抽象。

2. 模块化分布式内存编程

模块化编程在“基于组件的软件工程(CBSE)”中起着重要作用,它建议通过组合大型组件进行编程。串行和并行库应具备一些理想属性,如广泛的领域覆盖、一致性、易学易用、组件效率、可扩展性、可集成性、直观性、健壮性和良好的支持。

在分布式内存编程中,除了这些属性,还需要控制多个资源(处理元素)。开发分布式库的一些重要语言技术包括:
- :可重用组件应围绕数据结构而非动作结构组织。
- 信息隐藏 :库可使用彼此的功能,但内部结构应保持隐藏,避免模块间的“串扰”。
- 断言 :通过断言表征库的语义属性。
- 继承 :可作为模块包含工具和子类型机制。
- 可组合性 :特别是性能可组合性和功能正交性,这需要查询某些对象的相关状态。

常见的并行库类型有:
1. 空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值