Reductions in CnC

Reductions in CnC

Are there plans to release a new version of CnC in the foreseeable future? More specifically, I would be really interested in the reduction features published in:
Deterministic Reductions in an Asynchronous Parallel Language. Zoran Budimli, Michael Burke, Kathleen Knobe, Ryan Newton, David Peixotto, Vivek Sarkar, Edwin Westbrook. The 2nd Workshop on Determinism and Correctness in Parallel Programming (WoDet), March 2011.I currently notice two essential bottlenecks in my CnC-based application; One is generation the cartesian product of 2 collections and the other is performing a reduction operation on a large collection.Thank you for putting the effort in polishing CnC in a working state, something I rarely see in research :pI'm certainly looking forward to any further developments.

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Best Reply

Hi,

Thanks for your interest in CnC.

We are currently refining our implemention of reductions. We're not yet ready to release it on the Intel whatif site. In fact, we have also been investigating the cartesian product but we've been viewing this as lower priority. We'd like to hear from you (or, in fact, from all interested readers) what you think the relative prioity of these two features should be.

-- Kath

admin's picture

What platform are you interested in (Linux/Mac/Windows)? We sometimes provide pre-releases of our development branch of the software to interested parties.-Ryan

I'm interested in Linux first and Windows second.As to priority. The tensor product is somewhat more pressing. Reduction can still be added by manually adding several reduction/merge stages in a code generation step, at the cost of having extra collections and steps.The cartesian product 'pattern' is currently implemented by using a for loop in a step, which creates a great amount of get() dependencies. In other words, where normally you would activate the step only if both elements of (a,b) were ready, now it activates when a is ready and asks for b, regardless if the element is ready.

Login to leave a comment.