我正在准备编写一个光子模拟软件包,该软件包将运行在128节点的Linux和Windows群集上,并使用基于Windows的客户端来设计作业(类似于CAD)并将它们提交给群集。C#适用于群集计算繁重的应用程序吗?
其中大部分内容都很好,但我很好奇C#如何在实数运算能力方面达到C++的水平。我对这两种语言都很满意,但是我发现C#与.NET或Mono的优越对象模型和框架支持令人难以置信的诱人。但是,在这个应用程序中,为了开发人员的偏好,我无法牺牲处理能力。
有没有人有这方面的经验?有没有可用的基准测试?我假设最终的机器代码将使用相同的技术进行优化,无论它来自C#还是C++源代码,尤其是因为它通常发生在pcode/IL级别。
为什么要将高级(管理/调度)与使用相同语言的低级(数量加工)设施结合起来呢?如果在计算过程中使用c,不希望编译器的汇编或汇编效率更高。如果您想要更好的工具来管理应用程序的高阶组织和管理,请使用C#(.NET或Mono)或Python。 – 2010-06-21 22:03:59
@Evan当然,C给了一个好的程序员,会产生很好的结果,并且它具有跳过C#中几个抽象层次的优点。但是,我想保留应用程序在一种语言出于几个原因。可维护性*非常重要。与基于Web的报告工具的集成将非常棒 - 使用C#保留内容可以轻松地在任何其他上下文中重用为群集节点应用程序编写的库。永远不要低估坚持单一平台的好处。 – 2010-06-22 16:57:45
好吧,我只想指出,通常的做法是使用更高级别的语言作为“胶水”语言,以获得方便**和**表现(赢得胜利)。在Python中嵌入C/C++是科学计算领域的常见做法,因为在Python中使用C/C++代码非常简单,您仍然可以在需要的地方利用性能。请参阅http://docs.python.org/release/2.5.2/ext/simpleExample.html。我只提供它作为评论而不是答案,因为尽管它不符合你的要求,但这不是一个坏的选择。 – 2010-06-22 20:30:43