These are chat archives for symengine/symengine

4th
Feb 2015
Isuru Fernando
@isuruf
Feb 04 2015 04:14
@certik, I have no other computer running linux at the moment. I will try to run it on servers found in the internet
Sumith Kulal
@Sumith1896
Feb 04 2015 04:18
@isuruf @certik I have a machine on linux.Can help if instructions to run the benchmarks given
Isuru Fernando
@isuruf
Feb 04 2015 04:20
@Sumith1896, thanks
First make sure your master is updated with the csympy master
Then
git clean -dfx
cmake .
make
./benchmarks/eval_double1
Should give the benchmarks for master
We need the output of /benchmarks/eval_double1 for like 5 times.

To test the PR.
create another branch and checkout the new branch
git branch single-dispatch
git checkout single-dispatch

Pull the PR
git pull git@github.com:certik/csympy eval_double_single_dispatch
git reset --hard HEAD~1

And then run the commands as before

Sumith Kulal
@Sumith1896
Feb 04 2015 04:34
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
@isuruf ^error for PR pull
Isuru Fernando
@isuruf
Feb 04 2015 04:42
try this
git pull https://github.com/certik/csympy eval_double_single_dispatch
Sumith Kulal
@Sumith1896
Feb 04 2015 04:50
Thanks working
Put up my results of benchmarks
Isuru Fernando
@isuruf
Feb 04 2015 04:50
Thanks
Jim Crist
@jcrist
Feb 04 2015 05:06
Here's what I get, running Arch Linux:
Master
13629ms
14036ms
13516ms
New PR
14030ms
13971ms
13900ms
I only ran each 3 times, but it looks about the same.
Sumith Kulal
@Sumith1896
Feb 04 2015 05:08
^update this in the PR conversation
Shivam Vats
@shivamvats
Feb 04 2015 08:00
This is regarding #379 - should comparing the hash values offer any speed advantage over comparing the strings? My laptop's performance is quite unstable, so I can't say anything for sure from the benchmarks.
Isuru Fernando
@isuruf
Feb 04 2015 09:53
@shivamvats, I think it should. Did you use Basic.__hash__ method or Basic.hash method?
Shivam Vats
@shivamvats
Feb 04 2015 11:23
I used Basic.__hash__. Is it different from Basic.hash?
I thought both use std::hash.
Isuru Fernando
@isuruf
Feb 04 2015 11:24
Yeah. Basic.__hash__ computes the hash. Basic.hash is a method that call Basic.__hash__ and stores the hash.
So, using Basic.hash should give a performance boost.
Shivam Vats
@shivamvats
Feb 04 2015 11:30
Oh! I see.
Comparing the memory addresses seems to be faster than comparing strings. So I was wondering how good hash comparison is.
Shivam Vats
@shivamvats
Feb 04 2015 11:39
As @certik pointed out, there are issues with symbols with the same name (if we use memory address comparison) and solving them might lead to some overhead. Hash comparison shouldn't suffer from this problem. Is there a way to properly compare their performances? My laptop is giving wildly varying benchmarks.
Isuru Fernando
@isuruf
Feb 04 2015 11:55
Not that I know of
Ondřej Čertík
@certik
Feb 04 2015 17:04
@shivamvats the best is to compare performance on a desktop machine or a server (cluster). My laptop also gives varying performance --- when I benchmark on my laptop, I close all apps, especially the browser (it affects performance a lot), then I make sure the laptop is plugged in (otherwise the CPU sometimes runs at lower speeds especially with low battery), and then I run the benchmark at least 10x. Usually the results seem quite reliable then.
Shivam Vats
@shivamvats
Feb 04 2015 17:31
Thanks a lot! You explained it really well.
I have some queries related to #111. Could you have a look at my comment there?