【ARM版银河麒麟源码编译安装开源混合整数规划器SCIP和PySCIPOpt】

这篇具有很好参考价值的文章主要介绍了【ARM版银河麒麟源码编译安装开源混合整数规划器SCIP和PySCIPOpt】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ARM版银河麒麟修炼之路

第一章 ARM版银河麒麟源码编译安装开源混合整数规划器SCIP和PySCIPOpt



前言

目前在研的项目需要用到整数规划,SCIP作为性能较好的开源混合整数规划器之一,成为我的不二之选,利用与之配套的PySCIPOpt包,可以通过python方便进行调用和求解整数规划问题。但由于SCIP官网只提供了X86版的安装包,对于ARM版的银河麒麟,只能通过源码编译的方式安装。

本文参考了前辈们的文章ubuntu安装SCIP并在pyomo中调用,对于编译阶段提供了很大帮助,但这些文章均是针对X86架构系统,对于ARM版银河麒麟,重点需要解决编译环境搭建的问题。


一、本机软硬件配置

由于众所周知的原因,单位电脑不能联网,只能采用虚拟机安装ARM版银河麒麟,利用虚拟机搭建好环境后,再将环境依赖文件上传到单位电脑,虚拟机安装步骤参考qemu虚拟机 安装银河麒麟V10 arm架构系统 桌面版。
CPU采用QEMU模拟Cortex-A72 4核8线程,为ARMv8架构,与飞腾D2000/8相同,模拟的CPU参数如下:

processor	: 7
model name	: ARMv8 CPU
BogoMIPS	: 125.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

系统采用银河麒麟V10桌面版ARM版,系统内核信息如下,与ubuntu20.04LTS相同:

Linux chaoyue-dt3000f4 5.4.18-77.66.jc-generic #01 SMP Wed Jul 19 16:31:06 CST 2023 aarch64 aarch64 aarch64 GNU/Linux

二、编译环境搭建

按照下列步骤完成编译环境搭建,编译所需的依赖库均参考自SCIP官方编译指南。如果需要在实体机上安装PySCIPOpt,请同步在虚拟机上按照本节内容搭建环境,并安装SCIP。

1.添加Ubuntu20.04 apt源

由于银河麒麟V10官方源缺少编译所需的部分依赖库,因此通过ubuntu20.04的apt源进行安装,编译所需的依赖库与银河麒麟V10兼容,更换源的方法参考ubuntu20.04.2 linux arm更换清华源,银河麒麟在替换sources.list后,可能强制更新回官方源,可以在/etc/apt/sources.list.d/目录下新建一个ubuntu.list文件,将国内源镜像地址拷贝到该文件,保存后再执行sudo apt update即可。

2.apt安装依赖库

虚拟机执行下列命令下载依赖库:

sudo apt-get --download-only install wget cmake g++ m4 xz-utils libgmp-dev unzip zlib1g-dev libboost-program-options-dev libboost-serialization-dev libboost-regex-dev libboost-iostreams-dev libtbb-dev libreadline-dev pkg-config git liblapack-dev libgsl-dev flex bison libcliquer-dev gfortran file dpkg-dev libopenblas-dev rpm libz-dev libgmp-dev libreadline-dev libncurses-dev

下载完成后,将虚拟机/var/cache/apt/archives目录下的所有文件拷贝到实体机任意位置,进入拷贝的目录,在虚拟机上执行下列命令安装依赖库:

sudo dpkg -i *.deb

3.源码编译安装其它依赖库

由于Hmetis、Metis、Ipopt with Mumps、Gmp、LAPACK无法通过apt安装,因此采用源码编译的方法安装,执行下列命令下载源代码:

