[Haskell-cafe] A Missing Issue on Second Generation Strategies

Burak Ekici ekcburak at hotmail.com
Sat Sep 24 18:01:10 CEST 2011


Dear List,

I am trying to parallelize RSA encryption and decryption by using below manner,
but when I run executable output file with "+RTS -s -N2" command on Windows 7,
output stats say 4 sparks are being created however none of them converted into
real OS threads.

-- SPARKS :4 (0 converted, 4 pruned) --

I was thinking that the problem could occur due to lack of forcing parallelization but,
as far as I know 'rdeepseq' works for that aim.

Briefly, I could not solve the issue why parallelization was not being implemented.
I would be appreciated if any of you shed a light on the issue that I missed.

Here is the mentioned part of code:

split4ToEnc :: RSAPublicKey -> [Integer] -> [Integer]
split4ToEnc (PUB n e) []     = []
split4ToEnc (PUB n e) (x:xs) = 
 ((ersa (PUB n e) secondPart2) ++ (ersa (PUB n e) secondPart1) ++ (ersa (PUB n e) firstPart2) ++ (ersa (PUB n e) firstPart1)) `using` strategy
 where 
  firstPart1  = fst (Main.splitAt((length (x:xs)) `div` 4) (fst(Main.splitAt ((length (x:xs)) `div` 2) (x:xs))))
  firstPart2  = snd (Main.splitAt((length (x:xs)) `div` 4) (fst(Main.splitAt ((length (x:xs)) `div` 2) (x:xs))))
  secondPart1  = fst (Main.splitAt((length (x:xs)) `div` 4) (snd(Main.splitAt ((length (x:xs)) `div` 2) (x:xs))))
  secondPart2  = snd (Main.splitAt((length (x:xs)) `div` 4) (snd(Main.splitAt ((length (x:xs)) `div` 2) (x:xs))))
  strategy res = do
                  a <- rpar (ersa (PUB n e) (firstPart1) `using` rdeepseq)
                  b <- rpar (ersa (PUB n e) (firstPart2) `using` rdeepseq)
                  c <- rpar (ersa (PUB n e) (secondPart1) `using` rdeepseq)
                  d <- rpar (ersa (PUB n e) (secondPart2) `using` rdeepseq)
                  rdeepseq res


Thanks a lot,
Burak.


 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110924/559df4ac/attachment.htm>


More information about the Haskell-Cafe mailing list