officeba > 单独文章


卸载UDF中的一个Windows HPC集群

卸载UDF中的一个Windows HPC集群


在我以前的文章中我谈到如何使工作簿,在Windows HPC集群计算。在这个后,我将描述高性能集成,我们在Excel 2010年制定的其他作品:卸载的UDF的计算到Windows HPC集群。

概览
用户定义函数是Excel的可扩展性最流行的作品之一。 UDF的使客户能够创建自己的工作职能,在公式中使用他们,就像他们使用Excel的内置函数。多年来,客户建立了广泛的UDF解决不同的问题。

2007年之前到Excel时,Excel总是计算了单线程方式的UDF。 2007年,我们增加了对UDF的能力参与多线程重新计算(地铁)。这意味着,Excel能通过评估在不同的线程UDF的同时进行。

现在,在Excel 2010年,我们进一步发展的UDF的能力。 Excel是现在能够代表特定UDF的计算,一个兼容的计算集群。这意味着,而不是UDF的是台式电脑上的计算,实际计算UDF是在远程计算集群。当Excel代表的UDF的评价群集它这样做异步。这意味着,Excel没有为UDF的等待返回结果之前,Excel继续计算工作簿的其他部分。当UDF的完成,是由一个回调到Excel,让Excel中知道该值可用。 Excel将并入计算树时,准备了价值。

由于这些UDF的异步进行评价时,Excel可以为UDF的评估多个请求的时间内计算小时期集群。这是那里的计算集群发挥作用的资源。在先前的帖子,我叙述集群的并行计算能力。这些功能使计算集群,以评估在同一时间多的UDF。这对降低整体所需要的时间执行多个UDF的评价,从而可以减少所需的计算工作簿包含UDF的长时间运行的时间效应。

有一点我想说明的是,卸载UDF的并不是工作簿或缓慢缓慢的UDF银弹。有多种因素影响,是否卸载的UDF计算集群的反而会是工作簿中的计算速度比本来已经在桌面上的UDF的评价。我不打算在这个职位这一议题的细节。我只是想提高我的手,使你认识到这一点,首先。

连接器,容器和XLLs
第一点讨论的是,在只有一个XLL实施UDF可以卸载到群集。在VBA实现UDF或在COM自动化加载项不能被卸载到群集。我们将讨论如何使一个XLL集群安全的UDF在后稍晚。

为了评估一个Excel将在群集上的UDF,一个组件被称为群集连接器必须在桌面上运行Excel的电脑上安装。这个组件之间充当Excel和集群代理。 Excel不会真正理解如何执行远程调用到群集,一切都懂得如何接口连接器。它是连接器,知道如何执行远程调用到群集,以及如何通过结果返回到Excel。

UDF是评估在使用另一组件群集,叫做容器。容器负责加载XLL中,UDF和调用返回的结果返回到桌面上的连接器。

该XLL中实现UDF的,必须同时安装在桌面上的PC集群和。这是因为Excel需要加载到内存,还因为用户可以配置是否安全UDF的群集上的群集或桌面上的计算UDF的原型(我们将在后面讨论这一点后)。



连接器和容器的组件,客户和/或独立软件开发商的发展。高性能计算的Windows团队将交付其用于高性能计算的Windows即将发布一个连接器和容器。

启用UDF的卸载
用户可以指定是否为群集的UDF注册的安全实际计算本地或卸载到群集。在高级Excel选项窗口公式部分有一个新的设置称为允许用户定义XLL函数的计算上运行群集。启用此选项仅当至少有一个连接器安装。用户还可以选择连接应使用Excel中通过选择下拉群集类型连接器的名称。

  
通过此选项,用户告诉Excel中,通过指定的连接器支持UDF的应该是卸载到计算集群,而不是在本地转化。

集群安全的UDF
如前所述,集群安全的UDF必须在一个XLL实施。您不能创建群集安全的UDF在VBA或在COM自动化加载项。此外,多国安全UDF不能以任何方式进行交互,除非返回他们的价值与Excel。这意味着,一个UDF的(例如)查询工作簿属性不能在群集上执行。该UDF的输入数据,都必须传递给所有的UDF和输出数据参数必须通过作为该UDF返回值到Excel。

我们还必须小心我们如何储存和使用数据(如国家)在多个UDF的调用。由于UDF将如何在群集评估的性质,任何数据存储内的XLL中全局变量将不会被调用的UDF之间依然存在。一个更好的选择是存储状态(如果我们必须有)以另一种方式,如数据库的状态。

要告知Excel的UDF是群集的安全,我们附加一个&字符在该类型的文本参数结束xlfRegister的API。例如,如果我们的群集安全的UDF返回一个int并以此为参数,一个int类型的文字注册为群集的安全将是UDF的:“JJ&”。

连接器和集装箱
合计,连接器和容器实施卸载机制。该连接器是安装在桌面计算机和懂得如何使用Excel和接口与特定集群,它连接到。由于与群集通信的具体实施在连接器组件,而不是内部Excel时,Excel能够卸载UDF的任何类型的集群,只要有一个适当的连接器,该类型的集群容器。

每当Excel中需要计算为一个簇标记为安全的UDF(即用户已打开了向到群集卸载UDF的选项),需要调用Excel的连接器上的某些职能,以指示连接器上执行群集计算。

容器是如何实施的非常具体的供应商。该容器不接口,善于所有人可以自由地执行以任何方式的UDF。但是,由于安全UDF的集群还必须在桌面上XLL中推行(即使他们只是存根实现)可以方便地使容器能够加载并调用的一个XLL的UDF。同样的XLL中可以安装在桌面和集群的方式。这是Windows的高性能计算容器一样。但是,其他群集厂商可以选择建立自己的容器不同。

为简洁起见,我也跳过连接器的API的细节。我真的只是想给你如何剥离UDF的高层次的理解工程,这将是在推出自己的解决方案所涉及。在新的Excel 2010 XLL中SDK包含的所有详细的文件,你需要。并请记住,Windows高性能计算小组将航运一个连接器和Windows高性能计算的容器。所以,如果你有一个Windows HPC集群您将能够使用,而不必太过紧张它们是如何工作内部的组成部分。

总结...
让我们结束与一个要点摘要职位。

Excel中2010年能够卸下集群计算安全的UDF到兼容的群集。这样,多长时间运行的UDF可以同时计算和整体所需的时间来计算工作簿可以减少。

Excel不会直接连接到群集,它使用一个代理组件称为连接器。连接器知道如何接口Excel和群集。与Excel通信连接器使用一个新的API将在Excel 2010 XLL中SDK中。如何与群集连接的接口是特定于供应商和Windows高性能计算小组将与他们的船,即将发布的工作连接器和容器。

声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!

时间:2010-03-07 20:08:17,点击:65824


【OfficeBa论坛】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:342327115@qq.com(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。

【声明】:以上文章或资料除注明为Office自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!


相关评论

我要评论

评论内容