wget -O hmetis-1.5-linux.tar.gz http://glaros.dtc.umn.edu/gkhome/fetch/sw/hmetis/hmetis-1.5-linux.tar.gz
wget -O metis-5.1.0.tar.gz http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
wget -O Ipopt-3.14.14.tar.gz https://github.com/coin-or/Ipopt/archive/refs/tags/releases/3.14.14.tar.gz
wget -O Mumps-3.0.zip https://github.com/coin-or-tools/ThirdParty-Mumps/archive/refs/heads/stable/3.0.zip
wget -O MUMPS-5.6.2 https://coin-or-tools.github.io/ThirdParty-Mumps/MUMPS_5.6.2.tar.gz
wget -O lapack-3.12.0.tar.gz https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.12.0.tar.gz
wget -O gmp-6.3.0.tar.xz https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz

将下载后的源代码文件上传至实体机,解压到任意位置。

1.安装metis

由于是64位CPU,打开metis目录下的include/metis.h文件,对第33行和43行进行修改。

33: #define IDXTYPEWIDTH 64
43: #define REALTYPEWIDTH 64

返回metis所在目录,执行下列命令编译安装,其中prefix为安装位置,不加prefix则默认安装至/usr/local/。

make config prefix=~/metis-5.1.0/
make
make install

2.安装LAPACK

打开LAPACK所在目录,执行下列命令安装,其中-DCMAKE_INSTALL_LIBDIR=$HOME/.local/lapack是LAPACK安装目录,根据需要修改。也可不加此参数,直接安装到默认位置。

mkdir build
cd build
cmake -DCMAKE_INSTALL_LIBDIR=$HOME/.local/lapack ..
cmake --build . -j --target install

3.安装GMP

进入GMP目录,执行下列命令进行安装:

./configure
make
sudo make install

4.安装IPOPT

进入IPOPT目录,执行下列命令进行安装:

./configure
make
sudo make install

5.安装Hmetis

Hmetis是可执行二进制文件,直接解压即可。

三、编译安装SCIP

从SCIP下载地址下载SCIP源代码,注意选择平台为linux,或执行下列命令下载,然后上传至实体机。

wget -O scipoptsuite-8.1.0.tgz https://scipopt.org/download.php?fname=scipoptsuite-8.1.0.tgz

在实体机上执行下列命令解压scip,执行以下命令生成编译信息:

tar -xvzf scip-8.1.0.tgz
cd scip-8.1.0
mkdir build
cd build
cmake ..

在build目录下ug/CMakeFiles/parascip.dir/link.txt中添加编译参数-lpthread,保存,然后输入以下命令编译安装,如果不修改的话,在编译阶段会提示pthread链接错误。

make
make check
sudo make install

在终端输入scip,出现以下信息,代表SCIP安装完成,可以建模享用强大的开源求解器了。
麒麟arm编译安装python,ARM版银河麒麟修炼之路,arm开发,linux,ubuntu

四、编译安装PySCIPOpt

首先在虚拟机上按照上述步骤安装SCIP,然后执行以下命令下载PySCIPOpt源码,注意PyScipOpt版本要与SCIP版本对应,此处使用4.4.0版本,对应SCIP8.x版本。

wget -O PySCIPOpt-4.4.0.zip https://github.com/scipopt/PySCIPOpt/archive/refs/tags/v4.4.0.zip

进入PySCIPOpt目录,激活python虚拟环境,注意虚拟环境要与实体机相同,然后执行下列命令安装:

python -m pip install .

输出以下结果即为安装成功,同时会在directory位置生成.whl文件,将该文件上传至实体机,在实体机上使用pip install安装即可。
麒麟arm编译安装python,ARM版银河麒麟修炼之路,arm开发,linux,ubuntu
终端进入python,然后import pyscipopt试一下,出现以下界面表示安装成功,pyscipopt实际上是python调用scip的接口,求解过程仍然是使用scip,所以性能上差别不大,但是python建模那是相当方便啊,尽情享用吧。
麒麟arm编译安装python,ARM版银河麒麟修炼之路,arm开发,linux,ubuntu


总结

本文介绍了ARM版银河麒麟安装SCIP和PySCIPOpt的方法,如有问题可留言,后续将继续撰写国产软硬件平台适配的相关文章。文章来源地址https://www.toymoban.com/news/detail-859674.html

