GSoC Progress - Week 6Programming · GSoC · SymPy
Hello, received a mail few minutes into typing this, passed the midterm review successfully :)
Just left me wondering how do these guys process so many evaluations so quickly. I do have to confirm with Ondřej about this.
Anyways, the project goes on and here is my this week's summary.
SymEngine successfully moved to using
Catch as a testing framework.
The travis builds for clang were breaking, this let me to play around with travis and clang builds to fix this issue. The linux clang build used to break because we used to mix-up and link libraries like
GMP compiled with different standard libraries.
Thanks to Isuru for lending a helping hand and fixing it in his PR.
Next task to make
SYMENGINE_ASSERT not use standard
assert(), hence I wrote my custom assert which simulates the internal
Now we could add the
DNDEBUG as a release flag when
Piranha is a dependence, this was also done.
Started work on
Expression wrapper, PR that starts off from Francesco's work sent in.
Investigated the slow down in benchmarks that I have been reporting in the last couple of posts. Using
git commit(amazing tool, good to see binary search in action!), the first bad commit was tracked. We realized that the inclusion of
piranha.hpp header caused the slowdown and was resolved by using
mp_integer.hpp, just the requirement header.
With immense help of Franceso, the problem was cornered to this:
* Inclusion of
thread_pool leads to the slowdown, a global variable that it declares to be specific.
* In general a multi-threaded application may result in some compiler optimizations going off, hence slowdown.
* Since this benchmark is memory allocation intensive, another speculation is that compiler allocates memory differently.
We have to investigate this problem and get it sorted. Not only because we depend on
Piranha, we might also have multi-threading in
SymEngine later too.
No benchmarking was done this week.
Here is my PR reports.
* #500 - Expression Wrapper
* #493 - The PR with
Catch got merged.
* #498 - Made
SYMENGINE_ASSERT use custom assert instead of
DNDEBUG as a release flag with
* #502 - Make
mpz_addmul (FMA), nice speedup of
* #496 - En route to fixing
SYMENGINE_ASSERT led to a minor fix in one of the assert statements.
* #491 - Minor fix in compiler choice documentation.
Targets for Week 7
- Get the
- Investigate and fix the slow-downs.
The rest of tasks can be finalized in later discussion with Ondřej.
That's all this week.