scheduler 1.4.2 → 1.4.2.1
raw patch · 3 files changed
+23/−24 lines, 3 filesdep −fibdep ~streamly
Dependencies removed: fib
Dependency ranges changed: streamly
Files
- bench/Scheduler.hs +21/−21
- scheduler.cabal +1/−2
- src/Control/Scheduler/Internal.hs +1/−1
bench/Scheduler.hs view
@@ -2,38 +2,38 @@ import qualified Control.Concurrent.Async as A (mapConcurrently, replicateConcurrently) import Control.Monad (replicateM)-import Control.Monad.Par (IVar, Par, get, newFull_, parMapM, runParIO)+import Control.Monad.Par (IVar, Par, get, newFull_, runParIO) --, parMapM) import Control.Parallel (par) import Control.Scheduler import Criterion.Main import Control.DeepSeq import Data.Foldable as F import Data.IORef-import Fib+--import Fib import Streamly (asyncly) import qualified Streamly.Prelude as S import UnliftIO.Async (pooledMapConcurrently, pooledReplicateConcurrently) main :: IO ()-main = do+main = defaultMain- ([mkBenchReplicate "Fib" n x fibIORef fibParVar | n <- [1000], x <- [10000]] +++ (--[mkBenchReplicate "Fib" n x fibIORef fibParVar | n <- [1000], x <- [10000]] ++ [mkBenchReplicate "Sum" n x sumIORef sumParVar | n <- [1000], x <- [1000]] ++- [mkBenchMap "Fib" n fibIO fibParIO fibPar | n <- [2000]] +++ --[mkBenchMap "Fib" n fibIO fibParIO fibPar | n <- [2000]] ++ [mkBenchMap "Sum" n sumIO sumParIO sumPar | n <- [2000]]) where- fibIO :: Int -> IO Integer- fibIO x = do- let y = fib $ toInteger x- y `seq` pure y- fibParIO :: Int -> IO Integer- fibParIO x = do- let y = fib $ toInteger x- y `par` pure y- fibPar :: Int -> Par Integer- fibPar x = do- let y = fib $ toInteger x- y `seq` pure y+ -- fibIO :: Int -> IO Integer+ -- fibIO x = do+ -- let y = fib $ toInteger x+ -- y `seq` pure y+ -- fibParIO :: Int -> IO Integer+ -- fibParIO x = do+ -- let y = fib $ toInteger x+ -- y `par` pure y+ -- fibPar :: Int -> Par Integer+ -- fibPar x = do+ -- let y = fib $ toInteger x+ -- y `seq` pure y sumIO :: Int -> IO Int sumIO x = do let y = F.foldl' (+) 0 [x .. 100*x]@@ -46,10 +46,10 @@ sumPar x = do let y = F.foldl' (+) 0 [x .. 100*x] y `seq` pure y- fibIORef :: IORef Int -> IO Integer- fibIORef xRef = readIORef xRef >>= fibIO- fibParVar :: IVar Int -> Par Integer- fibParVar ivar = get ivar >>= fibPar+ -- fibIORef :: IORef Int -> IO Integer+ -- fibIORef xRef = readIORef xRef >>= fibIO+ -- fibParVar :: IVar Int -> Par Integer+ -- fibParVar ivar = get ivar >>= fibPar sumIORef :: IORef Int -> IO Int sumIORef xRef = readIORef xRef >>= sumIO sumParVar :: IVar Int -> Par Int
scheduler.cabal view
@@ -1,5 +1,5 @@ name: scheduler-version: 1.4.2+version: 1.4.2.1 synopsis: Work stealing scheduler. description: A work stealing scheduler that is primarly developed for [massiv](https://github.com/lehins/massiv) array librarry, but it is general enough to be useful for any computation that fits the model of few workers many jobs. homepage: https://github.com/lehins/haskell-scheduler@@ -76,7 +76,6 @@ , async , criterion , deepseq- , fib , monad-par , scheduler , parallel
src/Control/Scheduler/Internal.hs view
@@ -27,7 +27,7 @@ import Data.IORef import Data.Primitive.Array --- | Computated outcome of scheduled jobs.+-- | Computed outcome of scheduled jobs. -- -- @since 1.4.2 data Results a