到了这里,关于【ARM版银河麒麟源码编译安装开源混合整数规划器SCIP和PySCIPOpt】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 银河麒麟arm版离线安装chromium包

    有时候,我们需要在没有互联网连接的环境中安装软件。以下是通过 apt-get 下载 Chromium 浏览器并在离线环境中安装的步骤: 翻到最下面有我准备好的包 下好之后直接从第三步开始 在有互联网连接的机器上运行以下命令,下载 Chromium 浏览器及其依赖项的软件包: 将下载的软

    2024年02月04日
    浏览(89)
  • 银河麒麟arm版服务器安装docker

    在线安装:输入下面命令,等待安装完成即可 查看是否安装成功  

    2024年02月11日
    浏览(47)
  • 银河麒麟服务器arm、x86安装qemu虚拟机

    使用下面的命令安装的话只能安装同构的虚拟机,如arm的就只能安装arm的;x86的就只能安装x86的 等待安装完成 直接复制脚本执行即可 使用源码编译安装就能创建异构的虚拟机了,比如:在arm服务器上创建x86的,在x86上创建arm的 我测试使用的是qemu-4.2.0.tar.xz这个版本,因为我

    2024年02月02日
    浏览(70)
  • 银河麒麟服务器v10版本在arm架构下安装配置onlyoffice

    安装 onlyoffice 环境信息 操作系统版本:Kylin Linux Advanced Server V10 (Lance) cpu架构:aarch64 onlyoffice版本:onlyoffice-documentserver-7.5.1-23.el7.aarch64 阅读扩展:因为kylin本身的yum源资源有限,需要一些扩展包时经常找不到,我参照centos7(查看内核版本及dnf可能更接近centos8)进行扩展安装

    2024年01月16日
    浏览(113)
  • 银河麒麟v10x86或者arm离线安装服务

    最近有个项目,甲方的服务器用的全是国产化服务器银河麒麟,架构是x86的然后也无法连接外网,需要离线安装服务 正常思路就是找到离线安装的包,然后拷贝到现场的服务器中进行安装 所以问题就在于如何找到离线安装的包 我这次是需要安装离线nginx,keepalived 首先就是需

    2024年02月08日
    浏览(203)
  • qemu+kvm安装银河麒麟V10SP1 arm64 虚拟机

    系统镜像 Kylin-Desktop-V10-SP1-Release-2107-arm64.iso QEMU_EFI.fd(下载地址 http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd) 注:麒麟系统要求磁盘大小在50G以上. 参数说明: -m 4096 指定内存大小,单位MB -cpu cortex-a72 CPU 型号 -smp 8,cores=8,threads=1,sockets=1 1颗CPU,8核8线

    2024年01月21日
    浏览(104)
  • 银河麒麟服务器系统sp2-arm版本安装mlnx网卡驱动

    一、基本环境 1.1 操作系统版本信息 1.2 驱动版本信息 下载对应系统版本以及架构的驱动包,下面示例是下载的银河麒麟V10-SP2-0524-arm版本对应的驱动iso文件: 1.3 网卡型号 华为SP380/SP333 二、未升级内核驱动安装步骤 2.1 安装依赖包 2.2 挂载官网下载的iso驱动文件到/mnt目录 2.3

    2024年02月02日
    浏览(105)
  • VMware Workstation安装银河麒麟V10系统,配置gcc交叉编译环境(鲲鹏服务器)

           在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。       要进行交叉编译,我们需要在主机平台上安装对应

    2024年02月04日
    浏览(135)
  • 【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6&HDP3.3.1(HiDataPlus)

    🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 感谢点赞和关注 ,每天进步一点点!加油! 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 目录 一、版本信息 二、HiDataPlus介绍 2.1 Apache Components 2.2 Amba

    2024年02月07日
    浏览(45)
  • 【KingbaseES】银河麒麟V10 ARM64架构_安装人大金仓数据库KingbaseES_V8R6(CentOS8)

    🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包