packages/dph.git
9 years agoAdd rule for zipWith/replicate
Roman Leshchinskiy [Thu, 27 May 2010 11:39:06 +0000 (11:39 +0000)] 
Add rule for zipWith/replicate

9 years agoUse -rtsopts when building test cases
Roman Leshchinskiy [Thu, 27 May 2010 09:05:00 +0000 (09:05 +0000)] 
Use -rtsopts when building test cases

9 years agoAdd a seq/sum rule
Roman Leshchinskiy [Thu, 27 May 2010 09:04:49 +0000 (09:04 +0000)] 
Add a seq/sum rule

9 years agoFix strictness of various Lifted combinators
Roman Leshchinskiy [Thu, 27 May 2010 09:04:25 +0000 (09:04 +0000)] 
Fix strictness of various Lifted combinators

9 years agoRemove unneeded parameters from indices_s
Roman Leshchinskiy [Thu, 27 May 2010 09:03:48 +0000 (09:03 +0000)] 
Remove unneeded parameters from indices_s

9 years agolengthsToSegd is no longer special
Roman Leshchinskiy [Thu, 27 May 2010 09:03:08 +0000 (09:03 +0000)] 
lengthsToSegd is no longer special

9 years agoSanitise zipU and unzipU
Roman Leshchinskiy [Thu, 27 May 2010 09:00:40 +0000 (09:00 +0000)] 
Sanitise zipU and unzipU

  * unzipU now return a lazy pair instead of a strict one

  * There is an unzipU/zipU rule

  * zip3, zipWith3 and unzip3 are defined in DPH_Interface

9 years agoMake packPA_l strict
Roman Leshchinskiy [Thu, 27 May 2010 01:33:43 +0000 (01:33 +0000)] 
Make packPA_l strict

9 years agoFix load balancing issue with indices_s
Roman Leshchinskiy [Wed, 26 May 2010 14:25:34 +0000 (14:25 +0000)] 
Fix load balancing issue with indices_s

9 years agoFix load balancing bug in segmented sums
Roman Leshchinskiy [Wed, 26 May 2010 04:57:32 +0000 (04:57 +0000)] 
Fix load balancing bug in segmented sums

9 years agoAdd exports
Roman Leshchinskiy [Wed, 26 May 2010 04:57:30 +0000 (04:57 +0000)] 
Add exports

9 years agoAdd debugging function
Roman Leshchinskiy [Wed, 26 May 2010 04:52:41 +0000 (04:52 +0000)] 
Add debugging function

9 years agoRewrite test data generation in quickhull
Roman Leshchinskiy [Thu, 20 May 2010 03:33:11 +0000 (03:33 +0000)] 
Rewrite test data generation in quickhull

9 years agoAdd a seq rule for scanlU (+) 0
Roman Leshchinskiy [Thu, 20 May 2010 03:32:12 +0000 (03:32 +0000)] 
Add a seq rule for scanlU (+) 0

This occurs quite frequently when calculating segment descriptors.
Nevertheless, it is a hack.

9 years agoImplement parallel lifted append
Roman Leshchinskiy [Thu, 20 May 2010 03:31:09 +0000 (03:31 +0000)] 
Implement parallel lifted append

This requires append_s and friends to take the segment descriptor of the
result as an additional parameter. This change is also propagated to the
Lifted stuff.

9 years agoImplement fold1SUP
Roman Leshchinskiy [Thu, 20 May 2010 03:30:07 +0000 (03:30 +0000)] 
Implement fold1SUP

9 years agoMake replicateSUP produce evenly distributed arrays
Roman Leshchinskiy [Thu, 20 May 2010 03:28:55 +0000 (03:28 +0000)] 
Make replicateSUP produce evenly distributed arrays

9 years agoMake enumFromStepLenUP more efficient
Roman Leshchinskiy [Thu, 20 May 2010 03:27:36 +0000 (03:27 +0000)] 
Make enumFromStepLenUP more efficient

9 years agoMake foldUP more efficient at the cost of a slight change in semantics
Roman Leshchinskiy [Thu, 20 May 2010 03:25:04 +0000 (03:25 +0000)] 
Make foldUP more efficient at the cost of a slight change in semantics

We now make no guarantees about how often the neutral element will be used. It
really has to be neutral.

9 years agoFix implementation of repeat_c
Roman Leshchinskiy [Thu, 20 May 2010 03:23:32 +0000 (03:23 +0000)] 
Fix implementation of repeat_c

