我正在寻找一种方法来管理一些在构建时需要不同模块的超级计算集群上运行的一些研究代码。
例如:Server1 使用英特尔编译器和 MKL 库。Server2 使用带有 blas 和 lapack 库的 gcc 编译器。
这些差异会更改一些头文件并在某些地方(例如)进行int
替换,但最终代码通常保持不变并且应该产生相同的结果(在数值噪声范围内)。MKL_INT
这是一个活跃的代码库,我会定期更改零碎。目前我在 github 上有项目,从 Server1 创建了一个 master 分支,然后是两个名为 Server1 和 Server2 的新分支;修改了每个分支中的代码,以便它们按预期编译和运行并将更改推送到上游。
作为 git 新手,我在这里碰壁了。我现在是否能够使用此模型来处理一般代码(例如在工作分支上)并将这些更改合并到两个服务器分支?如果是这样,主分支本质上会变得无用吗?有没有更好的方法来处理这种情况?