摘 要: 任务调度是网格计算的关键技术之一,其作用是根据当前网格系统的负载情况,对系统内的任务进行调度,以提高系统运行效率。在普通任务调度算法的基础上,提出了近视眼任务调度算法,并通过性能分析得出近视眼调度算法在计算复杂度上优于普通算法的结论。
关键词: 网格计算 任务调度 近视眼算法


  网格即一个集成的计算与资源环境,能够充分吸纳各种计算资源,并将它们转化成一种随处可得、可靠、标准且经济的计算能力。所谓计算资源,除了各种类型的计算机,还包括网络通信能力、数据资料、仪器设备、甚至人等各种相关的资源[1]。网格计算(Grid Computing),则是基于网格的问题求解,实现对丰富的网络资源和繁多的网络节点的管理,让它们形成一个有机整体,从而发挥最大效益。

本日志由 huzi 于 2008-12-22 10:32:49 发表到 学习随笔 中,目前已经被浏览 865 次,评论 0 次;

作者添加了以下标签: 启发函数任务调度近视眼算法网格计算网格环境近视眼算法

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文

 编程的核心是数据结构,而不是算法

Rob Pike, 最伟大的 C 语言大师之一 , 在Notes on C Programming(英文原文)中从另一个稍微不同的角度表述了 Unix 的哲学:

  1. 你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。
  2. 估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。
  3. 花哨的算法在 n 很小时通常很慢,而 n 通常很小。花哨算法的常数复杂度很大。除非你确定 n 总是很大,否则不要用花哨算法(即使 n 很大,也优先考虑原则 2 )。
  4. 花哨的算法比简单算法更容易出 bug 、更难实现。尽量使用简单的算法配合简单的数据结构。
  5. 数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。
  6. 没有原则 6 。

Ken Thompson —— Unix 最初版本的设计者和实现者,禅宗偈语般地对 Pike 的原则4 作了强调:

拿不准就穷举

via: newsmth-algorithm

本日志由 胡子 于 2008-09-23 17:47:10 发表到 学习随笔 中,目前已经被浏览 1199 次,评论 0 次;

作者添加了以下标签: 编程核心数据结构不是算法

 求平方根倒数的算法

下面这个求1/\sqrt{x}的函数号称比直接调用sqrt库函数快4倍,来自游戏Quake III的源代码。

float InvSqrt (float x){
    float xhalf = 0.5f*x;
    int i = *(int*)&x;
    i = 0x5f3759df - (i>>1);
    y = *(float*)&i;
    y = y*(1.5f - xhalf*y*y);
    return x;
}

我们这里分析一下它的原理(指程序的正确性,而不是解释为何快)。

本日志由 胡子 于 2008-09-23 17:43:08 发表到 工作随笔 中,目前已经被浏览 1639 次,评论 0 次;

作者添加了以下标签: 求平方根倒数算法

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文