【问题标题】:how to use qsub to implement a java program如何使用qsub实现一个java程序
【发布时间】:2014-04-03 06:06:28
【问题描述】:

我想在 hpc 中提交一个作业,并且该作业正在运行一个 java 应用程序。 我编辑 pbs_script 文件如下: #/bin/sh #PBS -q 串行 #PBS -l 节点=1:ppn=4 模块加载 java-jdk/1.7.0-17 java myjavapp

我提交了作业 $qsub pbs_script 但是作业返回错误:找不到或加载主类 myjava。但我使用相同的命令在命令行下运行 java 程序。有什么问题?

【问题讨论】:

    标签: java hpc qsub


    【解决方案1】:

    诸如此类的问题几乎总是在作业执行的环境与您在命令行上执行它的环境不同。要跟踪它,您通常只需要检查集群中所有节点上的所有内容是否可用,并且环境已配置为运行作业的 shell 会找到您要查找的内容。

    【讨论】:

      【解决方案2】:

      这通常是因为找不到类文件。在 PBS 中,提交脚本从用户的主目录开始执行,而不是您提交作业的位置。包含以下行通常很有用:

      cd $PBS_O_WORKDIR
      

      该命令将执行节点上的目录更改为提交作业的目录。因此,如果您能够从您提交的目录中运行java myjavapp(发出qsub),那么$PBS_O_WORKDIR 行应该可以工作。

      您的最终提交文件如下所示:

      #/bin/sh 
      #PBS -q serial 
      #PBS -l nodes=1:ppn=4 
      module load java-jdk/1.7.0-17
      cd $PBS_O_WORKDIR
      java myjavapp
      

      【讨论】:

        【解决方案3】:

        我们今天面临同样的问题。 我们可以在主节点和节点上运行 java 脚本,但是当我们通过 PBS 提交脚本时,它会失败。错误信息和你的一样。 我们通过给 java 程序提供类路径来解决这个问题。

        java -classpath myjava

        那么,qsub提交的java脚本就可以在服务器的任意节点上运行了。 :)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-05
          • 1970-01-01
          • 2012-02-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多