IRC logs of #shogun for Sunday, 2013-07-07

--- Log opened Sun Jul 07 00:00:20 2013
votjakovrsonney2k: heh, sorry, i'm a little bit tired today, i'll try to debug tomorrow00:02
votjakovrGood night guys ;)00:02
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has left #shogun ["Fallen asleep!"]00:02
* sonney2k is tired too00:05
-!- lambday_ [67157f4c@gateway/web/freenode/ip.103.21.127.76] has quit [Ping timeout: 250 seconds]00:33
-!- FSCV_ [~FSCV@189.139.147.50] has joined #shogun00:44
-!- FSCV [~FSCV@189.139.250.209] has quit [Ping timeout: 276 seconds]00:45
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun01:04
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has left #shogun ["QUIT :Leaving."]01:25
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]01:41
-!- nube [~rho@49.244.93.85] has joined #shogun02:07
shogun-buildbotbuild #450 of nightly_default is complete: Failure [failed test]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/nightly_default/builds/45004:51
-!- yanglittle [b74040fc@gateway/web/freenode/ip.183.64.64.252] has joined #shogun06:17
-!- nube [~rho@49.244.93.85] has quit [Quit: Leaving.]06:39
-!- foulwall [~user@2001:da8:215:6100:39ad:46d5:c238:24a7] has joined #shogun07:03
@sonney2kfoulwall, around?08:18
foulwallHi sonney2k08:27
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has joined #shogun09:20
-!- lambday [67157d4c@gateway/web/freenode/ip.103.21.125.76] has joined #shogun10:01
lambdaysonney2k: moin10:01
lambdaysonney2k: I have a good news10:01
lambdaysonney2k: looks like SGSparseMatrix beats Eigen::SparseMatrix bigtime10:01
lambdaysonney2k: I added a small program in shogun/benchmarks.. sending a PR10:02
lambdayplease have a look10:02
lambdaylisitsyn:10:12
lisitsynlambday: alright10:13
lambday:)10:13
-!- gsomix [~gsomix@109.188.125.186] has joined #shogun10:18
gsomixhello10:18
votjakovrlisitsyn: hi! Is that possible to apply custom function to each element of eigen3 matrix, vector, etc? I mean something like 'map' in functional languages. I found, that we can use redux() for custom 'reduction', but didn't find something for custom 'mapping'.10:25
lisitsynvotjakovr: I haven't seen anything like that in their code10:26
votjakovrlisitsyn: ok :)10:27
lisitsynvotjakovr: what function do you miss?10:28
votjakovrlisitsyn: i mean, i'd like to apply normal_cdf(x) function to each element of ArrayXd10:30
lisitsynI see10:31
lisitsynvotjakovr: I think it is worth to put such function somewhere in eigen3.h10:31
lisitsyntemplate <class F> void map_matrix(Eigen::MatrixBase& m, F f) { ... }10:33
lisitsynlike that10:33
votjakovrlisitsyn: yeah, it will be very useful10:33
lambdayah...classic!10:34
votjakovrlisitsyn: i have no idea, why eigen3 doesn't have it10:35
lisitsynvotjakovr: we may extend eigen when including10:35
lisitsynI mean there is a trick to add member functions10:35
lisitsynwith macros definition10:36
lisitsynvotjakovr: but actually non-member non-friend functions are usually better so let's just make it a simple function10:36
-!- gsomix [~gsomix@109.188.125.186] has quit [Remote host closed the connection]10:51
lisitsynlambday: I am confused with *such* speedup10:54
lambdaylisitsyn: me too :-/10:54
lisitsynlambday: that's -O3 right?10:54
lambdaylisitsyn: did I do something weird here?10:54
lambdayyes10:54
lambdaylisitsyn: could you please check it on your machine? :(10:55
lisitsynlambday: yes sure10:55
lambdaylisitsyn: when I run it with valgrind11:00
lambdaytimeshogun (s)eigen3 (s)  024.06000083.460000 123.97000083.340000 224.00000083.450000 323.97000083.370000 423.98000083.41000011:00
lambdayoops11:00
lambdayI mean, you get it, right? ~24 is shogun, ~80 is eigen311:00
lambdaylisitsyn: I took num_vectors=num_cols11:04
lambdayit leaks though..11:12
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun11:17
van51hello11:19
-!- foulwall [~user@2001:da8:215:6100:39ad:46d5:c238:24a7] has quit [Ping timeout: 264 seconds]11:28
lambdayfixed the leak... sg is way better in terms of total number of bytes allocated, number of allocs is way too high though11:29
lisitsynlambday:11:39
lisitsyntimeshogun (s)eigen3 (s)11:39
lisitsyn06.1900001.51000011:39
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]11:39
lisitsynare you sure it was -O3?11:40
lisitsyntimeshogun (s)eigen3 (s)11:41
lisitsyn09.53000031.91000011:41
lisitsynthat's what I get w/o O311:41
lisitsynand it is rather predictable due to heavy C++ style of eigen311:42
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has joined #shogun11:43
lambdaylisitsyn: oh!11:58
lambdaylisitsyn: yes you're right...11:59
lambdayI didn't get it earlier11:59
lambdaylisitsyn: so, if that is the case, I should use eigen3 only11:59
lambdayI should update the desc12:00
-!- foulwall [~user@2001:da8:215:6901:39df:d7de:3755:c3ef] has joined #shogun12:24
-!- foulwall [~user@2001:da8:215:6901:39df:d7de:3755:c3ef] has quit [Ping timeout: 264 seconds]12:29
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has quit [Read error: Connection reset by peer]13:02
-!- lambday [67157d4c@gateway/web/freenode/ip.103.21.125.76] has quit []13:04
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun13:09
-!- lisitsyn1 [~lisitsyn@31-28-52-76.clients.tlt.100megabit.ru] has joined #shogun13:40
-!- nube [~rho@36.252.31.77] has joined #shogun13:40
-!- lisitsyn [~lisitsyn@109-226-115-134.clients.tlt.100megabit.ru] has quit [Ping timeout: 264 seconds]13:42
-!- nube [~rho@36.252.31.77] has quit [Ping timeout: 256 seconds]13:49
-!- foulwall [~foulwall@117.136.0.194] has joined #shogun14:18
-!- lambday [67157f4c@gateway/web/freenode/ip.103.21.127.76] has joined #shogun14:20
lambdaylisitsyn1: this result looks fine14:21
lambdayI guess I can go with SGSparse then.. just gotta add the register stuff14:22
lisitsyn1lambday: what result?14:22
lisitsyn1lambday: register doesn't help at all14:22
lambdaylisitsyn1: I changed it with dense_dot and the performance is significantly improved for SG14:22
lambdayno not because of that14:22
lisitsyn1lambday: just check if it is the same w/ and w/o register :) I am sure it is the same14:23
lambdaylisitsyn1: yes.. it is.. earlier I was taking num_vectors = num_cols, that's why it was giving poor results14:24
lisitsyn1I see14:24
lambdaynow SG and eigen3 are comparable.. 0.9 (sg) and 0.8 (eigen)14:24
-!- yanglittle [b74040fc@gateway/web/freenode/ip.183.64.64.252] has quit [Ping timeout: 250 seconds]14:35
-!- foulwall [~foulwall@117.136.0.194] has quit [Ping timeout: 264 seconds]14:35
-!- foulwall [~foulwall@2001:da8:215:6100:8452:42f:d61a:5a21] has joined #shogun14:39
-!- foulwall [~foulwall@2001:da8:215:6100:8452:42f:d61a:5a21] has quit [Ping timeout: 264 seconds]15:46
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has left #shogun ["QUIT :Leaving."]15:48
-!- nube [~rho@49.244.47.251] has joined #shogun15:51
-!- gsomix [~gsomix@109.188.125.185] has joined #shogun15:57
gsomixhello15:57
votjakovrgsomix: hi! I've run valgrind on the unit tests and it reported me memory leaks in LineReader_unittest.cc and CircularBuffer_unittest.cc16:02
gsomixvotjakovr, oh, thanks, I will look.16:02
votjakovrgsomix: ok ;)16:03
-!- foulwall [~foulwall@117.136.0.204] has joined #shogun16:06
-!- foulwall [~foulwall@117.136.0.204] has quit [Remote host closed the connection]16:09
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun16:19
van51sonney2k: ping16:20
van51gsomix: hey!16:20
van51gsomix: I wanted to ask you something16:20
van51gsomix: can the get_line(char delimiter) method be made public in LineReader?16:20
gsomixvan51, hey. I can, but for what? there is get_next_line method.16:24
van51gsomix: for instance, I was working on a webspam dataset and I had all the text examples in the same file and they were delimited by \016:24
van51gsomix: and it was very easy to load them with your class16:25
gsomixvan51, I can make my class configurable for another delimiters. ok? like DelimiterTokenizer.16:27
van51gsomix: yea personally I would like it if you could it :D16:28
van51gsomix: whenever you have some free time16:28
gsomixyes, or course. give me a chance and a little time :316:29
gsomix*of16:29
van51gsomix: cool :D16:29
van51gsomix: I'm set for now so I don't  mind waiting16:29
van51gsomix: you can get everything else done first16:30
gsomixvan51, btw how is your vim?16:41
gsomixI just saw this https://github.com/Valloric/YouCompleteMe and now want vim too. :)16:42
van51gsomix: looks really good!16:44
van51gsomix: I had set it up with clang_autocomplete but since I'm not even that used to vim I had switched back to gedit16:45
van51gsomix: but I will give this a go ;)16:45
-!- FSCV [~FSCV@189.139.208.117] has joined #shogun16:50
-!- FSCV_ [~FSCV@189.139.147.50] has quit [Ping timeout: 248 seconds]16:51
-!- HeikoS [~heiko@nat-180-37.internal.eduroam.ucl.ac.uk] has joined #shogun17:21
-!- mode/#shogun [+o HeikoS] by ChanServ17:21
-!- HeikoS [~heiko@nat-180-37.internal.eduroam.ucl.ac.uk] has quit [Client Quit]17:22
-!- foulwall [~user@2001:da8:215:c252:e424:3125:5b53:9833] has joined #shogun17:22
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has left #shogun ["PING 1373210984"]17:29
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun17:49
-!- pickle27 [~Kevin@d67-193-243-174.home3.cgocable.net] has joined #shogun18:10
-!- foulwall [~user@2001:da8:215:c252:e424:3125:5b53:9833] has quit [Remote host closed the connection]18:13
-!- nube [~rho@49.244.47.251] has quit [Quit: Leaving.]18:19
-!- pickle27 [~Kevin@d67-193-243-174.home3.cgocable.net] has quit [Remote host closed the connection]18:46
-!- gsomix [~gsomix@109.188.125.185] has quit [Ping timeout: 264 seconds]19:01
-!- lambday [67157f4c@gateway/web/freenode/ip.103.21.127.76] has quit []19:13
-!- gsomix [~gsomix@109.188.124.215] has joined #shogun19:14
-!- HeikoS [~heiko@nat-180-37.internal.eduroam.ucl.ac.uk] has joined #shogun19:24
-!- mode/#shogun [+o HeikoS] by ChanServ19:24
@HeikoSsonney2k, lisitsyn1, around?19:24
lisitsyn1HeikoS: ja19:24
@HeikoSlisitsyn1: hi! :)19:24
lisitsyn1HeikoS: hallo!19:24
@HeikoSlisitsyn1: a just started preparing some slides19:24
lisitsyn1HeikoS: oh me too me too19:24
@HeikoSit is impossible to speak about both GPs and MMD in 1 hr19:24
@HeikoSI dont want to do this19:25
lisitsyn1HeikoS: oops19:25
@HeikoSso the question is: which one to choose?19:25
lisitsyn1HeikoS: what do you like most?19:25
@HeikoSlisitsyn1: I dont really mind there are arugment for both though19:25
@HeikoSGPS have more votes and are more mainstream19:25
@HeikoSso useful for people19:25
lisitsyn1yes that's true19:25
@HeikoSMMD involves my research and more cutting edge kernel methods19:26
lisitsyn1but you are more into MMD and want to talk about it that's clear too19:26
@HeikoSI just started a bot on GPS19:26
@HeikoSbut its quite hard to do them in 30  mins19:26
@HeikoSeither one assumes that people know about them and directly goes for things in shogun19:26
@HeikoSor one does 30 min of intro and then shogun19:27
@HeikoSsame for MMD19:27
lisitsyn1I don't know what is 30 minutes actually19:27
@HeikoSwhat do you mean?19:27
lisitsyn1too hard to estimate19:27
@HeikoSI see19:28
lisitsyn1when I was trying to lecture it was 40 slides and 1.5 hrs19:28
@HeikoSlisitsyn1: or should I do both?19:28
lisitsyn1may be that's the estimate :D19:28
@HeikoSI dont know19:28
lisitsyn1HeikoS: maybe you can shorten MMD/19:28
lisitsyn1?19:28
@HeikoSlisitsyn1:  yes maybe19:28
lisitsyn1I have a feeling it is a slightly simpler19:28
lisitsyn1than GPs19:28
@HeikoSlisitsyn1: maybe Ill try to finish both and then decide later :)19:29
@HeikoSlets see19:29
lisitsyn1HeikoS: my vote would be for GPs as MMD is kind of narrow field19:31
@HeikoSlisitsyn1: ok, Ill continue with that and maybe fit some other stuff in later19:31
lisitsyn1HeikoS: that's bad they are not really related19:31
lisitsyn1other way you could switch at some point :)19:31
@HeikoSyea :)19:32
votjakovrHeikoS: guten abend :)19:53
@HeikoSvotjakovr: hey!19:53
@HeikoSvotjakovr: how is it going?19:53
votjakovrHeikoS: not so bad, i've implemented probit19:53
@HeikoSvotjakovr: awesome!19:54
@HeikoSvotjakovr: what about logit?19:54
votjakovrHeikoS: two methods not implemented for logit yet... i'd like to use numerical integration for it19:55
@HeikoSvotjakovr: yes sure, what are the results of your alglib investigations?19:56
@HeikoSvotjakovr: does the probit case work already? can you classify things already?19:56
votjakovrHeikoS: yep, i wrote unit tests for probit and compared predictive mean, variance against gpml and we have the same results19:58
@HeikoSvotjakovr: very nice!, so where is the PR then? :D19:58
votjakovrHeikoS: i'll send it, but i didn't tested probabilities p(y=1|f)20:01
@HeikoSvotjakovr: you can add those in another PR20:01
@HeikoSvotjakovr: remember try to send as small PRs as possible, easier for me20:01
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun20:04
shogun-notifier-shogun: lambday :develop * f114684 / benchmarks/sparse_test.cpp: https://github.com/shogun-toolbox/shogun/commit/f11468442c78d95adae9c447a7f6d74158ce2bf320:04
shogun-notifier-shogun: performance test of sparse-matrix vector product added20:04
shogun-notifier-shogun: Heiko Strathmann :develop * e827211 / benchmarks/sparse_test.cpp: https://github.com/shogun-toolbox/shogun/commit/e827211af60d29690438aa0e6f9e760de51230bf20:04
shogun-notifier-shogun: Merge pull request #1213 from lambday/feature/log_determinant20:04
shogun-notifier-shogun:20:04
shogun-notifier-shogun: performance test of sparse-matrix vector product added20:04
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has quit [Quit: Leaving.]20:06
votjakovrHeikoS: oh no! for probabilities i need to refactor again!20:07
@HeikoSvotjakovr: which ones in particular?20:08
votjakovrHeikoS: get_log_probability_f LikelihoodModel returns a float64_t, but we need a vector20:08
shogun-buildbotbuild #1000 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/1000  blamelist: lambday <heavensdevil6909@gmail.com>20:09
@HeikoSvotjakovr: why does that return a float?20:10
@HeikoSit is for one point only?20:10
votjakovrHeikoS: nope it's a sum20:10
@HeikoSvotjakovr: ah20:10
@HeikoSannoying20:10
@HeikoSthat should be changed you are right20:10
@HeikoScaller can easily sum up20:10
votjakovrindeed20:10
votjakovrHeikoS: btw can we do a predictions just like sign(mean)?20:11
@HeikoSvotjakovr: yes if the original labels were +1, -1 then yes20:12
@HeikoSI dont know how the representation is by heart20:13
@HeikoSshould be consistent with p(y*=+1|y)20:13
@HeikoSp(y*=+1|y)>0.5 I meant20:13
votjakovrHeikoS: and what is better p(y*=+1)>0.5 or sign(mean)?20:14
@HeikoSif you only want to predict, use the sigh of the mean since you dont have to evaluate the likelihood20:15
@HeikoSand thats faster20:15
votjakovrHeikoS: ok20:16
shogun-buildbotbuild #1204 of bsd1 - libshogun is complete: Failure [failed test]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/bsd1%20-%20libshogun/builds/1204  blamelist: lambday <heavensdevil6909@gmail.com>20:17
shogun-buildbotbuild #1001 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/1001  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>20:21
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has quit [Remote host closed the connection]20:22
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has joined #shogun20:23
shogun-buildbotbuild #1205 of bsd1 - libshogun is complete: Failure [failed test]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/bsd1%20-%20libshogun/builds/1205  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>20:28
votjakovrHeikoS: i've just sent a PR with refactoring of get_log_probability_f()20:51
@sonney2kHeikoS, well we don't need that extra depth IMHO it is not a hardcore ML conference tutorial but rather a ws for practitioners20:56
shogun-buildbotbuild #1327 of deb3 - modular_interfaces is complete: Failure [failed test python_modular]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb3%20-%20modular_interfaces/builds/1327  blamelist: lambday <heavensdevil6909@gmail.com>20:57
@sonney2kvotjakovr, did you find any reason for the buildbot failure?21:03
votjakovrsonney2k: sorry, i didn't yet21:04
votjakovrsonney2k: it's weird, that somewhere this test is OK, but somewhere it isn't21:06
@sonney2kvotjakovr, well no different architectures, libraries use of floating point numbers...21:06
@sonney2kit is important to do that though and make a concious decision21:06
@sonney2kif that is ok or not21:06
@sonney2kHeikoS, lisitsyn1 interesting comparison lamday did21:11
-!- lisitsyn1 is now known as lisitsyn21:11
lisitsynsonney2k: yes21:11
lisitsynsonney2k: well first w/o -O3 it is crazy slow with eigen21:11
lisitsynno surprise :)21:11
shogun-notifier-shogun: Roman Votyakov :develop * 9c4453f / / (8 files): https://github.com/shogun-toolbox/shogun/commit/9c4453fb50cfeaa73082648bc925cb2a21f1589e21:18
shogun-notifier-shogun: refactor get_log_probability_f()21:18
shogun-notifier-shogun: Heiko Strathmann :develop * 370764d / / (8 files): https://github.com/shogun-toolbox/shogun/commit/370764dd8576a3130b2267288fa4d01977ee9a0421:18
shogun-notifier-shogun: Merge pull request #1214 from votjakovr/feature/gp_refactoring21:18
shogun-notifier-shogun:21:18
shogun-notifier-shogun: refactor get_log_probability_f()21:18
@sonney2klisitsyn, I did a couple of further investigations21:19
lisitsynsonney2k: on what?21:19
@sonney2klisitsyn, first of all I didn't use CPUtime21:19
@sonney2kbut wallclock21:19
@sonney2kso with shogun he could easily parallelize21:19
@sonney2kand on my machine it is like21:19
@sonney2k02.6529862.59127521:19
@sonney2kwallclock21:19
@sonney2kand when I change dim to 10 million21:20
@sonney2k028.34346627.80943921:20
@sonney2kso the difference doesn't scale linearly21:21
@sonney2klisitsyn, could you have a look at sparse_test.cpp line 2821:22
@sonney2klisitsyn, how can I use openmp to parallelize this?21:22
@sonney2kI just want to know what speedup I would get on my 2 cpu's21:22
lisitsynsonney2k: a minute21:22
shogun-buildbotbuild #1328 of deb3 - modular_interfaces is complete: Failure [failed test python_modular]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb3%20-%20modular_interfaces/builds/1328  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>21:22
lisitsynsonney2k: try that before for loop: #pragma omp parallel for nowait21:24
@sonney2klisitsyn, how do I compile it then?21:24
lisitsynsonney2k: -fopenmp IIRC21:24
@sonney2kthat is also what I remember21:25
@sonney2ksparse_test.cpp:27:26: error: ‘nowait’ is not valid for ‘#pragma omp parallel for’21:25
@sonney2klisitsyn, ^21:25
lisitsynsonney2k: oh just remove it21:26
-!- HeikoS [~heiko@nat-180-37.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.]21:28
@sonney2klisitsyn, 5% speedup yay!21:28
lisitsynsonney2k: okay lets tune it21:29
* sonney2k is openmp cursed21:29
@sonney2klisitsyn, let me commit so you can check21:29
shogun-notifier-shogun: Soeren Sonnenburg :develop * 7a8d7e4 / benchmarks/sparse_test.cpp: https://github.com/shogun-toolbox/shogun/commit/7a8d7e4197912d44d6d6632773a76d82570776d621:30
shogun-notifier-shogun: use CTime's wall-clock time for measurements and try openmp parallelized21:30
shogun-notifier-shogun: matrix vector product21:30
@sonney2klisitsyn, here we go21:30
shogun-buildbotbuild #1206 of bsd1 - libshogun is complete: Failure [failed test test_1]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/bsd1%20-%20libshogun/builds/1206  blamelist: Roman Votyakov <votjakovr@gmail.com>21:33
lisitsyn1.68 vs 1.1421:35
lisitsynsonney2k: ^ like that21:35
lisitsynunacceptable indeed21:35
@sonney2klisitsyn, I failed with openmp for exactly such a function21:36
@sonney2kand IMHO it should become twice as fast21:36
@sonney2klisitsyn, didn't c++11 support some kind of thread class21:37
shogun-buildbotbuild #1002 of cyg1 - libshogun is complete: Success [build successful]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/100221:37
lisitsynsonney2k: yes it supports thread21:37
@sonney2klisitsyn, can you do better with openmp?21:38
lisitsynsonney2k: I am checking what is wrong21:38
lisitsynmay be scheduling issue21:39
@sonney2kotherwise I am too curious not to try pthreads21:39
lisitsynsonney2k: there is nothing wrong with openmp it is just about some details21:39
@sonney2ktoo bad lamday is not online21:39
@sonney2klisitsyn, ok then you can hopefully figure it out21:39
@sonney2klisitsyn, I will check out docs too then21:39
shogun-buildbotbuild #1207 of bsd1 - libshogun is complete: Failure [failed test]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/bsd1%20-%20libshogun/builds/1207  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>21:47
lisitsynsonney2k: nowait matters21:47
@sonney2klisitsyn, I didn't get it any faster21:49
@sonney2klisitsyn, even with nowait21:49
lisitsynsonney2k: 1.5 vs 1.0 now21:49
@sonney2klisitsyn, any progress?21:49
lisitsynsonney2k: 2 threads is faster than 4 threads21:49
lisitsynthat's strange21:49
@sonney2kwhat did you do?21:49
@sonney2kI only have 2 cores so...21:49
lisitsynsonney2k: HT?21:49
@sonney2kno21:49
@sonney2kcore2duo21:50
lisitsynhmm21:50
@sonney2kI could run it on my i7 though21:50
lisitsyn#pragma omp parallel shared(r,m,v) default(none)21:50
lisitsyn{21:50
lisitsyn#pragma omp for nowait21:50
lisitsyn   for (index_t i=0; i<m.num_vectors; ++i)21:50
lisitsyn     r[i]=m[i].dense_dot(1.0, v.vector, v.vlen, 0.0);21:50
lisitsyn}21:50
@sonney2kno difference here21:53
lisitsynsonney2k: I don't understand what restricts its scaleability21:53
@sonney2kit is as fast as w/ openmp21:53
lisitsynwell my CPU is two core too21:54
lisitsynbut HT is not helpful21:54
lisitsynin tapkee it helps21:54
@sonney2kI dont' understand it either21:54
@sonney2kit is 1e6 vectors21:54
@sonney2kso having 2 cpu's do the thing should help21:55
@sonney2kahh no21:55
@sonney2kn=100?21:55
@sonney2klet me check21:55
lisitsynyes n=10021:55
lisitsynwhat is n?21:55
@sonney2kno21:55
lisitsynnnz?21:55
@sonney2kv.vlen = 1e621:56
@sonney2kso it should help21:56
@sonney2kand matrix is 1e6 x 1e621:56
@sonney2kok let me try pthreads21:57
shogun-buildbotbuild #1208 of bsd1 - libshogun is complete: Failure [failed test]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/bsd1%20-%20libshogun/builds/1208  blamelist: Soeren Sonnenburg <sonne@debian.org>22:01
shogun-buildbotbuild #1329 of deb3 - modular_interfaces is complete: Failure [failed test python_modular]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb3%20-%20modular_interfaces/builds/1329  blamelist: Roman Votyakov <votjakovr@gmail.com>22:13
lisitsynsonney2k: let me know pthreads results22:13
lisitsynI am out of ideas to be honest22:13
lisitsynsomething slows it down22:14
@sonney2klisitsyn, something weird happened22:14
@sonney2ktimeshogun (s)eigen3 (s)22:14
@sonney2k02.6432853.13261422:14
@sonney2k12.6429483.08725822:14
@sonney2k22.5908093.10551322:14
@sonney2keigen3 became slower22:14
@sonney2kafter I did the pthread speedup?!22:14
@sonney2klet me try w/ 1 thread22:14
lisitsynsonney2k: hah why22:14
@sonney2khaha22:15
@sonney2kfaster!22:15
lisitsynsonney2k: so no speedup?22:16
@sonney2k02.6915422.56011122:16
@sonney2k12.6863132.60614122:16
lisitsynsonney2k: actually there should be Eigen::initParallel();22:18
lisitsynin the beginning of main22:18
@sonney2klisitsyn, why that?22:18
lisitsynsonney2k: let me check what they do there22:19
lisitsynsonney2k: just number of threads and some caching22:20
lisitsynsonney2k: but no I can't find any reason to slow down eigen once you use pthreads22:21
@sonney2kbut it is like this22:22
@sonney2kpthreads doesn't help anyway22:23
lisitsynsonney2k: btw adding #pragma omp parallel for in the eigen part22:23
lisitsyngives 2x speedup instantly22:23
@sonney2kso my guess is that the matrix is ultra sparse22:23
lisitsynsonney2k: eigen uses no virtual functions but I wouldn't believe it is the cause22:23
@sonney2klisitsyn, wait fot the for i<0; i<n; loop?22:23
lisitsynsonney2k: yes22:24
@sonney2kyeah well22:24
@sonney2kthat is a different thing to parallelize22:24
lisitsynah yes22:24
@sonney2kmaybe it even notices it should just do it for the last n22:24
-!- iglesiasg [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun22:24
-!- mode/#shogun [+o iglesiasg] by ChanServ22:24
lisitsynhehe yes sorry22:24
lisitsynwrong loop22:24
@iglesiasghello people22:25
lisitsyniglesiasg: hey22:25
lisitsynsonney2k: lets increase its sparsity then22:26
lisitsynehmm22:26
lisitsyndecrease22:26
lisitsynI get22:26
lisitsyn9.9 with 1 thread22:26
lisitsyn5.0 with 4 threads22:26
lisitsynwhen n=50022:26
@sonney2klisitsyn, I have a hard time understanding how the matrix is filled22:30
@sonney2klisitsyn, I just wrote a function to compute nnz()22:30
lisitsynsonney2k: some magic for sure22:31
@sonney2kit is ~3million22:31
@sonney2kand sparse matrix is 1e6 x 1e622:31
@sonney2klambday said that it has a full diagonal22:31
@sonney2kso I guess he filled the diagonal plus a few non-random 2 other indices22:31
@sonney2klisitsyn, yes exactly 2 elements are put into each sparse vector besides the one on the diagonal22:33
lisitsynsonney2k: hmm that explains why dynamic scheduling with openmp is crazy slow22:35
@sonney2kyeah static scheduling (if that means use n/2 for one cpu and n/2 for the other core) is in order22:38
@sonney2klisitsyn, but isn't static scheduling the default22:39
lisitsynsonney2k: yes default but with dynamic it raises up to 3x22:45
lisitsynsonney2k: anyway we do not enough work in loop iteration22:45
lisitsynthe overhead of giving the thread his job is more than a+b I guess22:46
@sonney2klisitsyn, I don't understand this22:47
@sonney2klisitsyn, we have a loop of 1million22:47
@sonney2kahh ok22:47
@sonney2k1 million addtions is nothing22:47
@sonney2klisitsyn, ok I made an experiment22:47
lisitsynsonney2k: but in one iteration we just do a+b right?22:47
@sonney2kmade the matrix to have more nnz22:47
@sonney2know ~11 million22:47
@sonney2kand now shogun is faster with a single thread22:48
@sonney2knnz=1099999022:48
@sonney2k05.6260827.39342522:48
lisitsynsonney2k: what about two threads?22:48
@sonney2khelp a little bit but still basically nothing22:49
@sonney2klike 0.4 sec faster22:49
@sonney2klet me add more stuff to the matrix22:49
@sonney2knnz=4099996022:50
@sonney2klisitsyn, btw this time pthreads didn't have any influence on eigen322:50
@sonney2k015.41869925.34592522:50
@sonney2kwith 2 threads22:51
lisitsynand with one?22:51
@sonney2kwait a minute22:51
@sonney2kI cannot go much denser though22:52
@sonney2kalready eating ~1G22:52
@sonney2k016.90533525.23636022:52
lisitsynsonney2k: is that pthreads?22:52
@sonney2kso parallel would only help if it is much more dense22:52
@sonney2kyes22:52
@sonney2klisitsyn, it is using 170% cpu though22:54
@sonney2kso it must be wasting quite a bit on sth we don't understand22:54
lisitsynsonney2k: I find that strange it wastes time on something22:54
shogun-buildbotbuild #1330 of deb3 - modular_interfaces is complete: Failure [failed test python_modular]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb3%20-%20modular_interfaces/builds/1330  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Soeren Sonnenburg <sonne@debian.org>22:54
@sonney2klisitsyn, no idea on what though22:57
@sonney2klisitsyn, let me create a gist22:57
lisitsynsonney2k: well we can let lambday check it if he is interested22:58
lisitsynsonney2k: actually he might profile it with something like Intel VTune which is free22:58
@sonney2klisitsyn, can I upload a file to github's gist or do I have to copy & paste?22:59
lisitsynsonney2k: I haven't seen any upload form here22:59
@sonney2khttps://gist.github.com/sonney2k/5944937\23:01
@sonney2khttps://gist.github.com/sonney2k/594493723:01
@sonney2klisitsyn, I just ran it on my core i723:29
lisitsynsonney2k: better?23:29
@sonney2klisitsyn, I am impressed it is 5s instead of 15 :)23:30
@sonney2ksingle core23:30
@sonney2kwith 8 threads it is ~4s23:30
@sonney2keigen3 7s23:30
@sonney2kbug eigen3 was 25 before so woah23:31
@sonney2ki7's are doing well23:31
@sonney2kalright that's it23:31
@sonney2kI should have prepared my talk but hey that was too interesting23:31
lisitsynsonney2k: hah yes23:31
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun23:32
@sonney2kvan51, g'day23:32
van51sonney2k: hello23:32
@sonney2kvan51, we have a new directory in shogun's git23:32
@sonney2kshogun/benchmark23:32
@sonney2kvan51, it would be great if you could add the benchmarks you did there23:32
@sonney2kvan51, maybe using some artificial strings even23:33
van51sonney2k: ok sure23:33
van51sonney2k: btw I have some changes standing by about allowing the user to user normalization or not23:34
van51sonney2k: in the HashedDocDotFeatures23:34
van51sonney2k: should I make a PR? or have normalization be something that is always happening23:34
@sonney2kvan51, yes make it optional23:35
van51I have a question then23:35
van51it is already in my remote git23:35
van51would it be ok if I made a PR without having rebased it?23:35
@sonney2kvan51, btw I totally forgot - did you ever compare the converter + liblinear trained and liblinear trained on the dotfeatures?23:35
@sonney2kvan51, I mean it should give exactly the same liblinear/result23:36
van51sonney2k: yea I did. pre-normalization23:36
van51and they were giving the same output23:36
@sonney2kvan51, excellent!23:36
@sonney2kvan51, a PR without a rebase will cause a mess23:36
van51sonney2k: I had it in my example but I removed while we I was debugging the running time of the dotfeatures23:37
@sonney2k(if I get you right)23:37
van51sonney2k: ok then I will do it quickly on my machine23:37
van51sonney2k: and after that I will make another PR for the streaming features23:37
@sonney2kvan51, very good23:37
@sonney2kvan51, btw ocas uses multiple threads when training23:42
@sonney2kvan51, also for the add_to_dense_vec23:42
@sonney2kvan51, so please check if it crashes with just 1 thread23:43
@sonney2kin any case we have to figure out why it is crashing at all23:43
@sonney2k(valgrind run?)23:43
van51sonney2k: ah about that23:43
@sonney2kyes?23:43
van51sonney2k: it hasn't crashed again23:43
van51sonney2k: and I have ran it plenty times while checking some parameters23:44
@sonney2kvan51, weird and scary still23:45
van51sonney2k: actually no23:45
van51sonney2k: what had happened was that I was calling apply() on some test features23:45
van51sonney2k: and then I was unref'ing the test features23:46
van51no the traiining features23:46
van51but that had already happened in apply()23:46
van51so it was doing an illegal free23:46
@sonney2kcould be though IIRC apply SG_REF's the features and stores them in the model23:47
van51sonney2k: yes but it also SG_UNREF's the training features23:47
@sonney2kvan51, btw can you read matlab / octave code?23:47
van51sonney2k: yea23:47
@sonney2kvan51, recall that I told you about a dotfeature project that would involve detecting the gender of a person just based on the face?23:48
van51sonney2k: yeap23:48
@sonney2kpicture of the face I mean23:48
@sonney2kwell look at shogun/features/LBPPyrDotFeatures.cpp23:48
@sonney2kI can give you matlab code to do that stuff23:49
@sonney2kat some point you should just convert the code and check for correctness by comparing with the matlab code23:50
@sonney2kI can then ask vojtech to give us some training data (we need frontal faces that are marked male/female)23:51
van51yea sure!23:52
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has quit [Remote host closed the connection]23:54
@sonney2kvan51, ohh even better vojtech wrote c code already which we just have to port / adjust to shogun23:56
@sonney2kvan51, http://cmp.felk.cvut.cz/~xfrancv/ocas/libocas_v097.zip23:56
@sonney2kget this23:56
@sonney2kand then check out lbppyr_features_mex.c23:56
--- Log closed Mon Jul 08 00:00:22 2013

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!