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

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