acqdp
acqdp copied to clipboard
KHP order finder halts with "Invalid object identifier"
I executed examples/circuit_simulation.py
on my laptop (WSL: Ubuntu 18.04) and the workstation machine (Ubuntu 20.04). The code worked on my laptop, but the program prints Invalid Object Identifier
and deadlocks.
This error seems to be related to multiprocessing, and the only place I could find this message was line 65 of https://github.com/kahypar/kahypar/blob/a05d75b9fd37880ab2853fad8e7ff54acd265247/kahypar/meta/abstract_factory.h .
The program worked as wished after I changed the order_finder_name
in khp_params.json
to default
. Besides the contraction costs were lower and the results had higher precision compared to the answers I got from my laptop. I wonder what makes the difference.
Hello ChienKaiMa,
This indeed seems like a problem within KaHyPar
. One possible problem I could think of is that the KaHyPar
versions installed on different Ubuntu releases could be different. As I have not personally encountered this problem I am not sure what to make of it. Could you please provide instructions on how this error could be reproduced on a Ubuntu 20.04 machine? If it could be identified as a problem within KaHyPar, I would suggest you to directly contact KaHyPar.
From my understanding (please correct me if I am wrong), you are comparing the contraction on your laptop with a KaHyPar order finder, and another one on your workstation with a default order finder. The contraction cost and contraction precision depend on multiple factors. Generally speaking, the lower the contraction cost, the fewer number of floating point operations will be issued, resulting in a lower truncation error. Hypergraph-decomposition-based contraction order finding highly depends on hyper parameters one chooses in KaHyPar
, and does not always guarantee a superior performance compared to alternative approaches. It could be the case that the default
order finding algorithm performed better in this specific case.
Hope that this answers your problem.
Cupjin
I didn't intend to compare two different order finders on two different machines, but that just happened. You're right: the Kahypar version on two machines are actually different!
On my laptop:
Name: kahypar
Version: 1.1.6
Summary: Python Inferface for the Karlsruhe Hypergraph Partitioning Framework (KaHyPar)
Home-page: https://www.kahypar.org
Author: Sebastian Schlag
Author-email: [email protected]
License: UNKNOWN
Location: /home/koova18/miniconda3/lib/python3.8/site-packages
Requires:
Required-by: acqdp
On the workstation:
Name: kahypar
Version: 1.1.7
Summary: Python Inferface for the Karlsruhe Hypergraph Partitioning Framework (KaHyPar)
Home-page: https://www.kahypar.org
Author: Sebastian Schlag
Author-email: [email protected]
License: UNKNOWN
Location: /home/b07901108/quantum-benchmarks/bin/conda/lib/python3.9/site-packages
Requires:
Required-by: acqdp
I also tested on the workstation with Python 3.8 instead of 3.9, and the issue persisted.
Name: kahypar
Version: 1.1.7
Summary: Python Inferface for the Karlsruhe Hypergraph Partitioning Framework (KaHyPar)
Home-page: https://www.kahypar.org
Author: Sebastian Schlag
Author-email: [email protected]
License: UNKNOWN
Location: /home/b07901108/.local/lib/python3.8/site-packages
Requires:
Required-by: acqdp
Maybe it would work if I revert back to 1.1.6, and I will reply to this issue if there are more insights. Thank you for the detailed explanations!
Hello @ChienKaiMa ,
I have made slight change in the version dependency, forcing ACQDP to use kahypar==1.1.2
. It seems that the newest version 1.1.7
does not support the configurations previously supported.
Please let me know if this solves your problem.
Cupjin