9 years agoAdd a function for splitting a segment descriptor such that the data array will be...
Roman Leshchinskiy [Thu, 20 May 2010 03:22:31 +0000 (03:22 +0000)] 
Add a function for splitting a segment descriptor such that the data array will be evenly distributed

9 years agoAdd export
Roman Leshchinskiy [Thu, 20 May 2010 03:22:16 +0000 (03:22 +0000)] 
Add export

9 years agoChange various functions to use generateD/imapD
Roman Leshchinskiy [Thu, 20 May 2010 03:20:36 +0000 (03:20 +0000)] 
Change various functions to use generateD/imapD

9 years agoDelay inlining unitD
Roman Leshchinskiy [Thu, 20 May 2010 03:19:41 +0000 (03:19 +0000)] 
Delay inlining unitD

9 years agoOnly inline zipD in phase 0 to give some rules a chance to match in phase 1
Roman Leshchinskiy [Thu, 20 May 2010 03:18:57 +0000 (03:18 +0000)] 
Only inline zipD in phase 0 to give some rules a chance to match in phase 1

9 years agoNew combinators in DistST
Roman Leshchinskiy [Thu, 20 May 2010 03:18:20 +0000 (03:18 +0000)] 
New combinators in DistST

9 years agoAdd RULES for zipU/joinD and zipU/splitJoinD
Roman Leshchinskiy [Thu, 20 May 2010 03:16:27 +0000 (03:16 +0000)] 
Add RULES for zipU/joinD and zipU/splitJoinD

9 years agoCompletely change how mapD and friends are implemented
Roman Leshchinskiy [Thu, 20 May 2010 03:12:29 +0000 (03:12 +0000)] 
Completely change how mapD and friends are implemented

The basic combinators are now

generateD :: DT a => Gang -> (Int -> a) -> Dist a
imapD :: (DT a, DT b) => Gang -> (Int -> a -> b) -> Dist a -> Dist b

The Int argument is the index of the current thread. There is also

generateD_cheap :: DT a => Gang -> (Int -> a) -> Dist a

which is equivalent to generateD but just runs the computation sequentially.

9 years agoDon't inline scanD
Roman Leshchinskiy [Thu, 20 May 2010 03:11:56 +0000 (03:11 +0000)] 
Don't inline scanD

9 years agoMake joinD CONLIKE
Roman Leshchinskiy [Thu, 20 May 2010 03:10:29 +0000 (03:10 +0000)] 
Make joinD CONLIKE

9 years agoManually eta-expand mapUP
Roman Leshchinskiy [Thu, 20 May 2010 03:09:10 +0000 (03:09 +0000)] 
Manually eta-expand mapUP

9 years agoFix and use enumFromToEachUP
Roman Leshchinskiy [Thu, 20 May 2010 03:08:05 +0000 (03:08 +0000)] 
Fix and use enumFromToEachUP

9 years agoExport more stuff
Roman Leshchinskiy [Thu, 20 May 2010 03:06:41 +0000 (03:06 +0000)] 
Export more stuff

9 years agoAdd dependency
Roman Leshchinskiy [Thu, 20 May 2010 03:06:17 +0000 (03:06 +0000)] 
Add dependency

9 years agoTracing for gangs
Roman Leshchinskiy [Thu, 20 May 2010 03:05:22 +0000 (03:05 +0000)] 
Tracing for gangs

9 years agoAdd tracing facilities to Dist
Roman Leshchinskiy [Thu, 20 May 2010 03:04:20 +0000 (03:04 +0000)] 
Add tracing facilities to Dist

9 years agoUse divInt, modInt etc.
Roman Leshchinskiy [Thu, 20 May 2010 03:01:18 +0000 (03:01 +0000)] 
Use divInt, modInt etc.

9 years agoRefactoring to avoid making splitJoinD a loop breaker
Roman Leshchinskiy [Thu, 6 May 2010 10:13:16 +0000 (10:13 +0000)] 
Refactoring to avoid making splitJoinD a loop breaker

9 years agoAdd bangs
Roman Leshchinskiy [Thu, 6 May 2010 10:11:12 +0000 (10:11 +0000)] 
Add bangs

9 years agoRemove sequential gangs
Roman Leshchinskiy [Mon, 29 Mar 2010 09:11:03 +0000 (09:11 +0000)] 
Remove sequential gangs

