我是 Git 新手,需要有关管理 HPC 集群和本地计算机上文件版本控制的最佳工作流程的建议。
我的例程是在 HPC 上运行脚本 -> 将结果文件传输到我的笔记本电脑 -> 使用 R 进行分析。 我在笔记本电脑上的 R 文件会被跟踪(Github),但 HPC 上的脚本不会被跟踪。
我怎样才能跟踪脚本?
考虑到:
HPC分部: 为 HPC 脚本创建分支。 由于 HPC 与本地中的文件不同,不确定这是否是正确的方法。 两个存储库: Github 上 HPC 脚本和本地分析文件的单独存储库。 不确定效率。
最佳实践是什么?
谢谢
我的建议是将 HPC 脚本(shell 脚本和 R 脚本)和下游分析脚本(R 脚本和可能的 shell 脚本,用于将文件复制回笔记本电脑)保存在同一个 GitHub 存储库中。
最佳工作流程是仅在笔记本电脑上编辑脚本,
commit
和 push
到 GitHub。然后从 GirHub 在 HPC 登录节点上 pull
。此时,您可以提交 HPC shell 脚本来运行您的 R 脚本。
我会将其设为单向工作流程,这样您就永远不会在 HPC 集群上
commit
和 push
。您的 scp
复制 shell 脚本可用于将结果复制到您的笔记本电脑。或者您的下游分析脚本也可以直接在集群上运行。
您还应该在 GitHub 上设置 ssh 密钥(针对您的笔记本电脑和 HPC 登录节点),以便
push
和 pull
方便地不请求 GitHub 登录而正常工作。
这可以使用 RStudio 进行管理,因此您的所有编辑都在笔记本电脑上的 RStudio 中进行,并且非常熟悉和方便。此外,您还可以通过 git 快速周转来控制笔记本电脑上的所有脚本,将它们发送到任何 HPC 集群。