zoukankan      html  css  js  c++  java
  • 在天河二号超算上运行python3时遇到的问题

    连接超算运行python3时遇到的问题及解决办法

    最近需要在超算上跑python3.6的程序,本来想在我笔记本上的windows系统新建虚拟环境,然后拷贝到超算上就好了,但是在windows系统新建的虚拟环境无法在超算上的linux系统激活,所以我只能用VMware新建一个linux虚拟机,然后在虚拟机上创建python3.6的虚拟环境,将依赖包装好后,在放到超算上运行。但还是遇到很多问题。

    1.超算上没有python3.6

    关于这一点可以使用module avail python查看系统有哪些python版本,然后找一个python3.6的版本假如说时python3.6.4/gcc-......。然后module load python3.6.4/gcc....加载,就可以使用python3了,这些是在登录节点做的,我试过在登陆节点加载python3后在计算节点运行python3发现没有这个指令,这个问题还没有搞明白,不过通过yhbatch还是可以在计算节点运行我的程序,蛮神奇。

    2.进入/退出计算节点

    使用yhalloc申请一个计算节点,然后yhq展示计算节点信息,最后有一个cn####(####是数字)使用

    ssh cn####即可进入计算节点,在使用exit可以退出计算节点

    3.虚拟环境里的绝对路径

    在python3使用virtualenv新建虚拟环境后虚拟环境中的activate文件内有一个变量的命名是绝对路径的,这样导致我们在另一个系统(比如这个超算)就算激活了虚拟环境,也无法使用虚拟环境中的python3,所以需要改变这个绝对路径,pip3的第一行同样有这个绝对路径,如果想在另一个系统通过pip3查看安装的包也要把pip3里的绝对路径改掉,改成新系统的绝对路径。PS:显示绝对路径命令为pwd

    4.虚拟环境中的python运行不了

    弄过虚拟环境,也改了绝对路径后,运行不了虚拟环境中的python3,报错version GLIBC_2.25 not found。本来想安装这个GLIBC_2.25的但是因为权限问题安装不了,最终放弃。想了另一个办法,因为这个问题是我们虚拟机内的python3需要的这个GLIBC版本在超算上没有,但超算上的python3是可以运行的,所以我用超算上的python3新建一个虚拟环境后,将这个新建虚拟环境中的python3拷贝到我的虚拟环境并覆盖掉原来的python3,这样我虚拟环境中的python3就变成了超算上的python3,就不会有这个问题了。

    5.使用yhbatch运行

    最后一定要使用yhbatch运行,因为无论是进入节点运行程序,还是用yhrun运行程序,当退出连接后,这个程序就会退出,所以一定要使用yhbatch运行,这样才不会在退出后结束程序,yhbatch内的任务运行后节点也会自动退出,不必担心机时浪费。

    脚本里的yhrun一定要有-n -N参数,即使为1。

    运行的.sh文件要带上后缀.sh且提前chmod +x 添加运行权限。

    在断开连接重连后超算上的python3环境就要重新module load了

  • 相关阅读:
    回顾python,就当做笔记了
    测试知识回顾
    转发 Python接口自动化
    性能测试脚本调优
    java
    新的一年,希望自己有所提升,在这简单的记录,自己的学习。
    navicat 连接 mysql 出现Client does not support authentication protocol requested by server解决方案
    tomcat context配置
    tomcat host 配置
    flyway使用
  • 原文地址:https://www.cnblogs.com/eggplant-is-me/p/12978172.html
Copyright © 2011-2022 走看看