Scripting 算法建议最好的节点来执行高要求的计算

Scripting 算法建议最好的节点来执行高要求的计算,scripting,cluster-computing,Scripting,Cluster Computing,在工作中,我们进行要求很高的数值计算 我们有一个由几个具有不同处理能力的Linux机箱组成的网络。在任何给定的时间,可以有零到几十个人连接到一个给定的盒子 我创建了一个脚本,使用Linpack基准测试MFLOPS(每秒百万次浮点操作);它还提供了内核和内存的数量 我想将此信息与平均负载(使用正常运行时间命令获得)一起使用,以建议执行高要求计算的最佳计算机。换句话说,是下午3点;两小时后我有个会议;我需要运行一个要求很高的过程:哪个节点最快能得到答案 我设想了一个脚本,该脚本将输出以下建议: SU

在工作中,我们进行要求很高的数值计算

我们有一个由几个具有不同处理能力的Linux机箱组成的网络。在任何给定的时间,可以有零到几十个人连接到一个给定的盒子

我创建了一个脚本,使用Linpack基准测试MFLOPS(每秒百万次浮点操作);它还提供了内核和内存的数量

我想将此信息与平均负载(使用
正常运行时间
命令获得)一起使用,以建议执行高要求计算的最佳计算机。换句话说,是下午3点;两小时后我有个会议;我需要运行一个要求很高的过程:哪个节点最快能得到答案

我设想了一个脚本,该脚本将输出以下建议:

SUGGESTED HOSTS (IN ORDER OF PREFERENCE)
HOST1.MYNETWORK
HOST2.MYNETWORK
HOST3.MYNETWORK
如果平均负载较低,则此类建议应支持快速计算机(高MFLOP),并且随着给定节点的平均负载增加,应支持可用节点(即,我宁愿在没有用户的较慢计算机中运行,也不愿在有40个用户登录的8核计算机中运行)

我应该如何划分优先级?您将使用什么算法(基本原理)?同样,我得到的是:

  • 平均负荷(1min、5min、15min)
  • MFLOPS测量
  • 登录的用户数
  • RAM(已安装且可用)
  • 芯数(对规范化平均负载很重要)

  • 有什么想法吗?谢谢

    您考虑过分布式计算方法吗?并不是所有的计算都可以分解成多个cpu来处理。但也许您的问题空间可以从一些并行化中受益。看看。

    您是否考虑过分布式计算方法?并不是所有的计算都可以分解成多个cpu来处理。但也许您的问题空间可以从一些并行化中受益。看看。

    你没有足够的数据来做出明智的决定。这听起来似乎是非常不稳定的调度:“在任何给定的时间,可以有从零到几十人连接到一个给定的盒子。”因此,当前负载不一定反映机器的未来负载

    要正确评估应该使用什么主机来减少计算时间,需要知道当前作业何时终止。如果一台功能强大的机器即将完成它的大部分工作,那么它将是一个很好的候选者,即使它目前的负载很高

    如果只想根据当前情况进行猜测,可以进行加权计算,找出哪些主机具有最多可用MFLOP

    MFLOPS available=主机的MFLOPS+(逻辑处理器数量-负载平均值)

    按可用的MFLOP对主机进行排序,并按降序提出建议

    该公式假设主机的MFLOP与其平均负载线性相关。这可能不完全正确,但可能相当接近


    我喜欢最近的平均负载,因为它更接近当前/未来的情况,而15分钟前的作业现在可能已经完成。

    您没有足够的数据来做出明智的决定。这听起来似乎是非常不稳定的调度:“在任何给定的时间,可以有从零到几十人连接到一个给定的盒子。”因此,当前负载不一定反映机器的未来负载

    要正确评估应该使用什么主机来减少计算时间,需要知道当前作业何时终止。如果一台功能强大的机器即将完成它的大部分工作,那么它将是一个很好的候选者,即使它目前的负载很高

    如果只想根据当前情况进行猜测,可以进行加权计算,找出哪些主机具有最多可用MFLOP

    MFLOPS available=主机的MFLOPS+(逻辑处理器数量-负载平均值)

    按可用的MFLOP对主机进行排序,并按降序提出建议

    该公式假设主机的MFLOP与其平均负载线性相关。这可能不完全正确,但可能相当接近


    我喜欢最近的平均负载,因为它更接近当前/未来的情况,而15分钟前的作业现在可能已经完成了。

    你不需要知道失败。我有没有去确定剧本

    PDC在全国范围内运营领先的高性能计算机。PDC提供了易于访问的计算资源,主要满足


    你不需要知道失败。我有没有去确定剧本

    PDC在全国范围内运营领先的高性能计算机。PDC提供了易于访问的计算资源,主要满足


    我喜欢你的观点,我希望从这个简单的脚本开始,我将减少节点调度的波动性——如果更多的人使用这个脚本,它将有助于平衡负载。至于任务持续时间,你是完全正确的,我会找到一种方法将其考虑在内(我们确实有一些任务的估计)。我喜欢你关于“可用MFLOP”的方法。谢谢您可以通过在具有已知MFLOP的主机上自行运行计算来计算近似MFLO,并乘以主机的MFLOP运行计算的秒数。一旦有了这些,您就可以根据主机的可用MFLOP来估计计算所需的时间。对于奖励积分,制作一个简单的web应用程序来管理调度,以便用户可以调度不同优先级的计算。我喜欢你的观点,我希望从这个简单脚本开始,我将减少节点调度的波动性-如果更多人使用该脚本,它将有助于平衡负载。至于任务持续时间,你完全正确