3.1.7. Open MPI v1.x系列

本文件包含Open MPI v1.x系列所有版本的更新日志(NEWS),按时间倒序排列。

3.1.7.1. Open MPI 1.10.x 系列

3.1.7.1.1. Open MPI 版本 1.10.7

Date:

2017年5月16日

  • 修复TCP BTL中的一个bug,该bug由于未调整TCP发送/接收缓冲区大小而使用系统默认值,影响了10GbE(及更高速)网络的性能

  • 在mpif.h中添加缺失的MPI_AINT_ADD和MPI_AINT_DIFF函数声明

  • 修复了MPI_WTIME报告的时间问题;之前报告的时间依赖于CPU频率。

  • 修复FreeBSD上的平台检测问题

  • 修复了在MPI_TYPE_CREATE_DARRAY处理MPI_(R)(GET_)ACCUMULATE时的一个错误

  • 修复openib内存注册限制计算问题

  • 在mpi.h中添加缺失的MPI_T_PVAR_SESSION_NULL

  • 修复在使用外部hwloc和/或libevent包时"make distcheck"的问题

  • 将最新的ConnectX-5供应商部件ID添加到OpenIB设备参数中

  • 修复UCX PML中的竞态条件

  • 修复rsh启动器的信号处理问题

  • 修复Fortran编译错误:当编译器不支持时,在Fortran接口中移除MPI_SIZEOF

  • 修复了pre-ignore-TKR "mpi" Fortran模块实现中的问题(即针对较旧的Fortran编译器——这些问题在现代Fortran编译器的"mpi"模块实现中不存在): - 添加PMPI_*接口 - 修正MPI_FILE_WRITE_AT_ALL_BEGIN接口名称中的拼写错误 - 修正MPI_FILE_READ_ORDERED_BEGIN接口名称中的拼写错误

  • 在所有Fortran接口中将MPI_DISPLACEMENT_CURRENT的类型固定为INTEGER(KIND=MPI_OFFSET_KIND)。

  • 修复了MPI_INFO_GET_*手册页中的拼写错误。感谢Nicolas Joly提供的补丁

  • 修复包装器编译器脚本中的拼写错误

3.1.7.1.2. Open MPI 版本 1.10.6

Date:

2017年2月17日

  • 修复了计时器代码中的一个错误,该错误在优化设置大于2时会导致问题

  • OSHMEM:将mmap分配器设为默认选项,替代sysv或verbs

  • 支持维度为零的MPI_Dims_create函数

  • 更新USNIC支持

  • 防止计时器计数器出现64位溢出

  • 增加对信号转发的支持

  • 修复了在TCP BTL上发送大消息时导致消息截断的错误

  • 修复打印堆栈跟踪时可能出现的无限循环问题

3.1.7.1.3. Open MPI 版本 1.10.5

Date:

2016年12月19日

  • 更新UCX API接口

  • 修复darray中导致MPI/IO故障的错误

  • 使用类似MPI_Get_library_version()的字符串来标记调试器DLL。感谢Alastair McKinstry的报告

  • 修复coll/libnbc中的多线程竞争条件

  • 针对OSHMEM的多项修复

  • 修复UCX支持中因未初始化字段导致的bug

  • 修复MPI_Ialltoallv函数在使用MPI_IN_PLACE时未进行MPI参数检查的问题

  • 在初始化前正确重置接收请求类型。感谢Chris Pattison提供的报告和测试用例。

  • 修复 iallgather[v] 中的错误

  • 修复了MPI_Comm_accept的并发问题。感谢Pieter Noordhuis提供的补丁

  • 修复 ompi_coll_base_{gather,scatter}_intra_binomial

  • 修复了MPI_Type_get_extent函数在分布式数组数据类型上返回错误范围的问题。

  • 如果处理器具有核心不变的tsc,则重新启用rtdtsc指令作为单调时钟源。这是对Open MPI v1.10.3中引入的性能回归的部分修复。

3.1.7.1.4. Open MPI 版本 1.10.4

Date:

2016年9月10日

  • 修复对MIPS架构的汇编器支持

  • 改进集合操作中临时缓冲区的内存处理

  • 修复带有非零下限数据类型的[all]reduce操作 感谢Hristo Iliev的报告

  • 修复非标准的ddt处理。感谢Yuki Matsumoto的报告

  • 修复了libnbc中的多个问题。感谢Yuki Matsumoto的报告

  • 修复Fortran中RMA绑定请求的拼写错误。感谢@alazzaro和@vondele的帮助

  • 针对集体支持功能的多项错误修复与增强

  • 修复hcoll中的预定义类型映射问题

  • 恢复coll/sync组件,以解决在紧密循环跨集合操作期间出现的意外消息问题

  • 修复Fortran静态构建中包装器编译器的拼写错误

3.1.7.1.5. Open MPI 版本 1.10.3

Date:

2016年6月15日

  • 修复零长度数据类型。感谢Wei-keng Liao报告此问题。

  • 次要手册页清理

  • 在OSHMEM/UCX中实现原子操作支持

  • 修复对MPI_COMBINER_RESIZED的支持。感谢James Ramsey的报告

  • 修复在使用--use-hwthread-cpus时的CPU数量计算问题

  • 为HCOLL库添加Allgatherv、iAllgatherv、Reduce和iReduce的入口点

  • 修复了一个HCOLL集成错误,该错误可能在请求仍在处理时错误地标记为已完成

  • 修复了启用SMT时核心数的计算问题。感谢Ben Menadue的报告

  • 多项USNIC修复

  • 在每个进程的目录中创建一个数据文件,以确保每个通信器都有唯一的文件。感谢Peter Wind的报告

  • 修复单边点对点代码中的零大小内存分配问题。感谢Lisandro Dalcín的报告

  • 修复当传递MPI_BOTTOM给MPI_Get_address时不返回错误的问题。感谢Lisandro Dalcín的报告

  • 修复了MPI_TYPE_SET_ATTR在值为NULL时的问题。感谢Lisandro Dalcín的报告

  • 修复各种Fortran08绑定问题

  • 修复内存检查器无数据情况。感谢Clinton Stimpson的报告

  • 修复OS-X下的CUDA支持

  • 修复各种OFI/MTL集成问题

  • 添加MPI_T手册页

  • 修复单边点对点通信问题,防止目标进入栅栏前发生通信,即使在无前驱的情况下

  • 修复了一个导致Totalview在MPMD使用场景下无法工作的错误

  • 在topo-graph-neighbors中正确支持MPI_UNWEIGHTED。感谢Jun Kudo的报告

  • 修复在启用PMI2时SLURM下的单例操作

  • 在非阻塞集合操作(libnbc)的邻域集合中不要使用MPI_IN_PLACE。感谢Jun Kudo的报告

  • 针对较新版本的Perl,静默处理autogen的弃用警告

  • 不要从集合操作返回MPI_ERR_PENDING

  • 对于MPI_WIN_DISP_UNIT、MPI_WIN_CREATE_FLAVOR和MPI_WIN_MODEL使用int*类型。感谢Alastair McKinstry的报告

  • 修复了IO/OMPIO中的register_datarep存根函数。感谢Eric Chamberland的报告

  • 修复共享内存单边组件中MPI_WIN_[POST,START]的总线错误

  • 在Fortran支持中添加了几个缺失的MPI_WIN_FLAVOR常量

  • 允许使用openib BTL连接来自不同子网的进程

  • 修复OSHMEM中basic/barrier算法的bug

  • 修正了--map-by node场景下的进程绑定问题

  • 包含对InfiniBand网络中子网到子网路由的支持

  • 修复usnic资源检查

  • 作者 - 修正对Subversion ID的错误引用

  • 修复在LSF下运行的MPMD作业的亲和性

  • 修复多个Fortran绑定错误

  • 修复与MPI_IN_PLACE相关的错误

  • 修复PSM/PSM2对单例操作的支持

  • 确保在RTE屏障期间MPI传输持续进行

  • 将HWLOC更新至1.9.1最终版本

  • 修复了当用户提供-Djava.library.path选项时Java命令行解析器中的一个错误

  • 更新MTL/OFI提供者的选择行为

  • 在Linux上添加对clock_gettime的支持。

  • 正确检测并配置适用于Solaris Studio 12.5测试版编译器

  • 在使用 -host 参数处理 MPMD 案例时正确计算 #slots 数量

  • 修复hcoll集合操作中因未初始化字段导致的bug

  • 在节点过载时不要设置绑定策略

  • 修复在超额订阅时跨通信器操作中的挂起问题

  • 加速MPI_Abort期间的进程终止

  • 默认禁用PSM/PSM2库中的回溯支持功能,以避免产生意外的冲突行为。

3.1.7.1.6. Open MPI 版本 1.10.2

Date:

2016年1月26日

  • OSHMEM 现已符合 1.2 标准

  • 修复NBC_Copy对合法零大小消息的处理

  • 修复了OSHMEM中的多个错误

  • 正确处理 mpirun --host @

  • 集中管理两个MCA参数以避免OMPI和OSHMEM层之间的重复:opal_abort_delay和opal_abort_print_stack

  • 添加对富士通编译器的支持

  • 为openmpi和OSHMEM添加UCX支持

  • 在没有给出允许超订阅的指令时正确处理超订阅情况。感谢@ammore1报告此问题

  • 修复rpm规范文件,使其不包含/usr目录

  • 为openib BTL添加Intel HFI1默认参数

  • 解决PSM2库中的符号冲突

  • 在需要时添加清空rgpusm缓存的功能

  • 修复了当-L参数与路径之间需要空格时的另一个libtool错误。感谢Eric Schnetter提供的补丁。

  • 增加对OSHMEM v1.2 API的支持

  • 提升oshmem_preconnect_all算法的效率

  • 修复缓冲发送支持中的错误

  • 修复了mpirun在极端情况下的双重释放问题。感谢@jsharpe提供的补丁

  • 多项单边支持修复

  • 修复了在使用大小超过INT_MAX的缓冲区时,调优的“reduce”集合操作中的整数溢出问题

  • 修复了mpirun中用户环境变量的解析问题。感谢Stefano Garzarella提供的补丁

  • PSM2 支持的性能改进

  • 修复NBS iBarrier对跨通信器的支持

  • 修复vader BTL在finalize阶段的bug

  • 增强了对Fortran编译器的配置支持

  • 修复rank_file映射器以支持默认的--slot-set。感谢Matt Thompson报告此问题

  • 更新MPI_Testsome手册页。感谢Eric Schnetter的建议

  • 修复了子数组和darray类型返回类型大小调整缺失的问题。感谢Keith Bennett和Dan Garmann报告此问题

  • 修复OSX 10.11上的Java支持问题。感谢Alexander Daryin报告该问题

  • 修复了Solaris 11.2上的一些编译问题。感谢Paul Hargrove在这些领域持续提供的帮助

3.1.7.1.7. Open MPI 版本 1.10.1

Date:

2015年11月4日

  • 解决了一个gcc编译器版本>=4.9.2的优化问题,该问题会导致内存注册出现问题,并强制将mpi_leave_pinned默认设置为0(即关闭状态)。感谢@oere提供的修复方案。

  • 修复了在子数组和darray数据类型中使用MPI_LB和MPI_UB的问题。感谢Gus Correa和Dimitar Pashov指出该问题。

  • 对mpi_show_mpi_alloc_mem_leaks和ompi_debug_show_handle_leaks功能进行了小幅更新。

  • 修复了在使用用户自定义操作调用非阻塞归约时出现的段错误。感谢Rupert Nash和Georg Geiser发现该问题。

  • 不再在Solaris系统上探测PCI拓扑结构(除非以root权限运行)。

  • 修复了Intel Parallel Studio 2016中ifort对!GCC$编译指示的部分支持问题。感谢Fabrice Roy报告此问题。

  • 大量Coverity/静态分析修复。

  • 修复了ROMIO在中查找lstat的问题。感谢William Throwe向上游和Open MPI提交补丁。

  • 修复了尝试打开插件时的小内存泄漏问题。

  • 修复了MPI_IBARRIER C原型中的类型错误。感谢Harald Servat报告此问题。

  • 添加缺失的手册页,包括MPI_WIN_CREATE_DYNAMIC、MPI_WIN_ATTACH、MPI_WIN_DETACH、MPI_WIN_ALLOCATE和MPI_WIN_ALLOCATE_SHARED。

  • 当通过mpirun启动新应用时,仅关闭实际已打开的文件描述符(在某些环境中可实现更快的启动速度)。

  • 修复Open MPI配置脚本中的"test =="问题。感谢Kevin Buckley指出该问题。

  • 修复usnic BTL中的性能问题:确保进度线程被适当限制,避免过度占用CPU周期。

  • 修复POWER架构上的缓存行大小检测问题。

  • 在几处添加缺失的#include。感谢Orion Poplawski提供补丁。

  • 当禁用OpenSHMEM构建时,不再安装其头文件、帮助文件或手册页。为oshrun、oshcc和oshfort添加手册页。

  • 修复了MPI_COMM_SET_INFO的mpi_f08实现,以及MPI_BUFFER_DETACH、MPI_WIN_ALLOCATE、MPI_WIN_ALLOCATE_SHARED、MPI_WTICK和MPI_WTIME的性能分析版本。

  • 添加orte_rmaps_dist_device MCA参数,允许用户映射到特定设备附近。

  • 对openib BTL进行了多项更新/修复。

  • 为openib BTL添加Mellanox ConnectX 3网卡缺失的默认配置。

  • OFI MTL中的小错误修复。

  • 对Mellanox的MXM、hcoll和FCA组件进行了多项更新。

  • 添加OpenSHMEM手册页。感谢Tony Curtis分享来自openshmem.org的手册页文件。

  • 为MPI_COMPARE_AND_SWAP、MPI_FETCH_AND_OP、MPI_RACCUMULATE和MPI_WIN_DETACH原型添加缺失的"const"属性。感谢Michael Knobloch和Takahiro Kawashima提请我们注意此问题。

  • 修复某些平台(如SLES 12)上的链接问题。

  • 修复MPI应用程序异常终止时在某些极端情况下出现的挂起问题。

  • 将缺失的选项添加到mpirun手册页。感谢Daniel Letai提请我们注意这个问题。

  • 新增 --with-platform-patches-dir 配置选项

  • 调整相对选择优先级,确保当MTL和BTL支持都可用时,优先选择MTL支持

  • 对所有大小的消息使用CUDA IPC以提升性能

3.1.7.1.8. Open MPI 版本 1.10.0

Date:

2015年8月25日

重要

注意:v1.10.0版本标志着Open MPI向新版本编号方案的过渡。v1.10.x系列基于v1.8.x系列,但增加了一些新功能。v2.x将是v1.10.x系列之后的下一系列,并将完成向新版本编号方案的过渡。有关新版本方案的更多详情,请参阅README文件。

注意

根据OpenMPI的版本编号规则,v1.10版本与v1.8发布系列保持API兼容性。

  • 新增了libfabric支持(详见README获取更多详情):

  • usNIC BTL 已更新为使用 libfabric。

  • 新增了OFI MTL(可在libfabric v1.1.0版本中与PSM配合使用)。

  • 通过新增的PSM2 MTL添加了对Intel Omni-Path的支持。

  • 新增了“yalla”PML以提供更快的MXM支持。

  • 移除了对MX的支持

  • 新增了对持久化分布式虚拟机(pDVM)的支持,以实现快速工作流执行。

  • 修复了Open MPI v1.8.8版本中GCC内联汇编的一个拼写错误。感谢Paul Hargrove指出这个问题。

  • 为MPI_Win_get|set_info(3)添加缺失的手册页。

  • 确保在运行结束时清理会话目录。

  • 修复了某些操作系统中依赖库符号未自动公开可用的链接问题。

  • 改进hcoll和fca配置库的检测功能。感谢David Shrader协助追踪此问题。

  • 移除了LAMA映射器(用于设置亲和性)。其功能已基本被其他mpirun命令行选项所取代。

  • CUDA:将异步复制模式设为默认。

  • 修复了MPI_IREDUCE_SCATTER_BLOCK中的malloc(0)警告。感谢Lisandro Dalcín报告此问题。

  • 修复了MPI_Scatter(3)手册页中的拼写错误。感谢Akshay Venkatesh发现这个错误。

  • 添加针对TCP端口扫描器的基本防护。

  • 修复Open MPI错误处理中的拼写错误。感谢Åke Sandgren指出该错误。

  • 提升了CM PML(即Portals、PSM、PSM2、MXM和OFI传输层)的性能。

  • 恢复了消息队列调试器(如TotalView、DDT)中阻塞发送请求的可见性。

  • 修复了TCP BTL中一个与IPv6相关的隐蔽错误。

  • 为单边功能添加对“no_locks” MPI_Info键的支持。

  • 修复了基于verbs网络的ibv_fork支持。

  • 修复了OpenSHMEM中的各种小问题。

  • 修复了MXM配置中额外的CPPFLAGS和LDFLAGS问题。感谢David Shrader提供的补丁。

  • 修复了openib BTL中memalign阈值设置错误的问题。感谢Xavier Besseron指出该问题。

3.1.7.2. Open MPI 1.8.x 系列

3.1.7.2.1. Open MPI 版本 1.8.8

Date:

2015年8月5日

  • 修复了PSM MTL中MPI_FINALIZE的段错误问题。

  • 修复mpi_f08哨兵(例如,MPI_STATUS_IGNORE)的处理。

  • 为OSHMEM设置一些额外的MXM默认值。

  • 修复了MPI_MRECV和MPI_IMRECV中的无效内存访问问题。

  • 包含两个在官方v1.8.7版本压缩包中被错误遗漏的修复:

  • 修复了MPI_WIN_POST和MPI_WIN_START对于零大小消息的处理问题

  • 防止端口扫描器访问时导致OOB TCP端口段错误

3.1.7.2.2. Open MPI 版本 1.8.7

Date:

2015年7月15日

注意

v1.8.7版本在技术上破坏了与1.8系列先前版本的ABI兼容性,因为它修复了两个错误的API签名。不过,用户只有在使用了这些函数时才需要重新编译——而实际上他们不可能使用过这些函数,因为之前的签名是错误的 :-)

  • 修复了一个影响阻塞发送的内存泄漏问题

  • 修复了MPI_T_pvar_get_index的错误声明,并添加了缺失的返回码MPI_T_INVALID_NAME。

  • 修复了PMI2支持中一个未初始化的变量问题

  • 为Mellanox ConnectX4-LX添加了新的供应商部件ID

  • 修复了NBC_Copy对于合法零大小消息的问题

  • 修复了MPI_Win_post和MPI_Win_start处理零大小消息的问题

  • 防止端口扫描器访问时导致OOB端口段错误

  • 修复了多个Fortran拼写错误

  • 修复了配置中对XRC支持的检测

  • 修复了对高度异构系统的支持,以避免在打印绑定信息时出现内存损坏问题

3.1.7.2.3. Open MPI 版本 1.8.6

Date:

2015年6月17日

  • 修复了Mac OS-X上由TCP keepalive暴露的内存泄漏问题

  • 修复了keepalive支持,确保守护进程/节点故障时能彻底清理作业

  • 更新Java绑定支持

  • 修复了vader共享内存BTL中的MPI_THREAD_MULTIPLE错误

  • 修复了在CUDA初始化未完成时关闭期间出现的问题

  • 修复了未提供前缀时的orted环境问题

  • 修复了MPI_Neighbor_allgather手册页中的小拼写错误

  • 修复了针对sh和ksh shell的树状派生支持

  • 多项数据类型修复

  • 修复了IPv6支持的错误

  • 修复了一个不太可能出现的构建问题

  • 修复了PMI2进程映射在循环映射场景下的解析问题

  • 修复了openib BTL中的memalign阈值问题

  • 修复了调试器对阻塞发送/接收消息队列的访问

