--- Log opened Thu Jul 16 00:00:55 2015 | ||
-!- PirosB3 [~pirosb3@host145-212-dynamic.26-79-r.retail.telecomitalia.it] has joined #shogun | 00:24 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 01:16 | |
-!- PirosB3 [~pirosb3@host145-212-dynamic.26-79-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 01:19 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Remote host closed the connection] | 04:21 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 05:22 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] | 05:26 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 09:18 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 246 seconds] | 09:22 | |
-!- HeikoS [~heiko@054421fa.skybroadband.com] has joined #shogun | 11:32 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 11:32 | |
-!- HeikoS [~heiko@054421fa.skybroadband.com] has quit [Quit: Leaving.] | 11:38 | |
-!- HeikoS [~heiko@054421fa.skybroadband.com] has joined #shogun | 12:06 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 12:06 | |
lisitsyn | HeikoS: hey | 13:16 |
---|---|---|
@HeikoS | hi lisitsyn | 13:16 |
lisitsyn | howdy? | 13:17 |
lisitsyn | HeikoS: I've got some time probably we could discuss things if you get some time too | 13:17 |
@HeikoS | lisitsyn: yeah I have | 13:17 |
@HeikoS | lets say in 10 min? | 13:17 |
lisitsyn | yeah sure | 13:18 |
@HeikoS | cool | 13:18 |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:e97c:656f:3d93:f749] has joined #shogun | 13:21 | |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:e97c:656f:3d93:f749] has quit [Ping timeout: 248 seconds] | 13:25 | |
@HeikoS | lisitsyn: re | 13:30 |
lisitsyn | HeikoS: yeap me too | 13:31 |
@HeikoS | lisitsyn: want to talk about the modules? | 13:32 |
lisitsyn | HeikoS: anything you're interested in | 13:32 |
@HeikoS | lisitsyn: yeah thats good, and also maybe a priority list of things that are important? | 13:34 |
@HeikoS | shall we start with latter? | 13:34 |
@HeikoS | kind of big picture | 13:34 |
lisitsyn | HeikoS: hm yeah may be | 13:34 |
@HeikoS | because we got quite a few things started and not yet completely done | 13:34 |
@HeikoS | low hanging fruits | 13:34 |
@HeikoS | whats your opinion on general progress and all that? | 13:34 |
lisitsyn | ok so the thing is that | 13:35 |
lisitsyn | we probably overengineered things a bit | 13:35 |
lisitsyn | i've got a feeling we got more than we need with CI and stuff | 13:35 |
lisitsyn | we don't use it properly now | 13:35 |
@HeikoS | CI? | 13:36 |
@HeikoS | as in testing etc? | 13:37 |
@HeikoS | lisitsyn: is that blocking us from anything then? | 13:37 |
lisitsyn | ah no | 13:37 |
lisitsyn | just a random thought | 13:37 |
@HeikoS | i see | 13:37 |
@HeikoS | yeah maybe | 13:37 |
@HeikoS | I personally would live to drop all but the unit tests anyways | 13:37 |
lisitsyn | HeikoS: there is a thing that blocks us | 13:38 |
lisitsyn | it is that we don't have good concept or idea or whatever | 13:38 |
lisitsyn | why we are better than something else | 13:38 |
@HeikoS | lisitsyn: not globally at least | 13:38 |
@HeikoS | I have an opinion on that though | 13:38 |
lisitsyn | I am a bit lost about that | 13:39 |
@HeikoS | its the languages | 13:39 |
lisitsyn | so would be happy to join :) | 13:39 |
@HeikoS | and the c++ core | 13:39 |
@HeikoS | i.e. modular while fast | 13:39 |
@HeikoS | we dont exploit the latter to much anymore | 13:39 |
@HeikoS | and the first we dont expose it | 13:39 |
@HeikoS | but I think thats the core strength of shogun | 13:39 |
lisitsyn | what are the main languages you think? | 13:40 |
@HeikoS | a third one could be the amount of algorithms we implement | 13:40 |
lisitsyn | it looks like python is the main thing while others are not interesting at all | 13:40 |
@HeikoS | lisitsyn: python, R, java, C++, lua, octave, and MATLAB | 13:40 |
@HeikoS | I dont agree | 13:40 |
@HeikoS | its just we dont support this properly | 13:40 |
@HeikoS | i.e. too hard to set up | 13:41 |
@HeikoS | and not exposed | 13:41 |
lisitsyn | ok another thought then | 13:41 |
@HeikoS | so thats why people dont use them | 13:41 |
@HeikoS | I think for that | 13:41 |
lisitsyn | we are too frameworkish | 13:41 |
@HeikoS | the two major improvements would be: | 13:41 |
@HeikoS | 1. manual with the languages as we started | 13:41 |
@HeikoS | 2. MATLAB Swig support | 13:41 |
@HeikoS | if we had that, we Shogun would have a massive leap over other projects | 13:42 |
@HeikoS | so thats something we could be good at | 13:42 |
@HeikoS | another thing we could be good at if we focussed is | 13:42 |
@HeikoS | single-machine large-scale | 13:42 |
lisitsyn | hmm yeah | 13:42 |
@HeikoS | i.e. very efficient memory managment and intelligent GPU integration | 13:42 |
@HeikoS | but we dont have that in our development process | 13:42 |
@HeikoS | we focus more in reliability at the moment, which is good and comes first | 13:43 |
lisitsyn | I have a feeling we should not dive into gpu things | 13:43 |
@HeikoS | but I think there is room to speed things up quite a bit | 13:43 |
lisitsyn | or rely on some magic library | 13:43 |
@HeikoS | lisitsyn: why? | 13:43 |
lisitsyn | it is a shitload of work | 13:43 |
@HeikoS | true | 13:43 |
@HeikoS | but I think there is lots of low hanging fruits again | 13:43 |
lisitsyn | I don't have gpu | 13:44 |
@HeikoS | i.e. massive gains with little effort | 13:44 |
lisitsyn | neither personally nor at job | 13:44 |
@HeikoS | like the basic operations in linalg | 13:44 |
@HeikoS | matrix product or inversion | 13:44 |
@HeikoS | no need to be super fancy | 13:44 |
@HeikoS | every compute has a GPU these days | 13:44 |
@HeikoS | maybe not a fast, but still gains | 13:44 |
lisitsyn | HeikoS: you mean that thing in sandy bridge? | 13:44 |
@HeikoS | yeah | 13:44 |
lisitsyn | I wouldn't bother | 13:44 |
@HeikoS | still way faster for those basic things | 13:45 |
lisitsyn | not many things can exploit it very efficiently | 13:45 |
lisitsyn | I meet IO bounds much more often | 13:45 |
@HeikoS | lisitsyn: yeah sure, but I am not talking about those cases | 13:45 |
@HeikoS | but those where IO doesnt block and the gains are big | 13:45 |
@HeikoS | I would ignore others | 13:46 |
@HeikoS | but if we have say a CG solver | 13:46 |
@HeikoS | its just faster on GPU without a lot of effort | 13:46 |
lisitsyn | hmm | 13:46 |
@HeikoS | but you know what | 13:46 |
lisitsyn | aren't matrices big? | 13:46 |
@HeikoS | thats details | 13:46 |
@HeikoS | I think more is to be gained when coding c++ properly | 13:46 |
@HeikoS | or more general, write performant code | 13:46 |
@HeikoS | currently we dont really do that | 13:47 |
lisitsyn | yeah that's true | 13:47 |
@HeikoS | we dont have means of ensuring that we do that | 13:47 |
@HeikoS | like the unit tests for reliability | 13:47 |
lisitsyn | to do that we should make a lot of tested functions | 13:48 |
lisitsyn | to perform basic things | 13:48 |
@HeikoS | yeah | 13:48 |
@HeikoS | I dont really know how to do this | 13:48 |
lisitsyn | good old C++ like we had | 13:48 |
lisitsyn | is not really testable | 13:48 |
@HeikoS | I think the other two points are more important anyways | 13:48 |
lisitsyn | well e.g. I pushed python-like range | 13:48 |
lisitsyn | it kills a few possible problems | 13:48 |
lisitsyn | such small things reduce complexity and improve code quality | 13:49 |
@HeikoS | the main problem for users is still 1) cannot install 2) dont know what shogun's strengths are | 13:49 |
lisitsyn | oh | 13:49 |
lisitsyn | yes that's true | 13:49 |
@HeikoS | internal I think 1) swig is too big 2) efficiency of linalg and others | 13:49 |
@HeikoS | so I see the aer as the most important internal change | 13:50 |
@HeikoS | and the manual thing as the most important external | 13:50 |
lisitsyn | yeah agree | 13:50 |
@HeikoS | and in general I think external is more important than internal | 13:50 |
@HeikoS | the installation thing is going on for years | 13:50 |
lisitsyn | yes | 13:50 |
lisitsyn | ok actually | 13:50 |
lisitsyn | pretty interface is not stable usually | 13:50 |
lisitsyn | if we get really simple api | 13:51 |
lisitsyn | we can stabilize it | 13:51 |
lisitsyn | so users just use whether version they want | 13:51 |
@HeikoS | yeah | 13:52 |
@HeikoS | API is actuall another problem | 13:52 |
@HeikoS | point 3.) for external | 13:52 |
@HeikoS | we in fact need a major re-design of the public API | 13:52 |
lisitsyn | yes | 13:52 |
@HeikoS | but well | 13:52 |
@HeikoS | thats not top priority | 13:52 |
@HeikoS | because we at least have something | 13:52 |
@HeikoS | as with the other points, we dont have it ;) | 13:52 |
lisitsyn | I am personally interested :) | 13:53 |
lisitsyn | hmm btw | 13:53 |
lisitsyn | have you seen balasz kegl article | 13:53 |
lisitsyn | on data science? | 13:53 |
@HeikoS | nope send it | 13:53 |
lisitsyn | just a sec | 13:53 |
lisitsyn | https://medium.com/@balazskegl/the-data-science-ecosystem-678459ba6013 | 13:53 |
lisitsyn | HeikoS: the thing is any person has some incentive :) | 13:53 |
lisitsyn | may be we should all have our own incentive | 13:54 |
@HeikoS | oh btw and another thing that affect priority is projects that are started and then stalled. We do this quite often, starting something and then not finishing. If we finished all the stuff we started, that would already be a major step | 13:54 |
lisitsyn | I am psycho about api :) | 13:54 |
@HeikoS | lisitsyn: yeah sure | 13:54 |
@HeikoS | lisitsyn: something I realised about open-source, | 13:54 |
@HeikoS | people do what they like | 13:54 |
@HeikoS | not what sneeded | 13:54 |
lisitsyn | so we could have an angel for each point you listed | 13:54 |
lisitsyn | so e.g. you push people to make it installable | 13:55 |
lisitsyn | and I am obsessed with api, so on | 13:55 |
@HeikoS | lisitsyn: yeah true | 13:55 |
@HeikoS | I mean | 13:55 |
@HeikoS | its just about small steps in the end | 13:55 |
@HeikoS | but making sure the process of those is designed in such way that we gain something by those steps | 13:55 |
@HeikoS | often we invest work which actually pushed is back, because it made Shogun less maintainable or unreliable or etc | 13:56 |
@HeikoS | so I like to think in those processes | 13:56 |
@HeikoS | (rather than in the details) | 13:56 |
@HeikoS | but anyways | 13:56 |
@HeikoS | lets talk API | 13:56 |
lisitsyn | just a sec | 13:56 |
@HeikoS | How would you like to proceed? | 13:57 |
lisitsyn | I have no idea :) | 13:57 |
lisitsyn | I started to send mails may be its the way | 13:57 |
lisitsyn | did you get that property idea? | 13:58 |
@HeikoS | reading | 13:58 |
@HeikoS | get it | 14:00 |
@HeikoS | lisitsyn: sounds like a good idea | 14:00 |
@HeikoS | but I cannot judge | 14:00 |
@HeikoS | My first question would be: why not do the simplest way | 14:00 |
@HeikoS | which is | 14:00 |
@HeikoS | to only compile the parts of Shogun that one needs | 14:00 |
@HeikoS | and then expose all methods? | 14:01 |
@HeikoS | we dont have many getters/setters in fact | 14:01 |
@HeikoS | lisitsyn: and if you only want Shogun for say GPs, then its just like 20 classes anyways | 14:02 |
@HeikoS | maybe its a naive question, but what would speak against that? | 14:02 |
lisitsyn | HeikoS: hmm yeah that's simple idea | 14:03 |
lisitsyn | HeikoS: how do you want to enforce it is possible to compile different parts of shogun? | 14:04 |
@HeikoS | lisitsyn: isnt this possible through namespaces? | 14:04 |
@HeikoS | lisitsyn: or even automatically | 14:04 |
@HeikoS | lisitsyn: if doxygen can do that, we cannot cmake do ? | 14:04 |
@HeikoS | thoralf manages with bash | 14:05 |
lisitsyn | ?? | 14:05 |
lisitsyn | oops | 14:05 |
lisitsyn | yeah I think it is easy | 14:05 |
@HeikoS | lisitsyn: see email | 14:05 |
lisitsyn | we just compile separate parts | 14:05 |
@HeikoS | lisitsyn: just wondering how much effort that would be and how much we would gain | 14:05 |
@HeikoS | I have the feeiling its hard to beat in that respect | 14:06 |
@HeikoS | lisitsyn: another option that I thought about: | 14:06 |
lisitsyn | I think we should use properties and that thing | 14:06 |
@HeikoS | pull out shogun-base | 14:06 |
@HeikoS | i.e. a library with the core parts of shogun | 14:06 |
@HeikoS | and then sub-parts cannot depend on each other, only on the base | 14:06 |
lisitsyn | yes | 14:07 |
@HeikoS | but maybe thats much harder | 14:07 |
lisitsyn | its harder but should be possible | 14:07 |
@HeikoS | lisitsyn: btw thoralfs thing compiled a LibSVM shogun in a minute | 14:07 |
@HeikoS | since just 10 classes or so | 14:07 |
lisitsyn | ok sorry have to go | 14:07 |
@HeikoS | lisitsyn: another reason why shogun is so big is the ridiculous base class | 14:07 |
@HeikoS | lisitsyn: ah ok | 14:07 |
@HeikoS | lisitsyn: talk later then | 14:07 |
lisitsyn | I ll be back in 20 mins | 14:07 |
lisitsyn | or 25 | 14:07 |
@HeikoS | i might be here then still | 14:07 |
lisitsyn | ok cool | 14:08 |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 15:22 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 244 seconds] | 15:26 | |
-!- HeikoS [~heiko@054421fa.skybroadband.com] has quit [Quit: Leaving.] | 16:12 | |
-!- HeikoS [~heiko@host-92-25-65-117.as13285.net] has joined #shogun | 17:15 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:15 | |
-!- HeikoS [~heiko@host-92-25-65-117.as13285.net] has quit [Quit: Leaving.] | 18:07 | |
-!- HeikoS [~heiko@193.61.17.254] has joined #shogun | 18:17 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:17 | |
-!- HeikoS1 [~heiko@dab-glb1-h-75-9.dab.02.net] has joined #shogun | 18:23 | |
-!- HeikoS1 [~heiko@dab-glb1-h-75-9.dab.02.net] has quit [Client Quit] | 18:24 | |
-!- HeikoS [~heiko@193.61.17.254] has quit [Ping timeout: 244 seconds] | 18:26 | |
-!- HeikoS [~heiko@nat-163-62.internal.eduroam.ucl.ac.uk] has joined #shogun | 18:41 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:41 | |
-!- HeikoS [~heiko@nat-163-62.internal.eduroam.ucl.ac.uk] has quit [Ping timeout: 252 seconds] | 19:56 | |
-!- HeikoS [~heiko@dab-glb1-h-75-3.dab.02.net] has joined #shogun | 20:03 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 20:03 | |
-!- HeikoS [~heiko@dab-glb1-h-75-3.dab.02.net] has quit [Quit: Leaving.] | 20:27 | |
--- Log closed Fri Jul 17 00:00:56 2015 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!