Excel2010模型计算的高性能计算群集
时间:2010-02-10 17:35:09
作者:officeba 【认证】
在以前的岗位,我介绍了我们与Windows高性能计算团队努力,使客户能够在Windows计算HPC集群Excel模型工作。在这一后续后,我去更深入一点我们如何利用工具和Excel 2010和Windows高性能计算能力解决复杂的建模问题。
复杂系统建模使用Excel 2010和Windows高性能计算
数学建模复杂的问题更为主流比它曾经是和Excel起到了使这种情况发生了重大作用。从线性规划的统计模型,客户使用Excel来执行许多不同的建模技术。但有一个建模,我想谈谈这个职位:蒙特卡罗模拟特定类型。
假设我们为当地政府的工作,我们要计算我们可能将不得不在附近执行城市昂贵的维修工程,道路桥梁。我们知道,桥梁疲劳率是几个变量的函数:平均每天行车密度,每天平均气温和平均材料的耐久性只是少数浮现在脑海。我们也知道,每个变量的随机行为。也就是说,我们无法预测其确切价值 - 但我们知道什么样的值的范围,他们将我们知道,一些值比其他人更有可能。由于非系统我们建模,是解决问题的途径,我们确定的性质,是建立一个随机模型,并利用蒙特卡洛模拟来帮助我们,当我们将最有可能需要修复的桥梁。
我们将如何使用Excel 2010和Windows高性能计算这样做呢?
首先,我们需要创造一个桥上交通流的数学模型。我们不会真正建立在这个职位的数学模型,但我们会想想会是什么样子,因为了解了该模型的整体结构的理解是非常重要的解决方案。
我们的模型真的会包括一个多变量方程。当与所有变量的值提供的公式将计算的月数,我们应该期望的桥梁,保持无故障。这个方程的变量是,我们认为影响桥梁寿命不同的因素。我们已经知道其中的一些:平均每天行车密度,平均每日空气温度,材料寿命等方式,这是一个什么样的模式是否真的会严重简化,但是,这是确定。在这个后,我们只需要了解总体思路。
现在,让我们想想变量(参数的模型)。首先,我们知道他们有一定的随机性金额。也就是说,每个变量没有一个正确的价值 - 他们的价值观,而不是按照一个特定的概率分布。因此,我们不能说,每天平均行车密度将是每分钟11辆,例如。这将是太不切实际。但是,我们可以说,每天平均行车密度之间会有一些(例如)3辆每分钟每分钟15辆价值,在这个范围内的某些值比其他可能的(这是什么概率分布定义)。我们可以说为我们的模式中其他变数同样的事情。
通过提供对模型的变量,我们可以得出的模型的不同地段的各种可能的值可能的值。但是,该值是正确的价值?嗯,我们不能说哪个值是正确的,但我们可以说这是最有可能的价值。为了找出哪种最可能的值是我们需要重新计算一遍又一遍我们的模式,不同的输入变量(根据其分布)和记录的模型计算值的频率。这些频率,就会使我们能够确定值的范围是最有可能发生。这个过程称为蒙特卡罗模拟。
很明显,更多的时候,我们的计算模型中的时间越长。例如,将需要更长的时间来执行1000比100的计算模型计算。但大数法则告诉我们,做更多更好的计算,这样会导致我们认为,我们应该计算模型多次我们所能。但是,我们不能永远等待答案,我们需要以某种方式表现两者之间地段及大量的计算,并得到一个如我们可以快速有用的答案平衡,这在集群计算来英寸
通过利用一组,我们可以执行在给定的时间内更多的计算比我们可以在桌面计算机上的资源。而不是表演了一个又一个串行计算,群集上,我们同时进行计算。这使我们能够执行许多计算,而无需等待很长一段时间。我们的更多的计算机集群中有,更多的计算我们可以在同一时间。
在这个阶段,你可能有许多问题的有关如何确实有效。关于如何在群集中的每个节点计算的模型?我们如何分裂的节点之间的模式?我们如何共同努力的结果整理,形成最终的结果?现在让我们通过,并提供这些问题的答案。
建筑群集启用蒙特卡洛模拟与Excel 2010
计算能力在Windows HPC集群Excel工作簿中暴露的Windows高性能计算的SOA的API。 SOA意味着面向服务的架构,你可以了解更多有关此这里。
因此,要落实在群集上的模拟,我们使用SOA的API来创建一个自定义应用程序。
注意:Windows高性能SOA的空气污染指数可能会附带的应用程序,例如蒙特卡洛,你可以采取和使用您的解决方案。
集群使蒙特卡洛模拟的应用程序通常执行三项任务。首先,它的所有来划分成更小批量的计算,每个可以并行计算的计算。然后,应用程序使用异步计算集群每批。最后,它融合在一起,每一批的结果,并导出了仿真的最终结果。
我们的应用程序是免费的划分成批次计算然而,它希望。国家海洋局API没有真正地对我们如何做任何限制,并同样对合并计算的结果。我们可以自由地做到这一点,不过我们希望。这就是有一个API公开这项服务好处 - 我们能够融入我们的方式自定义应用程序的群集适合我们。
例如,我们可以创建一个通用的应用程序,致力于执行在Windows HPC集群蒙特卡罗模拟。或者我们可以集成到现有的应用程序作为群集功能。空气污染指数为我们提供了很多很多的灵活性。
设计群集
尽管这是Excel的桌面版本,在服务器上运行,我们不应该认为我们可以做Excel的群集上的任何事情可以做在桌面上。当在群集上运行时,Excel是一个计算引擎和大型数据矩阵结合。我们不应该以此为一般用途的电子表格程序,我们在桌面上使用,我们不应该期望,我们可以采取任何缓慢运行工作簿并将它魔术般地去上运行发车,速度越快。
工作簿需要为集群设计的。这意味着现有的工作簿中的工作,不一定就没有修改群集。以同样的方式,我们通常需要考虑有关代码略有不同的群集上运行,我们还需要考虑稍有不同的是对工作簿上运行群集。
当建立一个群集工作簿,我们必须确保只使用Excel工作簿中的网格和公式。互动等为中心的数据透视表和图表功能无法安全使用的群集。但是,我们可以创建自定义函数(UDF)的用户和使用群集上他们的工作簿。例如,在我们的流量的问题,如果我们需要使用公式,然后在我们的UDF就可以了。我们只需要确保加载项包含UDF的,是在集群中的每台计算机上安装。
一种高性能计算引擎
通过使用Excel中内置的功能,并具有灵活地开发和使用自定义工作表函数,我们可以建立一个模型在Excel中多种。在我们的测试,我们已经看到客户建立模型来解决各种问题,在金融,医学研究和农业,我们看到了惊人的性能,带来大规模的并行化。与一个客户,一个模拟了超过7天来计算了在桌面上时,运行在群集上少于2小时。这是一个惊人的性能提升。
另一件事...在Windows上运行的高性能计算机集群,在这些工作所使用的应用程序在某些情况下运行作业。这些情况使群集软件的监控和管理的申请。当一个Excel工作运行时,群集软件能够检测是否计算已由弹出的对话框(例如一个流氓消息框)阻止。如果发生这种情况,群集可以关闭该对话框,并打开了僵局计算。如果需要,集群还可以自动终止和重新安排工作,如果不能打破僵局的计算。
许多人在工业和研究使用Excel建立的数学模型。对于Excel 2010和Windows高性能计算,这些人现在可以实现更短的时间更多。我已经提到的例子,我们从7天的模拟少于2小时。那个特殊的例子是在金融,我们在其他领域同样惊人的结果。在农业方面,我们采取了一种模式在桌面上群集上只有3分钟1.5天。当总结Excel的集成与Windows高性能计算,我说,我们已经创建了一个高性能的计算引擎。我认为,总结了事情,而不是很好。