同一个C语言程序,若在两台不同指令系统的机器上运行,编译后的程序是不是一样?能否用同一个编译器编译?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同一个C语言程序,若在两台不同指令系统的机器上运行,编译后的程序是不是一样?能否用同一个编译器编译?相关的知识,希望对你有一定的参考价值。
RT
如果生成的程序不是在本机上运行的话,这种编译器叫做 cross compiler不是 cross compiler 的话,生成的程序就只能在本机以及与本机具有相同指令集的机器上运行了追问
编译后的程序是否一样?
??
追答指令集不一样的话,生成的二进制程序肯定是不一样的——不考虑虚拟机的情况
作为中间产物的 IR 可能是共同的
谢谢你啦~
参考技术A 编译后的程序二进制文件会不一样,但是程序运行的结果是一样的具有不同操作系统的 MPI 集群
【中文标题】具有不同操作系统的 MPI 集群【英文标题】:MPI cluster with different operating systems 【发布时间】:2020-11-04 14:05:01 【问题描述】:我想在两台机器上运行我的 MPI 程序,一台使用 ubuntu 18.04,另一台使用 Windows 10。可以用不同的操作系统组成一个集群吗? (我正在使用 MPICH)
如果可能,怎么做??我在网上找不到任何资源。
【问题讨论】:
是的,一般情况下是可以的。您甚至可以在不同 CPU 架构的组合上运行 MPI 程序。您所需要的只是一个在编译时支持异构环境的 MPI 实现。在您的情况下,您需要在 Linux 和 Windows 上拥有相同版本的 MPICH,以及启动可执行文件的方法。您可能会发现 this 很有帮助。 @HristoIliev 非常感谢。我会试试这个选项,并会提供更新 【参考方案1】:您应该在不同的发行版上安装相同版本的 MPI。在这种情况下,可以同时在 Linux 和 Windows 机器上使用 MPICH2。
但是,应该注意机器的性能特征起着重要作用,因为应用程序性能将受到最慢处理器的限制,因此不建议在具有不同性能特征的机器上执行 MPI 作业。另外需要注意的是,即使硬件相同,在 Linux 和 Windows 上 MPICH2 的 MPI 性能也会有所不同。
请注意,Windows 上支持的最后一个 MPICH 版本是 MPICH2 1.4.1p1。 Windows 不再支持 MPICH,包括 MPICH FAQ 中所传达的 Cygwin。
【讨论】:
以上是关于同一个C语言程序,若在两台不同指令系统的机器上运行,编译后的程序是不是一样?能否用同一个编译器编译?的主要内容,如果未能解决你的问题,请参考以下文章