我们运行了多年来运行的Fortran控制台程序。最近,我们为办公室里的每个人购买了相同的新HP服务器级机器(4个处理器,8个gig ram,4个硬盘驱动器)。我们几乎按照我们所知的方式配置它们。我们可以在一台机器上编译Fortran程序,将可执行文件传递给不同的机器,在两台机器上执行它的速度非常慢,而在另外两台机器上它具有适度的性能(但不如我们从XP机器升级之前那么好)。 / p>
它几乎不使用控制台输出(大约40行),但输出大约15兆的文件。
我们打开任务管理器看看发生了什么,我们看到在慢速机器上它将一个CPU加载到大约15%。在快速机器上,它将所有CPU加载到大约40%(但其中一个似乎比其他CPU加载更多)。我记得,在XP上它将CPU加载到99%,并且运行得更快。
这些机器是员工的通用机器,并且有很多公司的臃肿软件。而且他们有可能会有略微不同的目录结构。但对我来说似乎完全令人费解的是为什么Vista没有给他们更多的CPU时间。如果CPU正在加载,我可能会责怪不同目录结构的性能变化,但是不能加载CPU只是让我大吃一惊。
大卫
答案 0 :(得分:1)
如果IO中存在瓶颈,则CPU不会被加载太多,因为它主要等待IO发生。人们甚至可以想象这会导致一个CPU与许多CPU问题,如果在另一个CPU中没有任何意义,因为等待之间有足够的时间。如果您使用外置高清并尝试在不同机器上在该高清上运行相同程序时也会出现差异怎么办?
答案 1 :(得分:1)
请进入Windows任务管理器,性能/ - 在[查看]选项中选择:[内核时间]并查看程序执行期间栏上显示的内容。
如果只有 15%加载四核+超线程的话,基本上说,OpenMP,MPI(或其使用的任何东西) - 没有正常工作 - 工作在 1 / 8 => 15%。您是否可以为特定系统运行MPI-test命令以检查每个盒子上多处理中的错误?因此,问题是 - 为什么多处理环境不起作用?
此致
RBO
答案 2 :(得分:1)
SWAG,但您检查过病毒扫描程序配置了吗?如果扫描程序未设置为忽略您在慢速计算机上写入的文件类型,则在写入磁盘之前,对这些文件的每次写入都可能会被截获并扫描。这可能会导致进程处于I / O等待状态,而不会经常进行调度。
答案 3 :(得分:0)
我假设您已经对所有已结束的程序进行了测试。您的控制台程序似乎不太可能出现问题。听起来肯定会发生内存冲突。