@@ -32,7 +32,11 @@ data BenchType
35 | Concurrent
38 | Concurrent
36 deriving Show
40 deriving Show
38data Options = Options
42data Options = Options
@@ -76,7 +80,11 @@ parseBench = do
76 Just "base" -> setBenchType Base
80 Just "base" -> setBenchType Base
77 Just "fileio" -> setBenchType FileIO
81 Just "fileio" -> setBenchType FileIO
78 Just "array" -> setBenchType Array
82 Just "array" -> setBenchType Array
83+ Just "unpinned-array" -> setBenchType UnpinnedArray
84+ Just "small-array" -> setBenchType SmallArray
85+ Just "prim-array" -> setBenchType PrimArray
79 Just "concurrent" -> setBenchType Concurrent
86 Just "concurrent" -> setBenchType Concurrent
87+ Just "parallel" -> setBenchType Parallel
80 Just str -> do
88 Just str -> do
81 liftIO $ putStrLn $ "unrecognized benchmark type " <> str
89 liftIO $ putStrLn $ "unrecognized benchmark type " <> str
@@ -247,9 +255,9 @@ makeFileIOGraphs :: Config -> String -> IO ()
247makeFileIOGraphs cfg@Config{..} inputFile =
255makeFileIOGraphs cfg@Config{..} inputFile =
248 ignoringErr $ graph inputFile "fileIO" cfg
256 ignoringErr $ graph inputFile "fileIO" cfg
250−makeArrayGraphs :: Config -> String -> IO ()
258+makeGraphs :: String -> Config -> String -> IO ()
251−makeArrayGraphs cfg@Config{..} inputFile =
259+makeGraphs name cfg@Config{..} inputFile =
252− ignoringErr $ graph inputFile "array" cfg
260+ ignoringErr $ graph inputFile name cfg
254makeConcurrentGraphs :: Config -> String -> IO ()
262makeConcurrentGraphs :: Config -> String -> IO ()
255makeConcurrentGraphs cfg@Config{..} inputFile =
263makeConcurrentGraphs cfg@Config{..} inputFile =
@@ -370,14 +378,34 @@ main = do
370 "charts/fileio"
378 "charts/fileio"
371 Array -> benchShow opts cfg
379 Array -> benchShow opts cfg
372 { title = Just "Array" }
380 { title = Just "Array" }
373− makeArrayGraphs
381+ (makeGraphs "array")
374 "charts/array/results.csv"
382 "charts/array/results.csv"
375 "charts/array"
383 "charts/array"
384+ UnpinnedArray -> benchShow opts cfg
385+ { title = Just "Unpinned Array" }
386+ (makeGraphs "unpinned-array")
387+ "charts/unpinned-array/results.csv"
388+ "charts/unpinned-array"
389+ SmallArray -> benchShow opts cfg
390+ { title = Just "Small Array" }
391+ (makeGraphs "small-array")
392+ "charts/small-array/results.csv"
393+ "charts/small-array"
394+ PrimArray -> benchShow opts cfg
395+ { title = Just "Prim Array" }
396+ (makeGraphs "prim-array")
397+ "charts/prim-array/results.csv"
376 Concurrent -> benchShow opts cfg
399 Concurrent -> benchShow opts cfg
377 { title = Just "Concurrent Ops" }
400 { title = Just "Concurrent Ops" }
378 makeConcurrentGraphs
401 makeConcurrentGraphs
379 "charts/concurrent/results.csv"
402 "charts/concurrent/results.csv"
380 "charts/concurrent"
403 "charts/concurrent"
404+ Parallel -> benchShow opts cfg
405+ { title = Just "Parallel" }
406+ (makeGraphs "parallel")
407+ "charts/parallel/results.csv"
381 Base -> do
409 Base -> do
382 let cfg' = cfg { title = Just "Base stream" }
410 let cfg' = cfg { title = Just "Base stream" }
383 if groupDiff
411 if groupDiff