3.1.5. Open MPI v3.0.x 系列
本文件包含Open MPI v3.0.x系列的所有更新日志,按时间倒序排列。
3.1.5.1. Open MPI 版本 3.0.6
- Date:
2020年3月
修复单边共享内存窗口配置错误。
修复对PGI'18编译器的支持。
修复新版本Linux发行版上OMPIO的运行时链接器问题。
允许用户在Open MPI SRPM中覆盖modulefile_path,即使
install_in_opt设置为1。在openib BTL中正确检测ConnectX-6 HCAs。
修复大型作业中MTL/OFI初始化时的段错误。
修复了portals4控制流中的各种错误。
修复alltoall和笛卡尔邻域集合操作的通信顺序问题。
修复了在使用某些绕过操作系统的互连技术时,在glibc v2.26或更高版本系统(如Ubuntu 18.04)上内存修补程序出现的无限递归崩溃问题。
3.1.5.2. Open MPI 版本 3.0.5
- Date:
2019年11月
修复了OMPIO限制文件读写大小为2GB的问题。感谢Richard Warren报告此问题。
在运行时,当在用户命名空间(即容器)中运行时,自动禁用vader BTL(共享内存)副本的Linux跨内存附加(CMA)功能。非常感谢Adrian Reber提出这个问题并提供修复方案。
使用ofi MTL发送非常大的MPI消息时,某些底层Libfabric传输会失败(例如,PSM2传输的消息>=4GB,verbs传输的消息>=2GB)。早期版本的Open MPI会静默失败;当前版本的Open MPI在失败时会调用适当的MPI错误处理程序。更多详情请参阅https://github.com/open-mpi/ompi/issues/7058。感谢Emmanuel Thomé提出此问题。
修复了在优化过程中可能消除0范围数据类型的情况。感谢Github用户@tjahns提出这个问题。
确保在问题平台上不会优化掉MPIR_Breakpoint符号。
修复了在
MPI_FILE_GET_POSITION中使用SEEK_END和SEEK_CUR时的OMPIO偏移量计算问题。感谢Wei-keng Liao提出这个问题。修复了数据类型范围计算中的极端情况。感谢David Dickenson提出这个问题。
修复使用“cm”PML的MPI缓冲发送问题。
更新至PMIx v2.2.3版本。
修复了基于ssh的大规模树形生成问题。非常感谢Github用户@zrss的报告和诊断。
修复Open MPI RPM规范文件,使其在grep失败时不会中止。感谢Daniel Letai提请我们注意此问题。
处理新的SLURM命令行选项(SLURM 19弃用了Open MPI正在使用的一些选项)。感谢Jordan Hayes的报告和初步修复。
OMPI: 修复空文件视图导致的除零错误。
同时处理
shmat()/shmdt()与OS旁路网络的内存修补。为从
MPI_Init开始的调用栈中所有文件添加栈展开信息支持,这对并行调试器很有帮助。感谢James Clark的报告和初步修复。修复了MPI C++绑定头文件中无意使用位运算符的问题。感谢Bert Wesarg的报告和修复。
新增了配置选项
--disable-wrappers-runpath(与已有的--disable-wrappers-rpath选项并列),用于阻止 Open MPI 的配置脚本自动向包装器编译器添加 runpath 命令行选项。
3.1.5.3. Open MPI 版本 3.0.4
- Date:
2019年4月
修复了当配置
--enable-mpi-java和--with-devel-headers时出现的编译错误。感谢@g-raffy报告此问题。修复了OMPIO中可能导致浮点数舍入和除法问题,这些问题在处理极大数据时会导致崩溃或数据损坏。感谢Axel Huebl和René Widera发现该问题、提供并测试修复方案(** 同样出现在:v3.0.4版本)。
在
mpi.h中适当使用static_cast<>。感谢@shadow-fx发现此问题。修复了RMA累积操作中的数据类型问题。感谢Jeff Hammond提出该问题。
修复了使用预定义运算符对非预定义数据类型进行RMA累积的问题。感谢Jeff Hammond提出此问题。
修复在启动MPI进程时关闭已打开文件描述符的竞态条件。感谢Jason Williams发现该问题并提供修复方案。
修复了部分
MPI_TYPE_CREATE_*函数在Valgrind中的警告。感谢Risto Toijala发现该问题并提供修复方案。修复
MPI_TYPE_CREATE_F90_{REAL,COMPLEX}中r=38和r=308的问题。修复了旧版本gcc(<6.0.0)中的汇编问题,该问题影响了共享内存通信的稳定性(例如,与vader BTL相关)。
修复OFI MTL对
MPI_ANY_SOURCE的处理。修复了openib BTL中关于
ibv_exp_query_device()的噪声错误。感谢Angel Beltre和其他报告此问题的人员。
3.1.5.4. Open MPI 版本 3.0.3
- Date:
2018年10月
修复了非阻塞发送/接收路径中
MPI_THREAD_MULTIPLE支持的竞态条件问题。修复
SIGCHLD转发中的错误处理。为
CHARACTER和LOGICALFortran数据类型添加对MPI_SIZEOF的支持。修复使用OpenJDK 11编译Java绑定时的编译错误。
修复了在使用包含‘用户@主机’行的主机文件时出现的崩溃问题。
大量Fortran '08接口修复。
TCP BTL 错误消息修复。
OFI MTL现在将使用除shm、sockets、tcp、udp或rstream之外的任何提供程序,而不仅限于支持gni、psm和psm2。
默认禁用CUDA缓冲区的异步接收,修复了大传输时的挂起问题。
支持BCM57XXX和BCM58XXX Broadcomm适配器。
修复ROMIO中的minmax数据类型支持。
vader共享内存传输中的错误修复。
支持使用
MPI_TYPE_VECTOR处理超大缓冲区。修复在Cray系统上使用mpirun启动时出现的挂起问题。
OFI MTL中的错误修复。
修复了Assorted Portals 4.0中的各种错误。
修复了
MPI_BSEND中可能出现的数据损坏问题。将vader btl的共享内存文件移动到Linux的
/dev/shm目录下。修复了
MPI_ISCATTER/MPI_ISCATTERVFortran接口与MPI_IN_PLACE的问题。将PMIx升级至v2.1.4版本。
修复Power9内置原子操作的bug。
大量单边错误的修复。
修复uGNI BTL中的竞态条件问题。
改进对TCP BTL大量接口的处理。
修复了大量UCX相关错误。
为Open IB BTL添加对QLogic和Broadcom Cumulus RoCE HCAs的支持。
为aarch64架构添加补丁程序支持。
修复在Power和ARM架构上,当Open MPI以低编译器优化设置构建时出现的挂起问题。
3.1.5.5. Open MPI 版本 3.0.2
- Date:
2018年6月
由于该组件中存在大量竞态条件,在使用
MPI_THREAD_MULTIPLE时禁用osc/pt2pt。修复Fortran绑定中mpi和mpi_f08的虚拟变量名称,使其符合MPI标准。这可能会破坏那些在Fortran中使用基于名称参数(使用我们内部名称而非MPI标准文档中名称)的应用程序。
修复了NAG编译器中Fortran模块"mpi"内的
MPI_SIZEOF问题。修复
use-mpi-f08绑定中的RMA函数签名,使所有缓冲区都具有异步属性。修复Fortran
MPI_COMM_SPAWN_MULTIPLE函数,使其在解析array_of_commands变量时能正确遵循count长度参数。改进Java检测机制,以正确处理不再提供javah包装器的新版Java版本。
改进了查找UCX库的配置逻辑。
增加对HDR InfiniBand链路速度的支持。
在配置中禁用POWER 7/BE模块。请注意POWER 7/BE仍不是受支持的平台,但不再自动禁用。更多信息请参阅https://github.com/open-mpi/ompi/issues/4349#issuecomment-374970982
3.1.5.6. Open MPI 版本 3.0.1
- Date:
2018年3月
修复将并行调试器附加到MPI进程的功能。
修复了HDF5测试套件发现的MPI I/O中的若干问题。
修复共享内存中(极大)大消息传输的问题。
修复多网卡配置中的乱序错误。
修复可能导致输入丢失的标准输入重定向错误。
如果检测到CSM,则禁用LSF启动器。
修复了
MPI_Mem_free()中的内存泄漏问题。感谢Philip Blakely的报告。修复当节点数量大于基数时的树形生成操作。感谢Carlos Eduardo de Andrade的报告。
修复MPI扩展中的Fortran 2008宏。感谢Nathan T. Weeks的报告。
将UCX添加到OpenSHMEM默认使用的接口列表中。
添加
--{enable|disable}-show-load-errors-by-default来控制加载错误选项的默认行为。OFI MTL改进:正确处理空完成队列,修复
fi_getinfo()相关的错误消息,默认使用提供商的默认进度选项,在ofi_progress中添加支持读取多个CQ事件。PSM2 MTL改进:支持使用GPU缓冲区,修复线程问题。
对内存检查器行为进行了大量修正。
添加一个mca参数
ras_base_launch_orted_on_hn,允许在运行mpirun的同一节点上通过单独的orte守护进程(而非mpirun进程)启动MPI进程。在使用SLURM时将此参数设为true可能很有用,因为它能提升与SLURM信号传播工具的兼容性。默认情况下该参数设为false,但在Cray XC系统上例外。修复了Kevin McGrattan和Stephen Guzik在邮件列表中分别报告的问题,该问题涉及使用OMPIO时NFS文件系统的一致性。此修复还引入了一个新的mca参数
fs_ufs_lock_algorithm,用于控制ompio在读写操作中使用的锁定算法。默认情况下,ompio不会在本地UNIX文件系统上执行锁定,在NFS文件系统上按操作锁定整个文件,在其他分布式文件系统上执行选择性字节范围锁定。添加一个mca参数
pmix_server_usock_connections,使mpirun能够支持静态链接Open MPI v2.x版本构建的应用程序,或与Open MPI v2.x库一起安装在容器中的应用程序。该参数默认设置为false。
3.1.5.7. Open MPI 版本 3.0.0
- Date:
2017年9月
重要
主要新特性:
为OSHMEM对称堆分配使用UCX分配器,以优化节点内的数据传输。仅适用于UCX SPML。
在UCX PML中使用UCX多线程API。需要UCX 1.0或更高版本。
新增对Flux PMI的支持
将嵌入式PMIx更新至2.1.0版本
将嵌入式hwloc更新至版本1.11.7
根据Open MPI的版本规则(参见README),主版本号升级到3意味着此版本与之前版本的Open MPI不兼容ABI。此外,MCA参数名称和默认值可能与之前版本存在差异。mpirun及其他命令的命令行选项也可能与先前版本不同。您需要重新编译MPI和OpenSHMEM应用程序才能与此版本的Open MPI兼容。
在此版本中,Open MPI默认支持
MPI_THREAD_MULTIPLE。新增了配置选项,用于指定libnl和zlib的安装位置。
新增了一个配置选项以支持Flux PMI。
mpirun及相关命令的帮助菜单现在基于上下文。
mpirun --help compatibility会生成与之前版本相同格式的帮助菜单。
注意
移除了旧版支持:
AIX 操作系统不再受支持。
Loadlever 已不再受支持。
OpenSHMEM目前通过ucx和ikrit SPML分别支持UCX和MXM传输协议。
由于缺乏支持,从OpenIB BTL中移除了IB XRC支持。
移除对大端序PowerPC的支持。
移除对早于v13.1版本的XL编译器的支持
注意
已知问题:
由不同mpirun命令启动的应用程序之间的MPI_Connect/accept操作将会失败,即使ompi-server正在运行。