微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在 AWS FSx Lustre 上使用 numpy 内存映射文件?

如何解决是否可以在 AWS FSx Lustre 上使用 numpy 内存映射文件?

我有一个由大约 100 万个以上的文件组成的大型 S3 数据集,每个文件的大小为 5-6 MB,我尝试将其导入 AWS FSx for Lustre。所有文件都是 Numpy 数组文件(.npy 文件),我有一个程序将每个 NumPy 数组作为内存映射文件读取,以便它只将每个数组的特定段从磁盘加载到内存中。>

当我们使用常规 EBS 卷和本地实例存储 NVME SSD(例如某些 EC2 实例类型中提供的那些)时,这可以正常工作。但是,当切换到使用 AWS FSx Lustre 时,FSx 始终加载和传输整个 NumPy 数组文件,而不仅仅是我们的应用程序通过内存映射提取的段,这可以从监控文件系统的吞吐量指标中明显看出。>

所以,我想问一下像 Lustre 这样的 NFS 是否支持通过内存映射仅从文件系统加载特定文件段的用例。例如,我可以通过在 Python 中执行以下操作来加载带有内存映射的 NumPy 数组文件

import numpy as np
mmapped_arr = np.load("<path to a .npy file>",mmap_mode="r")
segment = mmapped_arr[0:15]
segment = np.array(segment)

在上述代码片段的最后一行中,使用 EBS 和本地实例存储时,仅将切片段从磁盘加载到内存中。但是在使用 FSX 时,整个阵列都是从磁盘加载的,不必要地消耗了文件系统的吞吐量。

我不确定这是否是使用带有内存映射文件的网络文件系统的限制,所以我想在这里问一下。提前致谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。