Find out which part of code are causing parallelism?

Hi all, I am working on parallelising some program, however I just found out that without inserting any parallism manually the program is already parallelised, presumably by some of the libraries referenced, as long as I enable -threaded and +RTS -N8. Unfortunately this parallism are actually slowing down my program, probably due to being of too fine granularity. For example, with +RTS -N8 I have 47.03user 38.06system 0:21.68elapsed 392%CPU While with +RTS -N1 I have 16.57user 0.45system 0:17.02elapsed 100%CPU In .prof file I can't find whether a function fired a spark or how much 'system' time a function used. Nor can I find any names of functions/modules browsing through eventlog with ghc-events. Is there a way to find out which functions/modules are causing any parallelism at all? I am also trailing the post with the imports I used in case anyone immediately recognises parallelism by default in the package. import Control.DeepSeq import GHC.Generics (Generic, Generic1) import Text.Parsec import Data.List import Data.Vector.Unboxed(fromList, (!)) import qualified Data.Vector as V import qualified Data.Map as M import qualified Data.Set as S import Data.Char import Control.Applicative((*>),(<*)) import Test.QuickCheck.Monadic import Test.QuickCheck import Control.Monad import Text.Regex import Control.Applicative ((<$>), (<$), (<|>)) import GHC.Read (readLitChar) import Data.Char(isPrint) import Text.ParserCombinators.ReadP import Text.Show.Pretty import Data.Functor import Data.Maybe import System.Environment(getArgs) import Text.Read(readMaybe) import Text.Printf import Data.Dynamic import Debug.Trace import Data.Ratio import qualified Data.DList as D import Control.Monad.Trans.Writer.Strict import Control.Monad.Trans.Class import Data.Typeable(Typeable) import qualified Data.HashMap.Lazy as H Best, ducis

Does threadscope help? It should be of some use since it is designed for debugging parallel programs. Cheers, Vanessa On 12/28/18 2:19 AM, ducis wrote:
Hi all,
I am working on parallelising some program, however I just found out that without inserting any parallism manually the program is already parallelised, presumably by some of the libraries referenced, as long as I enable -threaded and +RTS -N8.
Unfortunately this parallism are actually slowing down my program, probably due to being of too fine granularity. For example, with +RTS -N8 I have 47.03user 38.06system 0:21.68elapsed 392%CPU While with +RTS -N1 I have 16.57user 0.45system 0:17.02elapsed 100%CPU
In .prof file I can't find whether a function fired a spark or how much 'system' time a function used. Nor can I find any names of functions/modules browsing through eventlog with ghc-events. Is there a way to find out which functions/modules are causing any parallelism at all?
I am also trailing the post with the imports I used in case anyone immediately recognises parallelism by default in the package. import Control.DeepSeq import GHC.Generics (Generic, Generic1) import Text.Parsec
import Data.List
import Data.Vector.Unboxed(fromList, (!)) import qualified Data.Vector as V import qualified Data.Map as M import qualified Data.Set as S import Data.Char
import Control.Applicative((*>),(<*))
import Test.QuickCheck.Monadic
import Test.QuickCheck
import Control.Monad
import Text.Regex import Control.Applicative ((<$>), (<$), (<|>)) import GHC.Read (readLitChar) import Data.Char(isPrint) import Text.ParserCombinators.ReadP import Text.Show.Pretty
import Data.Functor
import Data.Maybe
import System.Environment(getArgs) import Text.Read(readMaybe)
import Text.Printf
import Data.Dynamic
import Debug.Trace
import Data.Ratio
import qualified Data.DList as D import Control.Monad.Trans.Writer.Strict
import Control.Monad.Trans.Class
import Data.Typeable(Typeable)
import qualified Data.HashMap.Lazy as H
Best, ducis
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
participants (2)
-
ducis
-
Vanessa McHale