Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Goal 0.2: parallel fold #2

Open
rrnewton opened this issue Sep 6, 2016 · 4 comments
Open

Goal 0.2: parallel fold #2

rrnewton opened this issue Sep 6, 2016 · 4 comments

Comments

@rrnewton
Copy link
Member

rrnewton commented Sep 6, 2016

After 0.1 is finished, we will be mapping over a concurrent set. We can then extend that to perform a parallel reduction with the contents of the output set.

Parallel fold will need to take a proof of associativity.

@rrnewton
Copy link
Member Author

rrnewton commented Oct 3, 2016

Vikraman has been working on this recently, getting VerifiedSemigroup and VerifiedMonoid working.

The way this is implemented brings back up issues of performance. I think we need to RUN our benchmarks, not just report how many lines of code were added for verification.

@rrnewton
Copy link
Member Author

rrnewton commented Oct 3, 2016

In @vikraman's work, he has been aiming to get products of monoids working, to demonstrate composability. This is not critical, but it is nice.

@vikraman
Copy link
Member

vikraman commented Oct 3, 2016

There is one extra level of indirection that could possibly be eliminated. Since type families are not injective, it's data Verified Eq a instead of type Verified Eq a. @RyanGlScott thinks ghc 8.0 can get you injective type families using TypeFamilyDependencies.

@RyanGlScott
Copy link
Member

As it turns out, we can "fake" TypeFamilyDependencies using newtype instances, so at least that indirection won't be a problem.

vikraman added a commit that referenced this issue Oct 7, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants