<div>Hello.</div><div><br></div><div>This spring, I&#39;ve met with the paradigm of DCI, after reading <a href="http://www.artima.com/articles/dci_vision.html">http://www.artima.com/articles/dci_vision.html</a> article, as well as saw some presentations, and code examples. I really liked this new approach. As far as I understand, one of DCI features - what you can first write the serial algorithm (which is expressed in the Roles are used) and then write new Roles using the technology of parallel programming. However, the code will be clear and clean...</div>
<div><br></div><div>I tried to apply the DCI, when I started working on some project. The purpose of my project - modeling of chemical processes on the catalyst surface. Modeling is carried out using the Monte Carlo method, implemented by various existing algorithms of this method in order to compare their performance. My result can be found here: <a href="https://github.com/newmen/monte-carlo_techs">https://github.com/newmen/monte-carlo_techs</a>. I think that I got is not very good because a lot of logic is concentrated in the Contexts of modeling, and code uses very little Roles. Correct implementation of existing Roles - is questionable, since I sometimes use a partial template specification.</div>
<div>At the moment there is only a serial version of the program. I want to use OpenMP for parallelize my program, and to compare the performance of existing algorithms working in parallel. But unfortunately, I do not know how to implement it in terms of DCI. I would be very grateful if you could look at what I got, and advised me how to improve the code, more correctly applying the paradigm of DCI.</div>
<div><br></div><div>Thanks for your attention. %)</div><div><br></div>-- <br>Regards, Gleb Averchuk