【发布时间】:2010-12-26 12:08:21
【问题描述】:
我的公司目前正在运行一个第三方模拟程序(自然灾害风险建模),该程序从磁盘中提取数 GB 的数据,然后运行几天以产生结果。我很快会被要求将其重写为多线程应用程序,以便它在数小时而不是数天内运行。我预计有大约 6 个月的时间来完成转换,并且将独自工作。
我们有一个 24-proc 的盒子来运行它。我将可以访问原始程序的源代码(我认为是用 C++ 编写的),但目前我对它的设计方式知之甚少。
我需要有关如何解决此问题的建议。我是一位经验丰富的程序员(约 30 年,目前使用 C# 3.5),但没有多处理器/多线程经验。如果合适的话,我愿意并且渴望学习一门新的语言。我正在寻找有关语言、学习资源、书籍、架构指南的建议。等等
要求:Windows 操作系统。具有大量支持和良好学习资源的商业级编译器。不需要花哨的 GUI - 它可能会从配置文件运行并将结果放入 SQL Server 数据库。
编辑:当前的应用程序是 C++,但我几乎肯定不会使用该语言进行重写。我删除了某人添加的 C++ 标签。
【问题讨论】:
-
你打算重写原版还是只是维护?
-
你能提供更多关于计算本身的信息吗?这段代码做了什么样的计算?它是用什么语言写的?什么样的数据结构?我们在谈论什么数值方法?代码多长?
-
the only authority on concurrence imo。不幸的是,我没有跟上课程页面,我不能保证这个页面的状态[因此评论,不回答]。拿理论,应用到C#。
-
在设计如此复杂的系统时学习一门新语言并不是一个好的选择。
-
为什么标记为 C++?这是项目的要求之一吗?否则,请坚持使用您熟悉的语言。没有必要让自己变得更加困难。
标签: multithreading architecture simulation parallel-processing