DOKK / manpages / debian 12 / mcl / mcxdiameter.1.en
mcx diameter(1) USER COMMANDS mcx diameter(1)


mcx_diameter - compute the diameter of a graph


mcx diameter [options]

mcxdiameter is not in actual fact a program. This manual page documents the behaviour and options of the mcx program when invoked in mode diameter. The options -h, --apropos, --version, -set, --nop, -progress <num> are accessible in all mcx modes. They are described in the mcx manual page.

mcx diameter [-abc <fname> (specify label input)] [-imx <fname> (specify matrix input)] [-o <fname> (output file name)] [-tab <fname> (use tab file)] [-t <int> (use <int> threads)] [-J <intJ> (a total of <intJ> jobs are used)] [-j <intj> (this job has index <intj>)] [--summary (output diameter and average shortest path length)] [--list (list eccentricity for all nodes)] [-h (print synopsis, exit)] [--apropos (print synopsis, exit)] [--version (print version, exit)]


mcx diameter computes the diameter of a graph. The input graph should be symmetric. Results will be unpredictable for directed graphs. For label input this is irrelevant as mcx diameter will create a symmetric graph from the input.

The input graph/matrix, if specified with the -imx option, has to be in mcl matrix/graph format. You can use label input instead by using the -abc option. Refer to mcxio(5) for a description of these two input formats. By default mcx diameter reads from STDIN and expects matrix format. To specify label input from STDIN use -abc -.



-abc <fname> (label input)
The file name for input that is in label format.


-imx <fname> (input matrix)
The file name for input that is in mcl native matrix format.


-o <fname> (output file name)
The name of the file to write output to.


-tab <fname> (use tab file)
This option causes the output to be printed with the labels found in the tab file. With -abc this option will, additionally, construct a graph only on the labels found in the tab file. If this option is used in conjunction with -imx the tab domain and the matrix domain are required to be identical.


-t <int> (use <int> threads)


-J <intJ> (a total of <intJ> jobs are used)


-j <intj> (this job has index <intj>)


Computing the diameter of a graph is time-intensive for large graphs. If you have multiple CPUs available consider using as many threads. Additionally it is possible to spread the computation over multiple jobs/machines. These three options are described in the clmprotocols manual page. The following set of options, if given to as many commands, defines three jobs, each running four threads.


-t 4 -J 3 -j 0 -o out.0
-t 4 -J 3 -j 1 -o out.1
-t 4 -J 3 -j 2 -o out.2


The output can then be collected with


mcx collect --add-column -o out.all out.[0-2]




--list (list eccentricity for all nodes)


--summary (output diameter and average eccentricity)


The default mode is --list, which results in output of the eccentricity of all nodes. The eccentricity of a node is the distance to any node that is the furthest away from it. The diameter of a graph is the maximum of the eccentricity taken over all nodes in a graph. In this mode mcx diameter will not output the diameter itself. Use --summary to output just the diameter and the average eccentricity.


mcxio(5), and mclfamily(7) for an overview of all the documentation and the utilities in the mcl family.

9 Oct 2022 mcx diameter 22-282