dgmap(1)

πŸ’– dgmap β€” the PT-Scotch user's manual glow-up πŸ’–

okay bestie, buckle up, because this is dgmap(1) (and its lil sibling dgpart), straight from the PT-Scotch user's manual, and I am obsessed with how much these two can do. πŸ¦‹


✨ NAME ✨

dgmap, dgpart β€” compute static mappings and partitions in parallel 🌈


✨ SYNOPSIS ✨

dgmap [options] [gfile] [tfile] [mfile] [lfile]

dgpart [options] [nparts/pwght] [gfile] [mfile] [lfile]

✨ DESCRIPTION ✨

so, dgmap computes, in a parallel way, a static mapping of a source graph onto a target graph. that's the whole vibe. πŸ’…

dgpart is basically the simplified-interface bestie of dgmap β€” it does graph partitioning instead of static mapping. which means: you have to hand it the desired number of parts, in lieu of the target architecture. and when you're using the program for graph clustering, that number of parts turns into the maximum cluster weight. cute, right? πŸŽ€

the -b and -c options let you set preferences on how the default mapping strategy behaves. the -m option lets you define a custom mapping strategy. your call, your rules. πŸ‘‘

the -q option turns these programs into graph clustering programs. in that case, dgmap only accepts variable-sized target architectures. noted.

the source graph file gfile is either a centralized graph file, or a set of files representing fragments of a distributed graph. for dgmap, the target architecture file tfile describes either algorithmically-coded topologies like meshes and hypercubes, or decomposition-defined architectures created with amk_grf(1). (peep gmap(1) for a description of target architectures β€” it's giving lore.) the resulting mapping gets stored in file mfile. and eventual logging info (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 explicitly represented by a dash '-'. πŸ“

when the proper libraries were included at compile time, dgmap and dgpart 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 that can be supported are the bzip2 format ('.bz2'), the gzip format ('.gz'), and the lzma format ('.lzma'). ✨

dgmap and dgpart base on implementations of the MPI interface to spread work across the processing elements. so realistically? they're not likely to be run directly β€” you run them through some launcher command like mpirun. main character energy, but make it cluster. πŸ’€


✨ 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 -m option.
  • -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.
    • x β€” enforce scalability.

it is exclusive with the -m option.

  • -h β€” display some help.
  • -mstrat β€” use parallel mapping strategy strat (see the PT-Scotch user's manual for more info).
  • -q β€” (for dgpart)
  • -qpwght β€” (for dgmap) use the programs as graph clustering tools instead of static mapping or graph partitioning tools. for dgpart, the number of parts will become the maximum cluster weight. for dgmap, this number pwght has to be passed after the option.
  • -rpnum β€” set the root process for centralized files (default is 0).
  • -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.

⚠️ NOTE ⚠️

at the time being (version 5.1), dgmap cannot compute full static mappings the way gmap(1) does. it can only do partitions β€” that is, mappings onto unweighted or weighted complete graphs. target architectures other than the 'cmplt' and 'wcmplt' ones will lead to an error message. 😭 so don't come for it, come correctly. πŸ™ˆ


🌸 EXAMPLES 🌸

run dgpart on 5 processing elements to compute a partition into 7 parts of graph brol.grf, and save the resulting ordering to file brol.map:

$ mpirun -np 5 dgpart 7 brol.grf brol.map

run dgpart on 5 processing elements to partition into 7 parts the distributed graph stored on graph fragment files brol5-0.dgr to brol5-4.dgr, and save the resulting mapping to file brol.map (peep dgscat(1) for an explanation of the '%p' and '%r' sequences in names of distributed graph fragments):

$ mpirun -np 5 dgpart 7 brol%p-%r.dgr brol.map

πŸ‘€ SEE ALSO πŸ‘€

dgtst(1), dgscat(1), amk_grf(1), acpl(1), gmap(1), gmtst(1).

PT-Scotch user's manual.


πŸ’œ AUTHOR πŸ’œ

Francois Pellegrini <francois.pellegrini@labri.fr>


and that's the whole page, bestie, no cap. this gem is from the PT-Scotch user's manual and it's dated 16 June 2026 β€” go forth and map some graphs, you absolute icon. πŸ«ΆπŸ’…βœ¨

πŸ“¦ where this page comes from