阻挡ansys测试更多核心的第一因素我猜是没有那么多核心,很少有超算能有12.9万个核心,比如TACC的stampede,前年我刚开始有访问权的时候是world ranking top 6,也只有6400个节点,每个节点16个processor。而且因为硬件不完全一致,就算只有一个用户的时候,6400节点也是不能同时使用的。
一般来说,CFD中不用那么巨大数量的核心数很明显的原因肯定是因为CPU之间的通信使得scaling并不那么理想,当你增加核心数的时候,每个时间步所需要的时间并不是一直减小的。我记得GE和ansys若干年前试过上千个核,效率好像还可以吧,不记得出处了。OpenFOAM测试过icoFoam在某些问题上似乎也能在上千核心情况下保证不错的并行效率。但是上万个核心还得保证一定的效率,就我来说很难想象这是多么大的一个问题。
另外,时间步随着雷诺数增加也是会增加的,而且这部分没法并行,依旧是制约CFD进行太多核心并行化的一个因素。
举个例子,就算对于一个超大的问题,你用了足够多的核心,你每个时间步只用0.01s(简直快得惨绝人寰),但是你需要statistical averaging,总共要算一亿步,一百万秒你看看是多久。。
如果你有个无限大的网格的话,你要假设硬件无限制那当然可以无限并行,这个无限制其实包括很多东西了。。。