GNU吉他是一个事务性的包管理器,支持per-user公司机组安装。用户可以安装自己的软件包,而不会影响每个软件包其他,但不会不必要地增加磁盘使用量或重建每个包裹。用户实际上可以创建尽可能多的软件环境就像他们想的那样作为虚拟环境但不限于到Python,或模块但不是仅限于系统管理员提供的模块。

使用Guix创建的软件环境包括完全可复制的:a从您笔记本电脑上的特定Guix提交构建的包将完全与您将其部署到的HPC集群上构建的集群相同,通常位对位.

我们相信这使Guix成为高性能计算(HPC)中的可复制软件部署。以下是如何开始。

安装Guix

您可以在5分钟内将Guix安装到笔记本电脑上:只需跟随二进制安装指令.

你是一个集群系统管理员,想进行集群范围的安装吗?结账指导.

安装软件包

假设您正在搜索50000多个包裹与Guix和第三方通道:

$guix搜索稀疏解算器名称:腮腺炎版本:5.5.1输出:+输出:所有内容系统:x86_64-linux i686-linux依赖项:gfortran@10.3.0 梅蒂斯@5.1.0 openblas@0.3.20+ 苏格兰威士忌@7.0.1位置:gnu/packages/mathemath.scm:3848:2主页:http://mumps.enseeiht.fr许可证:CeCILL-C简介:多前沿稀疏直接求解器description:MUMPS(多前沿大规模并行稀疏+直接解算器)求解稀疏线性方程组+A x=b使用高斯消去法。相关性:12

要将其与最新的GNU编译器工具链一起安装,请执行以下操作:

$guix安装腮腺炎gcc-toolchain将安装以下软件包:腮腺炎5.5.1gcc工具链12.2.0将建立以下推导:/gnu/store/kipa9k61zkhw4s3frs92w683ps23hpjj-profile.drv将下载3.1 MB提示:考虑通过运行以下命令设置必要的环境变量:GUIX_PROFILE=“$HOME/.GUIX-PROFILE”.“$GUIX_PROFILE/etc/PROFILE”或者,请参见“guix package--search-paths-p”$HOME/.guix-profile“”。

生成一次性环境

有时,你只想在不安装程序的情况下试用程序您的个人资料。那是哪里guix外壳要创建包含Python、NumPy和Scikit-learn,运行:

$python3bash:python3:找不到命令$guix外壳python python-numpy python-scikit-learn将建立以下推导:/gnu/存储/2g3mj1xdlq2rj8j0crl4sa68bqhmfsmd-profile.drv正在构建信息手册目录。。。正在为手动页面构建数据库。。。[env]$python3Python 3.9.9(main,1970年1月1日,00:00:01)[GCC 10.3.0]在linux上键入“help”、“copyright”、“credits”或“license”以获取更多信息。>>>导入numpy>>>导入sklearn>>>

自定义程序包

有时你会想定制软件包的方式建造。从命令行,可以应用转换,例如替换一个依赖项依赖关系图中有另一个。下面的示例替换了开放式mpi具有openmpi-thread-multiple在的依赖关系图中蒙普斯-蓬皮:

$guix安装mumps-openmpi\--with-input=openmpi=openmpi-thread-multiple

命令行的表达能力有限,但您可以进一步通过编写自己的包定义。

定义包

要添加包,请提供包裹定义,它看起来是这样的:

(定义公开 线性代数库
  (包裹
    (名称 “scalapack”)
    (版本 "2.0.2")
    (来源
     (起源
       (方法 url获取)
       (uri(用户界面) (字符串附加 "http://www.netlib.org/scalapack/scalapack网站-"
                           版本 “.tgz”))
       (沙阿256
        (基数32
         “0p1r61ss1fq0bs8ynnx7xq4wwsdvs32ljvwjnx6yxr8gd6pawx0c”))))
    (构建系统 cmake-build系统)
    (输入
     (列表 开放式mpi 格福特兰 拉帕克))
    (论据
     `(#:配置标志 `(“-DBUILD_SHARED_LIBS:BOOL=YES”)))
    (主页 "http://www.netlib.org/scalapack/")
    (简介 “可缩放数值线性代数库”)
    (描述
     “ScaLAPACK是一个Fortran 90高性能线性代数库并行分布式存储机器上的例程。ScaLAPACK解决了稠密和带状线性系统、最小二乘问题、特征值问题和奇异值问题。")
    (许可证 (许可证:bsd样式 "file://许可证"
                                “请参阅分发中的许可证。”))))

生成它从第三方存储库使用guix导入,或在Guix Packager网站接口.

您自己的包集合可以发布为通道.

如果目标超级计算机缺少Guix怎么办?

你仍然可以享受吉克斯的再现性和可定制性发送包二进制文件那里,利用可再定位的二进制文件:

笔记本电脑$scp`guix pack-RR hwloc-S/bin=bin`超级计算机:hwloc.tar.gz超级计算机$mkdir-p~/.local超级计算机$(cd~/.local;tar-xf~/hwloc.tar.gz)超级计算机$~/.local/bin/lstopo

其他选项包括建筑奇点/Apptainer或Docker图像.

了解更多信息

在中查找主要命令快速参考卡片。了解更多信息在参考手册中:德国|英语|西班牙尼奥|法国.

加入

阅读正在进行的Guix-HPC开发在我们的博客上.

吉他-HPCGNU吉他是协作的努力。欢迎您加入参加!

  • MDC公司
  • Inria公司
  • UBC公司
  • 联合技术健康安全委员会