amk_grf(1)

πŸ’– amk_grf β€” create target architecture from source graph ✨

okay bestie, welcome to the amk_grf(1) glow-up, straight out of the Scotch user's manual πŸ’…


🌸 NAME 🌸

amk_grf β€” literally just: create target architecture from source graph πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

amk_grf [options] [gfile] [tfile]

✨ DESCRIPTION ✨

So the whole vibe of amk_grf is: it takes a source graph, gfile, and builds a decomposition-defined target architecture</> tfile out of it. That's it. That's the job. πŸ‘‘

Now, why do we care about target architectures at all? Because target architectures define the topology of the target graphs that the static mapping programs gmap(1) and dgmap(1) use. And bestie, there are two flavors:

  • algorithmically-defined β€” for the common, regular topologies (you know, the cute tidy ones)
  • decomposition-defined β€” which is exactly the kind that amk_grf produces 🫢

Also β€” and this is lowkey the coolest part β€” if the proper libraries got included when it was compiled, amk_grf can handle compressed files both as input and output. A stream counts as compressed whenever its name is postfixed with a compressed file extension, like in brol.tgt.bz2 or -.gz. The compression formats that can be supported are:

  • the bzip2 format (.bz2)
  • the gzip format (.gz)
  • the lzma format (.lzma)
pro tip from the universe itself: decomposition-defined target architecture files are quadratic in size in the number of target vertices, because there's a whole distance matrix structure living in there. So using compressed files to store them may save a lot of space. no cap. πŸ“

πŸŽ€ OPTIONS πŸŽ€

  • -2 β€” create a deco 2 instead of a deco 1 architecture. (yes, two. we're leveling up.) ✌️
  • -b strat β€” apply bipartitioning strategy strat to compute the recursive bipartition of the whole source graph into smaller target subdomains. πŸͺ“
  • -h β€” display some help. πŸ™ˆ
  • -l lfile β€” only keep vertices whose indices belong to the space-separated list stored in lfile. This lets you create target architectures that can even be disjoint subsets</> of a larger target architecture, modeled as a graph. iconic behavior honestly πŸ’œ
  • -V β€” display program version and copyright. πŸ“œ

🌈 EXAMPLE 🌈

Okay so picture this: you wanna create a decomposition-defined target architecture from a 2D regular grid source graph of dimension 3 times 5, and save it β€” as a compiled target architecture β€” under the gzip(1) format, to the file m3x5.tgt.gz. Boom:

$ gmk_m2 3 5 | amk_grf | acpl - m3x5.tgt.gz

But bestie, note that in this precise case it would be much preferable to just use the mesh2D algorithmically-defined target architecture directly:

$ echo "mesh2D 3 5" > m3x5.tgt

like… why do extra work when the shortcut is right there 😭


πŸ’€ SEE ALSO πŸ’€

acpl(1), amk_ccc(1), atst(1), dgmap(1), gmap(1), gmtst(1).

Scotch user's manual.


πŸ‘‘ AUTHOR πŸ‘‘

Francois Pellegrini <francois.pellegrini@labri.fr>


and that's a wrap, babe πŸ¦‹ this page is from the Scotch user's manual, dated 16 June 2026, and it's amk_grf(1) β€” go forth and decompose some graphs, you absolute main character πŸ«ΆπŸ’–

πŸ“¦ where this page comes from