Benchmarks and Utilities for BloBB
and CompaSS
Hayward Chan
and Igor Markov
All (small) C++ programs here are written for immediate
convenience of the author. They are not expected to be robust.
Benchmarks (top)
MCNC and GSRC benchmarks in blocks/nets/pl format are available
here.
Hard version
Soft version (aspect ratio constraints)
[0.50,2.00]
[0.55,1.80]
[0.59,1.70]
[0.63,1.60]
[0.67,1.50]
ami49_X suite
(98 - 156K blks)
dimensions for larger
benchmarks are divided by 10
txt
---
---
---
---
---
random test cases
(6 - 500 blks)
dimensions between 1..200
all distinct:
txt
3-type:
txt
2-type:
txt
---
---
---
---
---
Format Converters (top)
These converters deal with the "txt", "soft", "bbb", "blocks/nets/pl" and "yal"
formats. Details about the "txt", "soft" and "bbb" formats can be found in
CompaSS' manual (available
here), The "blocks/nets/pl" and "yal" formats are described
here.
blocks2txt (source,
Linux executable)
usage:
blocks2txt <input-blocks-file> <output-txt-file>
example:
blocks2txt input.blocks output.txt
blocks2soft (source,
Linux executable)
usage:
blocks2soft <input-blocks-file> <output-soft-file>
example:
blocks2soft input.blocks output.soft
txt2blocks (source,
Linux executable)
description:
It converts a txt file to a set of output files in
blocks/nets/pl format, which contains all the blocks with no nets and pads.
The example below creates files output.blocks, output.nets and output.pl
usage:
txt2blocks <input-blocks-file> <output-file-prefix>
example:
txt2blocks input.txt output
txt2yal (source, Linux
executable)
description:
It converts a txt file to a yal file, which contains all
the blocks with no nets and pads.
usage:
txt2yal <input-txt-file> <output-yal-file>
example:
txt2yal input.txt output.yal
txt2soft (source, Linux
executable)
description:
It converts a txt file to a soft file. The blocks in
the soft file have the same area as they do in the txt file, but they are
now soft. They can take aspect ratio from 1/<max-aspect-ratio> to
<max-aspect-ratio>. In the example below, all blocks can take aspect
ratio from 0.5 to 2.0 inclusive. If <max-aspect-ratio> is less than 1,
it becomes the aspect-ratio lower bound instead.
usage:
txt2soft <input-txt-file> <output-soft-file>
<max-aspect-ratio>
example:
txt2soft input.txt output.soft 2
soft2soft (source, Linux
executable)
description:
It allows the user to change the aspect ratio constraints
for blocks in the input file. In the example below, the blocks in
output.soft can take aspect ratios from 0.33 to 3.00, regardless their
aspect ratio constraints in input.soft.
usage:
soft2soft <input-soft-file> <output-soft-file>
<new-max-aspect-ratio>
example:
blocks2soft input.soft output.soft 3
bbb2pl (source, Linux executable)
description:
It converts a bbb file to an output pl file, with no pads
of course.
usage:
bbb2pl <input-bbb-file> <output-pl-file>
example:
bbb2pl input.bbb output.pl
Visualizers (top)
plotout (source, Linux
executable)
description:
It plots the packing specified by a bbb file using gnuplot.
The gnuplot script "out" is created. Applying "gnuplot out" plots the
packing, and saving it in postscript format.
usage:
plotout <input-file> <output-file> [options]
example:
The following sequence of commands create a postscript file
"output.ps" from "input.bbb"
plotout input.bbb output.ps
gnuplot out
options:
- label -l / no label -n: In "label" mode, all blocks are labeled
by consecutive integers, starting from 1 unless otherwise specified (see
"starting #" and "ascending" below). "no label" is assumed if none
of "-l" and "-n" is specified.
- starting # (-s <int>): If it is in "label" mode, all blocks are
labeled by consecutive integers starting from <int>, or 1 if "-s" is not
used and in "ascending mode" or the number of blocks in "descending" mode
(see "ascending" below).
- ascending -a / descending -d: In "ascending" mode, the blocks
are labeled in ascending order, while in "descending" mode, the blocks are
labeled in descending order. "ascending" mode is assumed by default.
bbb2matlab (source,
Linux executable)
description:
It converts a bbb file to an m-file that draws the packing
in Matlab.
usage:
bbb2matlab <input-file> <output-file> [options]
examples:
- bbb2matlab input.bbb output.m
- bbb2matlab input.bbb output.m -l -s 1
options:
- terse -t / verbose -v: In "verbose" mode, detailed information
about the packing will be specified beside the picture. "terse" is
assumed is none of "-t" and "-v" is specified.
- label -l / no label -n: In "label" mode, all blocks are labeled
by consecutive integers, starting from 0 unless otherwise specified (see
"starting #" below). "no label" is assumed if none of "-l" and "-n"
is specified.
- starting # (-s <int>): If it is in "label" mode, all blocks are
labeled by consecutive integers starting from <int>, or 0 if "-s" is not
used.
- line width (-l <number>): The line width is set to be 1.5
unless it is specified by <number> following "-l". It is useful
since it's hard to come up with a universal line width for drawing 10
blocks or 100K blocks.
hints:
Suppose output.m is created. In Matlab, the following
sequence of commands may be useful to create a tight eps file output.eps.
output; print -deps output.eps
Other Utilities (top)
multiply (source, Linux
executable)
description:
It creates a new instance that is X copies of the original.
In the example below, output.txt constains 4 copies of input.txt and the
dimensions of all blocks in output.txt are 1/C of those in input.txt.
C equals 1 if it is not specified.
usage:
multiply <input-txt-file> <output-txt-file> <X> [optional
down-scaling constant C]
example:
multiply input.txt output.txt 4 2
txtascend (source,
Linux executable)
description:
It sorts the blocks in input.txt according to their areas.
Smaller blocks succeed larger blocks. The input instance is expected
to be small. It uses a naive quadratic-time sorting algorithm.
usage:
txtascend <input-txt-file> <output-txt-file>
example:
txtascend input.txt output.txt
txtdescend (source,
Linux executable)
Similar to txtascend, except that it returns the blocks in
descending order, according to their areas.
Last update:
May 12, 2004