---
name: "dgmap"
section: "1"
platform: "linux"
package: "scotch"
version: "7.0.17-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dgmap"
---

# dgmap(1)

compute static mappings and partitions in parallel

## 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

*The* **dgmap** *program computes, in a parallel way, a static mapping of a* *source graph onto a target graph.*

*The* **dgpart** *program is a simplified interface to* **dgmap***, which* *performs graph partitioning instead of static mapping. Consequently,* *the desired number of parts has to be provided, in lieu of the* *target architecture. When using the program for graph clustering,* *the number of parts turns into maximum cluster weight.*

*The* **-b** *and* **-c** *options allow the user to set preferences on the* *behavior of the mapping strategy which is used by default. The* **-m** *option allows the user to define a custom mapping strategy.*

*The* **-q** *option turns the programs into graph clustering programs. In* *this case,* **dgmap** *only accepts variable-sized target architectures.*

*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 such as meshes and hypercubes, or decomposition-defined* *architectures created by means of the* **amk\_grf***(1) program. See* **gmap***(1) for a description of target architectures. The resulting* *mapping is stored in file mfile. Eventual logging information (such* *as the one produced by option* **-v***) is sent to file lfile. When file* *names are not specified, data is read from standard input and* *written to standard output. Standard streams can also be explicitely* *represented by a dash '-'.*

*When the proper libraries have been 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, such as* *in 'brol.grf.bz2' or '-.gz'. The compression formats which 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. They are therefore not* *likely to be run directly, but instead through some launcher command* *such as* **mpirun***.*

## OPTIONS

- **-b*val***

  *Set maximum load imbalance ratio for graph partitioning* *or static mapping. When programs are used as clustering* *tools, this parameter sets the maximum load imbalance* *ratio for recursive bipartitions. Exclusive with* *the* **-m** *option.*

- **-c*opt***

  *Choose default mapping strategy according to one or* *several options 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.*

- **-m*strat***

  *Use parallel mapping strategy strat (see* *PT-Scotch user's manual for more information).*

- **-q**

  *(for* **dgpart***)*

- **-q*pwght***

  *(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.*

- **-r*pnum***

  *Set root process for centralized files (default is 0).*

- **-V**

  *Display program version and copyright.*

- **-v*verb***

  *Set verbose mode to verb. It is a set of one of 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 as* **gmap***(1) does, but only 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.*

## 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 (see* **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\>*
