3.1.6. Open MPI v2.x 系列
本文件按时间倒序列出了Open MPI v2.x系列的所有NEWS更新内容。
3.1.6.1. Open MPI v2.1.x 系列
3.1.6.1.1. Open MPI 版本 2.1.5
- Date:
2018年8月
在“vader”BTL(共享内存通信)中发现了一个微妙的竞态条件错误,在极少数情况下可能导致MPI进程崩溃或错误分类(或实际上丢弃)通过共享内存发送的MPI消息。如果您在使用“ob1”PML与“vader”进行共享内存通信(请注意,vader是与ob1进行共享内存通信的默认设置),则需要升级到v2.1.5以修复此问题。您也可以升级到以下版本来解决此问题:
Open MPI v3.0.1(2018年3月发布)或更高版本的v3.0.x系列
Open MPI v3.1.2(预计2018年8月底发布)或更高版本
修复了当UCX库不在链接器默认搜索路径中时的链接问题。
3.1.6.1.2. Open MPI 版本 2.1.4
- Date:
2018年8月
在配置中禁用POWER 7/BE模块。请注意POWER 7/BE仍不是受支持的平台,但不再自动禁用。更多信息请参阅https://github.com/open-mpi/ompi/issues/4349#issuecomment-374970982
修复了在使用"rdma"组件时基于请求的单边MPI操作的bug。
修复了TCP BTL中大型数据结构在某些环境下导致的问题。感谢@lgarithm报告此问题。
针对Cygwin构建的小幅修复。
针对openib BTL的小幅修复: 1. 支持QLogic RoCE HCA 2. 支持Boradcom Cumulus RoCE HCA 3. 启用对HDR链路速度的支持
修复了在MPI_FINALIZE期间,如果从MPI_COMM_SELF销毁过程中的属性析构函数调用MPI_FINALIZED时出现的挂起问题。感谢@AndrewGaspar报告此问题。
Java修复:
现代化Java框架检测,特别是在OS X/MacOS系统上。 感谢Bryce Glover报告问题并提交修复方案。
优先使用“javac -h”而非“javah”以支持更新的Java框架。
Fortran修复:
为Fortran绑定使用符合规范的虚拟参数名称。感谢Themos Tsikas报告并提交修复。
尽可能在"TKR"风格的"mpi"模块中构建MPI_SIZEOF()接口。感谢Themos Tsikas报告此问题。
修复了MPI_COMM_SPAWN_MULTIPLE的Fortran绑定中argv数组的处理问题(及其相关手册页)。
在配置中增强NAG Fortran编译器的支持稳定性。
当使用MPI_THREAD_MULTIPLE时,禁用"pt2pt"单边MPI组件。该组件在MPI_THREAD_MULTIPLE场景下完全不安全,且不会在v2.1.x系列中修复。
如果"external" hwloc组件尝试使用hwloc v2.x.y安装,使其优雅地失败。Open MPI v2.1.x系列将不支持hwloc v2.x.y版本。
修复“vader”共享内存对大于2GB消息的支持。感谢Heiko Bauke提交的错误报告。
修复了外部PMI目录检测的配置问题。感谢Davide Vanzo的报告。
3.1.6.1.3. Open MPI 版本 2.1.3
- Date:
2018年3月
将内部PMIx版本更新至1.2.5。
修复了使用param选项时ompi_info报告的问题。感谢Alexander Pozdneev的报告。
修正 Fortran mpi_f08 模块中的 PMPI_Aint_{add|diff} 为函数(而非子例程)。
修复了在使用具有大范围的MPI数据类型结合MPI_TYPE_CREATE_SUBARRAY进行MPI I/O操作时出现的问题。感谢Christopher Brady的报告。
修复了使用MPI_FILE_OPEN打开多个文件时的问题。感谢William Dawson的报告。
修复了调试器无法附加到正在运行的作业的问题。感谢Dirk Schubert的报告。
修复了在使用madvise和OpenIB BTL时出现的问题。感谢Timo Bingmann的报告。
修复了Vader BTL中导致IMB在某些情况下失败的问题。感谢Nicolas Morey-Chaisemartin的报告。
修复了导致Open MPI无法在Cygwin环境下运行的问题。感谢Marco Atzeri的报告。
在某些情况下,减少由USNIC BTL发出的冗余信息。感谢Peter Forai的报告。
修复了SIGKILL信号误导向的问题。感谢Michael Fern的报告。
对于小内存分配,将posix_memalign替换为malloc。感谢Ben Menaude的报告。
修复了Open MPI在文件描述符大于32767时的带外TCP网络问题。感谢Wojtek Wasko的报告和修复。
修复了MPI_Mem_free()中的内存泄漏问题。感谢Philip Blakely的报告。
3.1.6.1.4. Open MPI 版本 2.1.2
- Date:
2017年9月
将内部PMIx版本更新至1.2.3。
修复了使用NAG Fortran编译器构建Open MPI以及使用编译器封装器时的一些问题。感谢Neil Carlson的报告。
修复了SM BTL中的一个编译问题。感谢Paul Hargrove的报告。
修复了在使用零长度消息时MPI_IALLTOALLW的问题。感谢Dahai Guo的报告。
修复了SHMEM_G的C11泛型类型接口问题。感谢Nick Park的报告。
在构建支持Lustre的Open MPI时,改用lustreapi.h头文件。
修复了OB1 PML中导致与OSU集合测试挂起的问题。
修复了MPI_WIN_FLUSH_LOCAL的一个进度问题。感谢Joseph Schuchart的报告。
修复了近期版本PBSPro需要libcrypto的问题。感谢Petr Hanousek的报告。
修复了在使用MPI_ANY_SOURCE与MPI_SENDRECV时出现的问题。
修复了一个阻止信号传播到ORTE守护进程的问题。
确保信号能够从ORTE守护进程转发到由这些守护进程创建的所有进程组中的进程。感谢Ted Sussman的报告。
修复了在调试器下启动作业的问题。感谢Greg Lee的报告。
修复了在使用具有关联拓扑的通信器时,Open MPI原生I/O MPI_FILE_OPEN的问题。感谢Wei-keng Liao的报告。
修复了在使用MPI_ACCUMULATE与派生数据类型时出现的问题。
修复了Fortran绑定中导致用户自定义归约操作编译错误的问题。感谢Nathan Weeks的报告。
修复在使用NFS文件系统时进行大容量写入/读取时的ROMIO问题。
修复Fortran中MPI_ARGV_NULL和MPI_ARGVS_NULL的定义。
在Cray XC系统上启用SLURM分配的头节点。
修复了使用UCX PML时同步发送的问题。
使用默认套接字缓冲区大小以提升TCP BTL性能。
添加一个名为ras_base_launch_orted_on_hn的mca参数,允许通过单独的orte守护进程(而非mpirun进程)在运行mpirun的同一节点上启动MPI进程。在使用SLURM时建议将此参数设为true,可提升与SLURM信号传播工具的互操作性。默认值为false(Cray XC系统除外)。
修复当LSF安装在默认搜索路径时
--without-lsf的问题。移除对大端序PowerPC的支持。
移除对早于v13.1版本的XL编译器的支持
由于维护者流失,从OpenIB BTL中移除了IB XRC支持。
3.1.6.1.5. Open MPI 版本 2.1.1
- Date:
2017年4月
修复了Open MPI中一个fifo数据结构导致make check测试挂起的问题。感谢Nicolas Morey-Chaisemartin的报告。
在mpif.h中添加缺失的MPI_AINT_ADD/MPI_AINT_DIFF函数定义。感谢Aboorva Devarajan的报告。
修复当rank参数无效时MPI_WIN_LOCK返回的错误。感谢Jeff Hammond报告并修复此问题。
修复了在调试器下启动mpirun/orterun时的问题。感谢Gregory Leff的报告。
添加配置选项以禁用vader BTL对CMA的使用。感谢Sascha Hunold的报告。
添加对MPI_DOUBLE_COMPLEX数据类型的配置检查。感谢Alexander Klein的报告。
修复由MPI_WIN_ALLOCATE_SHARED分配的内存,使其64位对齐。感谢Joseph Schuchart的报告。
更新MPI_WTICK手册页,以反映其分辨率可能高于10e-6。感谢Mark Dixon的报告
在mpi.h头文件中添加缺失的MPI_T_PVAR_SESSION_NULL定义。感谢Omri Mor的贡献。
增强Open MPI规范文件,以便在非默认安装位置时将模块文件安装到
/opt目录。感谢Kevin Buckley报告问题并提供修复方案。修复了静态链接时PMI符号冲突的问题。感谢Kilian Cavalotti的报告。
3.1.6.1.6. Open MPI 版本 2.1.0
- Date:
2017年3月
重要
主要新特性:
Open MPI v2.1.0版本的主要更新是升级至PMIx v1.2.1。当使用PMIx时(例如通过基于mpirun的启动方式,或通过支持最新版本流行资源管理器的直接启动方式),大规模MPI/OpenSHMEM进程的启动时间可扩展性得到提升,且运行时内存占用显著降低。
更新OpenSHMEM API以符合v1.3标准。
usnic BTL现在支持MPI_THREAD_MULTIPLE。
针对MPI_THREAD_MULTIPLE的通用/整体性能改进。
在配置底部添加一条摘要信息,显示由Open MPI指定和/或发现的许多配置选项。
注意
移除了旧版支持:
ptmalloc2钩子已从Open MPI代码库中移除。这一变更对用户基本无感,之所以在此提及,只因Open MPI开发者社区对此欢欣鼓舞。
新增MCA参数:
iof_base_redirect_app_stderr_to_stdout: 顾名思义,该参数将MPI/OpenSHMEM应用程序的标准错误输出合并到其标准输出流中。
opal_event_include: 允许用户指定底层事件引擎使用哪种文件描述符选择机制。
opal_stacktrace_output: 指定当MPI/OpenSHMEM进程崩溃时堆栈跟踪信息应发送的位置(
none不输出,stdout标准输出,stderr标准错误,file:filename输出到文件)。orte_timeout_for_stack_trace: 等待堆栈跟踪报告的超时秒数(或设置为
<=0表示无限等待)。mtl_ofi_control_prog_type/mtl_ofi_data_prog_type: 指定用于控制和数据的libfabric进度模型。
修复了MPI_WTICK回归问题,在启用了处理器频率调节的系统上,报告的时间可能不准确。
修复了在某些BTL网络传输(如openib、sm和vader)上降低大消息内存最大消息带宽的回归问题。
修复了共享文件指针MPI IO文件锁定方案中的名称冲突问题。感谢Nicolas Joly报告此问题。
修复在使用Portals 4单边组件时,MPI_PUT和MPI_RACCUMULATE操作中数据类型范围/偏移量的错误。
为Portals 4单边通信组件添加对非连续数据类型的支持。
针对UCX PML的多项更新。
以下手册页面的更新:
mpirun(1)
MPI_COMM_CONNECT(3)
MPI_WIN_GET_NAME(3)。感谢Nicolas Joly报告这个拼写错误。
MPI_INFO_GET_[NKEYS|NTHKEY](3)。感谢Nicolas Joly报告这个拼写错误。
修复了在使用MPI_THREAD_MULTIPLE时TCP BTL中的一个问题。感谢Evgueni Petrov的报告。
修复了romio314模块中的external32表示问题。请注意,目前ompio模块尚未正确支持external32表示。感谢Thomas Gastine提请我们注意此问题。
添加关于如何禁用未找到高速MPI传输时警告消息的说明。感谢Susan Schwarz报告此问题。
确保在使用rsh/ssh启动器发送SIGINT信号时,不会在启动树中遗留子节点进程。
修复显示已弃用MCA参数名称时的帮助信息,以展示正确的(即已弃用的)名称。
启用对openib BTL的支持,以使用多个不同的InfiniBand子网。
修复了MPI_AINT_DIFF中的一个次要错误。
修复MPI_IN_PLACE处理中的错误:
MPI_ALLGATHER[V]
MPI_[I][GATHER|SCATTER][V]
MPI_IREDUCE[_SCATTER]
感谢所有帮助诊断这些问题的用户。
允许qrsh进行树形派生(如果后端系统支持该功能)。
修复MPI_T_PVAR_GET_INDEX以返回正确的索引。
在OMPIO组件中正确设置追加模式下的共享文件指针位置。
在shmem.h中添加一些已弃用的名称,以保持与旧代码的向后兼容性。
修复对MPI_MODE_NOCHECK的支持。
修复了PowerPC原子操作支持中的一个回归问题。感谢Orion Poplawski报告此问题。
修复了在x86_64/AMD64平台上使用激进优化编译器时的汇编代码问题。
修复了另一个配置错误处理自定义CFLAGS的地方。感谢Phil Tooley (@Telemin)报告此问题。
更好地处理带有外部安装hwloc的构建。
修复了MPI_PUT和MPI_WIN_LOCK_ALL导致的挂起问题。
修复了在非连续数据类型上使用MPI_GET以及MPI_LOCK/MPI_UNLOCK时出现的bug。
修复了在栅栏操作后使用POST/START/COMPLETE/WAIT时出现的bug。
通过清理几处使用"=="替换为"test"的方式,修复了配置的可移植性问题。感谢Kevin Buckley指出该问题。
修复了在使用darrays与lib和darray数据类型的extent时的bug。
更新以使Open MPI二进制构建更加位对位可重现。感谢Alastair McKinstry的建议。
修复与持久请求处理相关的问题。
确保shmemx.h是一个独立的OpenSHMEM头文件。感谢Nick Park (@nspark)的报告。
确保在发送SIGKILL信号前总是先发送SIGTERM信号。感谢Noel Rycroft的报告。
为openib BTL添加了ConnectX-5和Chelsio T6设备的默认设置。
OpenSHMEM不再支持MXM低于v2.0版本。
修复了ompi_osc_sm_free中的内存泄漏问题。感谢Joseph Schuchart的报告。
"self" BTL 现在使用更少的内存。
在使用XPMEM时,vader BTL现在在内存使用方面更加高效。
移除了
--enable-openib-failover配置选项。这不被视为向后不兼容的变更,因为该选项已过时且早已失效。如果设置了 opal_hwloc_base_hwthreads_as_cpus MCA 参数,则允许在 Cray aprun 下启动的作业使用超线程。
增加对32位和浮点Cray Aries原子操作的支持。
如果窗口上设置了"ompi_single_intrinsic"信息键或设置了"acc_single_intrinsic" MCA参数,则为MPI_ACCUMULATE、MPI_FETCH_AND_OP和MPI_COMPARE_AND_SWAP添加网络原子内存操作支持。
如果使用了MPI_THREAD_MULTIPLE,则自动取消openib BTL中对RDMA CM的支持。
使配置在自动检测Linux CMA支持方面更加智能/优化。
提升MPI_COMM_SPLIT_TYPE的可扩展性。
修复了MPI C++绑定中C99与C++头文件混用的问题。感谢Alastair McKinstry提交的错误报告。
新增对ARM v8架构的支持。
多个MCA参数现在直接支持MPI_T枚举器语义(即它们接受一组有限的值——例如,接受布尔值的MCA参数)。
为Open MPI的供应商版本添加了
--with-libmpi-name=配置选项。详情请参阅README文件。修复了Open MPI内部内存检查器的一个问题。感谢Yvan Fournier的报告。
修复了MPI_WAIT的多线程问题。感谢Pascal Deveze的报告。
3.1.6.2. Open MPI v2.0.x 系列
3.1.6.2.1. Open MPI 版本 2.0.4
- Date:
2017年11月
修复了内置PMIx中函数可见性的问题。感谢Siegmar Gross报告此问题。
添加配置检查,防止尝试使用外部hwloc 2.0或更新版本构建此版本的Open MPI。
新增为OFI MTL指定分层提供程序的能力。
修复了Open MPI内存管理代码中可能导致消息数据损坏的正确性问题。感谢Valentin Petrov的报告。
修复了在使用较新版本PBS Pro时遇到的问题。感谢Petr Hanousek的报告。
修复了使用vader BTL时MPI_GET的问题。感谢Dahai Guo的报告。
修复了在MPI_SENDRECV_REPLACE中使用MPI_ANY_SOURCE时的问题。感谢Dahai Guo的报告。
修复了在使用带有笛卡尔拓扑结构的通信器调用MPI_FILE_OPEN时出现的问题。感谢Wei-keng Liao的报告。
由于缺乏支持,从OpenIB BTL中移除了IB XRC支持。
移除对大端序PowerPC的支持。
移除对早于v13.1版本的XL编译器的支持
3.1.6.2.2. Open MPI 版本 2.0.3
- Date:
2017年6月
修复了当存在零大小消息时MPI_IALLTOALLW的问题。感谢@mathbird的报告。
在mpi_f08模块中添加缺失的MPI_USER_FUNCTION定义。 感谢Nathan Weeks报告此问题。
修复了当提供负排名时MPI_WIN_LOCK不返回错误代码的问题。感谢Jeff Hammond的报告和提供的修复方案。
修复了可能导致挂起的make check问题。感谢Nicolas Morey-Chaisemartin的报告。
解决了PMI-1和PMI-2 PMIx组件之间的符号冲突问题。感谢Kilian Cavalotti报告此问题。
确保从MPI_WIN_ALLOCATE_SHARED返回的内存分配是64字节对齐的。感谢Joseph Schuchart报告此问题。
如果可用,在Fortran绑定中使用DOUBLE_COMPLEX。感谢Alexander Klein报告此问题。
在Open MPI的mpi.h头文件中添加缺失的MPI_T_PVAR_SESSION_NULL定义。感谢Omri Mor的报告和修复。
修复了在从独立作业访问文件时使用MPI共享文件指针的问题。感谢Nicolas Joly报告此问题。
优化了使用MPI_IN_PLACE的零大小MPI_IALLTOALL{V,W}操作。感谢Lisandro Dalcín的报告。
修复了在使用NFS文件系统进行大文件传输时出现的ROMIO缓冲区溢出问题。
修复了MPI_ARGV[S]_NULL的类型问题,该问题导致其在mpi_f08模块中无法与MPI_COMM_SPAWN[_MULTIPLE]正常配合使用。
确保在需要动态库支持的平台上(如RHEL 7.3及更高版本)为包装器编译器添加正确的链接器标志。
通过在10Gbps及更高速率的TCP网络上使用操作系统默认的缓冲区大小设置,以获得更好的性能。
修复了在使用DARRAY数据类型时
MPI_[R][GET_]ACCUMULATE的一个错误。修复了
--with-lustre配置命令行参数的处理问题。感谢Prentice Bisbal和Tim Mattox报告此问题。在mpif.h中添加了MPI_AINT_ADD和MPI_AINT_DIFF声明。感谢Aboorva Devarajan (@AboorvaDevarajan)提交的错误报告。
修复了当Open MPI以MPI_THREAD_MULTIPLE支持初始化时TCP BTL中出现的问题。感谢Evgueni Petro分析和报告此问题。
修复yalla PML以正确处理下溢错误,并修复了阻塞非连续发送导致的内存泄漏问题。
恢复了在官方发行版tarballs上运行autogen.pl的能力(虽然仍不建议大多数用户这样做!)。
通过始终使用clock_gettime(3)或gettimeofday(3)来修复某些系统上MPI_WTIME的精度问题。
修复了MPI_WTICK在可获得更高时间分辨率时未能返回的问题。感谢Mark Dixon报告此问题。
恢复SGE功能。感谢Kevin Buckley的初步报告。
修复外部hwloc编译问题,并扩展支持以允许使用早至v1.5.0版本的外部hwloc安装。感谢Orion Poplawski提出该问题。
将最新的Mellanox Connect-X和Chelsio T-6适配器部件ID添加到openib默认值列表中。
更好地清理会话目录(例如,在
/tmp中)。更新帮助信息,说明如何屏蔽Open MPI未检测到高性能网络的警告。感谢Susan Schwarz报告此问题。
修复了在配置Open MPI时自定义CFLAGS处理不当的问题。感谢Phil Tooley的报告。
修复了一些小的内存泄漏问题并移除了一些未使用的变量。感谢 Joshua Gerrard 的报告。
修复MPI_ALLGATHERV中与MPI_IN_PLACE相关的bug。
3.1.6.2.3. Open MPI 版本 2.0.2
- Date:
2017年1月26日
修复了在使用MPI_MODE_APPEND和Open MPI原生MPI-IO实现时MPI_FILE_WRITE_SHARED的问题。感谢Nicolas Joly的报告。
修正了MPI_WIN_GET_NAME手册页中的一处拼写错误。感谢Nicolas Joly的报告。
修复了ORTE会话目录设置中的竞态条件。感谢@tbj900报告此问题。
修复了由于Open MPI捕获munmap调用的方法导致的死锁问题。感谢Paul Hargrove报告并协助分析此问题。
修复了PPC原子操作的一个问题,该问题导致除非启用了内置原子配置选项,否则make check会失败。感谢Orion Poplawski的报告。
修复了使用x86_64 cpuid指令导致的问题,该问题在Open MPI配置了-O3优化时会出现段错误。感谢Mark Santcroos报告此问题。
修复了在PPC平台上使用内置原子配置选项构建32位应用程序时的问题。感谢Paul Hargrove的报告。
修复了针对外部hwloc安装构建Open MPI时的问题。感谢Orion Poplawski报告此问题。
移除消息队列版本字符串中对DATE的使用,以确保二进制文件的位级可重现性。感谢Alastair McKinstry协助修复此问题。
修复了一个MPI进程在未调用MPI_FINALIZE或MPI_ABORT情况下提前退出可能导致作业挂起的问题。感谢Christof Koehler的报告。
修复了从mpirun向作业中的MPI进程转发SIGTERM信号的问题。感谢Noel Rycroft报告此问题
修复了使用Valgrind发现的MPI_WIN_FREE中的一些内存泄漏问题。感谢Joseph Schuchart的报告。
修复了在使用带有空拓扑图的通信器时MPI_NEIGHOR_ALLTOALL的问题。感谢Daniel Ibanez的报告。
修复了PMIx组件帮助文件中的一个拼写错误。感谢@njoly报告此问题。
修复了在使用Open MPI内部内存检查器时Valgrind误报的问题。感谢Yvan Fournier的报告。
修复了MPI_FILE_DELETE在删除不存在的文件时返回MPI_SUCCESS的问题。感谢Wei-keng Liao的报告。
修复了MPI_IMPROBE可能导致后续MPI点对点或集体调用挂起的问题。感谢Chris Pattison的报告。
修复了在powerpc架构上配置Open MPI时启用
--enable-mpi-cxx选项导致的问题。感谢Alastair McKinstry的报告。修复了使用MPI_IALLTOALL时配合MPI_IN_PLACE参数的问题。感谢Chris Ward的报告。
修复了使用MPI_RACCUMULATE与Portals4传输时的问题。感谢@PDeveze的报告。
修复了由于PMIx Slurm组件导致的静态链接和符号重复问题。感谢Limin Gu的报告。
修复了使用MPI动态内存窗口时的问题。感谢Christoph Niethammer的报告。
修复了Open MPI的pkgconfig文件问题。感谢Alastair McKinstry的报告。
修复了当MPI_IREDUCE的发送缓冲区和接收缓冲区参数使用相同缓冲区时的问题。感谢Valentin Petrov的报告。
修复了PowerPC上的原子操作问题。感谢Paul Hargrove的报告。
3.1.6.2.4. Open MPI 版本 2.0.1
- Date:
2016年9月2日
所有传输方式的短消息延迟和消息速率性能均有所提升。
修复了在使用支持RDMA的网络时的共享内存性能问题。感谢Tetsuya Mishima和Christoph Niethammer的报告。
修复yalla (MXM) PML中的带宽性能下降问题。感谢Andreas Kempf报告该问题。
修复在非Mellanox MXM网络上运行OpenSHMEM时的崩溃问题。感谢Debendra Das报告此问题。
修复了在重复调用MPI_FILE_SET_VIEW并使用预定义数据类型后出现的崩溃问题。感谢Eric Chamberland和Matthew Knepley报告并协助解决此问题。
修复了标准输入传播到MPI进程的问题。感谢张景超报告此问题。
通过将PMIx内部组件更新至v1.1.5版本,修复了各种运行时和可移植性问题。
修复因
/proc/mounts中条目过大导致的Intel MIC平台进程启动失败问题。修复了在指定mpirun/oshurun可执行文件时使用相对路径的问题。感谢David Schneider的报告。
在基于门户的网络运行时进行了多项改进。
修复基于GNI网络中的线程竞争条件问题。
修复了MPI_FILE_CLOSE和MPI_FILE_SET_SIZE的问题。感谢Cihan Altinay的报告。
移除Open MPI内部对rand(3)的所有使用,以避免干扰应用程序对其的调用。感谢Matias Cabral和Noel Rycroft的报告。
修复了MPI_COMM_SPAWN中的崩溃问题。
修复了MPI_UNWEIGHTED和MPI_WEIGHTS_EMPTY的类型问题。感谢Lisandro Dalcín的报告。
正确报告MPI_INTEGER16的名称。
向Fortran绑定添加一些缺失的MPI常量。
修复了在配置Open MPI时启用
--enable-timing选项导致的编译错误。正确设置libompitrace.so的共享库版本。感谢Alastair McKinstry的报告。
修复了MPI_RPUT、MPI_RGET、MPI_RACCUMULATE和MPI_RGET_ACCUMULATE Fortran绑定中的错误。感谢Alfio Lazzaro和Joost VandeVondele发现并追踪此问题。
修复了在非阻塞集合操作中使用派生数据类型的问题。感谢Yuki Matsumoto的报告。
修复了使用CMake时OpenSHMEM头文件的问题。感谢Paul Kapinos报告此问题。
修复了在集合操作中使用非零下限数据类型的问题。感谢Hristo Iliev的报告。
修复了MPI_GROUP_INTERSECTION中的内存分配问题。感谢Lisandro Dalcín的报告。
修复了MPI_ALLGATHER在非双进程通信器上的问题。感谢David Love的报告。
针对与深奥的MPI数据类型一起使用时,集体操作的各种修复。
修复了处理DARRAY和HINDEXED_BLOCK数据类型的边界情况。
修复了OpenBSD文件系统类型检查的问题。感谢Paul Hargrove的报告。
修复了Open MPI内部函数中的一些调试输入问题。感谢Durga Choudhury的报告。
修复配置帮助信息中的一处拼写错误。感谢Paul Hargrove的报告。
在MPI_[I]ALLTOALL[V|W]和MPI_[I]EXSCAN中正确支持MPI_IN_PLACE。
修复SPARC平台上的对齐问题。
注意
已知问题(将在v2.0.2版本中解决):
查看v2.0.2版本的修复列表: https://github.com/open-mpi/ompi/milestone/20?closed=1,以及 https://github.com/open-mpi/ompi-release/milestone/19?closed=1 (请注意"ompi-release" Github仓库将在未来某个时间点合并/整合到"ompi" Github仓库中)
3.1.6.2.5. Open MPI 版本 2.0.0
- Date:
2016年7月12日
注意
Open MPI现已完全兼容MPI-3.1标准
重要
主要新特性:
对MPI RMA进行了多项增强。Open MPI现在将MPI RMA操作映射到支持此功能的网络上的原生RMA操作。
大幅改进了对MPI_THREAD_MULTIPLE的支持(当配置为
--enable-mpi-thread-multiple时)。针对大规模作业的内存占用优化增强。新增了一个名为"mpi_add_procs_cutoff"的MCA参数,可用于设置启用此功能的阈值。
彻底改进了在使用绕过操作系统的网络传输时的内存注册钩子支持。
显著的OMPIO性能改进和大量错误修复。
添加对PMIx(面向百亿亿级计算的进程管理接口)的支持。此版本内部集成了PMIx 1.1.2版本。
在Open MPI I/O中添加对PLFS文件系统的支持。
增加对UCX传输的支持。
简化Cray XC系统的构建流程。新增对原生SLURM的支持。
添加一个
--tunempirun命令行选项,用于简化设置多个环境变量和MCA参数。新增一个MCA参数"orte_default_dash_host",作为现有"orte_default_hostfile"MCA参数的对应选项。
在mpirun的
--host选项中添加指定所需槽位数量的功能。
注意
已知问题(将在v2.0.1版本中解决):
查看计划在v2.0.1版本中修复的问题列表: https://github.com/open-mpi/ompi/milestone/16?closed=1,以及 https://github.com/open-mpi/ompi-release/milestone/16?closed=1 (请注意,"ompi-release" Github仓库将在未来某个时间点合并/整合到"ompi" Github仓库中)
ompi-release#986: 修复fcoll/static模式下大型操作的数据大小计数器问题
ompi-release#987: 修复OpenMPI在Lustre上的性能问题
ompi-release#1013: 修复btl/openib默认设置中潜在的不一致问题
ompi-release#1014: 不要在集合操作中返回MPI_ERR_PENDING错误
ompi-release#1056: 从oshmem中移除废弃的profile代码
ompi-release#1081: 修复MPI_IN_PLACE对IALLTOALL{V|W}的检查
ompi-release#1081: 修复MPI_IALLTOALLW中的内存检查器
ompi-release#1081: 在MPI_(I)ALLTOALLW和MPI_(I)EXSCAN中支持MPI_IN_PLACE
ompi-release#1107: 允许未来PMIx支持资源管理器生成限制
ompi-release#1108: 修复稀疏组进程引用计数问题
ompi-release#1109: 如果指定为超额订阅,则禁用绑定
ompi-release#1122: 允许为空数据类型使用NULL数组
ompi-release#1123: 修复有符号与无符号的编译器警告
ompi-release#1123: 统一代码库中的最大主机名长度
ompi-release#1127: 修复MPI_Compare_and_swap
ompi-release#1127: 修复MPI_Win_lock与MPI_Win_fence一起使用时的问题
ompi-release#1132: 修复
--enable-mca-no-build帮助信息中的拼写错误ompi-release#1154: 确保成对集合算法正确取消自身资格
ompi-release#1165: 修复调试/详细消息输出中的拼写错误
ompi-release#1178: 修复OpenBSD 5.7上的ROMIO文件系统检查
ompi-release#1197: 修复Fortran pthread配置检查
ompi-release#1205: 允许使用外部PMIx 1.1.4和2.0版本
ompi-release#1215: 修复配置以支持NAG Fortran编译器
ompi-release#1220: 修复MPI_HINDEXED_BLOCK的组合器参数
ompi-release#1225: 修复MPI_DARRAY的组合器参数
ompi-release#1226: 禁用旧版内存钩子以兼容较新的gcc版本
ompi-release#1231: 修复针对某些XLC平台的新"patcher"支持
ompi-release#1244: 修复Java错误处理
ompi-release#1250: 确保TCP不被选用于RDMA操作
ompi-release#1252: 修复集合操作选择中的详细输出
ompi-release#1253: 为用户自定义的MPI_Op设置默认名称
ompi-release#1254: 在某些非阻塞集合操作中添加count==0检查
ompi-release#1258: 修复当使用外部pmix/hwloc/libevent时
make distclean的问题ompi-release#1260: 清理/统一 mca/coll/base 内存管理
ompi-release#1261: 移除静态构建中的“patcher”警告信息
ompi-release#1263: 修复零大小读/写操作的IO MPI_Request
ompi-release#1264: 为SLURM操作添加阻塞式栅栏
在mpirun无法自动确定可用插槽数量的环境中(例如,当使用未指定"slots"的主机文件时,或使用
--host但未在主机名后添加":N"后缀时),mpirun现在要求使用"-np N"来指定要启动的MPI进程数量。MPI C++绑定(已在MPI标准v3.0中移除)默认不再构建,并将在未来某个Open MPI版本中彻底移除。使用
--enable-mpi-cxx-bindings配置选项可构建已弃用/移除的MPI C++绑定。ompi_info现在会显示所有组件,即使它们没有MCA参数。美化输出现在会用虚线分隔不同组。
OMPIO现已成为并行I/O的默认实现方案,但在Lustre并行文件系统上除外(此时ROMIO仍为默认选项)。可通过mpirun的"--mca io ompi|romio"命令行参数来控制OMPI与ROMIO的默认选择。
根据Open MPI的版本编号规则(参见README),将主版本号升级到2表示此版本与之前版本的Open MPI不兼容ABI。您需要重新编译MPI和OpenSHMEM应用程序才能与此版本的Open MPI兼容。
由于维护者流失,移除了检查点/重启功能代码。:-(
修改了使用PSM和PSM2库时处理某些信号的行为。此前,PSM和PSM2库会捕获特定信号以生成回溯跟踪。经发现该机制会与Open MPI自身的错误报告机制产生冲突。如果未预先设置,Open MPI现在会设置IPATH_NO_BACKTRACE和HFI_NO_BACKTRACE环境变量来禁用PSM/PSM2对这些信号的处理。
注意
移除了旧版支持:
移除了对OS X Leopard系统的支持。
移除了对Cray XT系统的支持。
移除了VampirTrace。
移除了对Myrinet/MX的支持。
移除了旧版集体模块:ML。
移除了对Alpha处理器的支持。
移除了
--enable-mpi-profiling配置选项。
更新了第三方软件的内置/嵌入式副本:
将内部ROMIO副本更新为MPICH 3.1.4中发布的版本。
将内部libevent库更新至v2.0.22版本。
将内部hwloc副本更新至v1.11.2版本。
值得注意的新MCA参数:
opal_progress_lp_call_ration: 控制在Open MPI主进度循环期间低优先级回调的触发频率。
opal_common_verbs_want_fork_support: 该参数用于替代btl_openib_want_fork_support参数。
添加
--with-platform-patches-dir配置选项。为将PMI库安装在非默认位置的环境添加
--with-pmi-libdir配置选项。针对新版本libibverbs和OFED的各种配置相关兼容性更新。
对orte-dvm进行了大量修复/改进。特别感谢Mark Santcroos的帮助。
修复了ia32平台上计时器代码的问题。感谢Paul Hargrove报告此问题并提供补丁。
修复了64位原子计数器使用中的一个问题。感谢Paul Hargrove的报告。
修复了单例作业启动的问题。感谢Lisandro Dalcín的报告。
修复了在MPI_COMM_SPLIT_TYPE中使用MPI_UNDEFINED的问题。感谢Lisandro Dalcín的报告。
修复了PSM MTL中的一个编译器警告静默问题。感谢Adrian Reber报告此问题。
正确检测处于活动状态的Intel TrueScale和OmniPath设备。感谢Durga Choudhury报告此问题。
修复对Solaris Studio 12.5(测试版)编译器的检测和使用问题。感谢Paul Hargrove的报告和调试工作。
修复各种小型内存泄漏问题。
在创建空的MPI数据类型时允许使用NULL数组。
在某些数据类型创建函数中,将alloca的使用替换为malloc。感谢Bogdan Sataric报告此问题。
修复了在创建某些MPI数据类型时使用MPI_LB和MPI_UB的问题。感谢Gus Correa帮助解决此问题。
针对GNU Libtool问题实施了一个临时解决方案。感谢Eric Schnetter的报告和修复。
改进配置中的hcoll库检测。感谢David Shrader和Åke Sandgren报告此问题。
hcoll组件中的各种小错误修复。
ugni组件中的各种小错误修复。
修复了OFED 3.12及更早版本中XRC检测的问题。感谢Paul Hargrove对此问题的分析。
更新(非标准/实验性)Java MPI接口以支持MPI-3.1功能。
修复了Java绑定中MCA参数的一个问题。感谢Takahiro Kawashima和Siegmar Gross报告此问题。
修复了在Java绑定中使用持久请求时的问题。感谢Nate Chambers的报告。
修复了在OX X 10.11系统上Java绑定的问题。感谢Alexander Daryin报告此问题。
修复了Cray XC系统在大消息传输时的性能问题。感谢Jerome Vienne报告此问题。
修复了MPI_WIN_LOCK_ALL的一个问题。感谢Thomas Jahns的报告。
修复了多次向configure传递参数的问题。感谢QuesarVII的报告和提供的修复方案。
在Cray CLE 5.2及更高版本上添加对ALPS资源分配系统的支持。感谢Mark Santcroos。
对HACKING文件的修正。感谢Maximilien Levesque的贡献。
修复用户提供的归约运算符函数的问题。感谢Rupert Nash报告此问题。
修复了一个内部列表管理函数的问题。感谢Adrian Reber报告此问题。
修复了MPI-RMA PSCW周期的一个问题。感谢Berk Hess报告此问题。
修复了邻域集合操作中的一个问题。感谢Lisandro Dalcín的报告。
修复了单进程通信器中MPI_IREDUCE_SCATTER_BLOCK的问题。感谢Lisandro Dalcín的报告。
为MPI_COMM_SPLIT_TYPE添加(Open MPI特有的)额外类型变体。详情请参阅MPI_Comm_split_type(3)手册页。感谢Nick Andersen提供此功能增强。
改进作业启动阶段文件描述符的关闭处理。感谢Piotr Lesnicki报告并提供此改进。
修复了在使用Portals4时MPI_GET_ACCUMULATE和MPI_RGET_ACCUMULATE的问题。感谢Nicolas Chevalier的报告。
在ROMIO中使用正确的头文件以匹配lstat函数原型。感谢William Throwe发现此问题并提供修复方案。
为MPI_WIN_ALLOCATE添加缺失的Fortran绑定。感谢Christoph Niethammer的报告和修复。
针对Intel 2016编译器的Fortran相关问题修复。感谢Fabrice Roy报告此问题。
修复了一个Fortran链接问题。感谢Macro Atzeri发现并建议修复方案。
修复了在Fortran绑定中使用BIND(C)处理逻辑参数时的问题。感谢Paul Romano的报告。
修复了opal库中DL相关宏使用的问题。感谢Scott Atchley发现此问题。
修复了解析mpirun命令行选项时包含冒号的问题。感谢Lev Given的报告。
修复了Open MPI包配置文件中的一个问题。感谢Christoph Junghans的报告。
修复了MPI_INTERCOMM_MERGE手册页中的一处拼写错误。感谢Harald Servat的报告和修正。
根据MPI 3.1标准更新非阻塞发送的手册页。感谢Alexander Pozdneev的报告。
修复了针对PVFS2编译时的问题。感谢Dave Love的报告。
修复了MPI_NEIGHBOR_ALLTOALL{V,W}相关的问题。感谢Willem Vermin报告此问题。
修复了Cygwin上的各种编译问题。感谢Marco Atzeri提供这些修复方案。
修复子数组和darray数据类型调整大小的问题。感谢Keith Bennett和Dan Garmann的报告。
修复了MPI_COMBINER_RESIZED的一个问题。感谢James Ramsey的报告。
修复了一个hwloc绑定问题。感谢Ben Menadue的报告。
修复了共享内存(sm)BTL的一个问题。感谢Peter Wind的报告。
修复了异构支持的问题。感谢Siegmar Gross的报告。
修复了memchecker的一个问题。感谢Clinton Simpson的报告。
修复了拓扑函数中MPI_UNWEIGHTED的问题。感谢Jun Kudo的报告。
修复了MCA参数基础文件系统类型的问题。感谢Siegmar Gross的报告。
修复了一些Windows信息参数类型的问题。感谢Alastair McKinstry的报告。