轻松上手:Linux下metis与mt-metis的全面安装和使用教程

本文涉及的产品
语种识别,语种识别 100万字符
文档翻译,文档翻译 1千页
图片翻译,图片翻译 100张
简介: Linux下的metis与mt-metis的安装和使用本文的Linux包括VMare和windows下的WSL环境下安装metis串行和并行本文还讲述了电脑的线程以及和超线程的区别,如何寻找,如何判别,请看下文

Linux下的metis与mt-metis的安装和使用

  • 本文的Linux包括VMare和windows下的WSL环境下安装metis串行和并行
  • 本文还讲述了电脑的线程以及和超线程的区别,如何寻找,如何判别,请看下文

装备:

  1. Ubuntu18.6.4LTS
  2. gcc7.5.0
  3. cmake version 3.10.2

metis的安装

别相信网上的一键sudo apt-get install libmetis-dev,有很多问题!!!

  1. 下载链接->metis-5.1.0.tar.gz
  2. 解压成文件夹,名字假设为A
  3. 打开A/include/metis.h,根据自己电脑的位数(32or64)选择
// 64位
#define IDXTYPEWIDTH 64 
// 32位
#define IDXTYPEWIDTH 32
  1. 在A目录执行以下编译命令
make config
make
sudo make install
  1. 可能出现的问题:
  1. make[2]: Leaving directory '/home/xxx/metis/build/Linux-x86_64'
  1. 无伤大雅,没有问题
  1. 配置环境
  1. sudo vim /etc/ld.so.conf
  2. 末尾添加include /usr/local/bin保存
  3. 运行sudo ldconfig更新
  1. 测试环境
#include <cstddef> /* NULL */
#include <metis.h>
#include <iostream>
#include <vector>
int main(){
    idx_t nVertices = 6;//顶点个数
    idx_t nEdges    = 7;//边的条数
    idx_t nWeights  = 1;//权重
    idx_t nParts    = 2;//几类
    idx_t objval;
    std::vector<idx_t> part(nVertices, 0);
    // Indexes of starting points in adjacent array
    std::vector<idx_t> xadj = {0,2,5,7,9,12,14};
    // Adjacent vertices in consecutive index order
    std::vector<idx_t> adjncy = {1,3,0,4,2,1,5,0,4,3,1,5,4,2};
    // Weights of vertices
    // if all weights are equal then can be set to NULL
    std::vector<idx_t> vwgt(nVertices * nWeights, 0);
    int ret = METIS_PartGraphKway(&nVertices,& nWeights, xadj.data(), adjncy.data(),
                       NULL, 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 0;
}
  1. g++ -std=c++11 test.cpp -o test -lmetis
  2. 结果:
1
0 1
1 0
2 0
3 1
4 1
5 0

ps:分割是随机的,只要看你是不是分为0,1共2类

mt-metis的安装

mt-metis就是metis的多线程版本,能够进行并行计算
  1. 下载链接->mt-metis-0.7.2.tar.gz
  2. 解压成文件夹,名字假设为A
  3. 打开A/metis/include/metis.h,根据自己电脑的位数(32or64)选择
// 64位
#define IDXTYPEWIDTH 64 
// 32位
#define IDXTYPEWIDTH 32
  1. 回到A目录里,运行编译命令
./configure
make
sudo make install
  1. 可能的问题
  1. ./configure:command not found解决办法sh configure 然后添加执行权限 chmod u+x configure
  2. 如果是wsl安装,把第一个命令改成bash ./configure即可
  1. 使用方法
mtmetis test.graph 2 test.part -t -T n

解释:

  1. test.graph 是图表的文件,例如下面内容:第一行就是顶点和边的个数,顶点从1开始,下面就是每两个顶点连接成的边
10 10
10 2
1 3
2 4
3 5
4 6
5 7
6 8
7 9
8 10
9 1
  1. 2是分成的类别数量
  2. test.part是分割后生成的文件
  3. -t能显示mtmetis的运行时间
  4. -T n n代表线程数量,默认以全部线程数,不能超过最大的线程数

超线程与线程

接着上题,你可能会疑惑该如何查找自己的线程数量为多少?那什么又是超线程呢?
  • 以windows为例,打开任务管理器-》性能
  • 能够看到右下角有内核逻辑处理器,能发现逻辑处理器=内核*2,这里的逻辑处理器数量就是超线程数量,线程数量=内核数量
  • 超线程是intel提出的虚拟化处理器,在高性能计算中我们不能使用超线程,因此一定要知道自己最真实的线程数量有多少
  • 在vmare虚拟机的处理器配置中也用到了超线程,为了规避这种情况,可以设置1个处理器,内核数量为真实线程数量(因为每个人就是1个CPU处理器,x核,而intel使用超线程让内核*2)
  • 你可能还看到左侧线程有3000,4000。刚刚又说电脑只有n个总线程,远小于他!xd,可别忘了,线程切换的开销很小,电脑一会就切换了好多线程,所以你看到了有3,4k。


目录
相关文章
|
26天前
|
Ubuntu Linux
任何Ubuntu用户都应安装的四大Linux应用程序
当然,这款程序不需要太多介绍。我们面对的是网上最庞大最完整的多媒体中心,由于丰富的插件,我们能够高度细化地定制其每一项功能。这是我们的Linux发行版不可或缺的必备软件。 我们可以通过运行以下命令来轻松安装Kodi:sudo apt install kodi。
|
26天前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
8天前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
49 8
|
8天前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
26天前
|
Ubuntu 网络协议 Unix
Linux教程(Ubuntu为蓝本)之Linux介绍篇
SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”, Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。[1-2]
|
26天前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
26天前
|
Ubuntu Linux 数据安全/隐私保护
Win10安装Linux子系统教程!如何在Win10系统中安装Ubuntu!
登录系统后,输入cd /返回上一级,然后再输入“ls”查看一下系统文件目录,看看对不对!
|
26天前
|
Ubuntu Linux Shell
手把手教你安装适用于Linux的Windows子系统——Ubuntu
重启完成,你看看重新打开Ubuntu是不是发生了变化,等待几分钟,系统配置完成,根据提示设置用户名和密码即可
|
26天前
|
存储 Ubuntu Linux
安卓手机免root安装各种Linux系统:Ubuntu, Centos,Kali等
此外还可以安装Slackware、Archstrike等系统,还可以通过github查找方法安装更多有趣的东西。 昨日小编就是通过Termux安装的Kali Linux工具包。
|
26天前
|
Ubuntu 网络协议 Unix
在虚拟机中安装Linux Ubuntu系统指南
通过点击【浏览】按钮,您可以更改Ubuntu的安装位置。为确保系统稳定,建议避免将Ubuntu安装在C盘。您可以在D盘或其他磁盘中创建一个名为“ubuntu”的文件夹,并选择该文件夹作为安装位置,然后点击【下一步】继续。