Commit 788f13a2 authored by Peter W. Draper's avatar Peter W. Draper

Update description of the -y option

Also make sure ParMETIS is mentioned as well as METIS
parent 09a2b67d
......@@ -138,14 +138,15 @@ before you can build it.
=====================
- METIS:
a build of the METIS library can be optionally used to
optimize the load between MPI nodes (requires an MPI
library). This should be found in the standard installation
directories, or pointed at using the "--with-metis"
configuration option. In this case the top-level installation
directory of the METIS build should be given. Note to use
METIS you should supply at least "--with-metis".
- METIS/ParMETIS:
a build of the METIS or ParMETIS library should be used to
optimize the load between MPI nodes. This should be found in the
standard installation directories, or pointed at using the
"--with-metis" or "--with-parmetis" configuration options.
In this case the top-level installation directory of the build
should be given. Note to use METIS or ParMETIS you should supply at
least "--with-metis". ParMETIS is preferred over METIS when there
is a choice.
- libNUMA:
a build of the NUMA library can be used to pin the threads to
......
......@@ -65,8 +65,8 @@ Parameters:
-T, --timers=<int> Print timers every time-step.
-v, --verbose=<int> Run in verbose mode, in MPI mode 2 outputs
from all ranks.
-y, --task-dumps=<int> Time-step frequency at which task graphs
are dumped.
-y, --task-dumps=<int> Time-step frequency at which task analysis
files and/or tasks are dumped.
-Y, --threadpool-dumps=<int> Time-step frequency at which threadpool
tasks are dumped.
......
......@@ -113,8 +113,8 @@ Parameters:
-T, --timers=<int> Print timers every time-step.
-v, --verbose=<int> Run in verbose mode, in MPI mode 2 outputs
from all ranks.
-y, --task-dumps=<int> Time-step frequency at which task graphs
are dumped.
-y, --task-dumps=<int> Time-step frequency at which task analysis
files and/or tasks are dumped.
-Y, --threadpool-dumps=<int> Time-step frequency at which threadpool
tasks are dumped.
......
......@@ -1976,7 +1976,7 @@ SEARCH_INCLUDES = YES
# preprocessor.
# This tag requires that the tag SEARCH_INCLUDES is set to YES.
INCLUDE_PATH =
INCLUDE_PATH = @top_srcdir@/src
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
......
......@@ -60,7 +60,7 @@ can be found by typing ``./swift -h``::
-T, --timers=<int> Print timers every time-step.
-v, --verbose=<int> Run in verbose mode, in MPI mode 2 outputs
from all ranks.
-y, --task-dumps=<int> Time-step frequency at which task graphs
are dumped.
-y, --task-dumps=<int> Time-step frequency at which task analysis
files and/or tasks are dumped.
-Y, --threadpool-dumps=<int> Time-step frequency at which threadpool
tasks are dumped.
......@@ -41,9 +41,9 @@ FFTW
~~~~
Version 3.3.x or higher is required for periodic gravity.
METIS
~~~~~
METIS is used for domain decomposition and load balancing.
ParMETIS or METIS
~~~~~~~~~~~~~~~~~
One is required for domain decomposition and load balancing.
libNUMA
~~~~~~~
......
......@@ -26,9 +26,8 @@ system (i.e. over MPI on several nodes). Here are some recommendations:
+ Run with threads pinned. You can do this by passing the ``-a`` flag to the
SWIFT binary. This ensures that processes stay on the same core that spawned
them, ensuring that cache is accessed more efficiently.
+ Ensure that you compile with METIS. More information is available in an
upcoming paper, but using METIS allows for work to be distributed in a
more efficient way between your nodes.
+ Ensure that you compile with ParMETIS or METIS. These are required if
want to load balance between MPI ranks.
Your batch script should look something like the following (to run on 16 nodes
each with 2x16 core processors for a total of 512 cores):
......
......@@ -71,7 +71,7 @@ const char *initial_partition_name[] = {
/* Simple descriptions of repartition types for reports. */
const char *repartition_name[] = {
"none", "edge and vertex task cost weights", "task cost edge weights",
"particle memory weights",
"memory balanced, using particle vertex weights",
"vertex task costs and edge delta timebin weights"};
/* Local functions, if needed. */
......@@ -1587,7 +1587,7 @@ static void repart_memory_metis(struct repartition *repartition, int nodeID,
/* And repartition. */
#ifdef HAVE_PARMETIS
if (repartition_partition->usemetis) {
if (repartition->usemetis) {
pick_metis(nodeID, s, nr_nodes, weights, NULL, repartition->celllist);
} else {
pick_parmetis(nodeID, s, nr_nodes, weights, NULL, refine,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment