我从以下链接http://www.cs.nyu.edu/wanghua/course...el/h3/mpi_lu.c下载了一个LU分解程序,编程运行得很好......我编写这个帖子的原因是任何人都可以帮我节省执行时间在集群中连接的节点的处理器上,这有助于我从集群中获取统计值。
请帮助我,因为我对MPI编程了解不多,我想要的是上述程序在集群中每个节点处理器上花费的时间。
答案 0 :(得分:0)
至少有两种方法可以获得你所追求的时间,或至少与它们近似接近。
如果你的集群上安装了一个作业管理系统(如果你没有安装),那么我希望它会记录计算中涉及的每个进程在每个节点上花费的时间。当然,Grid Engine会将此数据保存在其accounting
文件中,并提供实用程序qacct
来检查该文件。得知其他广泛使用的作业管理系统不提供类似的数据和功能,我会感到非常惊讶。
您可以编辑您的程序并在关键点插入mpi_wtime
来电。当然,像所有MPI例程一样,这只能在mpi_init
之后和mpi_finalize
之前调用;您必须做出其他安排来计算代码中超出MPI范围的部分。 (在mpi_wtime
之前和mpi_init
被调用之后,大多数不支持对mpi_finalize
的时钟同步调用的MPI实现,因为mpi_wtime
只是系统的包装器计时器例程,但不保证是可移植的)