Open in new window / Try shogun cloud
--- Log opened Thu Mar 07 00:00:04 2013
-!- n4nd0 [] has quit [Quit: leaving]00:02
-!- FSCV_ [~FSCV@] has quit [Quit: Leaving]01:03
-!- eduvfsilva [] has joined #shogun02:27
shogun-buildbotbuild #314 of nightly_default is complete: Failure [failed test]  Build details are at
-!- eduvfsilva [] has quit []05:45
-!- sumit [ca4eaca2@gateway/web/freenode/ip.] has joined #shogun06:58
-!- n4nd0 [] has joined #shogun07:53
-!- zxtx [] has joined #shogun08:04
-!- hoijui [] has joined #shogun08:09
-!- sumit [ca4eaca2@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]09:05
-!- n4nd0 [] has quit [Ping timeout: 248 seconds]10:05
-!- n4nd0 [] has joined #shogun10:31
-!- n4nd0 [] has quit [Quit: leaving]11:27
-!- blackburn [~blackburn@] has quit [Quit: Leaving.]11:29
-!- blackburn [~blackburn@] has joined #shogun11:37
-!- n4nd0 [] has joined #shogun11:54
n4nd0blackburn: indeed, from 0.98 to 0.958 seems a quite large12:20
n4nd0I hope float precission is better than that :)12:20
blackburnn4nd0: heiko fixed something about custom kernel - I hope that12:20
-!- n4nd0 [] has quit [Quit: leaving]13:01
-!- hoijui [] has quit [Read error: Operation timed out]13:39
-!- n4nd0 [] has joined #shogun13:55
blackburnwiking: welcome back13:57
wikingshitfucky ;) <phdwritingsessionon>14:09
wikingand even my ssh is lagging14:24
blackburnwiking: so working on a thesis?14:25
wikingor at least tyring14:25
blackburnI see14:26
n4nd0wiking: what's the name of your thesis?14:27
n4nd0something latent :) ?14:27
blackburnhah I know a few latent gays (I suspect so)14:27
blackburnsorry couldn't resist :D14:27
wikingnice one14:28
blackburnwiking: I remember you were curious about t-SNE14:35
blackburnwiking: I arranged with laurens to GPL his Barnes-Hut-SNE and will push it very soon14:36
wikingwoah cool14:55
-!- FSCV [~FSCV@] has joined #shogun15:09
-!- heiko [] has joined #shogun15:25
-!- ashar799 [4e61ecae@gateway/web/freenode/ip.] has joined #shogun15:34
-!- n4nd0 [] has quit [Quit: leaving]15:38
-!- hoijui [~hoijui@] has joined #shogun15:43
ashar799Hi I was wondering if there are any plans to incorporate Gaussian Process Latent Variable Model (by Neil Lawrence) and Gaussian Process Dynamical Variable Model (Wang) for Dimensionality reduction16:49
ashar799I am doing my MS thesis on implementing these two models for different data sets16:50
ashar799and have seen that having more Dimensionality reduction techniques is one of the proposals for GSoc 201316:52
blackburnashar799: we've got no concrete plans yet but we will consider that too!17:16
-!- hoijui [~hoijui@] has quit [Ping timeout: 252 seconds]17:23
@sonney2kblackburn, wiking, heiko - can any of you reproduce the custom kernel issue?17:45
@sonney2k(because I dont'...)17:45
blackburnsonney2k: I can't17:45
heikosonney2k:  nope17:45
@sonney2kmust be some very old version of shogun17:45
@sonney2kor even numpy....17:45
heikosonney2k: I suspect she just downloaded and compiled shogun but has an old version installed from the repository or so17:46
@sonney2kheiko, blackburn because it seems to me that the matrix' values are somehow shuffled in memory17:46
@sonney2ksome kind of fortran/c order issue17:46
heikoyeah, lets wait for her version :)17:47
@sonney2kso the 0.958 (that appears in the orginal numpy matrix) is at the wrong position17:47
blackburnpopular issue :)17:47
@sonney2kwe had such bug but years ago...17:47
@sonney2knot even sure blackburn was still around :D17:47
heikohehe :)17:48
blackburnsonney2k: I have two years anniversary soon17:48
@sonney2kso before the dawn of the ages17:48
@sonney2kI can hardly remember the time before you were part of the team17:48
@sonney2kactually same holds for heiko...17:48
heikoyeah, it has been a while :)17:49
blackburnsonney2k: 2011-03-29 is the day I joined #shogun on a sleepless night to show my broken english17:49
heikosonney2k: blackburn btw I am currently writing my gsoc project description17:52
blackburnnice, I should do the same17:53
blackburnand proposal17:53
blackburnheiko: yes we should make a gsoc proposal17:55
heikoblackburn: I see :)17:55
heikolet me know where I can help17:55
blackburnheiko: I'll create google doc for that I think17:55
heikogood idea17:55
heikoblackburn:  for the project, I think I will create a pdf since I need some math, and then post the abstract on the page along with the pdf17:56
blackburnheiko: maybe mathjax?17:56
blackburn like that17:56
heikoblackburn: agreed!17:56
blackburnsonney2k: heiko: I received 'yes' from laurens - this means we can add t-SNE17:58
blackburnthe question is - should I put it to latest shogun before release?17:58
heikoblackburn: what? :)17:58
blackburnheiko: I was convincing him to GPL his code17:58
heikoblackburn: I would not add anything right now, better fix bugs :)17:58
heikoblackburn: Ah nice work!17:58
blackburnheiko: yeah I would do the same17:58
blackburnsonney2k: heiko: question two18:00
blackburnI got jedi macros skills18:00
heikoblackburn:  thats good :) I hate macros18:00
blackburnI think I can replace fields of our classes18:00
blackburnand its getters/setters/sgadds18:00
blackburnwith just one macro may be18:00
blackburnnot for that version of course18:00
heikoblackburn: example?18:02
blackburnheiko: field(float64_t,width)18:03
heikoblackburn:  the they got registered automatically?18:04
blackburnyes and getters/setters are generated18:04
heikosounds nice18:04
blackburnheiko: or even18:04
heikobut, also a lot of work18:04
blackburnyeah, means it will be checked18:05
blackburnto be positive18:05
blackburnheiko: take a look - I did somewhat simplified version of that in tapkee:
heikothat is cool stuff18:07
blackburnheiko: I have >20 methods with 2-7 parameters each so macroses appeared as the only way to handle this without megaLoC18:07
heikoblackburn:  but do you think its a good idea to do this for shogun?18:07
blackburnheiko: I don't know - that's why I am asking18:07
heikoblackburn: I would be afraid that everything will be broken for quite some time18:08
blackburnheiko: yes that's '-'18:08
heikoand that it is infinite work to apply this to all existing classes18:09
heikoand that many bugs slip through our fingers18:09
heikosince these things are usually a bit unpredictable18:09
heikoalso, doesnt it make debugging a bit complicated since you are not reading the code anymore?18:09
heikoespecially when mixed in18:09
heikoblackburn: you will like this:18:12
blackburnheiko: getters/setters is a pure evil18:16
-!- ashar799 [4e61ecae@gateway/web/freenode/ip.] has quit [Quit: Page closed]18:24
blackburnheiko: they ~never have bugs18:26
blackburnheiko: and if they have - automagic resolve that18:26
heikoblackburn: I like the part about reference counting for SGOs :)18:28
heikobut I am a bit afraid of  this, the code you see will not be the code that the compiler sees anymore18:29
blackburnheiko: that's good I can't see what compiler sees18:29
blackburnI'd really like to not see new/delete and indexes18:30
blackburnit is a great misconception such level means performance18:31
blackburnI hope you don't think so :)18:31
heikoblackburn: agreed, I hope you know what I meant18:37
heikoblackburn:  I like the idea18:37
heikoblackburn: so you think we should move on to a modern language for shogun? :D18:37
blackburnheiko: it is kind of exceptional for me as I never debugged getters and setters18:38
blackburnbut they take so much space18:38
heikoblackburn: true, but sometimes you dont want to have them18:38
heikoeclipse can do them for you btw18:38
blackburnheiko: no, it is different18:38
blackburngenerating and code folding is a halfway18:39
blackburnheiko: well modern language is C++18:40
blackburnI see no other alternative :)18:41
blackburneven if I had resources to translate all the code - no idea which language could it be18:41
heikoprobably google-go :D18:41
heikoor my favourite: brainfuck18:42
blackburnheiko: shakespeare18:42
heikohaha :)18:43
blackburnheiko: last year we were thinking about chef interface18:44
blackburnheiko: yeah there is a language18:44
heikoi see18:44
heikobtw interfaces:18:44
heikoblackburn: matlab is the most important one and it is static only18:45
heikothat is a shame18:45
blackburn heiko18:45
heikoso much potential lost18:45
heikoWe should have a gsoc project to implement matlab for swig18:45
blackburnheiko: I have nothing to say about that :) we should push it in swig18:45
heiko(and shogun afterwards)18:45
heikosame with R18:45
blackburnbut I guess matlab is quite shitty in that sense18:45
heikoMatlab and R are the main languages used by the people who could use shogun18:46
heikoblackburn:  really?18:46
heikoI think it should be ok, the new matlab has object orientation and everything18:46
blackburnheiko: I guess SWIG people just can't get some required info18:46
blackburnproprietary stuff18:46
heikoblackburn: reading a bit through the mailing lists, I understood that just nobody is doing it18:46
blackburnreally? I see18:47
heikothere even was a student who did his project on this18:47
heikobut sonney2k should know more about this18:47
blackburnheiko: there is a SwigJS, huh!18:49
blackburnheiko: I understand matlab is important but I do not know how to proceed18:56
heikoblackburn: same, I hoped maybe sonney2k has an idea18:56
heikothere also was this MSC project18:56
heikolet me find the link18:56
heikoinitial code18:57
heikothesis 118:57
heikothesis 218:57
heikoblackburn: that is a lot of stuff to start with :)18:57
blackburnheiko: it doesn't sound like a something easy18:58
blackburnwe should discuss it with swig guys18:58
heikoblackburn:  indeed19:05
-!- hoijui [] has joined #shogun19:05
heikoblackburn:  would be so good to have19:05
heikoblackburn: you once mentioned something about openmp?19:06
blackburnheiko: well, yes19:06
heikoor was that openmpi?19:07
blackburnheiko: no, openmpi is not really interesting for me19:07
blackburnit is just implementation :)19:07
blackburnof mpi standard19:07
heikomy question is:19:07
heikoif I have some parts of my algorithm that should be parallelised19:07
heikoand the number of parallel parts is large19:07
heikois there anything I can do in shogun=?19:08
blackburnheiko: pthreads is our traditional way19:08
heikobut pthreads is restricted to one computer19:08
heikoblackburn: do you have any idea how hard it would be to add the possibility that these "threads" are distributed within a cluster of computers?19:09
blackburnheiko: MPI is the only way to do that19:10
heikoblackburn:  have you used that?19:10
heikoblackburn: tell me your feelings about it19:10
blackburnheiko: w/o some additional routines to send/recv messages I think the code would look like a mess19:11
blackburnheiko: the thing I am mostly worried is that I am totally unsure it is possible to use SWIG+MPI19:12
heikoso thats not a good idea19:12
heikoblackburn: its just: parallelisation is fine. But if one wants to do somethign really large scale, one needs more than one computer19:12
blackburnheiko: actually we should transform to client/server19:12
heikoblackburn: maybe shogun is not the right boat for this19:13
blackburnI think it would be awesome19:13
heikoalso most methods inside shogun dont really scale19:13
blackburnheiko: bindings could stay but creating SVM would be to send a packet over a network19:13
heikoblackburn:  I see19:14
blackburnand then master shogun could create workers on cluster machines19:14
heikoso you want to create kind of stub objects19:14
blackburnI feel 'eureka' in my head now19:14
blackburnI didn't think about that in that mean before19:14
heikowhich methods could use this?19:14
heikosvm certainly not :)19:14
blackburnheiko: well it doesn't mean we should always work on cluster19:15
blackburnif method supports that thing - run it on cluster19:15
heikoyeah that would be sexy19:15
blackburnheiko: even shogun name makes a lot of sense now for me :D19:15
heikoso in the code, you just allocate workers19:15
blackburnas if shogun takes the rule of workers19:15
heikoand they are either distributed automatically, or executed locally19:16
blackburnshogun server + shogun bindings19:16
heikoblackburn: that should not be too hard to implement in fact19:16
blackburnthey are loose coupled over a network19:16
blackburnheiko: isn't that a great idea? I get driven by it19:17
heikoblackburn: yeah, I just wonder whether there is no framework for this, since it has certainly been done before19:17
blackburnheiko: framework for what exactly?19:17
heikothis structure19:18
heikoof allocating workers19:18
heikofor your tasks19:18
blackburnheiko: MPI/MapReduce :)19:18
blackburna lot of19:18
blackburnI believe it should be generalized19:18
heikoyes, this is what I mean, why not use MPI?19:19
blackburnheiko: I didn't say we shouldn't use MPI19:19
blackburnshogun client (bindings) <-> shogun server <-> MPI backend19:19
blackburnshogun client (bindings) <-> shogun server <-> map reduce backend19:20
blackburnanything you like :D19:20
blackburnhmm should I left my job and do that ? :D19:20
heikoblackburn: haha :)19:20
heikoblackburn: so say we had that working. Which methods would be able to properly use it?19:20
blackburnheiko: I do not know about machine learning19:21
heikoblackburn: my linear time MMD would, it is X times faster for X additional workers19:21
heikobut apart from that?19:21
blackburnbut I realize it could be a great framework19:21
heikoif I implemented statistics stuff then this would also be great19:21
blackburnheiko: even having everything in one worker *with capabilities* of doing that cluster later is just great19:22
blackburnheiko: algorithms will come I think19:22
heikoblackburn: thats true, but also very easy to achieve without the need to mess around with client/server/mpi stuff19:22
blackburnheiko: with your own boilerplate code?19:23
blackburnit is not a solution19:23
heikoI run stuff on clusters all the time, thats very easy if you just use one process19:23
heikojust upload program, write a 5 line allocation script and submit19:23
heikoI agree it would be easier with a framework, but not that much that its worth to put all the effort into that19:24
blackburnheiko: ha!19:24
heikoBut I really like the idea anyway19:24
blackburnit is worth as some things are impossibru19:24
heikosince you are right: algorithms can come then once this exists19:24
blackburnyou can't make MMD faster now, right?19:24
heikowhat do you mean?19:24
blackburnheiko: with cluster19:25
heikowith the shogun implementation, no19:25
blackburnyou'd be able to do that with proper framework19:25
heikothats why I asked, which methods would benefit19:25
heikosince MMD is not so important for practical problems :D19:25
blackburnheiko: main thing - you can write your script on your laptop but run somewhere else19:25
heikoblackburn: agreed19:26
heikoso how would this work19:26
blackburnheiko: just stubs19:26
heikoI have some interface class to the server19:26
heikoand I can submit workers19:26
heikowhich have an interface to start/stop/result/bla19:26
blackburnyou don't care about workers19:26
blackburnyou mean internally?19:27
heikofrom implementation side of view19:27
blackburnyeah something like that19:27
heikoand with that I can implement my new SVM19:27
heikofor example19:27
heikolets say multiclass svm19:27
heikowith one against all19:27
blackburnyou define how workers should act19:27
blackburnand how data should be distributed19:27
heikoso I package all the different problems into one worker and submit19:28
heikoand return locally19:28
heikoand the server distributs them on any kind of machine19:28
blackburnwhy one worker?19:28
heikoeither with shared memory or completely separate19:29
heikono each problem into one worker19:29
heikoeach classification task of the many19:29
blackburnheiko: if we go crazy it could be even heterogeneous in means of technology19:29
@sonney2kheiko, blackburn about interfaces & swig...19:29
blackburn5 MPI workers and some MapReduce farm and a GPU here19:29
heikoblackburn: that would be certainly crazy :D19:30
blackburnheiko: it sounds like a crazy dream but19:30
@sonney2kthe issue I am having with swig & R is that the refcounting doesn't work19:30
@sonney2kwhich means one gets crashes or memory leaks19:30
blackburnheiko: imagine speedups you can get19:30
blackburnsonney2k: yeah I know about R19:30
heikosonney2k: I see, what do the swig people say to that?19:30
blackburnsonney2k: the main concern is matlab19:30
heikoblackburn, so this would be like matlab's parfor, even cooler would be if the workers could communicate, but maybe this is a bit too much for now. even the independent jobs on a cluster would help massively19:31
blackburnheiko: no they *should* be able to communicate from the very beginning19:31
@sonney2kheiko, I reported that 2(3?) years ago but this one R maintainer did not really care. we would need to craft a minimal example showing the problem19:31
@sonney2kblackburn, mine is not matlab is *crap*19:32
@sonney2kI can easily live w/o matlab19:32
@sonney2kuse octave19:32
@sonney2ksame syntax same everything19:32
@sonney2kand blackburn what you are describing is e.g.
heikosonney2k: I agree, but we would reach a much bigger audience with a modular matlab binding19:33
blackburnsonney2k: haha19:34
blackburnsonney2k: invented a wheel again19:34
@sonney2kheiko, I don't see a problem doing it (no more than doing that for octave) but it needs someone with deep swig skills. if you look at the mailinglist archive of swig you would see that there was a guy Xavier sth (who wrote the octave bindings) with whom I tried to start this maybe 4-5 years back19:35
@sonney2kbut then he left (also no longer maintaining the octave part)19:35
heikosonney2k: I see19:35
blackburnsonney2k: well graphlab with language bindings :D19:36
@sonney2kheiko, I understand that some researchers still use matlab but that is not really my focus any longer at least19:36
@sonney2khaven't been using matlab for years and I am much happier with python ...19:37
@sonney2kit is fast has tons of bindings and free software19:37
blackburnsonney2k: researchers are lame with real programming languages for some reason19:38
heikosonney2k: I like python too, but I cannot send it to people.19:38
heikosonney2k: even worse, the number of people who are using mac grows like crazy here19:38
blackburnheiko: why? mac is ok for me19:39
blackburnwell I never used it :D19:39
@sonney2kheiko, but python and osx go well together19:39
heikosonney2k: blackburn:  about that parallel thing. graphlab has its focus a bit different. I think having some kind of independent parallel engine would be really helpful19:39
blackburnsonney2k: idea is: objects in our bindings become stubs to represent objects in the serverspace19:40
heikosonney2k: I really dont want to get into this python-matlab or X-Y discussion, I just think it would be great to properly support it. But it seems tricky19:41
blackburnserver could run it as is or with some other backend19:41
@sonney2kblackburn, the issue with going massively parallel is that I don't have access to such cluster park19:41
blackburnsonney2k: I'd like to keep this idea in mind and implement and prototype19:41
blackburnand then see if it is nice19:41
heikoblackburn: maybe we could have a separate branch or so19:42
blackburnwell client part yes19:42
blackburnbut server-side should be from the blank I am afraid19:42
@sonney2kblackburn, well I am stuck on many core machines19:43
blackburnokay my idea - I will try to implement the whole stack19:43
blackburnwith one distributable algorithm19:43
blackburnbut it would take months I think19:43
blackburnsonney2k: we don't use either multicore or cluster machines19:44
heikoblackburn, I dont know whether this should be so massive due to the lack of algorithms that exploit this19:44
heikoI think if we had something that could handle independent jobs, this would help a lot19:44
blackburnheiko: jobs should not really be independent19:44
blackburnthey should be independent as possible19:45
@sonney2kheiko, yeah sure I understand. I don't care about matlab though and it is >5 years since I've seen a really talented guy with whom one could have done this within 1-2 months19:45
@sonney2kand I don't have the time nor will to do it19:45
@sonney2kif at some point swig perfectly supports R / matlab we can easily switch to using it19:46
heikosonney2k: do you know the swig people?19:46
@sonney2kthe only question that remains is what do we do with all the static interfaces?19:46
heikomaybe we could push them to do something in gsoc19:46
@sonney2kheiko, not well enough19:46
@sonney2kI met some of them at gsoc mentor summit19:46
heikowhat are their current goals?19:47
@sonney2kheiko, no idea19:47
@sonney2kheiko, they just switched over to using github19:47
blackburnoh finally :D19:47
heikosonney2k: I saw that  :)19:48
@sonney2k(and git)19:48
blackburnI see no reason to use anything else19:48
@sonney2kthey were on svn for years19:48
heikogsoc 2012 had a new module for java script19:49
@sonney2kso heiko blackburn - what do we do with the static interfaces?19:49
blackburn t-sne unrolls swissroll in a strange way :D19:49
@sonney2kthese are becoming more and more obsolete...19:49
heikosonney2k: I dont know, I never added something until shortly. Wanted to add some MMD stuff and found it rather painful19:50
blackburnsonney2k: drop :D19:50
@sonney2kand the danger is that people think this is shogun19:50
@sonney2kI mean all shogun can do19:50
blackburnhaha yeah19:50
@sonney2kblackburn, yeah I would love to drop them19:50
blackburnis sg('set_shit')19:50
@sonney2kor at least hide them19:50
heikosonney2k: hide19:50
heikomany people are using shogun as an libsvm interface19:50
heikofrom matlab/R19:50
@sonney2kso there will be no (documented) configure option19:50
blackburnsonney2k: could we separate them to another project?19:50
@sonney2kblackburn, yes sure19:50
blackburnthen lets do it this way19:51
@sonney2kheiko, but libsvm has a matlab interface too19:51
blackburnsonney2k: 'sorry we can't support it, it is an outdated project'19:51
blackburnhaha shogun as a libsvm interface, really?19:51
heikosonney2k: I know, but there are not all those kernels right?19:51
blackburnheiko: if they are still willing to use it this way we just tell them to install that different thing19:52
heikoblackburn: sonney2k agreed!19:53
heikosonney2k: blackburn, btw I will probably soon implement a little module into graphlab, and I am thinking of linking against shogun for kernel/feature implementations19:53
@sonney2kheiko, why not19:54
@sonney2kheiko, blackburn - we should release shogun 2.119:54
blackburnhah sure19:54
@sonney2ktoo bad wiking didn't push it :(19:55
heikosonney2k: have you seen this mkl bug?19:55
@sonney2kheiko, ?19:56
heikoI updated the issue19:56
heikoadded an example19:56
heikoto reproduce19:56
heikosonney2k: blackburn what is missing for 2.1?19:56
heikoapart from removing warnings?19:56
blackburnheiko: I am working on tapkee still.. no idea where to stop19:57
heikoblackburn: just stop adding new things :)19:57
blackburnI can't19:57
blackburnheiko: chris added 'including more recent' algorithms to the paper19:57
blackburnand I had to add a new algorithm because of that19:57
heikoblackburn: but that does not have to be in shogun2.1 right?19:58
blackburnheiko: yes and now I am in trouble19:58
heikosonney2k: blackburn I got my MMD stuff finally ready, also tutorial updated, new tests/examples, and I commented on all the bugs and solved some, so from my side, we can go for it19:59
@sonney2kblackburn, heiko so waht is missing for shogun 2.1?19:59
@sonney2kI am under the impression we are in good shape for a release...19:59
blackburnhahah guys have you seen that?
heikosonney2k: I agree20:00
heikoblackburn:  no20:00
heikonot yet :)20:00
heikosonney2k:  have you heard something from the guy who impolemented the streaming basics?20:00
blackburnit is not required to watch all 15 mins but the more you listen to it the more normal it becomes20:01
@sonney2kblackburn, terminate called after throwing an instance of 'tapkee::eigendecomposition_error'20:01
@sonney2k  what():  eigendecomposition failed20:01
blackburnsonney2k: cool! where?20:01
@sonney2kwe have some failing examples blocking the release...20:01
wikingsonney2k: i was just about to tell that maybe it'd be a good idea to switch on the bsd bot to clang instead of gcc20:01
heikowiking, hi !20:02
blackburnsonney2k: how did that appear after perceptron?20:02
heikowiking, could you change the unit-tests to all be compiled/executed seperately? this would make things much easier20:02
wikingheiko: whatyamean?20:02
wikingheiko: aaaah20:03
blackburnsonney2k: I don't mind to fix it but where it is..20:03
@sonney2kheiko, btw I wanted to comment on how examples are written in shogun and how they are documented20:03
heikowiking, so currently if you run make unit-tests20:03
wikingheiko: why's that good?20:03
heikoverything runs at once20:03
heikosonney2k: yes?20:03
@sonney2kheiko, you write your example in the undocumented/<lang>/ folder20:03
wikingheiko: yeah that's the purpose of unit test20:03
wikingheiko: i mean now i get waht you want20:03
wikingheiko: each unit test is a separate executable20:03
heikowiking yes20:03
wikingit's doable imho20:03
wikingbut still i dont see why's that good20:04
heikosonney2k: so since the unit-tests finally arrived the examples (at least mine) will change. less testing things, more illustration20:04
@sonney2kheiko, then you write the description of the example separetely in examples/descriptions20:04
heikowiking, if I add a new test and it fails I cannot run it isolated20:04
heikosonney2k: under the same name?20:04
@sonney2kit is then prepended to each example of the same name for each $LANG20:04
wikingheiko: what if i make you selectable?20:04
wikingheiko: so there's still only one executable20:04
wikingheiko: but you can specify which test u wanna ran on command like20:05
wikingmake unit-tests SGVector20:05
wikingor something like that?20:05
heikosonney2k: I see20:05
heikowiking, yes that would be good20:05
wikingand make unit-test would be doing the whole test by default20:05
heikowiking, also compile shogun with --enable-trace-mallocs and run the tests20:05
wikingheiko: mmmm20:05
heikowiking: this will show loads of loads of memeory leaks20:05
heikowiking:  in configure20:06
@sonney2kheiko, so that is how it has been for a few years - now there is one exception: the examples in $lang/graphical20:06
wikingor you mean it would be good to have tests runnning  --enable-trace-mallocs ?20:06
heikosonney2k: ok, thats good to know20:06
@sonney2kthese are not documented20:06
@sonney2kheiko, examples should be written as functions and called20:07
wikingheiko: bcoz the thing is the unit test flags really depends on ./configure flags... and that is pretty much up to the user...20:07
heikowiking: no, I just use trace-mallocs by default, and it creates this annoying output at the end20:07
wikingheiko: ok i'll check20:07
@sonney2kheiko, this way we get integration tests for free!20:07
heikosonney2k: ok! I changed one of mine recently to that20:07
heikosonney2k: btw the graphical examples are a problem: the get outdated quite quickly20:07
heikosince not detected by make tests20:07
heikobut we cannot run them since they dont terminate alone20:08
heikoany ideas for that?20:08
@sonney2kheiko, unfortunately no one is taking care of examples/integration tests20:08
heikosonney2k: these big tests?20:08
@sonney2kheiko, yes - very useful to know that the svm actually still produces the same result with this particular kernel and data :)20:10
blackburnsonney2k: I will test it w/o arpack now20:11
heikosonney2k: indeed!20:11
@sonney2kheiko, and it is testing all the serialization stuff too btw20:11
heikosonney2k: what is the state of that?20:11
@sonney2kfor each and every method20:11
heikosonney2k: I have to admit that I never looked at this20:12
@sonney2kheiko, look at
heikosonney2k: so how does it work?20:12
heikohow is each an every method tested?20:13
heikosonney2k: I added similar things to my unit-tests20:14
heikolike the result on this fixed data has to be that20:14
@sonney2kheiko, go to shogun/tests/integration/python_modular20:14
@sonney2kthere is tester.py20:14
@sonney2kand generator.py20:14
@sonney2k*very* small scripts20:15 does nothing more than run one example with the parameters specified in that example20:16
@sonney2kand write the output to a file20:16
heikosonney2k: I see thats why some examples have parameters20:16
@sonney2ktester loads that output and runs the example and really 1:1 compares the stuff20:16
@sonney2klike binary comparison20:16
heikosonney2k: so this is to ensure that methods do not change20:17
@sonney2kfor this to to work you need deterministic algorithms20:17
@sonney2kthat is no parallel stuff20:17
@sonney2kand init random number generator20:17
heikoI see20:17
@sonney2kand if they change20:17
@sonney2kjust run with the example name that needs updating20:18
heikoso I added a lot of assertions in the unit-tests for similar things: fixed seed, fixed data, assert result20:18
heikodo you think its a bad idea to have two separate places where this is happening?20:18
@sonney2kheiko, yes20:19
@sonney2kjust return the stuff in the function you want to see asserted20:19
heikosonney2k:  but how do I add the results20:20
blackburnsonney2k: found a bug, soon to come20:20
heikosonney2k: I mean its not enough to just return it right? I need to specify the truth somewhere20:20
@sonney2kheiko, well you just run with that example once20:20
heikosonney2k: ok I see, this generates the files20:21
heikosonney2k: but there is one difference: I am comparing against matlab20:21
heikothe tester compares against the program against itself20:21
@sonney2kthe tester compares against what the generator has once witten out20:22
heikoso the procedure would be, write example that works , compare with other implementation by hand, when correct, add integration test20:22
@sonney2kheiko, exactly20:23
@sonney2kthat was my idea20:23
heikosonney2k: so then unit-tests should be more implementation things20:23
heikorather than results of numerical methods20:24
heikowell, this goes hand in hand20:24
heikoI think I will just add the integration tests additionally20:24
heikodoesnt hurt to have the others20:24
heikosonney2k, blackburn, wiking I will go home now, long day, have a good evening!20:24
blackburnheiko: see you20:24
-!- heiko [] has left #shogun []20:26
-!- n4nd0 [] has joined #shogun20:48
-!- shogun-notifier- [] has joined #shogun20:56
shogun-notifier-shogun: Soeren Sonnenburg :master * b837e0e / tests/integration/python_modular/ (2 files):
shogun-notifier-shogun: fix integration test directory20:56
shogun-buildbotbuild #870 of deb3 - modular_interfaces is complete: Success [build successful]  Build details are at
-!- heiko [] has joined #shogun21:56
-!- sumit [ca4eaca2@gateway/web/freenode/ip.] has joined #shogun22:10
-!- heiko [] has left #shogun []22:13
-!- hoijui [] has quit [Ping timeout: 264 seconds]22:26
-!- sumit [ca4eaca2@gateway/web/freenode/ip.] has quit [Quit: Page closed]23:44
-!- shogun-notifier- [] has quit [Quit: transmission timeout]23:56
-!- n4nd0 [] has quit [Quit: leaving]23:57
--- Log closed Fri Mar 08 00:00:04 2013