Porting polyenum to C++
Issue #13
resolved
This needs to be discussed. I have started a branch about this.
Comments (5)
-
reporter -
After discussing together, here are the points we have brought to light that seem to motivate the team to change.
The team developed polyenum using Python and Cython languages. The project achieved a certain point where changing from Cython to C++ appeared to be simpler than maintaining the Cython code.
Cython
Advantages
- Code is already written and is working...
Drawbacks
- The whole idea of wrapping C/C++ code in python becomes a headache to maintain as the project grows.
- OpenMP may not include all functionnalites in Cython. This is relying on Cython's pyrex parser to produce valid C/C++/OpenMP code that would then be processed by OpenMP's C/C++ parser.
- Some parts are hard to optimize for performance purpose, either since Cython does not allow it or since the developpers do not know it well enough.
- Cython is a young language that evolves fast. Therefore, our code would rapidly become out-of-date.
C++
Advantages
- Maintaining code written in a single language is simpler and avoids multiple problems like context conflicts, debugging issues.
- Parallelization technologies are surely more supported and numerous. For e.g. OpenMP is really well supported on C++.
- Easier to have optimal performance.
- C++ is a stable language.
Drawbacks
- The code has to be rewritten...
-
-
Pull request #8 is now addressing this issue. Work in progress.
-
- changed status to resolved
Resolved by pull request #8.
- Log in to comment
@sim590: any comment welcome of course!