9 years agoBuild system: Fix use of "rm" variables
Ian Lynagh [Sat, 8 May 2010 19:04:42 +0000 (19:04 +0000)] 
Build system: Fix use of "rm" variables

9 years agoAdd fftS to harness
benl@ouroborus.net [Thu, 1 Apr 2010 11:43:24 +0000 (11:43 +0000)] 
Add fftS to harness

9 years agoFix bugs in FFT benchmark
benl@ouroborus.net [Thu, 1 Apr 2010 11:18:46 +0000 (11:18 +0000)] 
Fix bugs in FFT benchmark

You can also now say
   seq/fft check

  and it will do a 1d transform of a step function,
  with both the FFT kernel and a DFT.

9 years agoPrint checksums of resulting matrices in mmult examples
benl@ouroborus.net [Thu, 1 Apr 2010 05:47:01 +0000 (05:47 +0000)] 
Print checksums of resulting matrices in mmult examples

9 years agoAdd to mmult C harness
benl@ouroborus.net [Thu, 1 Apr 2010 04:19:10 +0000 (04:19 +0000)] 
Add to mmult C harness
You can generate random matrices with -random, then save them
to file with -ddumpinput. Load them back up with the Haskell
version and check the output is the same.

9 years agoHacks to C mmult
benl@ouroborus.net [Thu, 1 Apr 2010 02:35:01 +0000 (02:35 +0000)] 
Hacks to C mmult

9 years agoFaster generation of random matrices for mmult
benl@ouroborus.net [Thu, 1 Apr 2010 02:06:01 +0000 (02:06 +0000)] 
Faster generation of random matrices for mmult

9 years agoStart on C ver of mmult
benl@ouroborus.net [Thu, 1 Apr 2010 02:01:17 +0000 (02:01 +0000)] 
Start on C ver of mmult

9 years agoSplit useful stuff out of C version of Laplace, and add to Makefile
benl@ouroborus.net [Thu, 1 Apr 2010 01:21:35 +0000 (01:21 +0000)] 
Split useful stuff out of C version of Laplace, and add to Makefile

9 years agoAdd DArray versions of mmult
benl@ouroborus.net [Thu, 1 Apr 2010 01:02:09 +0000 (01:02 +0000)] 
Add DArray versions of mmult

9 years agoAdd version of mmMult using traverse
benl@ouroborus.net [Thu, 1 Apr 2010 00:43:14 +0000 (00:43 +0000)] 
Add version of mmMult using traverse

9 years agoAdd to mmult harness
benl@ouroborus.net [Thu, 1 Apr 2010 00:31:02 +0000 (00:31 +0000)] 
Add to mmult harness

9 years agoMore fft
Roman Leshchinskiy [Wed, 31 Mar 2010 11:50:20 +0000 (11:50 +0000)] 
More fft

9 years agoAdded Any, test for fft
keller@cse.unsw.edu.au [Wed, 31 Mar 2010 11:43:58 +0000 (11:43 +0000)] 
Added Any, test for fft

9 years agoAdd to mmult harness, it'll read matrices from file but not write them back yet
benl@ouroborus.net [Wed, 31 Mar 2010 10:50:56 +0000 (10:50 +0000)] 
Add to mmult harness, it'll read matrices from file but not write them back yet

9 years agoCArray version of fft
Roman Leshchinskiy [Wed, 31 Mar 2010 10:26:15 +0000 (10:26 +0000)] 
CArray version of fft

9 years agoMore CArray ops
Roman Leshchinskiy [Wed, 31 Mar 2010 10:25:52 +0000 (10:25 +0000)] 
More CArray ops

9 years agoAdd a couple of CArray ops
Roman Leshchinskiy [Wed, 31 Mar 2010 10:00:11 +0000 (10:00 +0000)] 
Add a couple of CArray ops

9 years agoStart on CArray mmult harness
benl@ouroborus.net [Wed, 31 Mar 2010 08:58:17 +0000 (08:58 +0000)] 
Start on CArray mmult harness

9 years ago'port across more stuff from DArray into CArray
benl@ouroborus.net [Wed, 31 Mar 2010 08:55:30 +0000 (08:55 +0000)] 
'port across more stuff from DArray into CArray

9 years agoAdd replicateSlice
benl@ouroborus.net [Wed, 31 Mar 2010 07:36:34 +0000 (07:36 +0000)] 
Add replicateSlice

9 years agoAdd transpose and backpermute
benl@ouroborus.net [Wed, 31 Mar 2010 07:30:49 +0000 (07:30 +0000)] 
Add transpose and backpermute

9 years agoCleanup and nicer version of traverseCArray
benl@ouroborus.net [Wed, 31 Mar 2010 07:26:37 +0000 (07:26 +0000)] 
Cleanup and nicer version of traverseCArray

9 years agoFix traverseCArray
benl@ouroborus.net [Wed, 31 Mar 2010 06:38:41 +0000 (06:38 +0000)] 
Fix traverseCArray

9 years agoHacks to SolveCArray (makes it slower, not finished)
benl@ouroborus.net [Wed, 31 Mar 2010 06:22:38 +0000 (06:22 +0000)] 
Hacks to SolveCArray (makes it slower, not finished)

9 years agoMoving to Slice def of paper
keller@cse.unsw.edu.au [Wed, 31 Mar 2010 05:09:27 +0000 (05:09 +0000)] 
Moving to Slice def of paper

9 years agoChanging over to Slice type family from Index
keller@cse.unsw.edu.au [Wed, 31 Mar 2010 04:07:56 +0000 (04:07 +0000)] 
Changing over to Slice type family from Index

9 years agoAdd benchmarking code to C laplace solver
Roman Leshchinskiy [Wed, 31 Mar 2010 03:49:42 +0000 (03:49 +0000)] 
Add benchmarking code to C laplace solver

9 years agoChanged DArray, ArrayExamples, DArrayExamples to work with new shape type
keller@cse.unsw.edu.au [Wed, 31 Mar 2010 03:08:50 +0000 (03:08 +0000)] 
Changed DArray, ArrayExamples, DArrayExamples to work with new shape type

9 years agoUse Int indexing instead of (Int, Int) in IOUArray version of Laplace benchmark
benl@ouroborus.net [Wed, 31 Mar 2010 03:00:21 +0000 (03:00 +0000)] 
Use Int indexing instead of (Int, Int) in IOUArray version of Laplace benchmark
Makes it go about 2x faster.

9 years agoOutput compute time in laplace
Roman Leshchinskiy [Wed, 31 Mar 2010 01:42:33 +0000 (01:42 +0000)] 
Output compute time in laplace

9 years agoAdd deepSeqArray
Roman Leshchinskiy [Wed, 31 Mar 2010 01:42:20 +0000 (01:42 +0000)] 
Add deepSeqArray

9 years agoformatting only
benl@ouroborus.net [Tue, 30 Mar 2010 09:34:58 +0000 (09:34 +0000)] 
formatting only

9 years agoAdd first cut version of Laplace solver using IOUArrays
benl@ouroborus.net [Tue, 30 Mar 2010 07:04:09 +0000 (07:04 +0000)] 
Add first cut version of Laplace solver using IOUArrays
It's about 3x slower than carrays atm, but I'm still working on it...

9 years agowibble to traverseCArray
benl@ouroborus.net [Tue, 30 Mar 2010 04:03:50 +0000 (04:03 +0000)] 
wibble to traverseCArray

9 years agoAdd traverseCArray and use it in Laplace benchmark
benl@ouroborus.net [Tue, 30 Mar 2010 03:42:35 +0000 (03:42 +0000)] 
Add traverseCArray and use it in Laplace benchmark

9 years agoAdd more laplace example data
benl@ouroborus.net [Tue, 30 Mar 2010 02:34:10 +0000 (02:34 +0000)] 
Add more laplace example data

9 years agoRefactor C version of Laplace benchmark to allow non-square matrices
benl@ouroborus.net [Mon, 29 Mar 2010 23:37:32 +0000 (23:37 +0000)] 
Refactor C version of Laplace benchmark to allow non-square matrices

9 years agoMake Haskell version of Laplace benchmark take PPM file of boundary conditions
benl@ouroborus.net [Mon, 29 Mar 2010 07:50:17 +0000 (07:50 +0000)] 
Make Haskell version of Laplace benchmark take PPM file of boundary conditions

New cmd line usage is like:
  laplace carray-stencil 10000 examples/laplace/data/pls-100x100.ppm out.ppm

More example data is in regularArrays/examples/laplace/data

9 years agoRefactor laplace solvers slightly
Roman Leshchinskiy [Mon, 29 Mar 2010 05:06:20 +0000 (05:06 +0000)] 
Refactor laplace solvers slightly

9 years agoFix strictness of various functions in CArray
Roman Leshchinskiy [Mon, 29 Mar 2010 04:50:57 +0000 (04:50 +0000)] 
Fix strictness of various functions in CArray

9 years agoSave one remInt in fromIndex
Roman Leshchinskiy [Mon, 29 Mar 2010 04:50:38 +0000 (04:50 +0000)] 
Save one remInt in fromIndex

9 years agoseq/deepSeq stuff when constructing DArrays
Roman Leshchinskiy [Mon, 29 Mar 2010 04:08:37 +0000 (04:08 +0000)] 
seq/deepSeq stuff when constructing DArrays

9 years agoGive deepSeq a fixity
Roman Leshchinskiy [Mon, 29 Mar 2010 04:08:23 +0000 (04:08 +0000)] 
Give deepSeq a fixity

9 years agoFix typo
Roman Leshchinskiy [Mon, 29 Mar 2010 04:02:14 +0000 (04:02 +0000)] 
Fix typo

9 years agoChange shapes to use (.:) instead of (:*:)
Roman Leshchinskiy [Mon, 29 Mar 2010 03:13:07 +0000 (03:13 +0000)] 
Change shapes to use (.:) instead of (:*:)

9 years agoRemove superclass constraints on Shape
Roman Leshchinskiy [Mon, 29 Mar 2010 02:56:22 +0000 (02:56 +0000)] 
Remove superclass constraints on Shape

9 years agoGet rid of range
Roman Leshchinskiy [Mon, 29 Mar 2010 02:51:49 +0000 (02:51 +0000)] 
Get rid of range

9 years agoAdd deepSeq on Ranges
Roman Leshchinskiy [Mon, 29 Mar 2010 02:51:37 +0000 (02:51 +0000)] 
Add deepSeq on Ranges

9 years agoUse quotRemInt instead of divMod
Roman Leshchinskiy [Mon, 29 Mar 2010 02:36:46 +0000 (02:36 +0000)] 
Use quotRemInt instead of divMod

9 years agoUse regular folds
Roman Leshchinskiy [Mon, 29 Mar 2010 02:36:00 +0000 (02:36 +0000)] 
Use regular folds

9 years agoAdd replicate_rs/replicate rule
Roman Leshchinskiy [Tue, 2 Mar 2010 12:53:35 +0000 (12:53 +0000)] 
Add replicate_rs/replicate rule

9 years agoModify and export regular folds
Roman Leshchinskiy [Tue, 2 Mar 2010 12:52:48 +0000 (12:52 +0000)] 
Modify and export regular folds

9 years agoAdd comments to SolveDArray
benl@ouroborus.net [Fri, 26 Mar 2010 06:24:22 +0000 (06:24 +0000)] 
Add comments to SolveDArray
Converting back and forth between DArray and Array allows
the indexing function that reads the forced data at the start of
each iteration to be fused with the stencil function.

This achieves the same thing as CArray, but by using two
different array types instead of an Either.

9 years agoCleanup and add more inline pragmas
benl@ouroborus.net [Fri, 26 Mar 2010 05:19:08 +0000 (05:19 +0000)] 
Cleanup and add more inline pragmas

9 years agoAdd Laplace benchmark to Makefile
benl@ouroborus.net [Fri, 26 Mar 2010 04:39:34 +0000 (04:39 +0000)] 
Add Laplace benchmark to Makefile

9 years agoAdd version of CArray that uses a flat unboxed DIM type
benl@ouroborus.net [Fri, 26 Mar 2010 04:04:08 +0000 (04:04 +0000)] 
Add version of CArray that uses a flat unboxed DIM type

9 years agoAdd support for default to sequential execution if the gang is busy
Roman Leshchinskiy [Thu, 25 Mar 2010 11:10:57 +0000 (11:10 +0000)] 
Add support for default to sequential execution if the gang is busy

To enable, uncomment the #define SEQ_IF_GANG_BUSY line in Gang.hs. Let's see
if this works out before making it more convenient.

9 years agoFix comment
Roman Leshchinskiy [Thu, 25 Mar 2010 11:00:31 +0000 (11:00 +0000)] 
Fix comment

9 years agoChange Gang representation slightly
Roman Leshchinskiy [Thu, 25 Mar 2010 11:00:07 +0000 (11:00 +0000)] 
Change Gang representation slightly