擅长:python、mysql、java
<p>你提到了并行性,但没有提到如何使这个项目并行。这比简单地选择几个库要复杂得多。在向前迈进之前,需要考虑几个主要因素。在</p>
<p>您简要地提到了预期的平台,但是您还必须考虑模拟是在单个计算机/节点上运行还是在多个计算机/节点上运行。考虑到您正在对建筑进行迭代模拟,您可能需要比任何一台计算机所能提供的计算能力多得多的计算能力。这意味着,除非您希望使用混合的多进程、多线程方法,否则只能使用并行的多进程模型。OpenCL和MPI是实现的每个选项。(注意:MPICH和OpenMPI都只是MPI的实现,您的代码应该与这些无关)使用MPI传递消息是一个很好的并行性通用模型,但是对于那些不习惯于使用并行代码的人来说,这可能会非常困难。我个人的经验是使用MPI和一些混合编程,所以对于您选择的并行模型,我不能说太多。在</p>
<p>并行模型问题带来的一个问题是它直接影响到仿真软件。我不完全确定你计划如何将你的算法与模拟分开。如果您计划让您的代码分叉单独的进程来运行模拟,您将面临跨平台支持的问题,因为您可能无法以这种方式运行任意模拟。如果您打算在软件中运行仿真,则并行模型必须始终保持一致。尽管这会限制黑盒策略,但它可能会使整个过程更加可行。在</p>
<p>关于适用的库,已经有很多人说过了。我没有更多的话要说那些还没有被提及的特定库。请记住,在运行模拟时,许多相同的问题都必须通过这些解决。在</p>
<p>TLDR:不应该检查并行性。在对库做出决策之前,您需要知道将使用哪个并行模型。在</p>