设计用于执行HPC计算的java GUI

时间:2014-07-03 19:39:06

标签: java swing mpi hpc

很抱歉,如果问题太开放或不合适,但这是由于我对几项技术/软件缺乏了解,而且我很遗憾。我有一个项目,我有一个现有的java swing GUI,它在本地机器上运行MPI作业。但是,需要支持在HPC群集上运行MPI作业(假设使用ssh访问的Linux群集)。更具体地说,我需要执行的主要后端可执行文件(linux和windows)执行使用一个非常简单的主从系统,其中所有相关输出仅由主节点执行。目前,要在多台机器上运行我的后端可执行文件,我只需要将所有必需的文件复制到机器上(假设没有共享文件空间)并调用" mpiexec"或者" mpirun"通常的做法。主机生成的输出需要由我的GUI读入(或部分读入)。

我看到的主要问题是:在哪里运行GUI?有几个选项:

  • 本地计算机 - 潜在的问题是需要将数据从群集读回本地计算机(并且还要读取群集进程的stdout / stderr)以向用户显示当前进度。
  • 登录节点 - 占用宝贵资源的明显问题,并且在许多情况下将被禁止。
  • 计算节点 - 听起来很狡猾 - 特别是如果群集有排队系统(slurm,sun grid等)!也可能被禁止。

在这三个选项中,第一个似乎是最合理的,也似乎最不可能打乱任何HPC管理员,但也是最难实现的!该设置存在多个问题:

  • 将数据从群集传递到本地计算机 - 因为我们正在使用群集 - 根据定义,我们可能会生成大量数据,用户希望至少看到这些数据!另外,应该怎么做?我可以看到如何使用jsch或类似方法通过ssh在远程机器上执行命令,但是如果我当前在远程机器上登录 - 如何将信息传回本地机器?
  • 在本地计算机中显示后端的stdout / stderr。与上面类似。
  • 处理各个群集的特殊方面 - 我唯一能看到的方法是允许用户编写自定义的slurm脚本等。
  • 如何检测后端计算是否已完成/失败 - 此问题与用户编写的任何自定义slurm脚本进行交互。

希望从上面可以清楚地看出我很困惑。我已经看过apache camel,jsch,ganemede ssh,apache mina,netty,slurm,Sun Grid,open mpi,mpich,pmi,但是有太多的信息我觉得我需要问一下寻求帮助和建议。我非常感谢有关这些问题的任何意见!

由于

================================

修改

实际上,我刚刚遇到过这样的问题:link这似乎暗示如果群集允许进行交互式模式作业,那么您可以从计算节点运行GUI。但是,我对此并不了解,也不知道这是否常见。对于这方面的评论,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以利用here显示的方法:ProcessBuilder用于在SwingWorker的后台执行命令,而命令的输出是显示在合适的组件中。在示例中,ls -l将变为ssh username@host 'ls -l'。根据需要使用JPasswordField