Scotch Brand 5.1.10 User Manual

Page 57

Advertising
background image

peritab

cblknbr

rangtab

treetab

permtab

13

10

11

12

10

11

12

10

−1

1 2 4

8

5 6

7

2 3

4

8 7 1

6

1 2

4

5

3 3 7

6 7

6

5 9

1

2

3

9

8

7

6

5

4

1

5

2

6

9

4

8

3

7

3 6

7

8

9

1

2

3

4

5

6

7

10

11

12

10

11

12

Figure 21: Arrays resulting from the ordering by complete nested dissection of a 4
by 3 grid based from 1. Leftmost grid is the original grid, and righmost grid is the
reordered grid, with separators shown and column block indices written in bold.

partitioning or ordering methods should be applied to graphs and subgraphs, or to
meshes and submeshes.

7.3.1

Using default strategy strings

While strategy strings can be built by hand, according to the syntax given in the
next sections, users who do not have specific needs can take advantage of default
strategies already implemented in the libScotch, which will yield very good results
in most cases. By doing so, they will spare themselves the hassle of updating their
strategies to comply to subsequent syntactic changes, and they will benefit from
the availability of new partitioning or ordering methods as soon as they are made
available.

The simplest way to use default strategy strings is to avoid specifying any. By

initializing a strategy object, by means of the SCOTCH stratInit routine, and by
using the initialized strategy object as is, without further parametrization, this
object will be filled with a default strategy when passing it as a parameter to the
next partitioning or ordering routine to be called. On return, the strategy object
will contain a fully specified strategy, tailored for the type of operation which has
been requested. Consequently, a fresh strategy object that was used to partition a
graph cannot be used afterward as a default strategy for calling an ordering routine,
for instance, as partitioning and ordering strategies are incompatible.

The libScotch also provides helper routines which allow users to express their

preferences on the kind of strategy that they need. These helper routines, which
are of the form SCOTCH strat*Build, tune default strategy strings according to
parameters provided by the user, such as the requested number of parts (used
as a hint to select the most efficient partitioning routines), the desired maximum
load imbalance ratio, and a set of preference flags. While some of these flags are
antagonistic, most of them can be combined, by means of addition or “binary or”
operators. These flags are the following.

SCOTCH STRATQUALITY

Privilege quality over speed. This is the default behavior of default strategy
strings when they are used just after being initialized.

SCOTCH STRATSPEED

Privilege speed over quality.

SCOTCH STRATBALANCE

Enforce load balance as much as possible.

SCOTCH STRATSAFETY

Do not use methods that can lead to the occurrence of problematic events,

57

Advertising