我对设置远程服务器以运行一些密集计算感兴趣。由于各种原因,我可能想要运行与我的开发盒不同的Linux发行版。假设硬件是正确的目标,并且我将自己限制在ISO C库中,可以预期在Linux发行版上运行可执行文件的任何问题都不同于代码是g ++编译的吗?
在我的具体情况下,我的开发框是最新的基于Ubuntu的。是否有任何Linux发行版基于Ubuntu的g ++编译代码将被挂起?选择远程服务器发行版时,我应该寻找什么才能确保无故障运行?
答案 0 :(得分:0)
我运行了许多计算密集的代码,这些代码是我在笔记本电脑和台式机上为我的工作开发的。直到我最近不得不更换我的笔记本电脑,这是一台速度慢得多的机器,RAM比我的桌面少得多,所以它与你描述的情况类似。
如果您的代码计算量很大,那么您可能希望它针对运行的任何计算机进行优化,无论是您的开发箱还是远程服务器。我认为最简单的方法是为你的代码设置一个makefile,这样你就可以将makefile和源代码复制到远程服务器上,然后只要dev框和服务器都有相同版本的gcc和any您的代码需要的其他库依赖项,您只需发出make命令即可在远程服务器上构建代码。如果您需要关于makefile的快速教程,this当我第一次开始使用它时,对我很有帮助。
以这种方式做事的好处是,您可以使用较小的数据集,较低分辨率的网格或任何您需要做的事情来开发和测试一台计算机上的代码,以降低计算强度。然后,一旦你知道它的工作原理,将其转移到更强大的机器上,以实际运行更强烈的版本。通过调用make命令,g ++可以使用-march=native
或-mtune=native
之类的标志来确保代码针对远程服务器的CPU进行优化,并且因为它是在该机器上编译的,所以你不应该这样做。 ; t必须担心在一台计算机上构建的可执行文件是否可以在另一台计算机上运行。