问题标签 [metis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1434 浏览

cmake - Metis:libmetis.a 消失,重新安装会创建 libmetis.so

事实

我在运行 Ubuntu 12.04 LTS 的桌面上安装了metis 5.1.0 。

最近编译了一个并行配置的软件,找不到文件/opt/metis/metis-5.1.0/lib/libmetis.a ,报了致命错误。

这对我来说看起来很奇怪,因为使用相同软件的早期版本和现有的 metis 安装一切都很好。

libmetis.a 的消失

不过,我有证据表明libmetis.a已从第一个 metis 安装的 stderr+stout 文件中安装。例如,从输出中的某处make install我可以看到:

/usr/bin/cmake -P cmake_install.cmake -- Install configuration: "" -- Installing: /opt/metis/metis-5.1.0/include/metis.h -- Installing: /opt/metis/metis-5.1.0/lib/libmetis.a -- Installing: /opt/metis/metis-5.1.0/bin/gpmetis

因此,某些操作必须在某个时候删除了 libmetis.a。我不记得或不知道哪个行动可以做到这一点。

重新安装metis

然后我通过运行我第一次使用的相同脚本重新安装了相同版本的 metis。程序是

sudo make uninstall sudo make clean sudo make config prefix=/opt/metis/metis-5.1.0 shared=1 cc=gcc gdb=1 debug=1 sudo make sudo make install

stdout+sterr 中的相应行已更改

/usr/local/bin/cmake -P cmake_install.cmake -- Install configuration: "" -- Installing: /opt/metis/metis-5.1.0/include/metis.h -- Installing: /opt/metis/metis-5.1.0/lib/libmetis.so -- Installing: /opt/metis/metis-5.1.0/bin/gpmetis

比较

  • cmake生活在另一条道路上。我想不起这样做的原因。我确实确认当前 cmake 已安装在 /usr/local/bin/cmake 中,并且 /usr/bin/cmake 不再存在。无论哪种方式,从那时起,cmake 的版本一直是 3.3.1(我相信)。
  • 安装libmetis.so而不是libmetis.a
  • make install逐行对比新旧stderr+stdout,发现cmake在第一次安装的时候已经搞的比较多。不幸的是,我已经覆盖了第一次安装的文件,无法提供更多细节。

概括

总结一下我注意到的变化是

  • 静态库libmetis.a消失了(盲点为什么/如何/何时)
  • cmake被取代(盲目的为什么/如何/何时)
  • metis 的山寨安装导致共享对象库libmetis.so而不是 libmetis.a,可能是在使用不同的 cmake 之后。我shared=1怀疑地在 config 命令中看到了这一点,但使用脚本是为了忠实地重复所有操作。(虽然并不总是正确编码好的意图。)

目的是按照并行软件的要求,重新放置 libmetis.a 文件。

任何建议提示和智慧来解决这个问题?提前感谢您的思考。

0 投票
3 回答
3139 浏览

javascript - MetisMenu 三级总是折叠

我正在使用 MetisMenu,当我在第三层菜单项上有一个链接时,一旦单击该链接,父菜单项就会全部折叠。

二级菜单项链接正常工作。

我的示例代码在这里:

enter code here

0 投票
1 回答
542 浏览

c++ - 构建共享 ParMETIS-4.0.3

如何构建 ParMETIS 的动态版本?我编译了 METIS 的共享版本,但是当我尝试通过将其链接到 libmetis.so 来编译共享 ParMETIS(在 make 文件中添加了它的路径,请参阅下面的 makefile 选项)编译失败,因为 ParMETIS 试图链接到 libmetis.a。如何强制它与 libmetis.so 链接?我编译了静态版本没有问题。谢谢您的帮助

配置选项。

gdb = 未设置

断言 = 未设置

assert2 = 未设置

调试 = 未设置

openmp = 未设置前缀 = 未设置

gklib_path = 未设置

metis_path = ~/bin/metis-5.0

共享 = 1

cc = mpicc

cxx = mpicxx

0 投票
3 回答
8002 浏览

c++ - 如何在 ubuntu 上安装 METIS

我想在 ubuntu 上安装 METIS 包。

我尝试了 install.txt 文件上的说明,该文件说要使用

我也这样做了,在安装 make 之后。

我也试过

安装成功但是

在这两种情况下都尝试使用它时,我得到了

如果有人问我使用 g++ -I/path/to/file myprogram.cpp 来指定 metis.h 所在的路径。

我相信我在安装中没有做正确的事情,但我无法确定它是什么。

有人可以帮我完成安装过程吗?

0 投票
2 回答
1837 浏览

linux - Linux 找不到 metas.h

我正在尝试安装 Metis。由于我在公共服务器上工作,因此无法以 root 用户身份安装它。所以我在我的帐户/home/jd/metis 中安装了metis。

当我尝试执行某事时,我得到

致命错误:metis.h:没有这样的文件或目录

我猜系统在 /usr/local/include 下寻找metis.h,但在那里找不到。如何让 linux 在 /home/jd/metis/include 目录下查找 metis.h?

我将此路径添加到 $PATH 变量。但仍然是同样的错误。请指教。

0 投票
1 回答
666 浏览

c++ - ParMETIS:未定义对“ParMETIS_V3_PartMeshKway”的引用

我已经构建并安装了 parmetis-4.0.3 并编写了一个简单的代码来测试它。但我收到一条错误消息:“未定义对‘ParMETIS_V3_PartMeshKway’的引用”

我拥有的C代码是:

我拥有的makefile是:

如果我make在命令行中输入,它将显示以下错误消息:

起初我以为我可能没有成功安装parmetis。但是如果我注释掉文件ParMETIS_V3_PartMeshKway中的行.cpp,它将成功编译。另外,如果我输入nm parmetis/lib/libparmetis.so | grep Kwa | grep Mes,它会显示:

所以我认为parmetis安装成功。关于我为什么会收到此错误消息的任何想法?

0 投票
1 回答
277 浏览

graph - 使用 METIS 划分异构架构

根据 METIS 官方手册,它可以将图划分为 k 个不相等的部分,具有不同的顶点容量:

METIS 的图和网格划分程序和 API 例程旨在将图划分为 k 个部分,以便每个部分包含顶点/元素/节点总数的预先指定部分。此外,在多约束分区的情况下,这些预先指定的分数是为每个顶点权重提供的。

现在我的问题是这怎么可能?我们如何告诉 metis 将图划分为 k 个不相等的部分,以及我们如何指定这些部分的容量。我找到了一个-tpwgts定义目标分区权重的选项,但我不明白它如何影响分区过程,并且手册中的描述不是很容易理解!那么请您描述一下如何制作不同大小的不同分区?

0 投票
1 回答
234 浏览

c++ - Metis - 块输出

我正在使用Metis,一个图形分区 API。我有一个来自节点的完整网格,并且想要对这个网格进行分区。在这个分区之后,cfd-solver 将在多个 gpu 上并行运行。问题是:我需要metis的块输出(每个维度中的节点数相同)。我知道,metis 只是在后台使用了 Graph。

然而,有可能获得块作为输出吗?

0 投票
1 回答
1246 浏览

fortran - 如何编译 METIS 5?

我正在开发一个需要使用METIS 的 API的系统。我的问题是如何为我的系统构建 Metis。

Metis 的旧版本,例如 4.0.2 版,只是将所有内容都放在一个文件夹 (lib) 中,而您make在该文件夹中运行。

最新版本的 Metis 有许多文件夹:libs、include、gklib 等。

该文档显示了如何使用该接口,但没有显示如何在我的系统中编译它。

我是否必须像编译一个独立程序一样编译整个库,还是有另一种方法来编译它并构建为接口?

0 投票
2 回答
613 浏览

python - 从 edgelist 创建邻居列表(Python:访问指定第一个值的元组)

使用 NetworkX,我获得了一个描述图中边(顶点对)的元组列表:

使用此列表,我想遍历每个顶点,并找到每个相邻顶点,但我想按顺序执行此操作。所以我想得到的是一个嵌套列表,其中i第 th 子列表包含 vertex 的每个邻居i

,但它也可以是另一种排序的数据结构。

但是,由于我的图可能包含一百万条边和顶点,因此我想实现一个不会遍历每个顶点的整个列表的例程,因为我想保持运行时较低。

有没有办法实现这一目标?很感谢任何形式的帮助。