1、HT 的配置在 openmpi 中添加 ht 模块主要有以下几个步骤:1:按照如下顺序检查 autotools 的版本号shell$ m4 versionshell$ autoconf versionshell$ automake -versionshell$ libtoolize -version并根据 gnu 的发布版本(http:/ftp.gnu.org/gnu/ ) ,更新以上工具到最新版本。2:在/ompi/mca/btl/ 目录下添加 ht 目录,并在目录下建立如下的配置文件:configure.m4,configure.params,Makefile.in,Makefile.am
2、,其中每个配置文件中重要的配置如下所示:configure.m4:AC_DEFUN(MCA_btl_ht_CONFIG,OMPI_CHECK_HT(btl_ht)AC_CHECK_TYPES(struct sockaddr_in,$1,$2,AC_INCLUDES_DEFAULT#ifdef HAVE_NETINET_IN_H#include #endif)dnl主要是控制 HT 模块的配置,通过和 SM 相似的方式,每次都固定的加入 HT 模块configure.params:主要是是指定生产的配置文件名PARAM_CONFIG_FILES=”Makefile”Makefile.in1):对
3、一些配置文件路径进行配置VPATH = srcdirpkgdatadir = $(datadir)/PACKAGEpkgincludedir = $(includedir)/PACKAGEpkglibdir = $(libdir)/PACKAGEpkglibexecdir = $(libexecdir)/PACKAGEam_cd = CDPATH=“$ZSH_VERSION+.$(PATH_SEPARATOR)“ make install.安装完成。HT 模块的主要框架Ht 的实现主要是在 btl 架构(framework)下,添加一个通用的组件(component ),在这个组件中,主要有如
4、下重要的函数和数据结构。1: Ht 模块的各个文件说明。btl_ht.c 包含主要的 HT 相关的函数如:与组件相关的函数:mca_btl_ht_add_procs(),mca_btl_ht_del_procs(),mca_btl_ht_finalize(),与 segment 相关的函数:mca_btl_alloc(),mca_btl_ht_free()与发送和接收相关的函数:mca_btl_ht_prepare_src()mca_btl_ht_prepare_dst()mca_btl_ht_send()mca_btl_ht_sendi()和事件相关的函数:mca_btl_ht_ft_eve
5、nt()btl_ht_component.c 中实现的主要函数如下:HT 组件的的打开和初始化:mca_btl_ht_component_open()mca_btl_ht_component_close()mca_btl_ht_component_init()btl_ht_frag.c 中实现的主要函数如下:不同发送片段的构造和初始化:mca_btl_ht_frag_constructor()mca_btl_ht_frag_eager_constrctor()主要的数据结构说明:struct mca_btl_ht_component_tmca_btl_base_component_2_0_0_t super; /* -enable-contrib-no-build=vt2:安装后指定动态链接库位置。$LD_LIBRARY_PATH=3:运行写好的测试程序,如下图示: