14.3 创建并行仿真

来源:互联网 发布:c语言能做什么 编辑:程序博客网 时间:2024/05/21 08:00

14.3 创建并行仿真

    我们的下一个示例应用程序打算仿真动物和捕食者的世界。捕食者的目标是让靠近动物去捕猎,而动物的目的是从世界范围逃跑。就像我们的图像处理示例一样,在这里,只显示最有趣的方面,完整的源代码在本书的网址上可用。

    这是一个以数据为中心的应用程序,所以,第一个任务是确定主数据结构。在这种情况下,它是这个世界的"当前"状态的表示。这个世界实际上只有一个操作:实现时间"嘀嗒"(make time“tick”),移动所有的动物和捕食者。在以数据为中心的应用程序中,我们可以以并行方式运行多个操作,也可以关注并行化个别的操作。在我们的仿真中,很明显,必须并行化嘀嗒操作。这个操作不是那么简单,所以,有足够容量进行并行。我们将使用通常的以数据为中心的函数式程序所涉及的技术,组成了声明性和基于任务的并行度。

    像往常一样,当创建以数据为中心的应用程序时,我们首先设计一个数据结构,来表示我们的世界。并行化将稍后到来,到时,我们会写一些操作,来处理该数据结构。