matlab Mat73要花很长时间

50pmv0ei  于 2023-02-13  发布在  Matlab
关注(0)|答案(1)|浏览(252)

我正在使用mat73打开远程服务器上的mat文件,平均大小约为1GB。当我在本地运行这些文件时,它会在〈10秒内加载文件,但当我通过远程连接运行这些文件时,文件加载永远不会〉2分钟。知道为什么会发生这种情况吗?是远程连接的问题吗?
我重新设置了conda env,删除了mat73和dependecies,也尝试了只用h5py打开,但是没有成功。
我尝试过的:测试是否是网络连接速度问题:我在群集上运行了speeftestCLI,恢复了750兆位/秒、850兆位/秒(down/up).在15ish分钟内下载了10GB的数据。当在本地运行mat73和h5py时,一个2GB的文件将分别需要7s/0. 5s。当在我的远程连接到vscode上运行它时,笔记本花了70多分钟(我不得不停止它,看起来它不工作)。我相信这可能是一个jupyter/python/环境的问题。我重新安装了所有的东西。尝试python 3.9和3.10。似乎没有什么能解决我的问题。
我已经把问题缩小到mat73或者它的h5py依赖。当运行h5py.File('my file.mat ')或者mat73.loadmat('my file.mat')时,我得到一个无限循环,什么也没发生。我已经在一个非常小的. mat文件上尝试了这两个函数(尽管没有保存为mat7.3),也花了很长时间。我相信这可能是软件包的问题。

cwtwac6a

cwtwac6a1#

在诊断这类问题时,更容易(通常也更快)的方法是从一些有效的东西开始,然后从那里扩展。这里有一个非常简单的脚本,用h5py创建一个小的HDF5文件,关闭它,然后重新打开。远程运行它。它应该会立即运行。

import h5py
with h5py.File('SO_75389309.h5','w') as h5w:
    l1 = [i for i in range(100)]
    h5w.create_dataset('test1',data=l1)   
with h5py.File('SO_75389309.h5') as h5r:
    print(h5r['test1'].shape, h5r['test1'].dtype)

输出应为:

(100,) int32

如果成功,请继续使用更大的文件大小进行测试。增加range()以创建更大的列表(或使用np.array)并创建更多的数据集(例如,"test2"、"test3"等)。目标是创建一个复制性能瓶颈的大型HDF5文件。
如果这个小例子运行得不快,那么远程配置中可能有问题(笔记本电脑、包版本或者服务器上的虚拟示例),这将很难诊断。你说你试过Python 3.9和3.10。你使用的是什么包版本?你可以通过以下方式获得它们:

import h5py
print(h5py.__version__)

相关问题