3.1.7.2.4. Open MPI 版本 1.8.5

Date:

2015年5月5日

  • 修复了在某些情况下使用外部hwloc安装时的配置问题。感谢Erick Schnetter报告错误并帮助追踪问题根源。

  • 修复了在OS X系统上使用clang编译器时的链接器错误。感谢Erick Schnetter报告此错误并协助追踪问题根源。

  • 修复了vader BTL中的MPI_THREAD_MULTIPLE死锁错误。感谢Thomas Klimpel报告此问题。

  • 修复了多个Valgrind警告。感谢Lisandro Dalcín贡献补丁修复了一些单边代码路径。

  • 修复了OOB中版本兼容性测试的问题,该问题在1.8系列中破坏了ABI。注意:这不会解决1.8.5之前版本的问题,但会为后续版本修复此问题。

  • 修复了一些与在Intel Xeon Phi协处理器上运行相关的问题。

  • 在可能的情况下(默认情况下),尽量不使用GNU Libtool的libltdl库。

  • 修复了一些VampirTrace错误。感谢Paul Hargrove报告这些问题。

  • 修正了当指定--use-hwthread-cpus且nprocs <= 2时的默认绑定模式。

  • 修复使用clang编译时关于-finline-functions的警告。

  • 更新了嵌入式hwloc,修复了多个错误,包括多个用户在某些平台上报告的“重复Lhwloc1符号”问题。

  • 当mpirun以默认绑定方式调用(即未指定绑定)且一个或多个节点不支持绑定时,不报错。感谢Annu Desari指出该问题。

  • 让root用户调用mpirun --version来检查版本,而不会打印"不要以root身份运行!"的警告。感谢Robert McLay的建议。

  • 修复了OpenSHMEM支持中的若干错误。

  • 将vader共享内存支持扩展至32位架构。

  • 修复了对超大数据类型的处理。感谢Bogdan Sataric提交的错误报告。

  • 修复了处理子数组MPI数据类型时的bug,以及使用MPI_LB和MPI_UB时的bug。感谢Gus Correa指出这个问题。

  • 恢复用户可设置的带宽和延迟PML MCA变量。

  • 修复了在异常情况下MPI_FINALIZE期间清理相关的多个错误。

  • 新增了对TCP keepalive信号的支持,以确保当守护进程之间的套接字无法创建时(例如由于防火墙)能够及时终止。

  • 新增了MCA参数,允许从工具启动时充分利用SLURM分配(支持LLNL调试器)。

  • 修复了PMI和hwloc配置逻辑中的若干错误。

  • 修复了TCP通信设置中错误的接口索引。感谢Mark Kettenis发现该问题并提供补丁。

  • 修复了在未使用MPI_IN_PLACE时,MPI_IREDUCE_SCATTER在单进程通信器中的问题。

  • 新增了对OFED v3.12及以上版本的XRC支持。

  • 对Mellanox hcoll集合操作支持进行了多项更新和错误修复。

  • 修复了不支持REAL*16/COMPLEX*32类型的Fortran编译器的问题。感谢Orion Poplawski发现该问题。

  • 修复了pkg-config文件中rpath/runpath支持的问题。感谢Christoph Junghans向我们报告此问题。

  • 手册页修正:

    • 从MPI_COMM_SPLIT_TYPE中移除了关于"color"的错误讨论。感谢Erick Schnetter发现并指出这段过时的内容。

    • 修复了MPI_IBARRIER的原型定义。感谢Maximilian发现这个问题。

    • 更新了关于非阻塞通信中缓冲区使用的文档。感谢Alexander Pozdneev指出过时的文本。

    • 添加了关于MPI_PUBLISH_NAME中'ompi_unique' MPI_Info键的文档。

    • 修复了MPI_INTERCOMM_MERGE中的拼写错误。感谢Harald Servat发现并提交补丁。

    • 更新了HACKING中的配置路径。感谢Maximilien Levesque提供的修复。

    • 修复了MPI_WIN_LOCK_ALL中的Fortran拼写错误。感谢Thomas Jahns指出该问题。

  • 修复了多个MPI单边通信的bug。

  • 修复了从单例作业调用时的MPI_COMM_SPAWN问题。

  • 修复了CUDA支持中的若干小问题,包括共享内存的注册以及对GPU缓冲区的归约操作支持。

  • 增强了对在Cray平台上构建OMPI的支持。

  • 修复了因无意中默认启用MPI_THREAD_MULTIPLE支持而导致的性能退化问题。

3.1.7.2.5. Open MPI 版本 1.8.4

Date:

2014年12月19日

  • 修复了MPI_SIZEOF;现在现代Fortran编译器的mpif.h中已支持该功能(详见README)。同时修正了各种编译器/链接器错误。

  • 修复了在v1.8.1和v1.8.2版本之间,当使用gfortran >= v4.9编译时,mpi接口模块中意外的Fortran ABI中断问题。

  • 修复TCP BTL中各种MPI_THREAD_MULTIPLE问题。

  • mpirun 不再需要 --hetero-nodes 开关;它会在异构场景下运行时自动检测。

  • 更新LSF支持,包含改进的亲和性功能。

  • 将嵌入式hwloc更新至v1.9.1版本。

  • 修复了openib BTL中可注册内存最大值的计算问题。

  • 更新了调试器无法找到各种符号/类型时的错误提示信息,使其更加清晰。感谢Dave Love提出这个问题。

  • 在静态构建中为LSF和PBS/Torque库添加了适当的支持。

  • Rankfiles 现在支持物理处理器 ID。

  • 修复了MPI_ABORT中潜在的挂起问题。

  • 修复了PSM MTL和“重新连接”场景中的问题,例如MPI_INTERCOMM_CREATE。

  • 修复单进程下的MPI_IREDUCE_SCATTER问题。

  • 修复了在将stdout/stderr汇聚到mpirun时出现的(罕见)竞态条件问题,该问题可能导致进程终止时部分尾部输出丢失。

  • 移除了意外将--enable-mpi-thread-multiple默认设置为"开启"的改动,该设置会影响非线程化应用程序的性能。

  • 通过优化内部哈希表实现,显著减少了启动时间。

  • 修复了在OS X系统中使用gfortran >= 4.9时Fortran mpi模块的链接问题。感谢Github用户yafshar提出该问题。

  • 修复了Cygwin平台上的内存泄漏问题。感谢Marco Atzeri报告此问题。

  • 修复了当拓扑结构的度数高于通信器大小时,邻域集合操作中的段错误。感谢Lisandro Dalcín报告此问题。

  • 修复了在某些使用场景下邻居集合操作导致的段错误。

  • 修复了与Solaris支持相关的各种问题。感谢Siegmar Gross耐心地识别所有问题。

  • 修复了针对某些Slurm安装模式的PMI配置测试。

  • 修复了Java绑定中的参数注册问题。感谢Takahiro Kawashima和Siegmar Gross发现此问题。

  • 多处手册页面的修正。

  • 静默处理多个警告并修复部分内存泄漏问题(仍有剩余,但情况已有所改善)。

  • 重新启用了共享内存BTL中对CMA和knem的支持。

  • 更新了mpirun手册页,以正确解释新的映射/排名/绑定选项。

  • 修复了MPI_IALLGATHER在跨通信子中的问题。感谢Takahiro Kawashima提供的补丁。

  • 对OpenSHMEM进行了大量更新和性能改进。

  • 在openib BTL中关闭消息合并功能,直到能够提供针对该功能的适当修复(暂定预计在1.8.5版本中实现)

  • 修复了一个可以追溯到远古时代的iof输出错误,当系统负载极高时会输出额外的字节

  • 修复了一个bug,当指定mca_component_show_load_errors=0时可能导致ompi_info出现段错误

  • 更新了valgrind抑制文件

3.1.7.2.6. Open MPI 版本 1.8.3

Date:

2014年9月26日

  • 修复了应用程序中止错误,确保MPI_Abort能正确退出并返回指定的退出状态

  • 修复了Clang发现的部分(非全部)对齐问题

  • 允许CUDA感知与非阻塞集合操作协同工作。在使用GPU缓冲区时强制进行数据打包。

  • 修复了与Intel 2015 Fortran编译器相关的配置测试问题

  • 修复了一些与PGI相关的错误

  • 在遇到防火墙时提供更友好的帮助信息

  • 修复了MCA参数引用问题,以保护包含多单词和特殊字符的参数

  • 改进了bind-to帮助信息,以明确默认设置

  • 新增MPI-3.1工具接口

  • 多项性能优化和内存泄漏清理

  • 除非特别要求,否则关闭coll/ml插件,因为它仍处于实验状态

  • 通过为最新LSF版本添加所需库来修复LSF支持。感谢Joshua Randal提供初始补丁。

3.1.7.2.7. Open MPI 版本 1.8.2

Date:

2014年8月25日

  • 修复OOB的自动连接功能,使ORTE能够自动测试所有可用的网卡

  • 根据广泛需求,恢复对pernode、npernode和npersocket选项的支持

  • 为MPI_WIN_LOCK_ALL、MPI_WIN_UNLOCK_ALL和MPI_WIN_SYNC添加缺失的Fortran绑定。

  • 修复了在某些情况下基于rsh/ssh的启动器中出现的级联/过度引用问题。感谢多位用户提出此问题。

  • 正确添加对gfortran 4.9忽略TKR编译指示的支持(在v1.7.5版本中错误地只实现了部分支持)。感谢Marcus Daniels提出这个问题。

  • 更新/改进usnic BTL中的帮助信息。

  • 修复MPI_Abort中的竞态条件。

  • 修复了从包装器编译器静态链接在某些复杂情况下会失败的问题。

  • 澄清关于OpenSHMEM默认启用/禁用状态的配置--help说明信息。感谢Paul Hargrove的建议。

  • 在相关位置正确对齐页面。感谢Paul Hargrove发现此问题。

  • 针对OpenBSD、FreeBSD和Solaris/SPARC系统的各种编译器警告修复及小问题修正。感谢Paul Hargrove提供的补丁。

  • 在mpi_f08模块中正确地将函数指针从Fortran传递到C,现在支持gfortran 4.9。感谢Tobias Burnus对此问题的协助和测试。

  • 改进对Cray CLE 5的支持。

  • 修复mpirun回归问题:确保如果mpirun因信号终止,退出状态为非零。

  • 提升了异步拷贝的CUDA效率。

  • 修复了MPI_Type_indexed.3中的参数类型问题。感谢Bastian Beischer报告此错误。

  • 修复openib BTL中的NUMA距离计算问题。

  • 减少作业结束时关闭mpirun所需的时间。

  • 更多RMA修复。

  • Tetsuya Mishima 提供的更多主机文件修复。

  • 修复darray问题,其中UB未正确计算。

  • 修复了MPI_GET_LIBRARY_VERSION的mpi_f08参数名称。感谢张俊超指出这个问题。

  • 确保在调度环境中无法映射进程时,mpirun能够正确中止。

  • 确保MPI RMA错误代码能正确显示。感谢Lisandro Dalcín报告此问题。

  • 对bash和zsh的mpirun自动补全脚本进行了小错误修复和改进。

  • 修复了顺序mpirun进程映射器的问题。感谢Bill Chen报告此问题。

  • 修正SLURM标准输出/错误重定向。

  • 添加了缺失的portals 4文件。

  • 阻塞发送和接收的性能改进。

  • 对ml collective组件进行了大量清理工作

  • 新增了Java方法以提供完整的MPI覆盖

  • 多项OSHMEM清理工作

  • 防止comm_spawn自动在所有可用节点上启动虚拟机

  • 修复多处内存泄漏问题,实现valgrind无报错运行

  • 改进对网络不匹配情况下TCP连接发现的处理,当节点间没有直接的1:1子网匹配时

  • 修复当在管道中使用OMPI信息工具时,若用户在完成输出前提前退出管道某一步骤会导致段错误的问题

3.1.7.2.8. Open MPI 版本 1.8.1

Date:

2014年4月23日

  • 修复了一个严重错误:当以root身份运行时,mpirun会删除/目录下的文件(但不会删除目录)。感谢Jay Fenlason和Orion Poplawski将这个问题提请我们注意并协助确定修复方案。

3.1.7.2.9. Open MPI 版本 1.8.0

Date:

2014年3月31日

  • 提交上游ROMIO修复,用于混合NFS+本地文件系统环境。

  • 针对MPI-3单边通信支持的多项修复。例如,现已支持任意长度的数据类型。

  • 为Mellanox ConnectX 4网卡添加配置支持。

  • 添加缺失的MPI_COMM_GET|SET_INFO函数,以及缺失的MPI_WEIGHTS_EMPTY和MPI_ERR_RMA_SHARED常量。感谢Lisandro Dalcín指出这个问题。

  • 更新了OSHMEM、usnic BTL、TCP BTL和ORTE中的部分帮助信息,并完善了关于ompi_info的--level选项的文档说明。

  • 修复了一些编译器警告。

  • 确保如果Slurm中默认启用了TaskAffinity,ORTE守护进程不会被绑定到单个处理器。感谢Artem Polyakov发现该问题并提供补丁

3.1.7.3. Open MPI 1.7.x 系列

3.1.7.3.1. Open MPI 版本 1.7.5

Date:

2014年3月20日

注意

Open MPI现已完全兼容MPI-3.0标准

  • 新增基于Open MPI的MPI层构建的Linux OpenSHMEM支持。感谢Mellanox贡献这一新功能。

  • 允许通过orte_daemon_cores MCA参数将ORTE守护进程限制在特定核心上运行。

  • 确保为通过MPI动态函数(如MPI_COMM_SPAWN)启动的进程正确设置"locality"标志。

  • 修复当nnodes小于旧通信器大小时的MPI_GRAPH_CREATE问题。

  • usnic BTL 现在支持底层 UDP 传输。

  • usnic BTL 现在会在首次向远程服务器发送数据时检查常见的连接错误。

  • usnic BTL 中的小规模可扩展性改进。

  • ompi_info现在会显示Java MPI绑定是否可用。

  • MPI-3: mpi.h 和 Fortran 接口现在报告 MPI_VERSION==3 和 MPI_SUBVERSION==0。

  • MPI-3: 新增了对新RMA函数和功能的支持。

  • 修复了MPI_Info中的"const"小问题。感谢Orion Poplawski发现该问题。

  • 修复了多个映射/绑定选项的问题。感谢Tetsuya Mishima的帮助。

  • 针对正常和非正常进程终止的多项修复,包括单例MPI_Abort以及确保在非正常终止作业时杀死整个进程组。

  • 修复了javadocs的DESTDIR安装问题。感谢Orion Poplawski指出这个问题。

  • 针对MPI Java绑定的多项性能改进。

  • OMPI 现在使用其内部随机数生成器,不会干扰 srand() 及相关函数。

  • 针对Cygwin构建进行了一些清理工作。感谢Marco Atzeri提供的补丁。

  • 新增一个集体通信组件(coll/ml),可显著提升性能。该组件仍处于实验阶段,需设置coll_ml_priority > 0才能激活使用。

  • 在启动时添加版本检查,以确保作业中所有节点上使用的Open MPI版本一致。

  • 显著提升了MPI_DIMS_CREATE在大数值情况下的性能。感谢Andreas Schäfer的贡献。

  • 从“ignore TKR” mpi_f08模块中移除了ASYNCHRONOUS关键字。

  • 已弃用以下mpirun选项: --bynode, --bycore, --byslot:替换为--map-by node|core|slot--npernode, --npersocket:分别替换为--map-by ppr:N:node--map-by ppr:N:socket

  • 从ROMIO上游选取NFS“无限陈旧”修复。

  • 修复并扩展了PMI2以支持更广泛的映射范围。

  • 提升大规模部署时的启动性能。

  • 新增对PBS/Torque环境的支持,这些环境会设置环境变量来指示每个节点上可用的插槽数量。将ras_tm_smp MCA参数设置为"1"可启用此模式。

  • 新增一种更具可扩展性的端点交换方法(通常称为“modex”),该方法仅在首次消息时基于每个对等节点交换端点数据。并非所有传输层都已更新以使用此功能。将rte_orte_direct_modex参数设置为"1"可启用此模式。

3.1.7.3.2. Open MPI 版本 1.7.4

Date:

2014年2月5日

重要

