我一直在Fortran 2008中开发时域仿真研究软件。一开始,我认为以二进制形式转储所有内容以提高速度,然后使用另一软件提取所需内容是一个好主意。我现在想转向直接保存到HDF5。
在仿真过程中,在每个时间步上,我都会得到一个值向量(第一个数字是组件,第二个数字是组件内的变量):
default: could not change directory to "/home/vagrant": Permission denied
default: CREATE EXTENSION
default: could not change directory to "/home/vagrant": Permission denied
default: CREATE EXTENSION
default: could not change directory to "/home/vagrant": Permission denied
default: CREATE EXTENSION
default: could not change directory to "/home/vagrant": Permission denied
default: CREATE EXTENSION
default: could not change directory to "/home/vagrant": Permission denied
default: CREATE EXTENSION
default: could not change directory to "/home/vagrant": Permission denied
default: CREATE EXTENSION
default: could not change directory to "/home/vagrant": Permission denied
default: CREATE EXTENSION
我当时正在考虑根据模拟中的组件类别创建多个组,然后在每个组中为每个实例(其中包括数据)创建另一个组。然后,在仿真过程中,在每个时间步长,我都将值附加到每个实例。
始终按时间序列访问数据,例如(t,Var1-1)。我对单个时间实例的快照不感兴趣。
我的问题:我应该把时间扎根于所有人吗?根据过去的经验是否有需要避免的事情(想避免设计错误)?我主要关注性能。现在,我只是缓冲所有生成的向量,并在一次写入中将它们转储到最后,这是非常高的性能。