I want to ask whether it is possible to list all cycle in a really large directed graph. The size of the graph is around 600 node and around 7000 edges.
I have tried naive dfs algorithm and multi threaded it using python process. I set it to use 10 processes. The problem is, I still can not finish the program. It takes too long. I noticed that it listed many duplicates cycles. For example, I found a cycle consists of 200 nodes. It means it computes same cycle 200*200 times! I believe it is useless because it is all the same cycle.
I have tried Johnson algorithm but my 64GB RAM can not handle it. It said it runs out of memory.
Other things that I have done is to list whether a cycle exixts between 2 nodes.
I detect if node A can reach node C and node C can reach node A, it means there is at least a cycle that involves A and C. This algorithm is quite fast and I can list there are around 600,000 possibilities although I know there are many duplicates too. For example if A can reach B, B can reach C, and C can reach A, it means there is a cycle between A and C and B and C.
What should I do?