首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与HPC集群合作

与HPC集群合作
EN

Data Science用户
提问于 2014-07-08 13:45:07
回答 4查看 397关注 0票数 11

在我的大学里,我们有一个高性能计算机集群。我使用聚类来训练分类器等等。因此,通常情况下,要向集群发送作业(例如python学习脚本),我需要编写一个包含(除其他外) qsub script.py命令的Bash脚本。

然而,我觉得这个过程非常令人沮丧。通常情况下,我在笔记本电脑上编写python脚本,然后登录到服务器并更新SVN存储库,所以我在那里得到了相同的python脚本。然后编写或编辑Bash脚本,以便运行bash脚本。

正如您所看到的,这是非常令人沮丧的,因为对于python脚本的每一个小更新,我都需要执行许多步骤才能在计算集群中执行它。当然,当我必须将数据放在服务器上并在服务器上使用数据集的路径时,任务会变得更加复杂。

我相信这里的许多人都在使用计算集群来完成他们的数据科学任务。我只想知道你们是怎么把工作送到集群的?

EN

回答 4

Data Science用户

发布于 2014-07-13 12:24:36

请网格管理员将您的本地计算机添加为“提交主机”,并安装SGE (我们假设您使用的是SGE,您实际上并不这么说),这样您就可以从您的机器上安装qsub了。

或者..。

使用emacs,然后您可以通过emacs的"tramp“ssh连接工具编辑您的HPC,并在另一个emacs窗口中打开一个shell。您没有说明您喜欢使用哪个编辑器/操作系统。您甚至可以将emacs配置为将文件保存在两个位置,这样您就可以将文件保存到本地机器以运行测试,并同时保存到HPC文件系统中用于大型作业。

票数 5
EN

Data Science用户

发布于 2014-07-09 00:44:28

有许多解决方案可以减轻将文件从本地计算机复制到集群中的计算节点的负担。一种简单的方法是使用一个接口,它允许对集群中的机器进行多个访问,比如丛集 (cssh)。它允许您通过一组终端屏幕一次向多台计算机输入命令(每个屏幕都是到集群中不同机器的ssh连接)。

由于您的集群似乎已经设置了qsub,所以您的问题可能与沿着机器复制数据有关(除了在每个节点中运行一个命令外)。因此,为了解决这一问题,您可以编写一个scp脚本,将内容复制到集群中的每个节点(使用SVN更好地解决这个问题),或者您可以设置一个NFS。这将允许对数据进行简单和透明的访问,并减少复制不必要数据的需要。

例如,您可以访问一个节点,将数据复制到这样的位置,并通过网络通信简单地远程使用数据。我不知道如何设置NFS,但您已经可以访问它(万一您的主文件夹在您访问的机器上是相同的)。然后,脚本和数据可以发送到一个地方,然后从其他地方访问。这类似于SVN方法,但它更透明/直观。

票数 4
EN

Data Science用户

发布于 2014-07-11 14:13:30

使用源版本存储库的方法是一种很好的方法,它实际上还允许您处理集群,然后将所有内容复制回来。

如果您发现自己在笔记本电脑上对Python脚本做了一些小编辑,然后更新集群上的SVN目录,为什么不直接在集群前端工作,进行所有需要的小编辑,然后,在一天结束时,将所有内容提交到那里并在笔记本上进行更新?

你所需要的就是熟悉那里的环境(操作系统、编辑器等)。或者安装您自己的环境(我通常会在我的主目录中安装最新版本的维姆Tmux等,并提供适当的dotfile,这样我就有宾至如归的感觉了)。

此外,如果大小允许,您也可以对数据进行版本化,甚至可以对中间结果进行版本化。我的存储库通常包括代码、数据(原始版本和已清理版本)、文档和用于发布的纸质源(latex)。

最后,您可以编写作业提交脚本,以避免手动修改脚本。qsub接受stdin中的脚本,也接受所有#$注释作为命令行参数。

票数 4
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档