Symphony 的作用如前面分析的那样,提高 Murex 计算性能最直接的方法就是提高其并行计算的速度和资源利用率,这正是 Symphony 最擅长解决的问题。
Symphony 是资源调度和高性能计算方面的专家,Symphony 会将其管理的计算机集群当成一个整体,统一管理和调度整个集群的所有资源,根据客户端提交的作业和资源请求来分配计算资源(CPU, GPU, 内存),将客户端提交的作业分配在集群里多台机器上进行并行计算,并将计算结果返回给客户端,这就保证了任务执行的并行度,提高作业的计算速度,并充分利用了整个集群中的有效资源。除此之外,Symphony 支持用户配置各种资源计划来应对资源不足和资源空闲的情况,使整个集群的资源得以充分利用。当存在计算资源竞争时,计算资源会优先分配给优先级较高且拥有的资源未满足的任务,暂时得不到资源的任务会等待,当有空闲资源出现时此类任务会立刻获得资源进行运算,这些措施保证了资源能够得到最充分的利用。
Symphony 也支持资源的共享,暂时不需要资源的用户可以将资源放入共享池中,或者出借给其他用户,当作业请求到达时,出借资源的用户可以在规定时间内收回资源,这极大的提高整个集群的资源利用率和运算的效率。
Symphony 中资源管理和任务调度的逻辑可以简单表示为图 4,图中的任务可以根据其优先级获得对应的资源,多个任务可以同时在不同的资源上并行运行。
图 4. Symphony 任务示意图 |