首页天道酬勤软件工程dfd图,rvm用什么软件看模型

软件工程dfd图,rvm用什么软件看模型

张世龙 05-13 09:04 58次浏览

前言安装METIS2安装CMake GUI3在CMake GUI中修改编译METIS4用于gk_arch.h文件5的VS生成解决方案6vs中的映射参考文献

0前言

图的划分是图数据处理中的重要环节,广泛应用于超大规模集成电路的设计、时空数据库的存储与访问、传输管理和数据挖掘等诸多领域的优化问题。 高效的图分割算法在大规模图数据的方差计算中至关重要。 在并行计算机上进行大规模的图表数据处理时,需要将图表数据分割分配给不同的计算节点,尽量满足各节点的负载均衡,尽量减小计算节点之间的通信成本,对图表分割结果的质量提出了很高的要求。

METIS是Karypis Lab开发的强大的图表分割包,用于分割大规模不规则图表、分割大网格、计算稀疏矩阵的嵌入顺序。 本文只介绍图表分割部分。 METIS是基于wxdfk Karypis等人提出的多级图分割模式[1]实现的,可以从C/C或ForTran程序调用独立的命令行程序和APP应用程序接口(METIS ) 本文介绍了用于下载、安装METIS包和拆分图的过程。 更多内容可访问Karypis Lab官网: http://glaros.dtc.umn.edu/gkhome。

1安装1METIS(1)下载软件包

下载地址: http://glaros.DTC.umn.edu/GK home/metis/metis/download

封装: metis-5.1.0.tar.gz

在此页面底部的Documentation中,可以下载manual.pdf的详细使用文档。 本节详细介绍了METIS软件包的使用,包括参数的含义和输入/输出格式。

)2)软件包解压缩

右键单击包并将其解压缩。

其中,BUILD-Windows.txt是Windows上的安装指南,具体内容载于本文。 此时,build文件夹为空,后续在此生成很多文件。

接下来,安装cmake图形界面(cmake GUI )并编译METIS。

2cmakeGUI安装(1)下载安装包

下载地址: https://cmake.org/download/

安装软件包: cmake-3.18.0-win64-x64.zip (以前查看教程并下载了. msi版本,但笔者在此版本中总是报告错误) )。

下载后,解压缩到某个文件夹。 地址以英语命名,对后续的环境变量配置很有用。

)2)配置环境变量

右键单击“我的电脑”或“这台计算机”,选择“属性/高级系统设置/环境变量”,然后单击“系统变量”下的“路径”,再单击“编辑”

(3)双击图标执行

找到tzdlq文件夹下的图标,然后双击以打开cmake的GUI界面。

在CMake GUI中编译METIS (1)选择METIS作为源代码,输出路径将成为metis文件下的build文件夹。

)2)点击Configure按钮,安装在本机上的VS版本生成器(! 请务必对应版本。 导致编译错误。 中,单击Finish按钮,等待一会儿,出现如图所示的Configuring Done。

)3)单击Generate按钮将显示Generating done,表示编译已完成,生成的METIS.sln文件位于METIS的Build文件夹中。

修改4gk_arch.h文件,在解压缩的文件夹metis-5.1.0中打开文件夹GKlib,找到文件GK_arch.h,注释掉图像中的一行代码,保存并关闭。

5VS生成解决方案(1)打开vs,选择“文件\打开\项目/解决方案”,打开metis build文件夹下的METIS.sln文件,如下图所示。

)2)修正了VS中下图位置的调试程序为Release。

)3)在VS界面左侧的解决方案管理器中,右键单击ALL_BUILD,选择“生成”,然后等待生成完成。 (如果不修正gk_arch.h,将发生错误)

METIS工具包安装到此完成。 以c调用METIS在VS中提供的API并绘制图表的过程为例进行说明。

用6VS制图(1)用vs创建空项目,创建新的cpp文件,并将以下代码复制到新的cpp文件中:

# include ' metis.h ' # include vector # include iostream # include fstream # include string # include streamusingnamespacestd; vector idx _ t func (vector idx _ tx adj,vectoridx_t adjncy,vectoridx_t vwgt ) ({idx_t nVertices=xadj.size )--

djncy.size() / 2; // 边数idx_t nWeights = 1;idx_t nParts = 2; // 子图个数idx_t objval;std::vector<idx_t> part(nVertices, 0);int ret = METIS_PartGraphKway(&nVertices, &nWeights, xadj.data(), adjncy.data(),vwgt.data(), NULL, NULL, &nParts, NULL,NULL, NULL, &objval, part.data());std::cout << ret << std::endl;for (unsigned part_i = 0; part_i < part.size(); part_i++) {std::cout << part_i << " " << part[part_i] << std::endl;}return part;}int main() {ifstream ingraph("文件路径/graph.txt");if (!ingraph) {cout << "打开文件失败!" << endl;exit(1);//失败退回操作系统 }int vexnum, edgenum;string line;getline(ingraph, line);istringstream tmp(line);tmp >> vexnum >> edgenum;vector<idx_t> xadj(0);vector<idx_t> adjncy(0); //点的id从0开始vector<idx_t> vwgt(0);idx_t a, w;for (int i = 0; i < vexnum; i++) {xadj.push_back(adjncy.size());getline(ingraph, line);istringstream tmp(line);while (tmp >> a >> w) {adjncy.push_back(a);vwgt.push_back(w);}}xadj.push_back(adjncy.size());ingraph.close();vector<idx_t> part = func(xadj, adjncy, vwgt);ofstream outpartition("文件路径/partition.txt");if (!outpartition) {cout << "打开文件失败!" << endl;exit(1);}for (int i = 0; i < part.size(); i++) {outpartition << i << " " << part[i] << endl;}outpartition.close();}

(2)添加METiS第三方依赖。
第一步:添加头文件(metis.h)的目录:项目\属性\配置属性\c/c++\常规\附加包含目录\编辑\选择路径为“…\metis-5.1.0\include”。

第二步:添加文件引用的lib静态库路径:项目\属性\配置属性\连接器\常规\附加库目录\编辑\选择路径为"…\metis-5.1.0\build\libmetis\Release"。

第三步:添加工程引用的lib文件名:\属性\配置属性\连接器\输入\附加依赖项\编辑\输入“metis.lib”。

(3)测试示例:修改cpp文件main函数中的“文件路径”为输入文件所在的路径。
输入文件内容:

7 11 0014 1 2 2 1 10 1 2 2 3 14 3 3 2 1 2 0 21 1 2 2 5 2 6 50 1 2 3 5 24 2 3 2 6 65 6 3 5

输入文件格式: 第1行的7和11表示图有7个顶点和11条边;第i+1行表示点i所邻接的点,后面紧跟边的权重,例如第2行的前两个数“4 1”,表示顶点1(图示中)与顶点5邻接,邻接边权重为1。(提示:若原始图的顶点id与行数不一致,需做一步转换,可创建一个文件记录行数与原顶点id的对应关系。)

输出文件内容:

0 11 12 13 04 15 06 0

输出文件格式: 第一列的数字为graph.txt中的行号,代表顶点id;原图被划分为两部分,通过第二列的0和1区分,示例中0 1 2 4 为一部分,3 5 6 为另一部分。

参考文献

[1] wxdfk Karypis and Vipin Kumar. A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs. SIAM J. Scientific Computing 20(1): 359-392(1998).

监控系统方案设计,监控系统技术方案 小切分节奏图示,五线谱大切分节奏求图