PMDBtool takes one command-line argument, the name of a command script file. It parses the command file and does things like loading and paritioning meshes, load balancing, and computing our metric statistics.
- trace - trace <bool_val>Turn on or off trace output, depending on the boolean argument. A missing argument is taken to mean turn on tracing.
- compress <level>Set the output compression level. Valid compression levels are
none, for uncompressed output,
compress, for compression with UNIX compress
(.Z)
gzip, for compression with gzip (.gz)
gzip9, for compression with gzip -9
(.gz)
gzip.
- indir "path" - outdir "path"Sets default input and output directories to the given string. The path string must be quoted. Any input or output files which are given on subsequent lines and which do not have a directory included in their filename will have this path prepended to them before opening. These can be issued multiple times in an execution of the program to change directories on the fly.
- model "file"Loads the model file in
"file.smd". This should be done
first, just as it usually is done in a Mesh Database/PMDB application.
This command will call GM_createFromFile() to load the model file.
- part <type> "file"Load
"file.sms" file and partition onto all the
processors. <type> can be inertial or orthogonal.
This command will call pmdb_inertia_rb() or
pmdb_ortho_rb().
- read_sms "file"Load saved PMDB files in
"file.procid.sms" and
"file.procid.pmdb". This command will call
pmdb_read_msh_par().
- read_split_sms "file"Load split mesh files in
"file.procid.sms". This command
will call pmdb_load_split_sms(). The interprocessor
links normally stored in the .pmdb files are generated by
PMDB.
- write_sms "file"Write PMDB files
"file.procid.sms" and
"file.procid.pmdb". This command will call
pmdb_write_msh_par().
- metrics "prefix" "infix"Print metric information about the current mesh and partition. This results in a call to
pmdb_metrics(); with the args here
passed as the prefix and infix strings.
- loads max/avg/local/globalPrint values of load (possibly weighted) and the number of regions in the current mesh and partition. Any combination of
max,
avg, local, and global can be
displayed, with multiple values separated by spaces. max
prints the maximum values on any processors, avg the
average values, local the local values from each
processor, and global the overall totals.
- si max/avg/local/globalCompute and print values of surface index metrics in the current mesh and partition. Any combination of
max, avg,
local, and global can be displayed, with
multiple values separated by spaces. max prints the
maximum value on any processor (MLSI), avg the average
value, local the local value from each processor, and
global the overall total (GSI).
- disconn max/avg/local ent_typeCompute and print the number of disjoint connected components in the current mesh and partition. Any combination of
max,
avg, and local can be displayed, with
multiple values separated by spaces. max prints the
maximum number of components on any processor, avg the
average count, and local the local count from each
processor. ent_type is the type of entity adjacency used
for the calculation, which could be face,
edge, or vertex.
- adjacency max/avg/localCompute and print the number and percentage of partition adjacencies current mesh and partition. Any combination of
max,
avg, and local can be displayed, with
multiple values separated by spaces. max prints the
maximum number of processors adjacent to any processor,
avg the average count, and local the local
adjacency count from each processor.
- duplicates ent_typePrint the number of duplicated partition boundary entities in the current mesh and partition.
ent_type is the type of
entity, which could be face, edge, or
vertex.
- comm_matrixCompute and print the communication matrix for the current mesh and partition.
- int_matrixCompute and print the interface matrix for the current mesh and partition.
- centroids "file"Write the centroids of all mesh regions on each processor i in a file
file.i.cent.
- dx <dx_opts> "file"Write Data Explorer files which represent the currently loaded mesh.
<dx_opts> can include the tokens
color, bw, surface,
3d, or 2d. The defaults are
color and 3d. Depending on the options
given, one of the following will be called:
pmdb_write_dx(), pmdb_write_bw_dx(),
pmdb_write_2d_dx(), pmdb_write_2d_bw_dx(),
pmdb_write_sur_dx(), or
pmdb_write_bw_sur_dx().
- refine sphere (x,y,z) r - refine box (x1,y1,z1) (x2,y2,z2)Call the refdref library to refine at all vertices which fall within the given region. For a sphere refinement, (x,y,z) is the center of the sphere and r is the radius. For a box refinement, the 2 points given are the opposite corners of a box in which refinement is to take place. The files
refdref.inp, which gives the
parameters to the refinement/derefinement library, and the file
meshname.xmt_txt, which is the Parasolid model
description file, must exist in the working directory to use the
refinement operators.
- refine percentage pctCall the refdref library to mark for refinement a percentage of all vertices in the mesh. pct should be a value between 0 and 1 to indicate what portion of vertices should be marked for refinement. Note that this does not mean an increase by a factor of pct - in fact, the growth in mesh size will be several times greater.
- coarsen sphere (x,y,z) r - coarsen box (x1,y1,z1) (x2,y2,z2)Call the refdref library to mark for coarsening all vertices which fall within the given region. For a sphere refinement, (x,y,z) is the center of the sphere and r is the radius. For a box refinement, the 2 points given are the opposite corners of a box in which refinement is to take place.
- weight sphere (x,y,z) r n - weight box (x1,y1,z1) (x2,y2,z2) nSet the weights for all elements in the given region to
n. These weights are used rather than the region count
to determine workloads during load balancing. Again, for a sphere
refinement, (x,y,z) is the center of the sphere and r is the radius.
For a box refinement, the 2 points given are the opposite corners of a
box in which refinement is to take place.
- checklinksCall the PMDB link validity-checking routines.
pmdb_check_links() is called.
- checkmeshCall the MeshTools mesh validity-checking routines.
M_checkAdj() is called.
Load balancing parameter setting:
- PMDB_LB_SEL_METHOD <method> - PMDB_LB_MAX_ITER <max_iter> - PMDB_LB_MAX_INTERNAL_ITER <max_iter> - PMDB_LB_DEBUG_LEVEL <level> - PMDB_LB_TOLERANCE <tol> - PMDB_LB_PRINT_MIGSTATS <boolean> - PMDB_LB_PRINT_ITBTIMES <boolean> - PMDB_LB_PRINT_ZOLTANTIMES <boolean>These commands set various paramters for PMDB's Iterative Tree Balancing algorithm or PMDB Zoltan interface. Each of these results in a call to
pmdb_set_load_balance_params(). Valid
values for each are described in the PMDB User's
Manual.
- load_balanceDo Iterative Tree Balancing based on the previously set load balancing paramters. This command will result in a call to
pmdb_load_balance().
- repartitionCall Hugues DeCougny's parallel repartitioning function. This does a global, parallel repartitioning using Inertial Recursive Bisection.
- parmetis typeCall one of the ParMetis parallel repartitioning functions. The argument "type" specifies which of the methods to use. See the scorec2metis documentation for details.
- zoltan "param" "value" - zoltanThese use PMDB's interface to the Zoltan Dynamic Load Balancing Library. WIth two string arguments, this command sets the Zoltan parameter "param" to the value specified by "value". With no arguments, this command performs a Zoltan load balancing and PMDB migration to achieve the new distribution. By default, the PMDB Zoltan interface uses Octree Load Balancing with Hilbert indexing and a maintained octree structure.
- migstats [ reset | print | output filename ]
migstats reset resets the PMDB internal migration stats
counters. It can be called before a refinement, load-balance, or
other operation which may include a migration step to obtain detailed
information about the time spent and number of messages transmitted
during migration.. migstats print will print out the
stats since the last migstats reset call. migstats
output filename will write the stats since the last reset call
to a file filename.
- modeler [ shapes | parasolid | smd | null]Select which modeler you wish to use.
smd and
null are always available, but provide limited or no real
information, respectively. The others require commercial modelers to
be linked, and are likely to be unavailable in many circumstances.
- sleep secondsPut the process to sleep for
seconds seconds. This is
useful to attach a debugger to a process started in a parallel
environment.
- echo [ all | pid | master ] "message"Echo a message to standard output. The second argument indicates which processes are to perform the echo.
all means all
processes should print, master means only the master
process, and a process ID number means just that process. A missing
second argument indicates that the message should be printed by only
the master process.