gmap(1)
πΈ gmap β the manual, but make it make sense π
okay bestie, pull up a chair, we're reading gmap(1) from the Scotch user's manual together and honestly? it's giving iconic. no cap.
β¨ NAME β¨
gmap, gpart β compute static mappings and partitions sequentially π¦
β¨ SYNOPSIS β¨
gmap [options] [gfile] [tfile] [mfile] [lfile]
gpart [options] [nparts/pwght] [gfile] [mfile] [lfile]
β¨ DESCRIPTION β¨
So gmap is the main character here: it computes, in a sequential way, a static mapping of a source graph onto a target graph. that's the whole vibe. π«Ά
gpart is like gmap's simpler, chiller little sibling β a simplified interface to gmap that does graph partitioning instead of static mapping. because of that, you gotta hand it the number of parts you want instead of a target architecture. and lowkey, when you're using the program for graph clustering, that "number of parts" thing turns into the maximum cluster weight. it's giving multitasking. β¨
The -b and -c options let you set preferences on how the default mapping strategy behaves. And the -m option? that's your custom mapping strategy era β define it yourself, main character energy. π
The -q option turns the programs into graph clustering programs. heads up tho: in this mode, gmap only accepts variable-sized target architectures. that's the rule, periodt.
Source graph file gfile can only be a centralized graph file. For gmap, the target architecture file tfile describes either algorithmically-coded topologies like meshes and hypercubes, or decomposition-defined architectures created by means of the amk_grf(1) program. The resulting mapping gets stored in file mfile. Any eventual logging information (like the stuff option -v produces) goes to file lfile. When file names aren't specified, data is read from standard input and written to standard output. Standard streams can also be explicitely represented by a dash '-'. π
And here's the slay part: when the proper libraries have been included at compile time, gmap and gpart can directly handle compressed graphs, both as input and output. A stream is treated as compressed whenever its name is postfixed with a compressed file extension β like in 'brol.grf.bz2' or '-.gz'. The compression formats which can be supported are:
- the bzip2 format (
.bz2) - the gzip format (
.gz) - the lzma format (
.lzma)
no notes. π
β¨ OPTIONS β¨
-bvalβ set the maximum load imbalance ratio for graph partitioning or static mapping. When the programs are used as clustering tools, this parameter sets the maximum load imbalance ratio for recursive bipartitions. Exclusive with the-moption. π«-coptβ choose the default mapping strategy according to one or several options among:bβ enforce load balance as much as possible.qβ privilege quality over speed (default).sβ privilege speed over quality.tβ enforce safety.
It is exclusive with the -m option.
-hβ display some help. π«Ά-mstratβ use sequential mapping strategy strat (see the Scotch user's manual for more information).-qβ (forgpart)-qpwghtβ (forgmap) use the programs as graph clustering tools instead of static mapping or graph partitioning tools. Forgpart, the number of parts will become the maximum cluster weight. Forgmap, this number pwght has to be passed after the option. π-Vβ display program version and copyright.-vverbβ set verbose mode to verb. It's a set of one or more characters which can be:mβ mapping information.sβ strategy information.tβ timing information.
β¨ TARGET ARCHITECTURES β¨
Target architectures are the graphs your source graphs get mapped onto. And to speed-up the obtainment of target architecture topological properties during the computation of mappings, some classical topologies are algorithmically coded right into the mapper itself. so they're just simply defined by their code name, followed by their dimensional parameters. iconic behavior honestly. π
cmplt dimβ unweighted complete graph of size dim.cmpltw dim w0 w1 ... wdim-1β weighted complete graph of size size and of respective loadsw0,w1, ...,wdim-1.hcub dimβ hypercube of dimension dim.leaf hgt n0 w0 ... nhgt-1 whgt-1β tree-leaf graph of height hgt with (n0timesn1times ...nhgt-1) vertices, with inter-cluster link weights ofw0,w1, ...whgt-1.mesh2D dimX dimYβ 2D mesh ofdimXtimesdimYnodes.mesh3D dimX dimY dimZβ23mesh ofdimXtimesdimYtimesdimZnodes.torus2D dimX dimYβ 2D torus ofdimXtimesdimYnodes.torus3D dimX dimY dimZβ 3D torus ofdimXtimesdimYtimesdimZnodes.
Other target topologies can be created from their source graph description by using the amk_grf(1) command. In that case, the target description will begin with the code name deco. π
β¨ MAPPINGS β¨
Mappings are represented by as many lines as there are vertices in the source graph. Each of these lines is made of two figures:
- the number of the vertex (or its label, if the source graph vertices are labeled)
- the index of the target vertex to which it has been assigned
Target vertex indices range from 0 to the number of vertices in the target architecture (that is, the number of parts) minus one. π§
This block of lines is always preceded by the number of such lines. In most cases, since full mappings are requested, the number of lines is equal to the number of vertices in the source graph. bestie that's just how it is.
β¨ EXAMPLES β¨
Run gpart to compute a partition into 7 parts of graph 'brol.grf' and save the resulting ordering to file 'brol.map'.
$ gpart 7 brol.grf brol.map
Run gmap to compute a partition, into 3 parts of respective weights 1, 2 and 4, of graph 'brol.grf' and save the resulting mapping to file 'brol.map'. The dash '-' standard file name is used so that the target architecture description is read from the standard input, through the pipe, as provided by the 'echo' shell command. π₯
$ echo "cmpltw 3 1 2 4" | gmap brol.grf - brol.map
β¨ SEE ALSO β¨
amk_grf(1), acpl(1), gmtst(1), dgmap(1).
Scotch user's manual. π
β¨ AUTHOR β¨
Francois Pellegrini <francois.pellegrini@labri.fr>
and that's the whole page, bestie!! go forth and map some graphs π
okay so this was gmap(1) from the Scotch user's manual, dated 23 November 2019. love that for us. bye pookies πβ¨π
π¦ where this page comes from
- debian bookworm: scotch 7.0.3-2 Β· CeCILL-C
- debian trixie: scotch 7.0.7-1 Β· CeCILL-C
- epel 9: scotch 6.1.2-3.el9 Β· CeCILL-C
- opensuse-leap 16.0: scotch 6.1.0-bp160.1.5 Β· CECILL-C
- opensuse-leap 16.0: scotch 6.1.0-bp160.1.5 Β· CECILL-C
- opensuse-leap 16.0: scotch 6.1.0-bp160.1.5 Β· CECILL-C
- opensuse-leap 16.0: scotch 6.1.0-bp160.1.5 Β· CECILL-C
- ubuntu jammy: scotch 6.1.3-1 Β· CeCILL-C
- ubuntu noble: scotch 7.0.4-1ubuntu2 Β· CeCILL-C
- ubuntu questing: scotch 7.0.5-1ubuntu2
- ubuntu resolute: scotch 7.0.11-1ubuntu1 Β· CeCILL-C
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms