|
|
- module Main where
-
- import System.Environment
-
-
- import ThreadPoolTimed
- import ThreadPoolTimed2
-
- initialVector :: [Int]
- initialVector = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-
- main :: IO ()
- main = do args <- getArgs
- let sec = read (args !! 0) :: Int
- let rep = read (args !! 1) :: Int
- let cores = read (args !! 2) :: Int
- let evalf = (applyNtimes rep applyFun)
- putStrLn "\n\n"
-
- res2 <- threadPoolTimed cores sec evalf initialVector
- putStrLn $ "ThreadPool result: " ++ (show $ sum res2) ++ " \n"
-
- res1 <- threadPoolTimed2 sec evalf initialVector
- putStrLn $ "ThreadPool2 result: " ++ (show $ sum res1) ++ " \n"
-
-
- --res3 <- parallelizedTimed2 sec evalf initialVector
- --putStrLn $ "ParMap result: " ++ (show $ sum res3) ++ " \n"
-
-
-
-
-
- applyNtimes :: Int -> (a -> a) -> a -> a
- applyNtimes 0 _ accum = accum
- applyNtimes n f accum = applyNtimes (n - 1) f (f accum)
-
- applyFun :: Int -> Int
- applyFun x = x + 1
|