从1.7.4版本开始,OpenMPI的默认映射、排名和绑定设置已更改:

  • 映射:

    • 如果进程数小于等于2,默认采用按核心映射(map-by core)

    • 如果进程数大于2,默认按socket映射

  • 排名:

    • 如果使用默认映射,则默认按槽位排序

    • 如果指定了map-by ,则默认使用rank-by ,其中是我们映射的对象

  • 绑定:

    • 默认绑定到核心

  • 用户可以通过相应的MCA参数单独覆盖这些设置中的任何一个。请注意,特别是多线程应用程序可能至少需要覆盖默认绑定设置,以允许线程使用多个核心。

  • ompi_info --all中恢复版本号输出。

  • 针对mpi_f08 Fortran绑定的多项错误修复。

  • 修复了Lustre 2.4下的ROMIO编译错误。感谢Adam Moody报告此问题。

  • 针对32位平台的各种修复。

  • 新增选择性禁用构建mpi或mpi_f08模块的功能。详情请参阅README文件。

  • 修复MX MTL最终化问题。

  • 修复了使用MPI_MODE_EXCL模式打开文件时的ROMIO问题。

  • 修复PowerPC和MIPS汇编问题。

  • 对hcoll和FCA集体卸载模块进行了多项修复。

  • 修复创建数据类型时的整数溢出问题。感谢Gilles Gouaillardet提供的原始补丁。

  • 将上游hwloc的一些修复移植到Open MPI的嵌入式副本中,用于解决有问题的NUMA节点CPU集问题并包含缺失的头文件。感谢Jeff Becker和Paul Hargrove报告这些问题。

  • 修复MXM MTL中的递归调用问题。

  • 针对新的MCA参数后端系统进行了多项错误修复。

  • 让posix fbtl模块在NetBSD平台上链接到-laio。感谢Paul Hargrove发现这个问题。

  • 对网络文件系统检测进行了多项更新和修复,以支持更多操作系统。

  • 在mpi Fortran模块中添加gfortran v4.9的"忽略TKR"语法。

  • 针对多个基于BSD的平台进行了各种编译器修复。感谢Paul Hargrove报告这些问题。

  • 修复在超额订阅系统上使用MPI_COMM_SPAWN[_MULTIPLE]时的问题。

  • --report绑定的输出改为仅声明进程未绑定,而不是报告它已绑定到所有处理器。

  • 根据MPI-3.0指南要求,移除了基于TKR的mpi Fortran模块中所有带有选择缓冲区的MPI子程序支持。感谢Jed Brown提出这个问题。

  • 仅允许usnic BTL在64位平台上构建。

  • 针对SLURM支持的多项错误修复,包括确保在异常终止时正确退出。

  • 确保MPI_COMM_SPAWN[_MULTIPLE]作业获得与mpirun相同的映射指令。

  • 修复了TCP_NODELAY的应用问题。

  • 修改TCP BTL,使其在被忽略不存在的接口时不发出警告。

  • 恢复了“--bycore” mpirun选项以保持向后兼容性。

  • 修复了调试器附加功能。感谢Ashley Pittman报告该问题并提出修复建议。

  • 修复了在仅包含一个进程的通信器上调用MPI_IBCAST时的错误。

  • 将新的Mellanox设备ID添加到openib BTL中。

  • 在清理Valgrind报告的各种内部内存泄漏方面取得进展。

  • 修复了一些多年来一直存在的烦人的flex生成警告。感谢Tom Fogal提供的初始补丁。

  • 通过MPI_COMM_SPAWN[_MULTIPLE]的"env"信息键支持用户提供的环境变量。感谢Tom Fogal提出的功能需求。

  • 修复了MPI_DIST_GRAPH_CREATE中未初始化的变量问题。

  • 修复了SPARC平台上的多种内存错误。感谢Siegmar Gross报告并测试了所有问题。

  • 移除Solaris线程支持。在Solaris系统上构建时,将使用pthreads。

  • 正确处理好持久化接收的转换器内部堆栈。感谢Guillaume Gouaillardet发现该问题。

  • 通过--with-libevent添加对外部libevent的支持。详情请参阅README文件。

  • 多项OMPIO更新与修复。

  • 新增对MPIEXEC_TIMEOUT环境变量的支持。如果设置了该变量,mpirun将在指定秒数后终止作业。

  • 将内部ROMIO副本更新为MPICH 3.0.4中发布的版本。

  • 对usnic BTL进行了多项性能优化和改进,包括现在为每个usnic设备报告MPI_T性能变量。

  • 修复了在使用MPI_ISCATTER[V]和MPI_IGATHER[V]时非根进程不会访问发送数据类型的问题。感谢Pierre Jolivet提供初始补丁。

  • 将VampirTrace更新至5.14.4.9版本。

  • 修复当与ummunotify一起使用时ptmalloc2钩子被禁用的问题。

  • 将openib BTL的默认连接管理器更改为基于UD verbs数据交换,而非ORTE OOB数据交换。

  • 修复在使用8字节INTEGER和4字节int编译时的Fortran编译错误。

  • 修复由Jeremiah Willcock发现的C++11问题。

  • 对ORTE运行时层进行了大量更改、更新和错误修复。

  • 正确处理MPI_REDUCE_SCATTER操作中recvcounts参数为0的情况。

  • 更新MPI-3的手册页,并为MPI-2.x版本中缺失的部分函数补充手册页。

  • 根据MPI-3.0发布后的勘误更新了mpi_f08模块,主要移除了所有接口中的BIND(C)绑定。

  • 修复了Fortran例程中MPI_SCATTER[V]的MPI_IN_PLACE检测问题。感谢Charles Gerlach发现该问题。

  • 为openib BTL添加了对可路由RoCE的支持。

  • 将嵌入式hwloc更新至v1.7.2版本。

  • ErrMgr框架经过重新设计,以更好地支持容错开发活动。详情请参阅以下RFC文档: https://www.open-mpi.org/community/lists/devel/2010/03/7589.php

  • 在OPAL中添加了数据库框架,并将所有模式操作改为通过该框架流转,同时在可用数据中包含了额外的系统信息

  • 新增了分阶段状态机以支持顺序工作流

  • 新增了对分布式文件系统的支持,可在没有网络文件系统的节点间访问文件

  • 扩展文件框架以支持应用程序可扩展的文件预置功能,新增"raw"组件用于在守护进程网络间传输文件

  • 已移除对原生Windows的支持。Windows用户可从该组织获取cygwin软件包。

  • 新增了MPI Java绑定。有关API的更多详情,请参阅Javadocs文档。

  • 包装器编译器现在默认在支持的系统上为生成的可执行文件添加rpath支持。此行为可通过--disable-wrapper-rpath禁用。请参阅README中关于在MPI应用中使用rpath时可能遇到的ABI兼容性问题的说明。

  • 新增了一个并行I/O组件和多个新框架,用于支持并行I/O操作。

  • 修复了当使用8字节Fortran INTEGER和4字节C int时MPI_STATUS_SIZE Fortran的问题。由于此问题影响ABI,仅当Open MPI配置了--enable-abi-breaking-fortran-status-i8-fix时才会启用。感谢Jim Parker提供初始补丁。

  • 添加对Intel Phi SCIF传输的支持。

  • 对于配置了CUDA 6.0的CUDA-aware MPI,使用新的指针属性以避免在同一个节点上的GPU之间使用CUDA IPC时在流0中出现额外的同步。

  • 对于配置了CUDA 6.0的CUDA-aware MPI,在openib BTL中编译支持GPU Direct RDMA以改善小消息延迟。

  • 将ROMIO从MPICH v3.0.4版本进行了更新。

  • MPI-3: 新增了对剩余非阻塞集合操作的支持。

  • MPI-3: 新增对邻域集合操作的支持。

  • MPI-3: 更新了C语言绑定,统一使用[]。

  • MPI-3: 为只读缓冲区添加了const关键字。

  • MPI-3: 新增了对非阻塞式通信器复制的支持。

  • MPI-3: 新增了对非集体通信器创建的支持。

3.1.7.3.3. Open MPI 版本 1.7.3

Date:

2013年10月17日

  • 使CUDA感知支持动态加载libcuda.so,这样支持CUDA感知的openmpi库可以在没有安装CUDA软件的系统上运行。

  • 修复了Torque环境下动态进程和跨通信器操作中的多个问题。感谢Suraj Prabhakaran报告此问题。

  • 默认启用对Mellanox MXM2库的支持。

  • 改进对Portals 4的支持。

  • 修复了各种Solaris问题。非常感谢Siegmar Gross以极大的耐心报告了所有这些问题。

  • MPI-2.2: 为 MPI_C_*COMPLEXMPI::*COMPLEX 添加归约操作支持。

  • 修复了当openpty()失败时的内部计数问题。感谢Michal Peclo报告此问题并提供补丁。

  • 修复了openib BTL在XRC模式下内存消耗过大的问题。感谢Alexey Ryzhikh提供的补丁。

  • 在mpirun中添加对负np值的错误检查,以防止死锁。感谢Upinder Malhi发现此问题。

  • 修复了MPI_IS_THREAD_MAIN的行为问题。感谢Lisandro Dalcín指出该问题。

  • 修复了多个rankfile问题。

  • 修复iWARP设备上的功能。

  • 各种内存和性能优化与调整。

  • 修复由Fujitsu发现的MPI_Cancel问题。

  • 在“use mpi”TKR实现中添加对MPI_Get_address缺失的支持。感谢Hugo Gagnon发现该问题。

  • MPI-3: 添加对MPI_Count的支持。

  • MPI-2.2: 为MPI_ALLTOALL添加缺失的MPI_IN_PLACE支持。

  • 新增了对Cisco usNIC设备的usnic BTL支持。

  • VampirTrace 小版本更新至 5.14.4.4。

  • 移除了对老旧OS X系统(即10.5之前的版本)的支持。

  • 修复了一个隐蔽的数据类型打包/解包错误。感谢Takahiro Kawashima发现此问题。

  • 为PMI2环境添加运行时支持。

  • 更新openib BTL默认参数以包含对Mellanox ConnectX3-Pro设备的支持。

  • 将libevent更新至v2.0.21版本。

  • ompi_info --param 现在默认只显示少量MCA参数。添加 --level 9--all 可查看全部MCA参数。更多详情请参阅README文件。

  • 增加对异步CUDA感知拷贝的支持。

  • 通过“hcoll”库添加对Mellanox MPI集合操作卸载的支持。

  • MPI-3: 新增对MPI_T接口的支持。Open MPI的MCA参数现在可以通过MPI_T控制变量接口访问。已添加对少量MPI_T性能变量的支持。

  • 添加Gentoo内存钩子覆盖功能。感谢Justin Bronder提供的补丁。

  • 新增了“mindist”进程映射器,支持通过BIOS报告的PCI位置信息来放置进程。

  • MPI-2.2: 添加对MPI_Dist_graph功能的支持。

  • 为PMI2实现启用通用的客户端支持。任何实现了PMI2的资源管理器都可以利用此功能;例如SLURM 2.6及以上版本。

3.1.7.3.4. Open MPI 版本 1.7.2

Date:

2013年6月26日

  • VampirTrace 主要更新至 5.14.4.2 版本。 (** 同样出现在:1.6.5)

  • 修复当使用MPI_PROC_NULL调用MPI_IPROBE时设置flag==1的问题。 (** 同样出现在:1.6.5版本)

  • 默认设置让openib BTL忽略Intel Phi设备。 (** 同样出现在版本: 1.6.5)

  • 减少Fortran类型中MPI内置数据类型使用的内部内存存储。感谢Takahiro Kawashima提供的初始补丁。 (** 同样出现在: 1.6.5版本)

  • 修复Mellanox ConnectIB和OFED 2.0的总注册内存计算问题。 (** 同样出现在: 1.6.5版本)

  • 修复MXM MTL组件中可能出现的数据损坏问题。 (** 同样出现在: 1.6.5版本)

  • 移除了hwloc嵌入中多余的-L参数。感谢Stefan Friedel报告此问题。 (** 此问题也出现在: 1.6.5版本)

  • 修复连续数据类型的内存检查。感谢Eric Chamberland报告此问题。 (** 同样出现在: 1.6.5版本)

  • 使openib BTL对忽略不支持RC功能的verbs设备更加友好。 (** 同样出现在版本:1.6.5)

  • 修复了一些MPI数据类型引擎的问题。感谢Thomas Jahns报告该问题。 (** 同样出现在: 1.6.5版本)

  • 为Chelsio T5设备添加INI信息。 (** 同样出现在: 1.6.5)

  • 为MPI_ISEND和MPI_IRECV集成MXM STREAM支持,以及其他MXM小修复。 (** 同样出现在:1.6.5版本)

  • 修复了在无法关闭已打开文件的MPI_File_close时显示模糊的"MPI已终止"错误的问题。感谢Brian Smith报告此问题。 (** 同样出现在: 1.6.5版本)

  • 添加一个基于距离的映射组件,用于查找距离PCI总线"最近"的插槽。

  • 修复了一个导致libevent中epoll被自动禁用的错误。

  • 将hwloc升级至1.5.2版本。

  • 真正修复了Open Fabrics支持中的XRC编译问题。

  • 修复MXM连接建立流程。

  • 修复了并行调试器附加到MPI作业的功能。

  • 修复了一些小的内存泄漏问题。

  • 修复了在组合特定格式的数据类型时出现的数据类型损坏问题。

  • 新增了位置感知映射算法(LAMA)映射组件。

  • 修复了在极端情况下处理MPI_STATUS的问题。

  • 添加一个基于距离的映射组件,用于查找距离PCI总线“最近”的插槽。

3.1.7.3.5. Open MPI 版本 1.7.1

Date:

2013年4月16日

  • 修复了在Linux上指定--without-memory-manager时出现的编译错误

  • 修复了Open Fabrics支持中的XRC编译问题。

3.1.7.3.6. Open MPI 版本 1.7.0

Date:

