From 8051f46061c7cd03f0fc327f047eb2526d00c924 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Thu, 19 Jun 2008 12:12:27 +0000 Subject: [PATCH] document some RTS options I added a while ago: -qm, -qw --- docs/users_guide/using.xml | 59 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 9 deletions(-) diff --git a/docs/users_guide/using.xml b/docs/users_guide/using.xml index 60b8f3e..d805097 100644 --- a/docs/users_guide/using.xml +++ b/docs/users_guide/using.xml @@ -1738,7 +1738,7 @@ f "2" = 2 parallelism. - Options to enable SMP parallelism + Options for SMP parallelism In order to make use of multiple CPUs, your program must be linked with the option (see RTS option Use x simultaneous threads when running the program. Normally x - should be chosen to match the number of CPU cores on the machine. - There is no means (currently) by which this value may vary after - the program has started. - - For example, on a dual-core machine we would probably use + should be chosen to match the number of CPU cores on the + machineWhether hyperthreading cores should be counted or not is an + open question; please feel free to experiment and let us know what + results you find.. For example, + on a dual-core machine we would probably use +RTS -N2 -RTS. - Whether hyperthreading cores should be counted or not is an - open question; please feel free to experiment and let us know what - results you find. + Setting also has the effect of + setting (the number of OS threads to + use for garbage collection) to the same value. + + There is no means (currently) by which this value + may vary after the program has started. + + The following options affect the way the runtime schedules + threads on CPUs: + + + + + RTS + option + + Disable automatic migration for load balancing. + Normally the runtime will automatically try to schedule + threads across the available CPUs to make use of idle + CPUs; this option disables that behaviour. It is probably + only of use if you are explicitly scheduling threads onto + CPUs with GHC.Conc.forkOnIO. + + + + + RTS + option + + Migrate a thread to the current CPU when it is woken + up. Normally when a thread is woken up after being + blocked it will be scheduled on the CPU it was running on + last; this option allows the thread to immediately migrate + to the CPU that unblocked it. + + The rationale for allowing this eager migration is + that it tends to move threads that are communicating with + each other onto the same CPU; however there are + pathalogical situations where it turns out to be a poor + strategy. Depending on the communication pattern in your + program, it may or may not be a good idea. + + + -- 1.7.10.4