首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >METIS请求1000 TB内存来解决问题

METIS请求1000 TB内存来解决问题
EN

Data Science用户
提问于 2022-10-10 21:37:17
回答 1查看 75关注 0票数 0

我正在尝试使用梅蒂斯 (配置为64位,带有Python接口)来执行一些加权图分区,但由于内存分配失败,我立即被击中:

代码语言:javascript
复制
   Current memory used:        3288 bytes
   Maximum memory used:        3288 bytes
***Memory allocation failed for SetupGraph: adjwgt. Requested size: 1125152056413312 bytes
Traceback (most recent call last):
  File "/home/nate/Desktop/Atom/DTW/testing.py", line 21, in <module>
    edgecuts, parts = metis.part_graph(G, 3)
  File "/home/nate/.local/lib/python3.10/site-packages/metis.py", line 800, in part_graph
    _METIS_PartGraphKway(*args)
  File "/home/nate/.local/lib/python3.10/site-packages/metis.py", line 676, in _METIS_PartGraphKway
    return _METIS_PartGraphKway.call(nvtxs, ncon, xadj, adjncy, vwgt, vsize,
  File "/home/nate/.local/lib/python3.10/site-packages/metis.py", line 501, in _result_errcheck
    if result == METIS_ERROR_MEMORY: raise METIS_MemoryError
metis.METIS_MemoryError

我的代码只是从内存中获取边缘(~53k边),然后在NetworkX中构建图形,将其传输到METIS并尝试分区:

代码语言:javascript
复制
G.add_weighted_edges_from(pairs)
G = metis.networkx_to_metis(G)   
edgecuts, parts = metis.part_graph(G, 3)

错误发生在part_graph调用过程中。这是不寻常的行为,还是真的需要1000 TB才能得到这么大的图形?(我有64 GB的RAM)。

该图包含328个节点,其中每个节点连接到每个其他节点。这可能是奇怪的记忆需求的来源吗?

编辑:将问题限制在几个边缘,结果是:Segmentation fault (core dumped),但没有其他信息来诊断问题。

EN

回答 1

Data Science用户

发布于 2023-04-09 12:16:52

当我传递参数nvtxs = n+1而不是n时,出现了这个错误,其中n是图中的顶点数。根据METIS,nvtxs的手动值必须等于n,而数组xadj的长度必须等于n+1。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/115091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档