2013年4月1日

  • 新增MPI-3功能:

    • MPI_GET_LIBRARY_VERSION

    • 匹配的探针

    • MPI_TYPE_CREATE_HINDEXED_BLOCK

    • 非阻塞式集合操作

    • 支持MPI_INFO_ENV

    • Fortran '08 绑定(见下文)

  • 由于维护者流失,放弃了对检查点/重启功能的支持 :-(

  • 默认启用对已弃用MPI函数的编译时警告(在支持的编译器中)。

  • 全面改进的Fortran MPI绑定(详情请参阅README):

    • "mpifort"现在是Fortran的首选包装器编译器

    • 新增了“use mpi_f08”绑定(适用于支持该特性的编译器)

    • 为支持该功能的编译器添加了更好的"use mpi"支持

    • 移除了1.5.x系列中因ABI兼容性原因错误添加到"mpi"模块中的MPI_SCATTERV接口。

  • 大量VampirTrace升级和修复;升级至v5.14.3版本。

  • 修改了进程亲和性系统,当绑定结果为"绑定到全部"(等同于未绑定)时提供警告。

  • 移除了maffinity、paffinity和carto框架(以及相关的MCA参数)。

  • 升级至hwloc v1.5.1版本。

  • 对OpenIB(OpenFabrics)BTL进行了性能优化。

  • 使malloc钩子对IO解释器更加友好。感谢Darshan维护者Phil Carns提交的错误报告和建议的修复方案。

  • 新增对DMTCP检查点/重启系统的支持。

  • 新增了对Cray uGNI互连技术的支持。

  • 修复了OpenBSD上的头文件问题。

  • 修复了MPI_TYPE_CREATE_F90_REAL相关的问题。

  • 包装器编译器现在如果检测到静态链接命令行参数,会明确列出/链接所有Open MPI库。

  • Open MPI 现在需要一个支持C99标准的编译器进行构建。如果您当前的C编译器不符合C99标准,请升级您的编译器。

  • 修复MPI_GET_PROCESSOR_NAME的Fortran绑定以正确设置ierr。感谢LANL发现此错误。

  • 多项MXM和FCA更新。

  • 修复了Valgrind报告中出现的错误释放putenv字符串的问题。

  • 修复了MPI_ALLGATHER中MPI_IN_PLACE的情况。

  • 修复了一个在启动时阻止MCA参数转发到守护进程的bug。

  • 修复了VT和CUDA --with-cuda[-libdir]配置命令行参数的问题。

  • 针对许多MPI集合例程的全新实现,专注于提升性能。

  • 重构了自动生成/构建系统。

  • 为ORTE新增传感器框架,包含用于检测停滞应用及内存消耗过高进程的模块。

  • 在ORTE中新增了状态机框架,利用事件库将ORTE转变为事件驱动的状态机。

  • 新增了一个MCA参数(ess_base_stream_buffering),允许用户覆盖系统默认的stdout/stderr流缓冲设置(通过setvbuf)。该参数无法通过ompi_info查看。

  • 改进了启动系统,以便在分配进程位置和绑定时考虑节点硬件。

  • 新增了 -novm 选项以保留先前的启动行为。

  • 改进了进程映射系统,通过新增map-by、rank-by和bind-to命令行选项来充分利用节点硬件资源。

  • 新增了MCA参数,用于防止IO转发积压问题。

  • 由于维护者流失,放弃了对原生Windows的支持。:-(

  • 新增了一个并行I/O组件和多个新框架,用于支持并行I/O操作。

  • 修复orte_setup_hadoop.m4中的拼写错误。感谢Aleksej Saushev报告此问题

  • 修复了opal_path_access()中一个存在已久的错误。感谢Marco Atzeri追查并解决了这个问题。

3.1.7.4. Open MPI v1.6.x 系列

3.1.7.4.1. Open MPI 版本 1.6.6

Date:

未发布

重要

v1.6.6版本未发布

  • 修复了在创建数据类型时可能出现的整数溢出问题。感谢Gilles Gouaillardet发现该问题并提供补丁的初步版本。

  • 确保分发压缩包中包含help-opal-hwloc-base.txt文件。感谢Gilles Gouaillardet提供补丁。

  • 正确处理NULL和非活动请求的无效状态。感谢KAWASHIMA Takahiro提交初始补丁。

  • 修复了当使用8字节Fortran INTEGER和4字节C int时MPI_STATUS_SIZE Fortran的问题。由于此问题影响ABI,仅当Open MPI配置了--enable-abi-breaking-fortran-status-i8-fix时才会启用。感谢Jim Parker提供初始补丁。

  • 修复从非连续数据中间发送时的数据类型问题。

  • 修复了pty支持导致的故障错误。感谢Michal Pecio提供的补丁。

  • 修复了直接启动作业的调试器支持。

  • 修复MPI_IS_THREAD_MAIN以返回正确的值。感谢Lisandro Dalcín指出该问题。

  • 将VT更新至5.14.4.4版本:

    • 修复C++-11问题。

    • 修复在Fedora系统上使用CUDA库构建RPM包的支持。

  • 为ConnectX3-Pro HCA添加openib部件号。

  • 确保检查所有解析出的IP地址均为本地地址。

  • 修复当mpirun位于不同服务器上时通过rsh执行MPI_COMM_SPAWN的问题。

  • 添加 Gentoo "sandbox" 内存钩子覆盖功能。

3.1.7.4.2. Open MPI 版本 1.6.5

Date:

2013年6月26日

  • 更新了openib BTL的默认SRQ参数。 (** 同样适用于: 1.7.2)

  • VampirTrace 主要更新至 5.14.4.2 版本。 (** 即将发布:1.7.2)

  • 修复当使用MPI_PROC_NULL调用MPI_IPROBE时设置flag==1的问题。 (** 同样适用于:1.7.2)

  • 默认设置openib BTL忽略Intel Phi设备。 (** 同样适用于版本: 1.7.2)

  • 减少Fortran类型中MPI内置数据类型使用的内部内存存储。感谢Takahiro Kawashima提供的初始补丁。 (** 同样将出现在: 1.7.2版本)

  • 修复Mellanox ConnectIB和OFED 2.0的总注册内存计算问题。 (** 同样适用于版本:1.7.2)

  • 修复MXM MTL组件中可能出现的数据损坏问题。 (** 同样适用于: 1.7.2)

  • 从hwloc的嵌入中移除多余的-L参数。感谢Stefan Friedel报告此问题。 (** 同样会出现在:1.7.2版本)

  • 修复连续数据类型的内存检查。感谢Eric Chamberland报告此问题。 (** 同样适用于: 1.7.2版本)

  • 使openib BTL对忽略不支持RC功能的verbs设备更加友好。 (** 同样适用于: 1.7.2)

  • 修复了一些MPI数据类型引擎的问题。感谢Thomas Jahns报告该问题。 (** 同样会出现在: 1.7.2版本)

  • 为Chelsio T5设备添加INI配置信息。 (** 同样适用于:1.7.2版本)

  • 为MPI_ISEND和MPI_IRECV集成MXM STREAM支持,以及其他MXM小修复。 (** 同样将出现在:1.7.2版本)

  • 改进了OpenFabrics缓冲区的对齐方式。

  • 修复了在未能关闭已打开文件的MPI_File_close时显示模糊的"MPI已终止"错误的问题。感谢Brian Smith报告此问题。 (** 同样适用于: 1.7.2版本)

3.1.7.4.3. Open MPI 版本 1.6.4

Date:

2013年2月21日

  • 修复Cygwin共享内存和调试器插件支持。感谢Marco Atzeri报告该问题并提供初始补丁。

  • 修复了当使用rankfile提供分配时获取正确可用节点的问题。感谢Siegmar Gross报告此问题。

  • 修复了Solaris上的进程绑定问题。感谢Siegmar Gross报告此问题。

  • MXM 2.0的更新。

  • VT主要更新至5.14.2.3版本。

  • 修复了Cygwin/Cmake构建中的F77常量问题。

  • 修复配置--without-hwloc时的链接器错误。

  • 自动提供在某些ARM系统上正确编译的编译器标志。

  • 修复了当指定多个socket时slot_list的行为问题。感谢Siegmar Gross报告此问题。

  • 修复了单边操作中的内存泄漏问题。感谢Victor Vysotskiy向我们报告此问题。

  • 对OpenIB(OpenFabrics)BTL进行了性能优化。

  • 当进程亲和性失败时改进了错误消息。

  • 修复了MPI_REDUCE(_LOCAL)手册页中关于MPI_MINLOC的问题。感谢Jed Brown发现该问题并提供修复方案。

  • 使malloc钩子对IO解释器更加友好。感谢Darshan维护者Phil Carns提交的错误报告和建议的修复方案。

  • 恢复了在SLURM环境下无需PMI支持直接启动的能力。

  • 修复了OpenBSD上的MPI数据类型问题。

  • VT主要更新至5.14.2.3版本。

  • 支持FCA v3.0+版本。

  • 修复了OpenBSD上的头文件问题。

  • 修复了MPI_TYPE_CREATE_F90_REAL相关的问题。

  • 修复了使用外部libltdl安装时的问题。感谢opolawski发现该问题。

  • 修复了FCA中MPI_ALLGATHER的MPI_IN_PLACE情况。

  • 允许SLURM PMI支持查找lib64目录。感谢Guillaume Papaure提供的补丁。

  • 恢复“use mpi”与1.5/1.6系列其他版本的ABI兼容性(除v1.6.3版本外,该版本意外破坏了此兼容性)。

  • 修复了opal_path_access()中一个存在已久的错误。感谢Marco Atzeri追查并解决了这个问题。

3.1.7.4.4. Open MPI 版本 1.6.3

Date:

2012年10月30日

  • 修复当指定前缀时mpirun --launch-agent的行为。感谢Reuti发现此问题。

  • 修复了memchecker配置问题。

  • 从开发主干中移除了部分编译器警告。

  • 修复了当使用"add-host" MPI_Info键时从单例生成到多台主机的问题。感谢Brian Budge指出该问题。

  • 添加Mellanox ConnextIB ID及最大内联值。

  • 修复未指定 -np 参数时的 rankfile 问题。

  • FreeBSD检测功能改进。感谢Brooks Davis提供的补丁。

  • 移除了Windows上的TCP警告。

  • 针对超大消息改进了集体算法选择机制。

  • 修复PSM MTL亲和性设置。

  • 修复了mpif.h绑定中MPI_OP_COMMUTATIVE的问题。感谢Åke Sandgren提供修复该问题的补丁。

  • 修复了在mpi模块中使用CHARACTER和LOGICAL类型时MPI_SIZEOF的问题。感谢Åke Sandgren提供修复该问题的补丁。

3.1.7.4.5. Open MPI 版本 1.6.2

Date:

2012年9月25日

  • 修复MX MTL的问题。感谢Doug Eadline提出该问题。

  • 修复当结果作业跨多个节点时的单例MPI_COMM_SPAWN问题。

  • 修复MXM挂起问题,并更新至最新版本的MXM。

  • 更新以支持Mellanox FCA 2.5。

  • 修复大型作业启动时卡住的问题。

  • 确保当count==0时,MPI_TESTANY / MPI_WAITANY能正确设置空状态。

  • 修复了MPI_CART_SUB未正确将周期复制到新通信器的行为。感谢John Craske提交的错误报告。

  • 添加btl_openib_abort_not_enough_reg_mem MCA参数,当系统没有足够的注册内存时,使Open MPI中止MPI作业(而不仅仅是打印警告)。感谢Brock Palen提出这个问题。

  • 对Fortran MPI_INFO_GET的小幅修正:仅当标志为.TRUE.时才将值复制回用户缓冲区

  • 修复了使用PGI编译器套件时VampirTrace的编译问题。

3.1.7.4.6. Open MPI 版本 1.6.1

Date:

2012年8月22日

  • 针对基于OpenFabrics的网络进行了多项更改以消除挂起问题。 强烈建议使用Mellanox硬件的用户检查 其注册内存内核模块设置,以确保操作系统 将允许注册超过8GB的内存。详情请参阅此常见问题解答条目:

    https://www.open-mpi.org/faq/?category=openfabrics#ib-low-reg-mem

    • 如果注册内存不可用于RDMA,则回退到发送/接收语义。

    • 修复当注册内存耗尽时的两处内存碎片泄漏问题。

    • 启发式地确定有多少注册内存可用,并在其显著少于全部RAM时发出警告。

    • 人为限制每个MPI进程可使用的注册内存量,约为可用总注册内存的1/N。

    • 改进当发生可能由于意外注册内存耗尽导致的事件时的错误消息。

  • 修复了C++头文件中的双分号错误。感谢John Foster指出这个问题。

  • 允许在CFLAGS中多次指定-Xclang选项。感谢A. Martin提出这个问题。

  • 在Fortran "mpi"模块的"large"中,将ABI保持不正确的MPI_SCATTER接口里的巨型print *语句拆分。感谢Juan Escobar提供的初始补丁。

  • 将MPI_ALLTOALLV默认算法切换为成对交换方式。

  • 增加openib BTL默认的CQ长度,以支持更多类型的OpenFabrics设备。

  • 大量VampirTrace修复;升级至v5.13.0.4版本。

  • 将MPI_2INTEGER映射到底层的MPI_INTEGER类型,而非MPI_INT类型。

  • 确保OMPI版本号能够正确处理空格。 感谢dragonboy发现此问题。

  • 修复了Fortran "mpi"模块中MPI_COMM_TEST_INTER接口的IN参数标记问题

  • 多项MXM改进。

  • 使mpirun --report-bindings的输出更加友好/易于人类阅读。

  • 正确处理MPI_COMPLEX8|16|32。

  • 针对mpirun处理器亲和性选项(--bind-to-core及相关选项)的更多修复。

  • 为OpenFabrics注册内存使用对齐内存。

  • 针对MPI_ALLGATHERV、MPI_REDUCE_SCATTER、MPI_SCATTERV和MPI_GATHERV中的参数检查进行了多项修复。感谢mpi4py社区(Bennet Fauber、Lisandro Dalcín、Jonathan Dursi)的贡献。

  • 修复了MPI_FILE_GET_POSITION、MPI_FILE_GET_POSITION_SHARED、FILE_GET_SIZE、FILE_GET_VIEW中的文件定位溢出问题。

  • 移除了已损坏的 mpirun --cpu-set 选项。

  • 修复MPI错误码的清理问题。感谢Alexey Bayduraev提供的补丁。

  • 修复默认主机文件位置。感谢Götz Waschk发现该问题。

  • 改进多条错误提示信息。

3.1.7.4.7. Open MPI 版本 1.6.0

Date:

2012年5月14日

  • 修复了一些进程亲和性问题。当绑定进程时,Open MPI现在会将进程绑定到核心(或插槽,取决于指定的绑定选项)中所有可用的超线程。

    注意

    请注意mpirun --bind-to-socket ...在某些Linux内核版本的POWER6和POWER7系统上无法工作。更多信息请参阅Open MPI网站上的FAQ。

  • 新增对ARM5和ARM6的支持(在现有ARM7支持基础上)。感谢Evan Clinton提供的补丁。

  • 次要的Mellanox MXM修复。

  • 正确检测FDR10、FDR和EDR OpenFabrics设备。

  • 对mpirun(1)和MPI_Comm_create(3)手册页进行了小规模修正。

  • 修复了当COMM_SPAWN_MULTIPLE失败时可能出现的段错误。感谢富士通提供的补丁。

  • 在fakeroot环境中禁用介入式内存管理。这修复了某些构建环境中的问题。

  • 小幅更新了hwloc。

  • 当count==0时,MPI_TEST和MPI_WAIT的数组版本现在会立即返回MPI_SUCCESS。感谢Jeremiah Willcock的建议。

  • 将VampirTrace更新至v5.12.2版本。

  • 当使用mpirun --stdin all时,正确处理将标准输入转发给所有进程。

  • 解决XLC汇编错误。

  • OS X Tiger (10.4) 已有一段时间不受支持,因此如果检测到该系统,将强制中止配置。

  • 修复在SPARC 64系统上运行时openib BTL中的段错误问题。

  • 修复了一些基于BSD平台上的头文件顺序问题。感谢Paul Hargove提供这个(以及许多其他)修复。

  • 正确处理.FALSE.返回参数值到属性复制回调函数。

  • 修复了一系列C++ API的小问题;感谢富士通提供的补丁。

  • 修复了默认主机文件MCA参数的行为。

  • 根据MPI规范,确保不要修改MPI_CLOSE_PORT的port_name参数(这是一个输入参数)。

3.1.7.5. Open MPI v1.5.x系列

3.1.7.5.1. Open MPI 版本 1.5.5

Date:

2012年3月27日

  • Paul Hargrove 提供了大量可移植性配置/构建修复。感谢 Paul!

  • 修复了共享内存容错支持的编译器错误。

  • 移除了非生产质量的rshd和tmd PLM启动器。

  • 对Open MPI SRPM规范文件进行了小幅更新。

  • 修复了mpirun的--bind-to-socket选项问题。

  • 共享内存BTL中修复了一些MPI_THREAD_MULTIPLE问题。

  • 将用于引导1.5/1.6系列的GNU Autotools升级至本版本发布时的最新版本。

  • 在README中明确指出,如果您在使用Linux Intel 12.1编译器时遇到Open MPI问题,请将您的Intel编译器套件升级到最新补丁版本,问题就会消失。:-)

  • 修复 --without-memory-manager 配置选项。

  • 修复了Totalview/DDT支持MPI的调试器问题。

  • 更新rsh/ssh支持以正确处理Mac OS X库路径(即DYLD_LIBRARY_PATH)。

  • 将关于网络文件系统上共享内存备份文件的警告设为可选(即可以通过MCA参数禁用)。

  • 针对处理器和内存亲和性的多项修复。

  • 多项共享内存基础设施的改进。

  • 多项检查点/重启功能的修复。

  • 修复了OS X上的MPI_IN_PLACE(以及其他MPI标记值)问题。感谢Dave Goodell提供了必要的OS X gcc链接器魔法标志。

  • 修复了多处手册页面的错误和拼写问题。感谢富士通提供的补丁。

  • 更新了包装器编译器手册页,列出了可用的各种--showme选项。

  • 添加PMI直接启动支持(例如,在SLURM下使用“srun mpi_application”)。

  • 在打包数据类型描述时正确计算对齐地址。感谢富士通提供的补丁。

  • 修复了在打包MPI数据类型时处理边缘情况的隐蔽问题。感谢富士通提供补丁。

  • 解决Intel编译器v12.1.0 2011.6.233版本中的向量优化错误。

  • 在ompi_info输出中显示MPI API信息。

  • 主要VT更新至5.12.1.4版本。

  • 升级嵌入式硬件位置感知库(Hardware Locality, hwloc)至v1.3.2版本,并包含部分1.3.2发布后的错误修复。现在所有处理器和内存绑定都通过hwloc完成。太棒了!需要注意的是,该版本修复了基于AMD Opteron 6200和4200系列系统(有时被称为Interlagos、Valencia或其他Bulldozer架构芯片)的核心绑定问题。

  • 新增MCA参数用于控制进程范围内的内存绑定策略: hwloc_base_mem_alloc_policy, hwloc_base_mem_bind_failure_action (参见 ompi_info --param hwloc base)。

  • 移除了对libnuma的直接支持。现在可以通过hwloc获取libnuma支持。

  • 为MPI_EXSCAN添加了MPI_IN_PLACE支持。

  • 针对Windows构建(包括MinGW支持)的多项修复。

  • 移除了对OpenFabrics IBCM连接管理器的支持。

  • 更新了Chelsio T4和Intel NE OpenFabrics的默认缓冲区设置。

  • 将默认的RDMA CM超时时间增加到30秒。

  • 如果同时指定了btl_tcp_if_include和btl_tcp_if_exclude参数,则发出警告。

  • 针对Mellanox MXM传输的多项修复。

3.1.7.5.2. Open MPI 版本 1.5.4

Date:

2011年8月18日

  • 添加对(尚未发布的)Mellanox MXM传输的支持。

  • 在openib BTL中添加对动态服务级别(SLs)的支持。

  • 修复了MPI::Comm::NULL_COPY_FN和MPI::Comm::NULL_DELETE_FN相关的C++绑定外观/警告问题。感谢Júlio Hoffimann发现这些问题。

  • 同时允许在rankfiles中使用"slots"一词(即不仅限于"slot")。 (** 同样会出现在1.4.4版本中)

  • 将Mellanox ConnectX 3设备ID添加到openib BTL默认配置中。 (** 同样会出现在1.4.4版本中)

  • 多项FCA更新。

  • 修复Solaris SPARC平台上32位SIGBUS错误。

  • 添加缺失的ARM汇编代码文件。

  • 更新以允许appfile中包含超过128个条目。 (** 同样适用于1.4.4版本)

  • 多项VT更新与错误修复。

  • 更新btl_openib_cq_size的描述使其更加准确。 (** 同样会出现在1.4.4版本中)

  • 修复了各种汇编“clobber”问题。

  • 修复了在特定情况下carto选择功能出现的卡死问题。

  • 保护对execinfo.h的包含,因为并非所有平台都支持该头文件。感谢Aleksej Saushev发现此问题。 (** 此修复也将出现在1.4.4版本中)

  • 支持Solaris遗留的munmap原型变更。 (** 同样将出现在1.4.4版本中)

  • 根据https://www.open-mpi.org/community/lists/devel/2011/07/9492.php更新至Automake 1.11.1版本。

  • 修复LSF支持的编译问题。

  • 更新MPI_Comm_spawn_multiple.3手册页以反映其实际功能。

  • 修复可能导致环境损坏的问题。感谢Peter Thompson的建议。(** 同样会出现在1.4.4版本中)

  • 在直接启动的SLURM作业中启用PSM功能。

  • 将paffinity hwloc更新至v1.2版本,并修复PPC64/Linux平台上亲和性分配的小型bug。

  • 让openib BTL自动检测其带宽。

  • 支持新的MPI-2.2数据类型。

  • 更新以支持MPI单边通信中的更多数据类型。

  • 修复了当MPI-IO与MPI_THREAD_MULTIPLE一起使用时出现的递归锁定错误。(** 该修复也将出现在1.4.4版本中)

  • 修复mpirun处理前缀冲突的问题。

  • 确保mpirun的--xterm选项保持会话连接状态。 (** 同样适用于1.4.4版本)

  • 修复了“use mpi” F90模块中sendcounts和displs的类型问题。 ABI保持兼容,但应用程序可能会受到影响。详情请参阅README文档。感谢Stanislav Sazykin发现该问题。(** 此修复也将包含在1.4.4版本中)

  • 修复索引数据类型的内存泄漏问题。感谢Pascal Deveze提供初始补丁。(** 该修复也将出现在1.4.4版本中)

  • 修复当使用mpirun的-npernode选项时的调试器映射问题。

  • 修复了在配合使用make distclean时,对configure选项--disable-dlopen的支持问题。

  • 修复了与MPI_Comm_create和MPI_GROUP_EMPTY相关的段错误。感谢Dominik Goeddeke发现此问题。(** 该修复也将出现在1.4.4版本中)

  • 改进了LoadLeveler ORTE支持。

  • 新增WinVerbs BTL插件,支持Windows平台上的原生OpenFabrics verbs(即"wv" BTL)。

  • 新增btl_openib_gid_index MCA参数,允许选择在OpenFabrics设备的GID表中使用哪个GID。

  • 在OpenFabrics BTL中添加对PCI宽松排序的支持(当可用时)。

  • 更新rsh逻辑以支持正确的SGE操作。

  • 确保mca_paffinity_alone MCA参数在ompi_info输出中仅出现一次。感谢Gus Correa发现该问题。

  • 修复了MPI_PROBE和MPI_IPROBE的返回代码。 (** 同样会出现在1.4.4版本中)

  • 移除 --enable-progress-thread 配置选项;该选项在 v1.5 分支上无效。将 --enable-mpi-threads 重命名为 --enable-mpi-thread-multiple。新增 --enable-opal-multi-threads 选项。

  • 针对Intel Fortran编译器12版本的更新。

  • 移除对bproc的支持。再见了,bproc!

  • 如果在MPI_INIT过程中出现问题,修正错误信息以说明在MPI_INIT之前调用MPI_INIT是非法的。

3.1.7.5.3. Open MPI 版本 1.5.3

Date:

2011年3月16日

  • 添加缺失的“affinity”MPI扩展(即OMPI_Affinity_str() API),该功能在1.5.2版本中被意外遗漏。

3.1.7.5.4. Open MPI 版本 1.5.2

Date:

2011年3月9日

  • 移除了所有自定义拓扑/亲和性代码,改为初步支持hwloc v1.1.1(PLPA已被移除——hwloc万岁!)。请注意,Open MPI已捆绑hwloc,但也可以根据需要选用外部hwloc。详见README获取更多信息。

  • 针对Windows构建的众多CMake更新。

  • 更新了opal_cr_thread_sleep_wait MCA参数的默认值,使其行为不那么激进。

  • 更新了调试器支持,允许从直接通过srun(而非mpirun)启动的作业附加Totalview。感谢Nikolay Piskun提供的补丁。

  • 增加了更多FTB/CIFTS支持。

  • 修复了PGI编译器的编译错误。

  • 针对openib BTL的可移植性修复,使其能够在Solaris verbs堆栈上运行。

  • 修复了在使用mpirun的--debug开关时多令牌命令行的问题。例如:

    mpirun --debug -np 2 a.out "foo bar"
    

    感谢Gabriele Fatigati报告此问题。

  • 新增了对ARM架构的支持。

  • 为使用BPS和LSF批处理管理器的客户,在Open MPI Linux SRPM中新增了MPI_ROOT环境变量。

  • 将ROMIO从MPICH v1.3.1版本更新(额外增加了一个补丁)。

  • 修复了一些已弃用的MPI API函数通知消息。

  • 新增了“bfo”PML,可在OpenFabrics网络上提供故障转移功能。

  • 修复了MPI_*_init中的一些缓冲区内存检查问题。

  • 新增了针对Solaris系统的芯片检测与性能优化。

  • 修复了Solaris上的一些编译错误。

  • 更新了“rmcast”框架,修复了错误并增加了新功能。

  • 更新了Voltaire FCA组件,修复了错误并增加了新功能。支持FCA 2.1版本。

  • 修复了gcc 4.4.x和4.5.x版本中关于可能释放栈变量的过度警告提示。感谢Gentoo打包人员报告此问题。

  • 当openib组件因MPI_THREAD_MULTIPLE而自我取消资格时,使其输出详细日志。

  • 次要的手册页修正。

  • 多项检查点/重启修复。

  • 修复单边解锁代码中的竞态条件。感谢Guillaume Thouvenin发现该问题。

  • 改进帮助信息的聚合显示。

  • 新增OMPI_Affinity_str()可选用户级API函数(即"affinity"MPI扩展功能)。详情请参阅README文档。

  • 新增了btl_tcp_if_seq MCA参数,用于为节点上的每个MPI进程选择不同的以太网接口。该参数仅在与单网卡上的虚拟以太网接口配合使用时有效(例如,当使用虚拟接口为每个进程分配网卡上的专用硬件资源时)。

  • 修改了mpirun的行为,当接收到10次(或更多)SIGPIPE信号时终止运行。

  • 修复了过度订阅检测问题。

  • 新增了mtl_mx_board和mtl_mx_endpoint MCA参数。

  • 为基于OpenFabrics的传输添加了ummunotify支持。详情请参阅README。

3.1.7.5.5. Open MPI 版本 1.5.1

Date:

2010年12月15日

  • 修复了Oracle Studio 12.2 Fortran编译器的问题。

  • 修复SPARC和SPARCv9原子操作。感谢Nicola Stange提供的初始补丁。

  • 修复64位模式下IBM XL编译器与Libtool的兼容性问题。

  • 恢复libevent进度计数器的重置,以避免对事件库进行过度采样。

  • 更新内存屏障支持。

  • 在必要时使用memmove(而非memcpy)(例如,源地址和目标地址重叠时)。

  • 修复了ompi-top崩溃问题。

  • 修复以正确处理Autoconf的--program-transforms选项及其他m4/配置系统更新。感谢GASNet项目提供的--program转换修复方案。

  • 允许主机文件基于每个主机指定用户名。

  • 根据BSD维护者的请求,更新包装器编译器脚本以在配置期间搜索perl。

  • 次要手册页修复。

  • 新增了--with-libltdl选项,允许使用外部安装的libltdl来构建Open MPI。

  • 修复了与-D_FORTIFY_SOURCE=2相关的各种问题。

  • 多项VT修复与更新。

3.1.7.5.6. Open MPI 版本 1.5.0

Date:

2010年10月10日

  • 新增“knem”支持:用于共享内存消息传递的直接进程间拷贝。详见https://knem.gitlabpages.inria.fr/及README文件获取更多细节。

  • 更新了MPI应用程序的共享库版本控制方案和链接方式。MPI应用程序的ABI已从v1.3/v1.4系列版本开始发生变更。针对任何早期版本Open MPI编译的MPI应用程序至少需要重新链接。详情请参阅README文件。

  • 新增了"fca"集合组件,支持为Voltaire交换机提供MPI集合卸载功能。

  • 修复了MPI单边操作中目标位移过大的问题。感谢Brian Price和Jed Brown报告此问题。

  • 修复了MPI_GET_COUNT在大计数情况下的使用问题。感谢Jed Brown报告此问题。

  • 在使用极低SRQ设置时,使openib BTL更加安全。

  • 修复了Fortran绑定中MPI_COMM_SPAWN_MULTIPLE函数对array_of_argv参数的处理问题(**该修复也将出现在1.4.3版本中)。

  • 修复了某些集合操作中malloc(0)的警告。

  • 修复了MPI_FILE_CREATE_ERRHANDLER的Fortran绑定问题。感谢Secretan Yves发现该问题(** 该修复也将出现在1.4.3版本中)。

  • 更新LSF PLM以确保路径正确传递。感谢Teng Lin提供的补丁(**同样适用于1.4.3版本)。

  • 修复了F90 MPI_COMM_SET_ERRHANDLER和MPI_WIN_SET_ERRHANDLER绑定的问题。感谢Paul Kapinos指出该问题(**同样适用于1.4.3版本)。

  • 修复了MPI_COMM_CREATE_KEYVAL、MPI_GREQUEST_START、MPI_REGISTER_DATAREP、MPI_TYPE_CREATE_KEYVAL和MPI_WIN_CREATE_KEYVAL函数在F90原型中的extra_state参数类型问题。

  • 修复了Solaris系统上超额订阅检测的问题。

  • 如果PML判定无法连接到对等进程,则打印一条更有帮助的信息。感谢Nick Edmonds的建议。

  • 使btl_openib_if_include/exclude功能与btl_tcp_if_include/exclude的工作方式相同(即提供_include列表会覆盖提供_exclude列表)。

  • 在拥有超过8个TCP接口的平台上应用更具可扩展性的可达性算法。

  • 针对更现代的平台/编译器进行了多项汇编代码更新。

  • 放宽对在单边操作中使用某些MPI数据类型的限制。用户请注意:并非所有MPI数据类型都适用于单边操作!

  • 改进MPI_COMM_SPAWN在使用--bynode参数时的行为表现。

  • 在openib BTL和Open MPI其他核心组件中的多项线程修复。

  • 更新了各种帮助文件和手册页。

  • 针对FreeBSD和NetBSD系统的多项更新与修复。感谢Kevin Buckley和Aleksej Saushev的贡献。

  • 修复了在MPI_FINALIZE中释放通信器可能导致进程失败的情况。

  • 如果共享内存状态文件在看似网络文件系统上被打开,则打印警告。

  • 将libevent更新至v1.4.13版本。

  • 允许将信号传播到调用fork()的进程。

  • 修复了MPI_GATHER有时会错误检查非根进程数据类型的bug。感谢Michael Hofmann对此问题的调查。

  • 多项Microsoft Windows修复。

  • 修复了Catamount相关的多个问题。

  • 多项检查点/重启修复。

  • Xgrid支持已被移除,直到问题修复(欢迎提交补丁)。

  • 新增了一个简易的"libompitrace"贡献包。该包利用MPI性能分析接口,在调用特定MPI函数时向标准错误输出打印信息。

  • 将捆绑的VampirTrace更新至v5.8.2版本。

  • 为ompi、ompi-c、ompi-cxx、ompi-f77和ompi-f90添加pkg-config(1)配置文件。详情请参阅README。

  • 移除了libopenmpi_malloc库(在v1.3系列中添加),因为它不再需要

  • 添加多个通知器插件(通常在Open MPI检测到系统/网络管理员级别的问题时使用);每个插件都有各自的MCA参数来控制其使用。详情请参阅ompi_info --param notifier

    • 用于执行任意命令的指令(例如,运行脚本)。

    • 将输出发送到文件的文件。

    • ftb 用于将输出发送到容错背板(参见: https://wiki.mcs.anl.gov/cifts/index.php/CIFTS

    • hnp 将输出发送到 mpirun。

    • smtp(需要libesmtp库)用于发送电子邮件。

3.1.7.6. Open MPI v1.4.x 系列

3.1.7.6.1. Open MPI 版本 1.4.5

Date:

2012年2月12日

  • 修复了--disable-memory-manager配置开关的问题。 (** 同样会在1.5.5版本中出现)

  • 修复代码和手册页中的拼写错误。感谢富士通提供的这些修复。(** 同样会出现在1.5.5版本中)

  • 改进注册缓存的管理;当缓存满时,尝试释放旧条目并重新注册。

  • 修复了一个数据打包指针对齐问题。感谢富士通提供的补丁。 (** 同样会出现在1.5.5版本中)

  • 新增功能:可关闭关于共享内存后备存储位于网络文件系统上的警告。感谢Chris Samuel提出此建议。 (** 此功能也将出现在1.5.5版本中)

  • 移除了一个不必要的memmove()调用,并修复了openib OOB连接设置代码中的几处小内存泄漏问题。

  • 修复了一些QLogic的bug。感谢来自QLogic的Mark Debbage提供的补丁。

  • 修复了在OS X上MPI_IN_PLACE和其他哨兵Fortran常量的问题。 (** 同样会出现在1.5.5版本中)

  • 修复SLURM的每任务CPU分配问题。 (** 同样会在1.5.5版本中出现)

  • 修复了当上一次打包遗留的数据量超过打包缓冲区允许空间时的数据类型引擎问题。感谢Yuki Matsumoto和Takahiro Kawashima提交的错误报告和补丁。

  • 修复了MPI_MAX_PORT_NAME的Fortran值。感谢Enzo Dari提出这个问题。

  • 解决Intel编译器v12.1.0 2011.6.233版本中的向量优化错误。

  • 修复Solaris系统上openib BTL的问题。

  • 修复了Oracle Studio 12.2 Fortran编译器的问题。

  • 更新Intel网卡的iWARP参数。 (** 同样会出现在1.5.5版本中)

  • 修复了MPI_ALLGATHER在某些罕见情况下可能崩溃的问题。感谢Andrew Senin报告此问题。 (** 同样会出现在1.5.5版本中)

3.1.7.6.2. Open MPI 版本 1.4.4

Date:

2011年10月11日

  • 修改了openib btl连接设置中的memcpy()调用,改用memmove(),因为存在重叠复制的可能性(由valgrind识别)。

  • 将 sys_timer_get_cycles() 的使用改为更合适的封装函数:opal_timer_base_get_cycles()。感谢 Jani Monoses 提供的修复。

  • 修正了“IB重试次数超限”错误消息中btl_openib_ib_timeout参数的默认值报告。感谢Kevin Buckley提供的修正。

  • 将rdmacm地址解析超时时间从1秒增加到30秒,并更新了Chelsio T4 openib BTL的默认设置。感谢Steve Wise提供的这些更新。 (** 同样会出现在1.5.5版本中)

  • 确保MPI_Accumulate在1.4版本中的错误返回与1.5.x版本和主干版本保持一致。

  • 允许在rankfiles中使用单词"slots"(而不仅仅是"slot")。 (** 同样出现在1.5.4版本中)

  • 将Mellanox ConnectX 3设备ID添加到openib BTL默认配置中。 (** 该修改也出现在1.5.4版本中)

  • 更新btl_openib_cq_size的描述使其更加准确。

  • 确保mpirun的--xterm选项保持会话连接状态。 (** 同样出现在1.5.4版本中)

  • 更新以允许appfile中包含超过128个条目。 (** 此更新也出现在1.5.4版本中)

  • 更新btl_openib_cq_size的描述使其更加准确。 (** 同样出现在1.5.4版本中)

  • 修复了处理递归属性键值删除时的死锁问题(例如,在使用ROMIO与MPI_THREAD_MULTIPLE时)。

  • 修复索引数据类型的内存泄漏问题。感谢Pascal Deveze提供初始补丁。(** 此修复也包含在1.5.4版本中)

  • 修复了MPI_SCATTERV中sendcounts和displs参数的F90类型问题。感谢Stanislav Sazykin发现该问题。(** 此问题也出现在1.5.4版本中)

  • 当使用--disable-dlopen时,从"make distclean"中排除opal/libltdl。感谢David Gunter报告此问题。

  • 修复了在调用MPI_Comm_create时使用GROUP_EMPTY参数导致的段错误。感谢Dominik Goeddeke发现此问题。(** 此问题也出现在1.5.4版本中)

  • 修复了MPI_PROBE和MPI_IPROBE的返回代码。 (** 此问题也出现在1.5.4版本中)

  • 修复了使用vtf90性能分析工具时出现的未定义符号错误。

  • 修复了DPM ORTE中引用未初始化变量的问题。感谢Avinash Malik报告此问题。

  • 修复了在使用调试器时正确处理多令牌参数的问题。

  • 移除了不必要的 u_int*_t 数据类型定义。

  • 修改了ORTE DPM以避免gcc 4.[45].x编译器警告,该警告提示可能对非堆变量调用free(),尽管由于引用计数永远不会降为零,这种情况实际上永远不会发生。

  • 修复了MPI_File_set_view手册页中的错误文本。

  • 修复MPI_Init_thread中关于检查点/重启的问题。

  • 修复了在使用pgcc编译openmpi时结合-tp选项时出现的libtool问题。

  • 修复了osc_rdma_sync中的竞态条件。感谢Guillaume Thouvenin发现此问题。

  • 澄清MPI_Init_thread手册页内容。

  • 修复了precondition_transports中的一个索引问题。

  • 修复了链接时重复指定库文件的问题。感谢Hicham Mouline发现此问题。

  • 修复了autogen.sh中的多个问题。

  • 修复了在MPI_*INIT期间内存检查缓冲区的问题。

  • 手册页清理。感谢Jeremiah Willcock和Jed Brown的贡献。

  • 修复了在RHEL5上VT rpmbuild的问题。

  • 支持Solaris遗留的munmap原型变更。 (** 同样出现在1.5.4版本中)

  • 将app_idx扩展为int32_t类型,以支持超过127个应用上下文。

  • 保护对execinfo.h的包含,因为并非所有平台都支持该头文件。感谢Aleksej Saushev发现此问题。 (** 此问题也出现在1.5.4版本中)

  • 修复以避免可能的环境损坏。感谢Peter Thompson发现问题并提供补丁。 (** 同样出现在1.5.4版本中)

  • 修复了paffinity基础MCA重复注册的问题。感谢Gus Correa提醒我们注意此问题。

  • 修复了当MPI-IO与MPI_THREAD_MULTIPLE一起使用时出现的递归锁定错误。(** 该问题也出现在1.5.4版本中)

  • 修复了F90 MPI API的问题。

  • 修复了一个容易引起误解的MPI_Bcast错误信息。感谢Jeremiah Willcock报告此问题。

  • 在ptmalloc的hooks.c中添加了头文件(在某些系统上默认不总是包含该文件)。

  • Libtool补丁,用于解决使用IBM XL编译器时的构建问题。

  • 修复了检测和避免重叠内存拷贝(memcpy())的问题。感谢Francis Pellegrini发现该问题。

  • 修复了允许ompi在RoCE vLANs上运行的错误。

  • 恢复了缺失的调试器标志以支持TotalView。感谢David Turner和TV团队提供修复方案。

  • 将SLURM支持更新至1.5.1版本。

  • 从TCP BTL中移除了一个多余的#include。

  • 在指定OOB端口时,修复了在绑定前将端口转换为网络字节顺序的问题。

  • 修复了SM BTL中内存屏障的使用问题。该修复解决了使用Intel 10.0.025或PGI 9.0-3编译时出现的段错误。

  • 修复了防止SM BTL在远程挂载的目录中创建其mmap映射文件的问题。

3.1.7.6.3. Open MPI 版本 1.4.3

Date:

2010年9月6日

  • 修复了Fortran绑定中MPI_COMM_SPAWN_MULTIPLE函数对array_of_argv参数的处理问题(** 该修复也将出现在1.5版本中)。

  • 修复了MPI_FILE_CREATE_ERRHANDLER的Fortran绑定问题。感谢Secretan Yves发现该问题(** 该修复也将出现在1.5版本中)。

  • 更新LSF PLM以确保路径正确传递。感谢Teng Lin提供的补丁(** 同样适用于1.5版本)。

  • 修复了F90 MPI_COMM_SET_ERRHANDLER和MPI_WIN_SET_ERRHANDLER绑定问题。感谢Paul Kapinos指出该问题。 (** 同样适用于:1.5版本)。

  • 修复了各种MPI_THREAD_MULTIPLE竞争条件问题。

  • 修复了BSD系统中ptmalloc2 munmap未声明变量的问题。

  • 修复BSD接口检测问题。

  • 其他各种BSD修复。感谢Kevin Buckley协助追踪所有这些问题。

  • 修复了使用mpirun命令行参数-nper*时的问题。

  • 修复了coll调优动态规则的一个问题。

  • 修复了OPAL_DESTDIR使用过于激进的问题。

  • 修复了当位移超过2GB时单边传输的问题。

  • 修改以确保TotalView在Darwin系统上正常工作。

  • 新增了对Visual Studio 2010的支持。

  • 修复以确保VampirTrace头文件的正确放置。

  • 需要在调试使用的变量(MPIR_being_debugged)中添加volatile关键字。

  • 修复了inter-allgather中的一个错误。

  • 修复了 malloc(0) 的警告问题。

  • 修正了MPI_Comm_size手册页中的一个拼写错误(intra -> inter)。感谢Simon number.cruncher指出这个问题。

  • 修复了当给定超过127个应用上下文时orted中的段错误(SegV)。

  • 从1.4分支中移除了xgrid源代码,因为该系列不再支持此功能。

  • 移除了--enable-opal-progress-threads配置选项,因为在1.4.x版本中opal进度线程支持功能无法正常工作。

  • 修复了VampirTrace的vtfilter中的一个缺陷。

  • 修复了hnp_contact中错误的Windows路径。

  • 移除了对paffinity组件的需求。

  • 移除了最多64个互联作业的硬编码限制。

  • 修复允许单例使用 openmpi-server 进行会合。

  • 修复了output-filename选项中的错误。

  • 修复了mx_init()中故障处理的错误。

  • 修复了一个潜在的Fortran内存泄漏问题。

  • 修复了某些ppc32汇编代码中的错误分支。感谢Matthew Clark提供的修复。

  • 在配置过程中移除对未文档化的AS_VAR_GET宏的使用。

  • 修复了VampirTrace对MPI_init_thread的封装问题。

  • 更新了mca-btl-openib-device-params.ini文件,添加了多个新的供应商ID。

  • 配置修复以确保当指定了非标准valgrind位置时,CPPFLAGS能被正确处理。

  • 更新了多种手册页

3.1.7.6.4. Open MPI 版本 1.4.2

Date:

2010年5月4日

  • 修复了在异构环境中运行时的问题。感谢Timur Magomedov帮助追踪此问题。

  • 更新LSF支持以确保路径正确传递。感谢Teng Lin提交补丁。

  • 修复了一些杂项超额订阅检测错误。

  • IBM 将其 LoadLeveler 代码重新授权为符合 BSD 许可证。

  • 针对OpenBSD和NetBSD的各种构建和运行时修复。非常感谢OpenBSD社区投入的时间、专业知识和耐心,使这些修复得以整合到Open MPI的主线中。

  • 针对多线程死锁、竞态条件及其他有害问题的多项修复。

  • 修复了ROMIO处理"接近"连续性问题的方式(例如,带有非零true_lb的情况)。感谢Pascal Deveze提供的补丁。

  • 修复了大量Windows构建问题。非常感谢几位Windows用户帮助我们改进对Windows的支持。

  • 现在允许在没有任何MTL能成功初始化的情况下,优雅地故障转移到BTL。

  • 为各种原子操作添加了“clobber”信息,修复了GNU编译器套件某些新版本中的错误行为。

  • 更新OpenFabrics .ini支持文件中的各种iWARP和InfiniBand设备规格。

  • 修复在提供用户名时使用主机文件的问题。

  • 针对rankfile支持的多项修复。

  • 将内部使用的VampirTrace版本更新至5.4.12。

  • 修复了OS X系统中TCP连接问题,该问题与IPv4/IPv6混淆有关(详见https://svn.open-mpi.org/trac/ompi/changeset/22788获取更多详情)。

  • 修复了处理器亲和性支持中的一些问题,包括当处理器命名空间存在"空洞"时(例如离线处理器)。

  • 确保在进程终止后清理Open MPI的"会话目录"(通常位于/tmp)。

  • 修复了在某些罕见条件下可能出现的集体"hierarch"实现中的一些问题。

  • 修复了各种MPI_REQUEST_NULL、API参数检查及属性错误处理问题。感谢Lisandro Dalcín报告这些问题。

  • 修复了MPI_GATHER在非根节点上错误使用数据类型的案例。感谢Michael Hofmann调查此问题。

  • 为PVFS2 > v2.7打补丁的ROMIO支持(补丁取自MPICH2版本的ROMIO)。

  • 修复了当与mpi_paffinity_alone=1一起使用时mpirun --report-bindings的行为。同时修复了mpi_paffinity_alone=1在非MPI应用中的行为。感谢Brice Goglin发现这个问题。

  • 在允许通信之前,确保所有OpenFabrics设备都具有兼容的receive_queues规格。更多详情请参阅https://svn.open-mpi.org/trac/ompi/changeset/22592中的详细说明。

  • 修复了检查点/重启功能中的一些问题。

  • 改进MPI_INIT初始化前/MPI_FINALIZE完成后的错误提示信息。

  • 确保环回地址永远不会被通告给对等进程以支持RDMA/OpenFabrics。

  • 修复了CSUM PML误报问题。

  • 针对Catamount支持的多项修复。

  • 对包装器编译器进行了小幅更新,调整了用户特定参数在最终命令行中的排序方式。感谢Jed Brown的建议。

  • 从Open MPI压缩包中移除了flex.exe二进制文件;现在在制作官方压缩包时,会使用更新版(兼容Windows的)flex来生成flex代码。

3.1.7.6.5. Open MPI 版本 1.4.1

Date:

2010年1月15日

  • 更新至PLPA v1.3.2版本,解决了Fedora项目指出的许可问题。详情请参阅https://svn.open-mpi.org/trac/plpa/changeset/262

  • 添加对格式错误的检查点元数据文件的检查(工单 #2141)。

  • 修复了当无法创建检查点时,ompi-checkpoint中的错误路径问题(工单 #2138)。

  • 在选择启用检查点/重启功能的组件时,清理组件释放逻辑(工单 #2135)。

  • 修复了Cray XT平台上VT节点名称检测的问题,并修复了一些损坏的VT文档文件。

  • 修复了在拆除基于RDMA CM的连接时可能出现的竞态条件。

  • 放宽对MPI_GRAPH_CREATE的错误检查。感谢David Singleton指出该问题。

  • 修复了在x86/x86_64平台上与GNU >=4.4.x编译器系列一起使用时出现的共享内存"挂起"问题。

  • 针对Libtool 2.2.6b与PGI 10.x编译器套件的兼容性问题添加修复方案。该方案直接借鉴了上游Libtool补丁中解决此问题的思路(但我们需要在下一个Libtool版本发布前获得可用的解决方案)。

3.1.7.6.6. Open MPI 版本 1.4.0

Date:

2009年12月8日

  • Open MPI v1.4版本相比v1.3.4版本唯一的变更是更新了内嵌的Libtool库libltdl版本,以解决潜在的安全漏洞。具体而言:Open MPI v1.3.4使用的是GNU Libtool 2.2.6a版本;而Open MPI v1.4则升级到了GNU Libtool 2.2.6b版本。除此之外,Open MPI v1.3.4和v1.4之间没有其他任何改动。

3.1.7.7. Open MPI v1.3.x 系列

3.1.7.7.1. Open MPI 版本 1.3.4

Date:

2010年2月13日

  • 修复了OMPI的SRPM中关于shell_scripts_basename及其与mpi-selector配合使用的一些问题。感谢Bill Johnstone指出该问题。

  • 为mpirun新增了许多MPI作业进程亲和性选项。详情请参阅最新更新的mpirun(1)手册页。

  • 对mpirun的XML输出进行了多项更新。

  • 更新修复了关于ptmalloc2分配器以及Open MPI使用PLPA时的一些Valgrind警告。

  • 对(非默认的)“sm”集合组件(即原生共享内存MPI集合操作)进行了多项更新和修复。

  • 针对一些MPI_COMM_SPAWN_MULTIPLE边界案例的更新和修复。

  • 修复了Open MPI在使用PLPA时的一些内部拷贝函数。

  • 修正了一些可能干扰大型作业的SLURM节点列表解析逻辑。此外,根据SLURM团队的建议,更改了我们用于获取作业分配的环境变量。

  • 回退到更旧、更安全(但更慢)的通信器ID分配算法。

  • 修复了openib BTL中OpenFabrics设备的最小距离查找问题。

  • 略微放宽MPI_CART_CREATE参数的检查。

  • 修复MPI_COMM_SPAWN[_MULTIPLE]仅对根进程的info参数进行错误检查。感谢Federico Golfre Andreasi报告此问题。

  • 修复了一些BLCR配置问题。

  • 修复了当openib BTL与MPI_THREAD_MULTIPLE一起使用时可能出现的死锁问题。

  • 修复了“tuned”集合组件的动态规则选择问题。

  • 为mpirun添加了启动进度条(适用于大型作业;将orte_report_launch_progress MCA参数设置为1即可查看)。

  • 减少了每个MPI进程消耗的文件描述符数量。

  • 在openib BTL配置文件中为Chelsio T3 RNIC添加新的设备ID。

  • 修复一些CRS自组件问题。

  • 为PSM MTL添加了一些MCA参数以调整其运行时行为。

  • 修复了一些与MPI_BOTTOM/MPI_IN_PLACE相关的VT问题。

  • 来自Debian Open MPI软件包维护者的手册页更新。

  • 为Alpha和Sparc平台添加周期计数器支持。

  • 将可见性标志传递给libltdl的配置脚本,使这些符号被隐藏。这似乎主要解决了应用程序尝试使用与构建Open MPI所用不同版本libltdl的问题。

3.1.7.7.2. Open MPI 版本 1.3.3

Date:

2009年7月14日

  • 修复了openib BTL(OpenFabrics)RDMA CM中的若干问题,包括内存损坏错误、关闭死锁和路由超时。感谢David McMillen和Hal Rosenstock在问题排查过程中提供的帮助。

  • 修改传递给Fortran属性回调函数的EXTRA_STATE参数行为:该值现在由MPI内部存储——不再引用通过MPI_*_CREATE_KEYVAL传递的原始值。

  • 允许覆盖RFC1918和RFC3330中关于"私有"网络的定义规范,从而影响Open MPI的TCP"可达性"计算。

  • 通过调整共享内存的进度规则,并启用“sync”集合操作每1000次集合操作进行一次屏障同步,来改进sm btl中的流控制问题。

  • 针对IBM XL C/C++ v10.1编译器的多项修复。

  • 允许在运行时显式禁用ptmalloc2钩子(例如,支持Debian的builtroot系统)。感谢Manuel Prinz和Debian团队的其他成员帮助识别并修复此问题。

  • 针对I/O转发子系统的多项小修复。

  • 在Open Fabrics RDMA CM支持中修复了大端序iWARP问题。

  • 更新openib BTL的.ini文件中对各种OpenFabrics设备的支持。

  • 修复了Open MPI并行调试器消息队列支持中的未定义符号问题,使其能够通过Sun Studio编译器进行编译。

  • 在Fortran绑定中将MPI_SUBVERSION更新为1。

  • 修复MPI_GRAPH_CREATE的Fortran 90绑定。

  • 修复MPI_GROUP_COMPARE关于MPI_IDENT的行为。感谢Geoffrey Irving发现问题并提供修复方案。

  • 消除gcc 4.1编译器关于类型双关的警告提示。感谢Number Cruncher提供的修复方案。

  • 增加了更多Valgrind和其他内存清理修复。感谢各位Open MPI用户对这些问题的帮助。

  • 修复了VampirTrace中的各种杂项问题。

  • 针对高拥塞场景下openib信用机制的更多修复。

  • 在某些情况下略微降低openib BTL的延迟(为openib BTL添加"即时发送"支持)。

  • 确保允许MPI_REQUEST_GET_STATUS接受MPI_STATUS_IGNORE参数。感谢Shaun Jackman提交的错误报告。

  • 新增了对Microsoft Windows的支持。详情请参阅README.WINDOWS文件。

3.1.7.7.3. Open MPI 版本 1.3.2

Date:

2009年4月22日

  • 修复了openib BTL中在某些频繁通信场景下发送方可能出现的潜在无限循环问题。感谢Don Wood报告此问题。

  • 在ob1(主要的MPI点对点通信引擎)上新增一种校验和PML变体,用于检测节点间消息的内存损坏问题

  • 新增一个配置选项,用于在openib头部添加填充,使数据对齐

  • 在使用校验和PML时,新增一个配置选项以使用替代的校验和算法

  • 修复了邮件列表中多位用户报告的问题,即LSF支持在运行时无法找到合适的库。

  • 允许来自getpwuid()的空shell指定。感谢Sergey Koposov提交的错误报告。

  • 确保当应用程序因用户信号终止时,mpirun会以非零状态退出。感谢Geoffroy Pignot提出的修复建议。

  • 确保MPI_VERSION / MPI_SUBVERSION与MPI_GET_VERSION返回的版本号一致。感谢Rob Egan报告此错误。

  • 更新了MPI_*KEYVAL_CREATE函数以正确处理Fortran额外状态。

  • 修复了ob1(主要的MPI点对点通信引擎)中可能导致挂起或段错误的多种bug。

  • 如果已安装信号处理程序,则在MPI_INIT中不安装Open MPI的信号处理程序。感谢Kees Verstoep提请我们注意此问题。

  • 修复GM支持,避免在MPI_INIT中出现段错误。

  • 修复了VampirTrace中的多个问题。

  • 多项PLPA修复。

  • 不再为无效的(TCP)设备创建BTL。

  • 各种手册页样式和代码规范清理。

  • 修复此处提到的与OpenFabrics相关的关键错误: https://www.open-mpi.org/community/lists/announce/2009/03/0029.php。 Open MPI现在采用了更健壮的内存拦截方案,该方案与MX使用的方案非常相似。不再需要使用"-lopenmpi-malloc"选项,该选项已被弃用,并预计在未来的版本中移除。在Open MPI v1.3和v1.4系列期间,-lopenmpi-malloc将继续有效。

  • 修复了一些OpenFabrics的关闭错误,包括iWARP和SRQ相关的问题。

  • 允许udapl BTL在支持宽松PCI排序的Solaris平台上工作。

  • 修复了mpirun有时会使用rsh/ssh在本地主机上启动的问题(而不是简单地fork)。

  • 修复了SLURM标准输入的小问题。

  • 修复在SGE作业下正常运行的问题。

  • 共享内存作业的可扩展性和延迟改进:改用单一消息队列而非N个队列。

  • 自动调整共享内存区域(mmap文件)的大小以更好地匹配需求;具体来说,使得大规模np作业能够启动。

  • 使用固定长度的MPI预定义句柄,以提供不同Open MPI版本间的ABI兼容性。

  • 修复posix paffinity组件的构建,以在测试不严格的环境中(如FreeBSD)正确获取处理器数量。感谢Steve Kargl报告此问题。

  • 修复了configure中对--with-libnuma的处理。感谢Gus Correa报告此问题。

3.1.7.7.4. Open MPI 版本 1.3.1

Date:

2009年3月19日

  • 新增了“sync”集合操作组件,允许用户在指定的通信器上每执行N次集合操作后进行同步。

  • 提高了IB和RNR超时MCA参数的默认值。

  • 修复了Mostyn Lewis报告的PGI 8.0编译器导致的编译错误。

  • 修复了当使用rsh启动器时无法转发stdin的错误。感谢Branden Moore指出该问题。

  • 修正了一个问题,即新增的数据类型被视为连续类型,但其起始部分存在间隙。

  • 修复了一个在某些环境中限制可同时运行的comm_spawn数量的错误

  • 修复了OB1长消息GET协议中的一个边界情况错误;该错误有时会导致使用openib BTL的MPI作业挂起。

  • 修复了IO转发(IOF)子系统中的一系列错误,并新增了一些选项用于输出到文件以及将输出重定向到xterm终端。感谢Jody Weissmann协助测试多项新修复和功能。

  • 修复SLURM竞争条件问题。

  • 修复MPI_File_c2f(MPI_FILE_NULL)返回0而非-1的问题。感谢Lisandro Dalcín提交的错误报告。

  • 修复tm PLM的DSO构建问题。

  • 修复了C语言int类型与Fortran INTEGER类型之间大小不一致的各种问题。感谢Christoph van Wullen提交的错误报告。

  • 确保当守护进程或进程异常终止或启动失败时,mpirun以非零退出状态退出。

  • 针对Intel (NetEffect) RNIC行为的各种修复。

  • 针对mpirun的--preload-files--preload-binary选项的多项修复。

  • 修复MPI::ERRORS_THROW_EXCEPTIONS中的字符串名称。

  • 如果设置MCA参数orte_forward_job_control为1,则新增向MPI进程转发SIFTSTP和SIGCONT信号的能力。

  • 允许sm BTL根据需要分配更大的共享内存空间(对于非常大的多核机器很有帮助)。

  • 修复了几处使用PATH_MAX而非OPAL_PATH_MAX的问题,这些问题导致在某些平台上出现编译错误。感谢Andrea Iob提交的错误报告。

  • 修复了mca_btl_openib_warn_no_device_params_found MCA参数;该参数之前被意外忽略了。

  • 修复了sctp BTL的一些运行时问题。

  • 在尝试使用RTLD_NEXT之前确保其存在(例如,在Cygwin上就不存在)。感谢Gustavo Seabra报告此问题。

  • 针对VampirTrace的多项修复,包括修复在某些平台上的编译错误。

  • 修复了缺失的MPI_Comm_accept.3手册页;修正了orterun.1手册页中的小问题。感谢Dirk Eddelbuettel发现该问题并提交补丁。

  • 实现标准输出/标准错误/标准诊断的XML格式化输出。

  • 修复了mpirun的-wdir选项,确保多个应用上下文的工作目录能被正确处理。感谢Geoffroy Pignot报告此问题。

  • MPI C++ 整数常量的改进:

    • 允许将MPI::SEEK_*常量作为常量使用

    • 允许将其他MPI C++常量用作数组大小

  • 修复了orte-restart命令行选项的一个小问题。详情请参阅工单#1761。感谢Gregor Dschung报告此问题。

3.1.7.7.5. Open MPI 版本 1.3.0

Date:

2009年1月19日

  • 扩展了针对OS X 10.5.x(Leopard)系统中使用-g[0-9]选项编译汇编代码时出现问题的临时解决方案。感谢Barry Smith报告此问题。详见工单#1701。

  • 在那些REAL*16的位表示与相同大小的C类型(通常是long double)不同的平台上,禁用了MPI_REAL16和MPI_COMPLEX32支持。感谢Julien Devriendt报告此问题。详见工单#1603。

  • 将MPI_MAX_PORT_NAME的大小从36增加到1024。详见工单#1533。

  • 新增了"在异常终止时通知调试器"功能。参见工单#1509和#1510。感谢Seppo Sahrakropi提交的错误报告。

  • 升级Open MPI压缩包以使用Autoconf 2.63、Automake 1.10.1和Libtool 2.2.6a。

  • 添加了缺失的MPI::Comm::Call_errhandler()函数。感谢Dave Goodell提请我们关注此问题。

  • 将mpi.h中的MPI_SUBVERSION值增加到1(即MPI 2.1版本)。

  • 根据MPI-2.1标准修改了MPI_GRAPH_CREATE、MPI_TOPO_CREATE及其他多个拓扑函数的行为。

  • 修复C++常量MPI::IN_PLACE的类型问题。

  • 对openib BTL的多项改进:

    • 新增了btl_openib_if_[in|ex]clude MCA参数,用于包含/排除以逗号分隔的HCA和端口列表。

    • 新增了RDMA CM支持,包括btl_openib_cpc_[in|ex]clude MCA参数

    • 新增NUMA支持,仅使用"邻近"网络适配器

    • 新增了"桶式SRQ"(BSRQ)支持,以更好地利用注册内存,包括btl_openib_receive_queues MCA参数

    • 新增了ConnectX XRC支持(并与BSRQ集成)

    • 新增了btl_openib_ib_max_inline_data MCA参数

    • 新增iWARP支持

    • 改进了流控制机制,使其更加高效

    • mpi_leave_pinned=1 现在默认启用(在可能的情况下),当应用程序缓冲区被重复使用时,能自动提升大消息传输的性能

  • 当多个MPI进程因相同错误而失败时,消除了重复的错误消息。

  • 为共享内存BTL添加了NUMA支持。

  • 为MPI语义检查添加基于Valgrind的内存检查功能。

  • 添加对一些可选Fortran数据类型的支持(MPI_LOGICAL1、MPI_LOGICAL2、MPI_LOGICAL4和MPI_LOGICAL8)。

  • 从C++绑定中移除对STL的使用。

  • 新增了对Platform/LSF作业启动器的支持。要求Platform LSF版本为v7.0.2或更高。

  • 将ROMIO更新至MPICH2 1.0.7版本。

  • 新增了支持RDMA的单边通信组件(称为rdma),该组件可与提供完整单边接口的BTL组件配合使用。

  • 新增了可选的数据类型MPI_REAL2。由于该类型被添加到Fortran头文件中预定义数据类型的"末尾",因此不会出现任何兼容性问题。

  • 为Linux系统添加了可移植的Linux处理器亲和性(PLPA)支持。

  • 新增通过某些编译器提供的可见性特性实现更精细的符号导出控制。

  • 新增了检查点/重启进程容错支持。初始阶段支持类似LAM/MPI的协议。

  • 移除了“mvapi” BTL;所有InfiniBand支持现在都使用OpenFabrics驱动栈(“openib” BTL)。

  • 增加了更严格的MPI API参数检查,以帮助用户进行调试。

  • 默认情况下,ptmalloc2内存管理器组件现在被构建为一个名为libopenmpi-malloc的独立库。想要在ptmalloc2中使用leave_pinned的用户现在需要显式地将该库链接到他们的应用程序中。其他所有用户将使用libc提供的分配器,而不是Open MPI的ptmalloc2。这一更改可以通过配置选项enable-ptmalloc2-internal来覆盖

  • leave_pinned选项现在默认会在未链接ptmalloc2的Linux系统上使用mallopt。mallopt仅在能够拦截munmap时可用(默认情况下,只要Open MPI编译时未使用--without-memory-manager选项)。

  • 如果未启用内存拦截/mallopt选项,Open MPI现在会报错并拒绝使用leave_pinned。

  • 新增使用基于Perl的包装编译器替代基于C的包装编译器的选项。基于Perl的版本不具备基于C版本的全部功能,但在交叉编译环境中表现更佳。

3.1.7.8. Open MPI v1.2.x 系列

3.1.7.8.1. Open MPI 版本 1.2.9

Date:

2009年2月14日

  • 修复了在某些派生数据类型上使用单边通信时出现的段错误。感谢Dorian Krause报告此错误。参见#1715。

  • 修复了在某些架构(如SPARC64)上影响单边通信的对齐问题。详见#1738。

  • 修复在Solaris系统上启用Open MPI线程支持时的编译问题(例如,使用--with-threads参数时)。详见#1736。

  • 正确考虑OpenFabrics设备端口使用的MTU。参见#1722和 https://bugs.openfabrics.org/show_bug.cgi?id=1369

  • 修复了两个数据类型引擎的bug。详情参见 #1677。感谢Peter Kjellstrom提交的错误报告。

  • 修复bml r2帮助文件名,以便能够找到帮助信息。参见#1623。

  • 修复了在RHEL4U3系统上使用PGI 32位编译器时由引起的编译问题。详见工单#1613。

  • 修复了--enable-cxx-exceptions配置选项。详见工单#1607。

  • 正确处理MX BTL无法打开端点的情况。参见工单#1621。

  • 修复了tcp_events列表上事件的双重释放问题。详见工单#1631。

  • 修复了opal_free_list_grow(由MPI_Init调用)中的缓冲区溢出问题。感谢Patrick Farrell提交的错误报告以及Stephan Kramer提供的修复方案。详见工单#1583。

  • 修复了为基于sh的远程shell设置OPAL_PREFIX时的问题。详见工单#1580。

3.1.7.8.2. Open MPI 版本 1.2.8

Date:

2008年10月14日

  • 调整了openib组件中的一个内存屏障,使其更加保守。可能修复在PPC机器上观察到的问题。详见工单#1532。

  • 修复OpenFabrics IB分区支持。参见工单 #1557。

  • 恢复v1.1版本的功能:当默认shell不会自动加载.profile文件时(例如/bin/sh/bin/ksh),在远程节点上主动加载该文件。详见工单#1560。

  • 修复了当ompi_mpi_init()失败时MPI_Init_thread()中的段错误。详见工单#1562。

  • 调整SLURM支持,优先查找$SLURM_JOB_CPUS_PER_NODE环境变量,而非已弃用的$SLURM_TASKS_PER_NODE环境变量。当使用SLURM v1.2及以上版本时,此变更可能是必需的。详见工单#1536。

  • 修复MPIR_Proctable使其按进程等级排序。参见工单#1529。

  • 修复了1.2.6版本中引入的IBM eHCA回归问题。详见工单#1526。

3.1.7.8.3. Open MPI 版本 1.2.7

Date:

2008年8月28日

  • 添加了一些Sun HCA供应商ID。详见工单#1461。

  • 修复了从Fortran调用MPI_Alltoallw时的内存泄漏问题。感谢Dave Grote提交的错误报告。详见工单#1457。

  • 仅在需要/希望时链接libutil。感谢Brian Barret诊断并修复了该问题。请查看工单#1455。

  • 更新部分QLogic HCA供应商ID。详见工单#1453。

  • 修复了MPI_CART_GET的F90绑定问题。感谢Scott Beardsley向我们报告此问题。详见工单#1429。

  • 移除ROMIO中生成的一条虚假警告信息。详见工单#1421。

  • 修复了一个命令行MCA参数无法覆盖环境变量设置的MCA参数的bug。详见工单#1380。

  • 修复了AMD64原子汇编中的一个错误。感谢Gabriele Fatigati提交的错误报告和修复补丁。详见工单#1351。

  • 修复了在数据类型移动为0字节时,intercommunicators上的gather和scatter错误。详见工单#1331。

  • Debian维护者提供的更多手册页修复。参见工单#1324和#1329。

  • 让openib BTL(支持OpenFabrics)在允许自身使用前检查是否存在/sys/class/infiniband目录。这项检查可避免在已安装软件驱动但未配备相应硬件的系统上出现虚假的"OMPI未找到RDMA硬件!"提示。详见工单#1321和#1305。

  • 为部分ConnectX openib HCAs添加了供应商ID。详见工单#1311。

  • 修复了一些RPM规范文件的不一致问题。详见工单#1308。感谢Jim Kusznir发现该问题。

  • 移除了在某些系统(如OS X)上引发警告的未使用函数原型。详见工单 #1274。

  • 修复了跨通信器scatter/gather操作中的死锁问题。感谢Martin Audet提交的错误报告。详见工单#1268。

3.1.7.8.4. Open MPI 版本 1.2.6

Date:

2008年4月7日

  • 修复了非对称通信器间allgather操作中的一个bug。感谢Martin Audet提交的错误报告。详见工单#1247。

  • 修复了openib BTL中设置CQ深度时的一个错误。感谢Jon Mason报告并修复此问题。详见工单#1245。

  • 在Mac OS X Leopard系统上,将使用execinfo组件来实现回溯功能,这提供了更可靠的解决方案。详见工单#1246。

  • 为部分QLogic DDR openib HCAs添加了供应商ID。详见工单#1227。

  • 更新了获取最新config.guess和config.sub文件的URL。感谢Ralf Wildenhues提交的错误报告。详见工单#1226。

  • 为PSM MTL添加了共享上下文支持。详见工单#1225。

  • 新增了pml_ob1_use_early_completion MCA参数,允许用户关闭OB1早期完成语义,避免在某些InfiniBand情况下出现的"停滞"问题。详见工单#1224。

  • 清理了mpi.h中使用的一些#define宏定义,以避免由不同autoconf版本构建的MPI程序引发的编译器警告。感谢Ben Allan报告此问题,并感谢Brian Barrett提供的修复方案。详见工单#1220。

  • Debian维护者提供了一些手册页的修正。参见工单#1219。

  • 使openib BTL在面对驱动程序错误时更具弹性。参见工单 #1217。

  • 修复了MPI_CART_CREATE的F90接口。详见工单#1208。 感谢Michal Charemza报告此问题。

  • 修复了一些C++编译器警告。参见工单 #1203。

  • 修复了orterun手册页的格式问题。详见工单#1202。感谢Peter Breitenlohner提供的补丁。

3.1.7.8.5. Open MPI 版本 1.2.5

Date:

2008年1月8日

  • 修复了在Fedora 8(及更新版本)平台上open()的编译问题。感谢Sebastian Schmitzdorff发现该问题。

  • 在MPI_INIT期间添加了运行时警告,当使用MPI_THREAD_MULTIPLE和/或进度线程时(OMPI v1.2系列对这些功能的支持非常不完善)。

  • 改进对Linux上connect函数返回ECONNABORTED错误的处理。感谢Bob Soliday发现问题;感谢Brian Barrett提交补丁。

  • 减少当TCP连接需要重试时来自OOB的多余输出。感谢Brian Barrett提交补丁。

  • 修复了ConnectX设备与OFED 1.3的兼容性问题。详见工单#1190。

  • 修复了Cray系统上Fortran 90的配置问题。工单 #1189。

  • 修复了opal_init.c中错误情况下未初始化的变量。感谢Åke Sandgren指出这个错误。

  • 修复了当$USER未定义时配置挂起的问题。感谢Darrell Kresge发现此问题。详见工单#900。

  • 新增了对并行调试器的支持,即使在优化构建环境下也能使用。详见工单#1178。

  • 修复了在Mac OS X 10.5.X (Leopard)系统中使用-g选项编译Open MPI时链接器出现的总线错误。详见工单#1179。

  • 移除了Mac OS X 10.5(Leopard)版本中关于'rm'命令的一些警告信息。

  • 修复了mx_finalize()的处理问题。详见工单#1177。 感谢Åke Sandgren向我们提出这个问题。

  • 修复了Altix计时器代码中的轻微文件描述符泄漏问题。感谢Paul Hargrove发现该问题并提供修复方案。

  • 修复了在C和Objective C中使用不同编译器时的问题。详见工单#1153。

  • 修复了当用户指定工作目录时MPI_COMM_SPAWN中的段错误。感谢Murat Knecht报告此问题并提出修复建议。

  • Debian Open MPI 维护者提供的几处手册页修正。感谢 Tilman Koschnick、Sylvestre Ledru 和 Dirk Eddelbuettel 的贡献。

  • 修复了当编译器不全部来自同一厂商时的pthread检测问题。感谢Åke Sandgren提交的错误报告。详见工单#1150。

  • 修复了self模块中的向量集合操作。详见工单#1166。

  • 修复了一些数据类型引擎的bug:一个索引错误和一个对齐错误。详见工单#1165。

  • 仅在定义了MPI_APPNUM属性时设置它。参见工单#1164。

3.1.7.8.6. Open MPI 版本 1.2.4

Date:

2007年9月26日

  • 真正添加了对TotalView/DDT并行调试器消息队列调试的支持(在1.2版本中被错误地标记为"已添加")。

  • 修复了GNU/kFreeBSD上的构建问题。感谢Petr Salinger提供的补丁。

  • 在Fortran中添加了缺失的MPI_FILE_NULL常量。感谢Bernd Schubert提请我们注意此问题。

  • 修改后,UDAPL BTL现在仅在Linux中通过--with-udapl配置命令行开关明确指定时才会构建。

  • 修复了在使用TM启动器时umask未传播的问题。

  • 修复了在所有bproc节点上插槽数量不一致时的行为问题。

  • 修复了在无GPR支持系统(如Cray XT3/4)上的挂起问题。

  • 防止32位MPI应用程序用户请求大于等于2GB的共享内存。

  • 新增了Portals MTL。

  • 修复0大小的MPI_ALLOC_MEM请求。感谢Lisandro Dalcín指出该问题。

  • 修复了在执行集合操作时大型SMP系统上出现的段错误崩溃问题。

  • 针对Cray XT3/4系列机器的多种修复。

  • 修复了当MPI_COMM_SELF传递给MPI_COMM_FREE时使用的错误处理程序。感谢Lisandro Dalcín提交的错误报告。

  • 修复了在没有hton/ntoh函数的平台上的编译问题。

  • 修复了MPI_TYPE_MATCH_SIZE的Fortran绑定中的一个逻辑问题。感谢Jeff Dusenberry指出问题并提供修复方案。

  • 修复了f77接口中多处MPI_BOTTOM的问题。感谢Daniel Spangberg提出这个问题。

  • 修复了MPI可选Fortran数据类型未正确初始化的问题。

  • 修复了stdin/stdout转发相关的若干问题。

  • 修复了大型SMP上sm mpool MCA参数的溢出问题。

  • 通过orterun的--debug命令行选项添加了对DDT并行调试器的支持。

  • 在openib MCA参数解析代码中添加了一些合理性/错误检查。

  • 更新了udapl BTL以支持RDMA功能。

  • 如果BProc头节点已分配给用户,则允许使用它。感谢Sean Kelly报告此问题并协助调试。

  • 修复了一个ROMIO问题,其中非阻塞I/O错误未能正确报告给用户。

  • 如果未能为用户找到有效的shell,远程进程启动将检查$SHELL环境变量。感谢Alf Wachsmann提交的错误报告和建议的修复方案。

  • 为部分openib HCA添加/更新了一些供应商ID。

  • 修复了在指定设备供OOB使用时可能发生的几处故障。

  • 移除了openib BTL对sysfsutils的依赖,适用于libibverbs版本≥v1.1(即OFED 1.2及更高版本)。

3.1.7.8.7. Open MPI 版本 1.2.3

Date:

2007年6月20日

  • 修复了comm_spawn功能中的一个回归问题,该问题无意中导致子进程的映射总是从同一位置开始。感谢Prakash Velayutham帮助发现问题。

  • 修复了当远程节点上用户主目录不可用时导致的段错误。感谢Guillaume Thomas-Collignon向我们报告此问题。

  • 修复MPI_IPROBE函数在mx和psm MTLs上正确处理MPI_STATUS_IGNORE的问题。感谢Sophia Corwell发现此问题并提供重现方法。

  • 修复tcp BTL中的一些错误消息。

  • 在Mac OS X上使用_NSGetEnviron替代environ,以避免共享库中出现未定义符号。

  • 在OS X系统上,当MACOSX_DEPLOYMENT_TARGET设置为10.3或更高版本时,支持将Fortran 90绑定构建为共享库。感谢Jack Howarth为此功能实现提供的建议。

  • 不再需要为C++绑定添加额外的包含标志。

  • 修复了使用Intel编译器时对弱符号支持的检测问题。

  • 修复由Josh England发现的问题:ompi_info无法正确显示环境中设置的框架MCA参数。

  • 将oob_tcp_include/exclude MCA参数重命名为oob_tcp_if_include/exclude,使其与btl_tcp_if_include/exclude参数的命名约定保持一致。旧名称已被弃用,但仍可继续使用。

  • 将 -wd 添加为 orterun/mpirun 选项 -wdir 的同义词。

  • 修复mvapi BTL,使其能够正确编译不支持匿名联合的编译器。感谢Luis Kornblueh报告此错误。

3.1.7.8.8. Open MPI 版本 1.2.2

Date:

2007年5月16日

  • 修复了1.2.1版本中关于处理同时包含绝对路径和相对路径名称的$CC时的回归问题。

  • 修复F90状态维度数组的问题。感谢Randy Bramley发现该问题。

  • 添加btl_openib_ib_pkey_value MCA参数用于控制IB端口选择。

  • 修复了多种线程/锁相关的错误。

  • 修复了与ROMIO、OS X和gridengine相关的一些编译器警告。

  • 如果能够找到pbs-config,则使用它来查找TM支持。感谢Bas van der Vlies提供的灵感和前期工作。

  • 修复了当rsh PLS遇到某些错误时orterun中的死锁问题。

3.1.7.8.9. Open MPI 版本 1.2.1

Date:

2007年4月25日

  • 修复了TCP带外消息系统中的若干连接建立错误。

  • 修复了使用mpi_comm调用时的内存泄漏问题。 感谢Bas van der Vlies报告此问题。

  • 修复了OPAL和ORTE中的各种内存泄漏问题。

  • 使用TM(PBS Pro、Torque、Open PBS)时启动时间得到改进。

  • 修复了mpi_leave_pinned使其适用于所有数据类型。

  • 修复允许用户在支持的平台上禁用sbrk()功能(通过mpool_base_disable_sbrk MCA参数)。

  • 修复了oob_tcp_listen_mode MCA参数中TCP"listen_thread"模式的两个问题,这些问题会在尝试启动应用程序时导致失败。

  • 修复了在打开BTL MX端点失败时出现的段错误。

  • 修复了1.2版本中引入的mpirun的--nolocal选项问题。

  • 重新启用了从单例中调用MPI_COMM_SPAWN_MULTIPLE的功能。

  • 修复了LoadLeveler和TM的配置问题,感谢Martin Audet提交的错误报告。

  • 修复了多个C++ MPI属性问题。

  • 修复了64位Intel和PPC OS X构建中回溯代码的问题。

  • 修复了多词CC变量和libtool相关的问题。感谢Bert Wesarg提交的错误报告。

  • 修复SLURM中节点命名方案不一致的问题。

  • 修复Grid Engine/N1GE支持中的文件描述符泄漏问题。

  • 修复在OS X 10.3.x系统中由Open MPI 1.1.5引入的编译错误。

  • 实现MPI_TYPE_CREATE_DARRAY函数(该功能在1.1.5版本中存在但未包含在1.2版本中)。

  • 在使用rsh/ssh启动MPI作业时识别zsh shell。

  • 能够设置 OPAL_DESTDIR 或 OPAL_PREFIX 环境变量来"重新定位"现有的 Open MPI 安装。

  • 即使前缀是/usr/local,Fortran编译时也始终包含-I选项。

  • 支持在使用OpenFabrics堆栈(OFED v1.2或更高版本)的MPI应用程序中使用"fork()"。

  • 支持对注册内存设置特定限制。

3.1.7.8.10. Open MPI 版本 1.2.0

Date:

2007年3月15日

  • 修复了共享内存FIFO中的竞争条件问题,该问题会导致消息孤立。

  • 修正了共享内存文件的大小 - 减去了头部占用的空间。

  • 增加对MPI_2COMPLEX和MPI_2DOUBLE_COMPLEX的支持。

  • 即使禁用了C++绑定,也要确保创建$(includedir)/openmpi目录,这样包装器编译器就不会指向不存在的目录。感谢Martin Audet发现此问题。

  • 修复了MPI进程启动中的字节序处理问题。

  • 针对同一作业中MPI进程在同一物理结构上拥有不同数量活动端口的情况,修复了Openib BTL初始化问题。

  • 在支持此功能的操作系统上显示回溯时,打印更多描述性信息,例如相关进程的主机名和PID。

  • 修复了在通信器、窗口和文件上正确处理C++中的MPI异常的问题。

  • 更可靠的运行时支持,特别是在MPI作业启动可扩展性、BProc支持以及故障场景(如MPI_ABORT、MPI进程异常终止等)下的清理方面。

  • MPI集合操作性能显著提升,特别是在高速网络上。

  • MX BTL组件中的多项修复。

  • 修复了MPI_ERRCODES_IGNORE的C++类型转换问题。感谢Satish Balay提请我们注意此问题。

  • 允许运行时指定OpenFabrics和GM的最大注册内存量。

  • 使用封装编译器(如mpicc和mpif77)的用户不会察觉,但ORTE和OPAL的底层库名称已分别更改为libopen-rte和libopen-pal(在此列出是因为肯定存在不使用封装编译器的用户)。

  • 针对MPI-2单边通信支持的大量错误修复。

  • 新增了对TotalView消息队列调试的支持。

  • 修复了MPI_STATUS_SET_ELEMENTS的问题。

  • 当只有一个节点可用时,使用mpirun的“-nolocal”参数时打印更友好的错误信息。

  • 为多个Open MPI可执行文件及MPI API函数添加了手册页。

  • 针对Alpha平台的若干修复。

  • 修复了多种Fortran API问题。

  • 将Fortran MPI API构建为独立的库,以便正确分析这些函数。

  • 新增 --enable-mpirun-prefix-by-default 配置选项,使 mpirun 始终隐含 --prefix 选项,避免许多基于 rsh/ssh 的用户需要修改其 shell 启动文件。

  • 在C++绑定中添加了许多缺失的常量。

  • 新增与Sun N1 Grid Engine (N1GE) 6及开源Grid Engine的深度集成。

  • 允许为大多数编译器/平台将F90 MPI绑定构建为共享库。由于Fortran公共块的复杂情况以及共享库中未解析公共符号缺乏支持,明确禁止在OS X上将F90绑定构建为共享库。

  • 为Solaris和Mac OS X系统添加了堆栈跟踪支持。

  • 将事件库更新至libevent-1.1b版本。

  • 修复了MPI_ERR_TRUNCATED的标准符合性问题,以及在MPI_TEST/MPI_WAIT期间设置MPI_ERROR的问题。

  • 新增“cm”PML以更好地支持库级匹配互连,包括对Myrinet/MX和基于QLogic PSM网络的支持。

  • 新增“udapl” BTL,用于通过uDAPL互连进行传输。

  • 确保传递给配置的$CXX确实是一个C++编译器(而不是一个勉强能充当C++编译器的C编译器)。

  • 正确检查仅限本地主机的地址,查找127.0.0.0/8网段,而不仅仅是127.0.0.1。

3.1.7.9. Open MPI v1.1.x 系列

3.1.7.9.1. Open MPI 版本 1.1.5

Date:

2007年3月19日

  • 实现MPI_TYPE_CREATE_DARRAY函数。

  • 修复共享内存BTL启动中的竞态条件问题,该问题可能导致MPI应用程序在MPI_INIT时挂起。

  • 修复事件库中一个极端情况下的语法错误。感谢Bert Wesarg指出这个问题。

  • 新增MCA参数(mpi_preconnect_oob)用于预连接所有MPI进程之间的"带外"通道。该特性对于基于InfiniBand的MPI应用特别有帮助,当进程A向进程B发送初始消息时,若进程B长时间未进入MPI库的情况。

  • 修复共享内存锁定语义中的竞态条件问题。

  • 将Open MPI的主版本号、次版本号和发布版本号添加到mpi.h中。感谢Martin Audet的建议。

  • 修复configure中的"restrict"编译器检查。

  • 修复了MPI_TYPE_CREATE_SUBARRAY中的参数检查问题。

  • 修复了使用非gcc编译器编译XGrid组件时出现的问题。

3.1.7.9.2. Open MPI 版本 1.1.4

Date:

2007年1月30日

  • 修复了基于Intel处理器的OS X机器上TCP接口检测的64位对齐问题。

  • 调整了TCP接口选择机制,使其能自动忽略Linux通道绑定中的从属接口。

  • 修正了MPI_INITIALIZED函数在MPI F90绑定中第一个参数的类型问题。感谢Tim Campbell指出该问题。

  • 修复了Fortran MPI绑定中多处错误使用(MPI_Fint*)而非(MPI_Aint*)的问题。

  • 修复了fortran MPI_STARTALL的问题,该问题有时会返回错误的请求值。感谢Tim Campbell指出这个问题。

  • 包含MPI::Win::Get_attr在MPI-2标准发布前后的勘误绑定。

  • 修复了在Intel OS X平台上会显著增加共享内存延迟的数学错误。

  • 修复了MPI_ERRCODES_IGNORE的类型转换问题,该问题在使用C++编译器时会导致错误。感谢Barry Smith提请我们注意此问题。

  • 修复在使用MX BTL时关闭过程中可能出现的段错误。

3.1.7.9.3. Open MPI 版本 1.1.3

Date:

2007年1月26日

  • 移除“hierarch”集合组件;该组件尚未计划包含在稳定版本中。

  • 修复了MPI作业终止时,所有进程的标准输出/标准错误未能正确显示的竞态条件问题。

  • 修复自BTL的内部记账错误。

  • 修复了当sizeof(int) != sizeof(INTEGER)时MPI F77绑定函数代码路径中的拼写错误。感谢Pierre-Matthieu Anglade向我们报告此问题。

  • 修复了派生数据类型函数ompi_ddt_duplicate()中的内存泄漏问题。感谢Andreas Schäfer报告、诊断并修补了这个泄漏问题。

  • 为MPI_ALLGATHERV采用了性能更优的基础算法。

  • 在MPI C++绑定中添加了一个针对Intel 9.1 C++编译器(所有版本,包括20060925)中导致运行时错误的bug的临时解决方案。感谢Scott Weitzenkamp报告此问题。

  • 修复F90绑定中针对COMPLEX变量类型的MPI_SIZEOF实现。

  • 修复了涉及MPI_PROC_NULL的持久请求问题。感谢Lisandro Dalcín报告该问题。

  • 修复了MPI_TEST*MPI_WAIT*中关于MPI异常报告的问题。感谢Lisandro Dalcín发现该问题。

  • 针对MPI通用请求处理的多项修复;为C++绑定添加缺失的MPI::Grequest功能。

  • 添加"mpi_preconnect_all" MCA参数,强制在MPI_INIT期间建立所有MPI连接(而不是在首次进行MPI通信时才懒加载建立对等节点之间的连接)。

  • 修复了当$FC和/或$F77被指定为多个标记时的问题。感谢Orion Poplawski发现问题,以及Ralf Wildenhues提出的修复建议。

  • 修复了几个MPI_*ERRHANDLER*函数和MPI_GROUP_TRANSLATE_RANKS关于它们允许的参数及其影响行为的问题。感谢Lisandro Dalcín报告这些问题。

3.1.7.9.4. Open MPI 版本 1.1.2

Date:

2006年10月18日

  • 真正修复MPI_WAITSOME和MPI_TESTSOME中的Fortran状态处理问题。

  • 修复了多种数据类型问题,多位用户报告这些问题导致BLACS测试套件失败。感谢Harald Forbert、Åke Sandgren和Michael Kluskens报告该问题。

  • 针对异构环境的正确性和性能修复。

  • 修复了在某些平台上命令行解析的一个错误(导致mpirun崩溃而不执行任何操作)。

  • 修复了64位Mac OS X PowerPC系统上的初始化挂起问题。

  • 修复了mpirun中的一些内存分配问题,这些问题可能在命令行未指定“-np”参数时导致随机性问题。

  • 为XGrid添加Kerberos认证支持。

  • 新增了对超过128个任务的作业的LoadLeveler支持。

  • 修复大型Fortran LOGICAL数据类型的问题。

  • 修复了MPI_INFO_GET_NTHKEY和MPI_GROUP_TRANSLATE_RANKS中的各种错误检查,以及一些集体操作(特别是关于MPI_IN_PLACE的问题)。感谢Lisandro Dalcín报告这些问题。

  • 修复接收消息到由MPI_ALLOC_MEM分配的缓冲区的问题。

  • 修复了MPI-2单边接口中的多个竞态条件问题。

  • 修复了“tuned”集合通信组件中某些情况下MPI_BCAST可能挂起的问题。

  • 更新TCP支持以适配非均匀TCP环境。

  • 允许在AIX或Linux系统上构建"poe" RAS组件。

  • 仅当其余Fortran绑定已安装时,才安装mpif.h。

  • 修复了BProc节点选择的问题。

  • 添加一些缺失的Fortran MPI-2 IO常量。

3.1.7.9.5. Open MPI 版本 1.1.1

Date:

2006年8月28日

  • 修复了多个MPI API函数中Fortran字符串处理的问题。

  • 修复了MPI_WAITSOME和MPI_TESTSOME中Fortran状态处理的问题。

  • 针对XL编译器的多项修复。

  • 在AIX系统上自动禁用mallot()函数。

  • 针对64位平台的内存修复,在self和MX BTL组件中注册MCA参数。

  • 修复了BProc以支持超额订阅,并对映射算法进行了调整,使得"按槽位"映射进程能够按预期工作。

  • 修复了各种中止情况,避免挂起并实现妥善清理。

  • 如果在IA64平台上使用Intel 9.0 v20051201编译器,ptmalloc2内存管理器组件将自动禁用。该平台上其他版本的Intel编译器(例如9.1版本)似乎工作正常。

  • 在MPI_COMM_SPAWN和MPI_COMM_SPAWN_MULTIPLE中新增了"host" MPI_Info键。

  • 添加缺失的C++方法:MPI::Datatype::Create_indexed_block, MPI::Datatype::Create_resized, MPI::Datatype::Get_true_extent。

  • 修复Fortran绑定在OSX链接器上的问题。

  • 修复了MPI_COMM_SPAWN功能,使其能够在(根据Open MPI判断)未被占用的槽位中启动新进程。

  • 新增了"mpirun a.out"功能(无需指定-np参数),该命令将在当前分配的所有资源上运行(例如在SLURM、Torque等批处理作业环境中)。

  • 修复了MPI_BCAST在特定情况下的一个bug。感谢Doug Gregor发现该问题。

  • 确保共享内存映射文件仅在节点上有多个进程时创建。

  • 修复了BProc标准输入转发的问题。

  • 修复了MPI_TYPE_INDEXED数据类型的相关问题。感谢Yven Fournier发现此问题。

  • 修复了MPI属性和openib BTL中的一些线程安全问题。

  • 修复BProc分配器,避免在多个ORTE环境中潜在使用相同的资源。

  • 修复gm资源泄漏问题。

  • 在整个代码库中进一步减少延迟。

  • 提升TM PLS(PBS Pro、Torque、Open PBS)的可扩展性,并修复v1.1版本中潜藏的一些错误。感谢桑迪亚国家实验室的Thunderbird团队和Martin Schaffoner提供测试设施支持,使这一改进得以实现。

  • 为mpirun新增了命令行选项:

    • --nolocal: 不在与mpirun相同的节点上运行任何MPI进程 (与OSC mpiexec启动器的兼容性)

    • --nooversubscribe: 如果请求的进程数会导致超额订阅,则中止操作

    • --quiet / -q: 不显示无关的状态信息

    • --version / -V: 显示Open MPI的版本

  • 修复XGrid进程启动器中的总线错误。感谢Open MPI用户列表中的Frank发现了该问题。

  • 修复了在openib BTL启动期间导致PPC64平台上内存错误的数据大小不匹配问题。

  • 允许将SIGUSR1和SIGUSR2信号从mpirun传播到后端MPI进程。

  • 添加缺失的MPI::Is_finalized()函数。

3.1.7.9.6. Open MPI 版本 1.1.0

Date:

2006年6月23日

  • 多种MPI数据类型的修复与优化。

  • 修复了SPARC架构上的多个问题(例如,结构体内地址未正确对齐)。

  • 改进了各种运行时错误消息,使其更清晰地说明错误含义及发生位置。

  • 修复了mpirun处理--prefix时的多个问题。

  • 针对Cray/Red Storm支持的更新与修复。

  • Fortran 90 MPI绑定接口的重大改进:

    • 在不同F90编译器之间的编译/链接时间和可移植性方面进行了总体改进。

    • 新增了"trivial"、"small"(默认值)和"medium"三种Fortran 90 MPI模块大小(v1.0.x版本的F90模块相当于"medium")。更多说明请参阅README文件。

    • 修复了各种MPI F90接口函数和常量类型以匹配。感谢Michael Kluskens向我们指出这些问题。

  • 允许短消息在mvapi和openib BTL组件中对有限数量的对等节点使用RDMA(相对于发送/接收语义)。这降低了IB通道上的通信延迟。

  • 整个代码库中进行了大量性能优化。

  • 多项线程相关的小修复。

  • 添加一个定义OMPI_SKIP_CXX,允许用户跳过在mpi.h中包含mpicxx.h。这使得用户可以使用C++编译器编译C代码,而无需包含C++绑定。

  • 已添加对PERUSE的支持。要启用此功能,请在配置选项中添加--enable-peruse。支持PERUSE 2.0草案中描述的所有事件,外加一个Open MPI扩展。PERUSE_COMM_REQ_XFER_CONTINUE允许查看数据如何在内部分段,使用多个接口或流水线引擎。不过,当前版本仅支持每种类型的一个事件同时附加到通信器上。

  • 增加对在异构环境中运行作业的支持。 目前支持具有不同字节序以及C++ bool和Fortran LOGICAL不同表示的环境。 不支持其他数据类型大小不匹配的情况。

  • Open MPI 现在包含了 MPI-2 单边通信规范的实现。

  • Open MPI现在可在交叉编译环境中进行配置。部分Fortran 77和Fortran 90测试需要预先通过类似config.cache文件的结果进行初始化。

  • 为mpirun添加--debug选项,用于通用调用并行调试器。

3.1.7.10. Open MPI v1.0.x 系列

3.1.7.10.1. Open MPI 版本 1.0.3

Date:

未发布(所有修复已包含在1.1.0版本中)

重要

v1.0.3版本未发布

  • 修复了Chris Hennes指出的一个问题,即MPI_INFO_SET错误地禁止了长值。

  • 修复了启动系统中可能导致启动行为不一致的问题,特别是在启动大型作业时。

  • 要求openib BTL找到。感谢Josh Aune的建议。

  • 包含对即将发布的Autoconf 2.60和Libtool 2.0的支持更新。感谢Ralf Wildenhues的所有工作!

  • 修复了“轮询”进程映射器中无限循环的错误。感谢Paul Donohue报告此问题。

  • 确保在MPI_FINALIZE期间正确移除内存钩子。 感谢Neil Ludban报告此问题。

  • 对内置的ROMIO支持进行了多项修复。

  • 修复以确保MPI_LONG_LONG和MPI_LONG_LONG_INT实际上是同义词,正如MPI标准所定义的。感谢Martin Audet报告此问题。

  • 修复Fortran 90配置测试以正确使用LDFLAGS和LIBS。感谢Terry Reeves报告此问题。

  • 修复异步进度场景中的共享内存进度问题。感谢Mykael Bouquey报告该问题。

  • 修复了某些数据类型预定义MPI_PROD的后端操作。感谢Bert Wesarg报告此问题。

  • 调整了配置以支持Torque 2.1.0p0(及更高版本)的新库名称。感谢Brock Palen指出这个问题并提供Torque 2.1.0p0集群进行测试。

  • 修复了mpirun可能将shell管道的stdout设置为非阻塞模式,导致shell管道过早失败的问题。感谢Darrell Kresge找出问题原因。

  • 修复了leave_pinned可能导致mvapi BTL出现Badness的问题。

  • 修复了MPI_FILE_OPEN与非阻塞MPI-2 IO访问相关的问题。

  • 修复了启动过程中各种InfiniBand端口匹配问题。感谢Scott Weitzenkamp发现这些问题。

  • 修复了ROMIO在配置、构建和运行时出现的各种问题。感谢Dries Kimpe提请我们关注这些问题。

  • 修复了MPI_COMM_SPLIT在处理intercommunicators时的错误。感谢Bert Wesarg发现该问题。

  • 修复了MPI_INTERCOMM_MERGE中"high"参数的后向处理问题。感谢Michael Kluskens向我们指出这个问题。

  • 修复了Fortran绑定中对MPI-IO功能字符串参数的不当处理

  • 修复了在Solaris系统上使用共享内存传输时,64位应用程序出现的段错误问题。

  • 修复了MPI_COMM_SELF属性在MPI_FINALIZE开始时正确释放的问题。感谢Martin Audet向我们报告此问题。

  • 修复了交叉编译的对齐测试,以避免在最新版本的GCC中出现错误。

3.1.7.10.2. Open MPI 版本 1.0.2

Date:

2006年4月7日

  • 修复了AMD64平台上的汇编竞态条件问题。

  • 修复了从Fortran复制MPI属性时残留的.TRUE.问题。

  • 移除了Solaris pty I/O转发中不必要的逻辑。感谢Francoise Roch提请我们关注此问题。

  • 修复了当为多个完成MPI函数(MPI_TESTSOME, MPI_TESTANY, MPI_TESTALL, MPI_WAITSOME, MPI_WAITANY, MPI_WAITALL)提供count = 0时出现的错误。

  • 改进了MPI_ABORT在同伴进程已终止时的处理机制,尤其在某些资源管理器环境下。

  • 对README文件进行随机更新,添加关于Portland编译器的说明。

  • 随机的小型线程修复,以防止死锁。

  • 修复了处理长mpirun应用文件的问题。感谢Ravi Manumachu发现该问题。

  • 修复了多个Fortran 77绑定中对字符串的处理问题。

  • 修复LinuxPPC汇编问题。感谢Julian Seward报告此问题。

  • 在支持伪终端(pty)但不具备openpty()函数的平台上,为标准I/O转发启用pty支持。感谢Pierre Valiron提请我们关注此问题。

  • 禁用PGI编译器的内联汇编以避免编译错误。感谢Troy Telford提请我们注意此问题。

  • 将MPI_UNSIGNED_CHAR和MPI_SIGNED_CHAR添加到允许的归约类型中。

  • 修复了在运行Solaris的Opteron处理器上显示变长消息时的段错误。感谢Pierre Valiron报告此问题。

  • 在MPI_LAND、MPI_LOR、MPI_LXOR等内置归约操作中新增了MPI_BOOL类型。感谢Andy Selle向我们指出这一点。

  • 修复了MPI_INIT期间的TCP BTL网络匹配逻辑;在某些多网卡节点情况下,一个网卡可能会与另一个网络的网卡配对(通常会导致死锁)。感谢Ken Mighell向我们指出这个问题。

  • 修改orterun(mpirun、mpirexec)的行为,使其在目标节点(即除BProc系统外在可执行文件将运行的节点上,在BProc系统中搜索在调用orterun的节点上运行)上搜索argv[0]和当前工作目录。

  • 修复共享内存传输中的竞态条件,该问题可能导致内存一致性模型较弱的机器(包括POWER/PowerPC机器)崩溃。

  • 修复关于在bproc系统上设置只读MCA参数的警告。

  • 修改当应用程序进程被信号终止时,由mpirun设置的退出状态。现在退出状态设置为signo + 128,这符合(几乎所有)shell的行为规范。

  • 修复了在部分解包数据时转换器的数据类型问题。现在我们可以将转换器定位到任意位置,而不仅限于预定义类型的边界。感谢Yvan Fournier向我们报告此问题。

  • 修复了多个标准I/O转发问题,包括支持将mpirun置于后台运行的功能,以及当从文件重定向mpirun的标准输入时导致的数据丢失问题。

  • 修复了ompi_info中rcache和bml MCA参数无法显示的问题。

  • 修复了会话目录中的umask问题。感谢Glenn Morris向我们报告此问题。

  • 修复了基于tcsh的LD_LIBRARY_PATH在使用--prefix时的问题。感谢Glen Morris发现该问题并提出修复方案。

  • 在rsh启动时设置PATH和LD_LIBRARY_PATH环境变量时移除了多余的n字符。感谢Glen Morris发现这些拼写错误。

  • 修复了MPI C++绑定中缺失的常量。

  • 修复了一些由线程问题引起的错误。

  • 修复了openib BTL流控制逻辑,避免超出可用发送工作队列项(WQE)的数量。

  • 更新以匹配最新的OpenIB用户级库API。感谢Roland Dreier提交此补丁。

  • 在openib BTL中注册内存失败时正确报告错误。

  • 减少openib BTL的内存占用。

  • 修复了mpirun的"-tv"参数解析问题。感谢Chris Gottbrath提供的修复方案。

  • 修复Darwin系统中net/if.h配置警告。

  • 令人难以置信的是,GNU汇编器默认会将栈设置为可执行。因此,在使用gas时,需要添加标志明确告知它不要使栈可执行(虽然很蹩脚但很有必要)。

  • 添加缺失的MPI::Request::Get_status()方法。感谢Bill Saphir向我们指出这个问题。

  • 改进了内存注册错误时的错误提示信息(例如,在使用高速网络时)。

  • Open IB支持现在会检查固件以确定支持多少个未完成的RDMA请求。感谢Mellanox向我们指出这一点。

  • 如果平台支持,在MPI进程中遇到SIGBUS、SIGSEGV和SIGFPE信号时启用堆栈跟踪打印功能。

  • 修复了Lahey编译器的F90编译支持。

  • 修复了ROMIO共享库支持相关的问题。

  • 修复了rsh支持中的内部记账问题。

  • 更新至GNU Libtool 1.5.22版本。

  • 修复了在将CCAS设置为ias(英特尔汇编器)时配置脚本中的错误。

  • 添加了缺失的MPI::Intercomm集合操作。

  • 修复了Fortran集合操作中MPI_IN_PLACE的处理问题。

  • 修复了更多C++ const_cast<>的问题。感谢Martin Audet(再次)提请我们注意这个问题。

  • 将ROMIO更新为MPICH 1.2.7p1中的版本,标记为2005-06-09版本。

  • 修复了某些情况下使用MPI_BOTTOM可能导致问题的场景。

  • 正确处理mVAPI不支持共享接收队列的情况(例如SilverStorm/Infinicon为OS X提供的版本)。

3.1.7.10.3. Open MPI 版本 1.0.1

Date:

2005年12月12日

  • 修复了Solaris AMD平台上的汇编问题。感谢Pierre Valiron向我们报告此问题。

  • 修复了发送给自己的长消息问题。

  • 确保在使用"leave_pinned"选项时,内存钩子功能也已启用。感谢Gleb Natapov指出这个问题。

  • 修复了IRIX上的编译错误。

  • 允许主机文件包含整数形式的主机名(适用于BProc集群)。

  • 修复了在多网络设备场景下无序片段消息匹配的问题。

  • 将所有C++ MPI绑定转换为使用正确的const_cast<>,而非旧的C风格强制类型转换来移除常量性。感谢Martin Audet向我们提出这个问题。

  • 将MPI_Offset从#define改为typedef定义,因为某些C++解析器会因此出现问题。感谢Martin Audet向我们指出这个问题。

  • 改进了TCP BTL的延迟性能。

  • 修复了MPI_TESTANY中的索引值问题,当某些请求不是MPI_REQUEST_NULL但没有请求完成时,将其设为MPI_UNDEFINED。

  • 修复了多个Fortran MPI API实现中错误使用整数而非逻辑值或地址大小整数的问题。

  • 修复问题,使Open MPI能正确处理Fortran中的.TRUE.值,无论Fortran编译器对.TRUE.的定义如何。

  • 提升了MX启动的可扩展性。

  • 修复了coll基础组件中MPI_SCATTERV实现的数据类型偏移处理问题。

  • 修复标准输入上的EOF处理。

  • 修复了缺失的MPI_F_STATUS_IGNORE和MPI_F_STATUSES_IGNORE实例化问题。感谢Anthony Chan指出这个问题。

  • 在mpif.h中添加MPI_WIN_NULL的缺失值。

  • 将一些针对sm btl的修复从主干分支迁移过来,这些修复在v1.0版本前未能及时合并。感谢Beth Tibbitts和Bill Chung协助识别此问题。

  • 将一些针对iof的修复从主干分支移植过来,这些修复在v1.0版本前未能及时合并。

  • 修复了--with-wrapper-ldflags的处理问题。感谢Dries Kimpe向我们指出这个问题。

3.1.7.10.4. Open MPI 版本 1.0.0

Date:

2005年11月17日

  • 首次公开发布版本。