--- Log opened Thu Apr 26 00:00:01 2012 | ||
--- Day changed Thu Apr 26 2012 | ||
blackburn_ | sonney2k: you mean w/o do_free? | 00:00 |
---|---|---|
blackburn_ | I thought do_free stuff works more or less | 00:00 |
@sonney2k | no it doesn't work | 00:00 |
blackburn_ | what is the case? | 00:00 |
@sonney2k | blackburn_, to objects callling get_vector() | 00:02 |
blackburn_ | sonney2k: so in the case they return pointer to their own memory it is ok, right? | 00:03 |
blackburn_ | like get_w | 00:03 |
-!- blackburn_ [5bde8018@gateway/web/freenode/ip.91.222.128.24] has quit [Quit: Page closed] | 00:10 | |
-!- blackburn_ [5bde8018@gateway/web/freenode/ip.91.222.128.24] has joined #shogun | 00:10 | |
blackburn_ | ahr | 00:10 |
blackburn_ | sonney2k: ok lets get back to it tomorrow | 00:11 |
blackburn_ | I took a medicine against my allergy and it looks like I have to shlafen now | 00:12 |
blackburn_ | bahh schlafen | 00:12 |
blackburn_ | %) | 00:13 |
blackburn_ | good night | 00:13 |
-!- blackburn_ [5bde8018@gateway/web/freenode/ip.91.222.128.24] has quit [Client Quit] | 00:13 | |
-!- harshit_ [~harshit@182.68.43.52] has quit [Quit: Leaving] | 00:52 | |
-!- av3ngr [av3ngr@nat/redhat/x-zugxfyzvyhqmtprr] has joined #shogun | 02:08 | |
-!- vikram360 [~vikram360@117.192.172.250] has quit [Read error: Connection reset by peer] | 02:22 | |
-!- vikram360 [~vikram360@117.192.172.250] has joined #shogun | 02:22 | |
-!- av3ngr [av3ngr@nat/redhat/x-zugxfyzvyhqmtprr] has quit [Read error: Operation timed out] | 02:40 | |
-!- abn_ [av3ngr@nat/redhat/x-vvcjgclqwhfoannv] has joined #shogun | 02:40 | |
-!- gsomix [~gsomix@188.168.5.195] has quit [Ping timeout: 265 seconds] | 06:19 | |
-!- Marty28 [~marty@cable-158-181-78-199.cust.telecolumbus.net] has joined #shogun | 08:00 | |
-!- Marty28 [~marty@cable-158-181-78-199.cust.telecolumbus.net] has quit [Quit: Colloquy for iPad - http://colloquy.mobi] | 08:10 | |
-!- blackburn [5bdfb203@gateway/web/freenode/ip.91.223.178.3] has joined #shogun | 08:14 | |
blackburn | sonne|work: sonney2k: great news! thanks for the answer | 08:15 |
@sonney2k | yes :) | 08:24 |
blackburn | sonney2k: I was really afraid I would have to reimplement it using their papers | 08:24 |
@sonney2k | blackburn, I did not make progress with the reference stuff | 08:25 |
@sonney2k | I have no idea how one can use references as member variables in a class | 08:25 |
@sonney2k | pluskid might know | 08:25 |
@sonney2k | hmmhhh | 08:26 |
blackburn | sonney2k: are we talking about SGVectors only right now? | 08:27 |
-!- pluskid [~pluskid@111.120.11.248] has joined #shogun | 08:31 | |
sonne|work | a general problem with references | 08:37 |
sonne|work | pluskid: you might know ^ | 08:37 |
pluskid | sonne|work: what? | 08:37 |
sonne|work | if I want to have a class member variable which is a reference | 08:37 |
pluskid | in IRC log? | 08:37 |
pluskid | hmm, then? | 08:37 |
sonne|work | then I *have to* assign some default value to it in constructor | 08:37 |
sonne|work | otherwise reference would be invalid | 08:37 |
pluskid | yes | 08:38 |
pluskid | it should be done in the init list I think | 08:38 |
pluskid | not even possible *inside* constructor | 08:38 |
sonne|work | pluskid: it has to be done like class A { A() { a=Bla();} Bla& a}; | 08:39 |
sonne|work | err A() : (a=Bla()) | 08:39 |
pluskid | i mean even this is impossible | 08:39 |
pluskid | yes, A(): a(Bla) {} this is OK | 08:39 |
sonne|work | yes that is what I meant | 08:40 |
pluskid | then that will work I think. but what's your problem? :) | 08:41 |
sonne|work | pluskid: it is all about passign around SGVector/SGMatrix which have reference counting enabled | 08:41 |
sonne|work | so we would *need to* store references as members in class | 08:41 |
sonne|work | and always work with references | 08:41 |
sonne|work | otherwise ref-counting won't work | 08:41 |
pluskid | why not using pointers? | 08:42 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 08:42 | |
sonne|work | pluskid: yeah exactly | 08:42 |
sonne|work | that is the question | 08:42 |
blackburn | actually here we can try smart pointers.. | 08:42 |
sonne|work | no | 08:42 |
sonne|work | not yet | 08:42 |
pluskid | I'm not sure whether we might have troubles if we use reference members | 08:43 |
sonne|work | removing SG_UNREF/REF is easy | 08:43 |
sonne|work | later I mean | 08:43 |
pluskid | for example, you cannot change it after the initial assign | 08:43 |
sonne|work | pluskid: the only issue is that this nice operator overloading + / - / * / [] won't work on ptr's | 08:43 |
pluskid | OK | 08:44 |
sonne|work | one would always have to do (*ptr1) + (*ptr2) | 08:44 |
pluskid | then I'd prefer copy of SGVectors | 08:44 |
sonne|work | or (*vec)[0] | 08:44 |
pluskid | make SGVector light-weighted | 08:44 |
sonne|work | pluskid: yeah that is what we do now but we have a problem: | 08:44 |
pluskid | we do ref-counting on the content of SGVectors | 08:44 |
pluskid | but not on SGVector itself | 08:44 |
sonne|work | how so? | 08:44 |
pluskid | similar to our current implementation | 08:45 |
sonne|work | pluskid: we have a double* in sgvector | 08:45 |
sonne|work | and would need to add some refcounter to sgvector | 08:45 |
sonne|work | but when we pass around copies this refcounter will not be increased /decreased in all copies | 08:45 |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 08:45 | |
pluskid | that's easy, we put an object instead of a raw double* in SGVector | 08:46 |
pluskid | for example, let's name our new SGVector NewVector | 08:46 |
pluskid | then we put a pointer to SGVector in NewVector | 08:46 |
sonne|work | yeah I understand but then we have an overhead we don't want | 08:46 |
sonne|work | another pointer for nothing | 08:47 |
pluskid | if you want performance, that would also be easy I think | 08:47 |
sonne|work | pluskid: I want to save memory | 08:47 |
pluskid | you allocate some more memory | 08:47 |
pluskid | before your double* | 08:47 |
pluskid | and put your ref-counting there | 08:47 |
sonne|work | think of 200 million examples of dim 2 | 08:47 |
sonne|work | with refcounting we already have 4 bytes overhead | 08:48 |
pluskid | but if you want ref-counting, you always have to store the ref-counter *some where*, aren't you? | 08:48 |
sonne|work | pluskid: yeah but you have in SGVector the ptr to newvector | 08:48 |
sonne|work | so that would mean 8 bytes + sizeof(T)*len + 4 | 08:49 |
sonne|work | + 4 byte for refcount | 08:49 |
sonne|work | instead of sizeof(T)*len + 4 + 4 | 08:49 |
sonne|work | I already hate wasting that int (==4 bytes) for reference count | 08:50 |
sonne|work | but I dont' see a way around it | 08:50 |
pluskid | I mean, if you don't put ref-count here, you put it somewhere else, you also have to waste space | 08:50 |
pluskid | unless you completely disable ref-counting for SGVector | 08:51 |
sonne|work | pluskid: yes but what about the additional 8 bytes for the pointer? | 08:51 |
pluskid | I'm not sure whether I explained my idea clearly | 08:51 |
sonne|work | maybe not | 08:51 |
pluskid | let me write some pseudo code for you | 08:51 |
pluskid | wait a minute | 08:51 |
sonne|work | currently SGVector with refcounting for type double would be | 08:52 |
sonne|work | double* vec; | 08:52 |
sonne|work | int len; | 08:52 |
sonne|work | int refcount; | 08:52 |
sonne|work | == 8+4+4 bytes | 08:52 |
sonne|work | you say I would need to | 08:53 |
sonne|work | NewVector* vec; | 08:53 |
sonne|work | and then inside NewVector | 08:53 |
sonne|work | all the above | 08:53 |
sonne|work | so 8+8+4+4 byes | 08:53 |
sonne|work | bytes | 08:53 |
pluskid | no, I abanduned that idea when you say you need performance | 08:53 |
pluskid | btw, the first method won't work | 08:53 |
pluskid | <sonne|work> double* vec; | 08:53 |
pluskid | <sonne|work> int len; | 08:53 |
pluskid | <sonne|work> int refcount; | 08:53 |
sonne|work | why not? | 08:54 |
pluskid | because as you said, you cannot update ref-count in every copy of SGVector object | 08:54 |
sonne|work | one would have to work with pointers | 08:54 |
sonne|work | yes | 08:54 |
sonne|work | with pointers it would work | 08:54 |
sonne|work | or when *always* using references | 08:54 |
pluskid | sonne|work: something like this: https://gist.github.com/2496958 | 09:00 |
pluskid | put the ref-counter in front of the data buffer | 09:01 |
pluskid | so 8+4+4 | 09:01 |
sonne|work | pluskid: I understand - only problem with this is that this is quite some hack | 09:03 |
pluskid | yes | 09:03 |
sonne|work | any way to do this more clean without sacrificing memory? | 09:03 |
sonne|work | (I cannot think of one) | 09:04 |
pluskid | this is the best solution that I can get | 09:04 |
pluskid | maybe the code can be written to look less hacking, though | 09:04 |
pluskid | but the essence would be the same | 09:05 |
sonne|work | but this code needs documentation and that makes it a bad sign | 09:05 |
sonne|work | so I tend to prefer ptrs of SGVector suddenly | 09:05 |
wiking | morning! today is meeting at 13:00 CEST right? | 09:05 |
pluskid | haha | 09:05 |
sonne|work | wiking: yes 11 UTC | 09:06 |
pluskid | let me try to make the pseudo code less horrible | 09:06 |
wiking | okkey sonne|work do u know if alex can make it? | 09:06 |
pluskid | maybe you might be persuaded then | 09:06 |
sonne|work | no idea - no one replied :) | 09:06 |
wiking | heheheh ok | 09:06 |
wiking | btW: i hate gsoc mailing list... full of fucking crap | 09:07 |
sonne|work | pluskid: no the code is not horrible | 09:07 |
pluskid | I mean more natural, so that no doc is required | 09:07 |
sonne|work | pluskid: it is the really the ptr hack that makes it hard to understand | 09:08 |
sonne|work | non obvious stuff | 09:08 |
pluskid | hmm, yes | 09:08 |
pluskid | OK | 09:08 |
pluskid | so it's up to you | 09:08 |
sonne|work | wiking: your opinion on https://gist.github.com/2496958 ? | 09:08 |
sonne|work | wiking: I start to prefer SGVector* now that we are having issues... | 09:08 |
wiking | checking just a sec | 09:08 |
wiking | sonne|work: :D | 09:09 |
sonne|work | and only memory efficient solution possible is the one pluskid came up with | 09:09 |
sonne|work | which is that above | 09:09 |
wiking | !??!?!?! uchar *memory = malloc(size); | 09:09 |
wiking | what is this! | 09:09 |
pluskid | sonne|work: btw, ptr is less efficient than object, since you have to do 2 times of de-referencing | 09:09 |
sonne|work | pluskid: no | 09:09 |
sonne|work | that is sth the compiler will take care of | 09:10 |
wiking | use void* | 09:10 |
sonne|work | wiking: no he needs uchar | 09:10 |
pluskid | wiking: that's pseudo code | 09:10 |
sonne|work | sth that is 1 byte | 09:10 |
wiking | void | 09:10 |
wiking | you'll have problems | 09:10 |
sonne|work | void has no size | 09:10 |
wiking | with 32 vs 64 bit | 09:10 |
pluskid | wiking: void* cannot do pointer arithemtic | 09:10 |
wiking | that's like 100% | 09:10 |
sonne|work | what pluskid says | 09:10 |
wiking | and you cannot assure in c a given size | 09:11 |
wiking | per se 1 byte | 09:11 |
wiking | and | 09:11 |
wiking | int32_t size = sizeof(T)*len + sizeof(int32_t); | 09:11 |
wiking | use size_t | 09:11 |
pluskid | sonne|work: say you have a SGVector *pvec, you access pvec->vector[2] | 09:11 |
pluskid | you first dereference pvec, then dereference vector, twice | 09:12 |
wiking | or unsigned int... | 09:12 |
pluskid | but if you have an object SGVector vec, accessing vec.vector[2], you only have to dereference once | 09:12 |
pluskid | for vec.vector | 09:12 |
sonne|work | pluskid: yes but compiler will make this a single access | 09:12 |
pluskid | I'm not sure the word "dereference" is correct here | 09:12 |
sonne|work | no matter of reference or ptr | 09:12 |
pluskid | sonne|work: how could it be possible? the compiler doesn't know the actual address of pvec at compiling time | 09:13 |
pluskid | sonne|work: I didn't mean reference, I mean concrete object (copy) vs pointers | 09:13 |
wiking | pluskid: https://gist.github.com/2497062 | 09:14 |
sonne|work | actually there is indeed a catch | 09:15 |
sonne|work | when we have a ptr | 09:15 |
sonne|work | it needs to be allocd per vector too | 09:15 |
wiking | pluskid: why would u use signed variable for memory size... | 09:15 |
sonne|work | so +8 again | 09:15 |
pluskid | wiking: never mind, it's only pseudo code, written in a hurry :) | 09:16 |
* sonne|work is becoming mad | 09:16 | |
blackburn | sonne|work: we don't have so many vectors there why do you care about some bytes so much? | 09:16 |
wiking | pluskid: that's alright... i'm just saying | 09:16 |
blackburn | I don't mind slight overhead if it would be safe | 09:16 |
sonne|work | blackburn: whenever you compute a kernel value we pass around vectors | 09:16 |
blackburn | oooh | 09:16 |
pluskid | sonne|work: +8 for which solution? | 09:16 |
sonne|work | if we increase vector by +8 and vector is only 2 bytes in size -> huge overhead | 09:17 |
blackburn | sonne|work: don't we need two types of vectors - for interface and for internal use? | 09:17 |
sonne|work | blackburn: I would prefer one | 09:18 |
sonne|work | otherwise things are becoming even more messy | 09:18 |
blackburn | I believe any overhead should be avoided in kernels and distances | 09:19 |
sonne|work | pluskid: of some class A { SGVector<double>* a } | 09:19 |
sonne|work | we have to alloc the vector and store the ptr to it right? | 09:19 |
sonne|work | ahh ok but maybe this is done for references too but just on the heap | 09:19 |
sonne|work | pluskid: or? | 09:19 |
pluskid | sonne|work: I would say, pointer is equivalent to reference; we need to discuss between pointer vs. object copy (non-reference) | 09:20 |
pluskid | when comparing pointer and object copy | 09:21 |
pluskid | pointer need one extra +8 for the pointer, and then the size of the SGVector object itself | 09:21 |
pluskid | but if we use object copy, only the size of the SGVector itself | 09:21 |
pluskid | so pointer has an extra +8 overhead here (if you care) | 09:21 |
sonne|work | pluskid: I care but I am not so sure about it anymore | 09:22 |
wiking | pluskid btw why do you want to fit into the allocated memory space the reference counter? | 09:22 |
sonne|work | pluskid: in the end the compiler has to allocate memory for the object on the heap - and so store some ptr to it too | 09:22 |
pluskid | wiking: or else where shall we put? | 09:22 |
wiking | pluskid: you can just simply add an extra variable to the SGVector class, like short ref_counter | 09:23 |
pluskid | sonne|work: if we use object on the stack | 09:23 |
pluskid | it is no longer allocated on the heap | 09:23 |
pluskid | and no pointer | 09:23 |
pluskid | though the m_buf in the SGVector is still on the heap | 09:23 |
wiking | pluskid: and you just need to make sure that the copy constructor is implemented in a good way and that's it | 09:23 |
pluskid | but no pointer to the object itself | 09:23 |
pluskid | to SGVector itself | 09:23 |
sonne|work | pluskid: but how does the compiler know where the object is? | 09:23 |
sonne|work | it needs to store some kind of ptr/ref to it | 09:24 |
sonne|work | even if it is on stack | 09:24 |
sonne|work | it needs to remember where on stack | 09:24 |
pluskid | sonne|work: for local variables, class members, etc. the address (offset actually) is fixed at *compile time*, so the compile do not remember either its name or a pointer, it just translate your code into fixed offset memory accessing | 09:25 |
pluskid | wiking: think of it, you cannot do proper copy constructor if you don't store the ref-counting at a place where all object can access it | 09:25 |
sonne|work | pluskid: ahh so it is a fixed offset relative to the current class or whatever - that would make sense | 09:25 |
wiking | pluskid: ?! | 09:25 |
pluskid | sonne|work: yes, relative to the current class for class member, relative to the stack pointer for loal variables, etc. | 09:26 |
sonne|work | blackburn: well there is a tradeoff as usual | 09:26 |
sonne|work | pluskid: that clears it up for me | 09:26 |
sonne|work | thx | 09:26 |
pluskid | wiking: sonne|work would be happy if you could come up with an alternative solution that works and avoid this dirty hack! | 09:26 |
blackburn | sonne|work: I mean some unsafe mode for internal use is something nice to have | 09:27 |
pluskid | sonne|work: so that's also why I say pointer is slower than object | 09:27 |
pluskid | because the address for object is fixed | 09:27 |
sonne|work | pluskid: then I don't see any alternative to your hack - but I would even put the size of the vector into T* | 09:27 |
pluskid | why the address in a pointer need to be computed in running time | 09:27 |
wiking | pluskid: ah i see what's your problem... | 09:28 |
blackburn | hrrrr have to go | 09:28 |
pluskid | sonne|work: hmm, that would save some space | 09:28 |
sonne|work | pluskid: not a lot though | 09:29 |
sonne|work | there are not many multiple copies of sgvectors around | 09:29 |
sonne|work | at least *currently* | 09:29 |
pluskid | blackburn: it's not unsafe, it's opaque to the user, but the implementation is somewhat "dirty" I guess | 09:29 |
sonne|work | T* needs to be private then | 09:29 |
pluskid | sonne|work: yes, putting length outside enables us to create some "subset" of a vector | 09:29 |
sonne|work | and we need things like T* get_vector() | 09:30 |
pluskid | I'm not sure whether that is needed | 09:30 |
sonne|work | int get_len() | 09:30 |
pluskid | sonne|work: yes, the interface can be kept the same | 09:30 |
sonne|work | pluskid: yeah not change it for all at once | 09:30 |
sonne|work | pluskid: the thing blackburn is also worried about is that in the extreme case (when SGVector has just 2 elements) | 09:31 |
sonne|work | anything besides storing T[2] and and int for len is a huge overhead | 09:31 |
pluskid | ok | 09:32 |
sonne|work | so in particular in time critical things like computing kernel matrix | 09:32 |
sonne|work | anyway I think it is better to have just *one* vector class | 09:32 |
sonne|work | and live with a *little* overhead | 09:32 |
pluskid | me too | 09:32 |
pluskid | you cannot cover all extreme cases | 09:33 |
pluskid | without messing all your codes :p | 09:33 |
sonne|work | after all 2-d data is rather rare and dealing with should be fast anyways | 09:33 |
sonne|work | considering that we have lots of range checks in kernel | 09:33 |
sonne|work | and whatnot | 09:33 |
sonne|work | this is probably not time critical | 09:34 |
wiking | pluskid: essentially you'll end up to mimic boost's shared_ptr | 09:34 |
sonne|work | it certainly is not memory critical | 09:34 |
sonne|work | because we store things as SGMatrix internally | 09:34 |
sonne|work | so there is no overhead for 100 million 2d vectors | 09:34 |
sonne|work | because it would just be a matrix | 09:34 |
pluskid | wiking: I proposed shared_ptr in the very begining when I come to shogun, :p | 09:35 |
pluskid | sonne|work: yes, you are right | 09:35 |
sonne|work | pluskid: btw I read this email with big interest - and I really think we should try this at some time | 09:35 |
pluskid | wiking: not sure whether shared_ptr works with SWIG though | 09:35 |
sonne|work | it might kill a bit of performance though | 09:35 |
pluskid | sonne|work: but can avoid lots of memory bugs, I think | 09:36 |
sonne|work | but for SGObject based stuff it would be nice | 09:36 |
sonne|work | pluskid: yes - problem of course is that we internally do lots of mallocs | 09:36 |
sonne|work | and leaks are usually coming from there not from forgotten SG_REF/UNREFs | 09:36 |
sonne|work | and since we use lots of third party c-style code - things won't change | 09:37 |
-!- n4nd0 [~n4nd0@wifi-cct-cisco-r252-4.cct.urjc.es] has joined #shogun | 09:37 | |
pluskid | btw: valgrind can help us with memory problems in many cases | 09:37 |
sonne|work | pluskid: yeah we usually use it to track them down | 09:37 |
pluskid | cool | 09:37 |
sonne|work | pluskid: btw shogun has a ./configure --enable-trace-mallocs | 09:38 |
sonne|work | via which you can dump all alloc'd objects at any stage | 09:38 |
sonne|work | so it might help when you ever want to debug sth | 09:38 |
pluskid | awesome, I think I should really read about all the parameters in ./configure some time | 09:38 |
pluskid | recently switched to clang for compiling, it seems to be much faster | 09:38 |
sonne|work | pluskid: it needs a *lot less* memory | 09:39 |
sonne|work | pluskid: but I can only recommend to use ccache | 09:39 |
sonne|work | and compile with optimizations disabled | 09:39 |
sonne|work | for development | 09:39 |
pluskid | sonne|work: thanks, haven't tried that yet, you are already the 3rd people recommending that to me | 09:40 |
sonne|work | pluskid: well make clean; make | 09:40 |
sonne|work | takes 5 seconds :) | 09:40 |
sonne|work | so it is worth it | 09:40 |
pluskid | btw I bought 8G memory for my laptop :D | 09:40 |
pluskid | wow! | 09:40 |
pluskid | that's really fast! | 09:40 |
sonne|work | pluskid: so when you only change .cpp files it will only have to link | 09:40 |
pluskid | the problem is each time I run git checkout to another branch, the whole code base needs recompile | 09:41 |
sonne|work | that is why all code should be in .cpp (to the extend possible) | 09:41 |
pluskid | sonne|work: ah, I see | 09:41 |
sonne|work | pluskid: can be | 09:41 |
pluskid | I'm planning to re-install a 64bit system tomorrow or so to enjoy my new memory :D | 09:42 |
pluskid | btw, sonne|work are you a Debian maintainer? | 09:44 |
sonne|work | y | 09:44 |
pluskid | sonne|work: awesome! :D | 09:45 |
sonne|work | pluskid: anyway good luck with upgrading to 64bit ... for the vector I don't see any other solution but another problem :-(( | 09:51 |
sonne|work | concurrent access | 09:51 |
pluskid | sonne|work: use some atomic_t ? | 09:52 |
sonne|work | which means we would need some PTHREAD_LOCK_T in there? | 09:52 |
pluskid | for ref-counting | 09:52 |
sonne|work | pluskid: isn't that some C++0x? | 09:52 |
pluskid | sonne|work: don't know | 09:52 |
pluskid | atomic_t would be much more efficient than a general lock | 09:53 |
pluskid | if available | 09:53 |
pluskid | sonne|work: if that's in C++0x, will we switch to c++0x? | 09:53 |
pluskid | I heard that C++0x introduced lots of stuff for multithread programming | 09:53 |
pluskid | but I haven't looked at them | 09:53 |
wiking | pluskid: you can use directly pthread mutex | 09:54 |
sonne|work | wiking: but the overhead! | 09:54 |
wiking | i mean since shogun is already using a lot of pthread by default | 09:54 |
wiking | sonne|work: true | 09:54 |
sonne|work | for sgvector that is no good | 09:54 |
wiking | sonne|work: well we can start depending on boost ;) | 09:54 |
pluskid | wiking: atomic_t is efficient than locking in both memory and time | 09:54 |
pluskid | if what you want is ref-counting | 09:55 |
wiking | pluskid: atomic_t linux dependency | 09:55 |
pluskid | wiking: I think there are equivalence in Mac/Windows, but the API might be different | 09:55 |
wiking | i.e. non-ansi non-iso stu | 09:55 |
wiking | f | 09:56 |
wiking | well learning from FLT_MAX | 09:56 |
wiking | cannot we rather stick to c99, ansi, iso, posix stuff | 09:56 |
pluskid | wiking: std::limits (or std::numeric_limits ) | 09:56 |
wiking | if we can | 09:56 |
wiking | and as a very last result start creating bloated headers | 09:56 |
wiking | with #ifdef-s | 09:56 |
wiking | ;P | 09:56 |
sonne|work | pluskid: alright - no thread safety for these buggers then | 10:00 |
sonne|work | btw http://www.mjmwired.net/kernel/Documentation/atomic_ops.txt | 10:00 |
wiking | pluskid: on the other hand going with atomic {} if you have c++0x support and then if that's not possible do a big ifdef... | 10:00 |
wiking | pluskid: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1401.pdf | 10:01 |
wiking | so then it's kind of like done ;) | 10:01 |
wiking | wonder what compiler supports it | 10:01 |
wiking | :) | 10:01 |
pluskid | wiking: gcc, clang, Visual Studio all support C++11 | 10:02 |
wiking | pluskid: not mine | 10:02 |
pluskid | wiking: what's your compiler? | 10:04 |
wiking | Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn) | 10:04 |
wiking | lofasz.cc:7:3: error: use of undeclared identifier 'atomic'; did you mean 'atoi'? | 10:04 |
pluskid | hmm | 10:05 |
pluskid | btw, sonne|work I think the equivalence of atomic_t on Windows is InterlockedIncrement and similar things | 10:06 |
pluskid | how do we compile shogun on windows? | 10:06 |
pluskid | with cygwin or visual studio? | 10:06 |
sonne|work | cygwin | 10:06 |
sonne|work | but since the win buildbot is not working - I wouldn't count on that it compiles | 10:07 |
pluskid | if cygwin is using, I guess many Linux specific features are available | 10:08 |
wiking | soooo boost anybody? :) | 10:12 |
wiking | it's even slashed up into smaller parts so we can only depend on libboost_thread :P | 10:12 |
wiking | and it's quite heavily optimized as it's used in hard real-time systems | 10:13 |
sonne|work | pluskid: lets assume we don't have concurrent SGVector access for now | 10:14 |
pluskid | ok... | 10:15 |
-!- amma [~amma@14.99.15.104] has joined #shogun | 10:15 | |
-!- amma [~amma@14.99.15.104] has quit [Client Quit] | 10:15 | |
pluskid | never use a vector in multiple threads | 10:16 |
pluskid | or else ref-counting *might* broken | 10:16 |
-!- ram108 [~amma@14.99.15.104] has joined #shogun | 10:16 | |
wiking | while we are at: openmp support? | 10:16 |
wiking | if we consider already c++0x | 10:16 |
-!- ram108 [~amma@14.99.15.104] has quit [Client Quit] | 10:16 | |
sonne|work | pluskid: well no - only not fetch the *same vector* in threads | 10:16 |
sonne|work | wiking: openmp was slow for some things I tried to parallelize | 10:17 |
sonne|work | might be that I didn't know enough about it | 10:17 |
wiking | sonne|work: yeah it's not a magic bullet... | 10:17 |
pluskid | wiking: btw I personally love c++11 and boost | 10:17 |
wiking | sonne|work: first time i've used it as well was shit... but then i've realized that i've used it in a wrong way | 10:17 |
sonne|work | I only had high load but things were slower | 10:17 |
wiking | sonne|work: yeah because of context switching... | 10:18 |
wiking | but if we'd use <algorithms> more then we would really have some good results with openmp | 10:18 |
wiking | i.e. __gnu_parallel::sort | 10:19 |
wiking | that's quite efficient | 10:20 |
sonne|work | so to finish this with SGVector - everything stays as it is (no references or anything) but copies as we have them | 10:20 |
sonne|work | pluskid: right? | 10:20 |
sonne|work | and only internally we add these references | 10:20 |
sonne|work | using the T* hack | 10:20 |
wiking | pluskid: i'll give u soon something.. can u maybe benchmark it? | 10:21 |
wiking | pluskid: that implementation vs yours? | 10:21 |
pluskid | sonne|work: yes, but all accessing to SGVector::vlen or SGVector::vector or so needs to be modified | 10:24 |
pluskid | wiking: I don't have a working implementation | 10:25 |
pluskid | that's what sonne|work going to do | 10:25 |
pluskid | wiking: btw, what are you going to do? | 10:25 |
wiking | just a sec i'll give you the gist | 10:25 |
sonne|work | pluskid: yes sure | 10:27 |
pluskid | leave for a while | 10:31 |
pluskid | to take my cat to the doctor | 10:31 |
-!- uricamic [9320543b@gateway/web/freenode/ip.147.32.84.59] has joined #shogun | 10:32 | |
wiking | sonne|work: here? | 10:50 |
sonne|work | yes | 10:51 |
wiking | ok so here goes one idea | 10:51 |
wiking | non-thread safe | 10:51 |
wiking | https://gist.github.com/2497062 | 10:53 |
sonne|work | sry I have to focus on work | 10:54 |
sonne|work | will look at it later | 10:54 |
wiking | nw | 10:54 |
blackburn | sonne|work: I am going to strength your opinion russians are crazy - 2 exams left | 11:13 |
* blackburn is extending wikipedia's shogun page | 11:40 | |
-!- abn_ [av3ngr@nat/redhat/x-vvcjgclqwhfoannv] has quit [Ping timeout: 265 seconds] | 11:46 | |
-!- pluskid [~pluskid@111.120.11.248] has quit [Quit: Leaving] | 11:52 | |
-!- pluskid [6f780bf8@gateway/web/freenode/ip.111.120.11.248] has joined #shogun | 11:53 | |
n4nd0 | pluskid, hey! how is your cat? | 11:54 |
pluskid | n4nd0: it cought a cold | 11:55 |
pluskid | sleeping now | 11:55 |
pluskid | I mean the cat | 11:55 |
n4nd0 | pluskid, oh, I hope he/she will get better ;) | 11:55 |
pluskid | n4nd0: thank you, that's also my wish | 11:55 |
blackburn | this is kind of cute hehe | 11:57 |
n4nd0 | :D | 11:58 |
blackburn | n4nd0: hey are you going to have exam today? | 11:58 |
n4nd0 | blackburn, yeah | 11:58 |
blackburn | databases thing? | 11:58 |
blackburn | n4nd0: my professor became lazy and he gived us all 5/5 today | 11:59 |
n4nd0 | yes, databases | 11:59 |
n4nd0 | blackburn, haha really? | 11:59 |
* sonne|work in germany 5 is the worst you can get | 11:59 | |
blackburn | n4nd0: yeah 2 exams to go now | 11:59 |
blackburn | sonne|work: that's why we have beaten you in 1945 | 12:00 |
sonne|work | me in particular | 12:00 |
n4nd0 | sonne|work, don't you guys have zero as a grade? | 12:00 |
sonne|work | heh | 12:00 |
* pluskid is re-installing a 64bit system | 12:01 | |
blackburn | sonne|work: but really what is grade system then? | 12:01 |
blackburn | 1 is the best? | 12:01 |
sonne|work | yes | 12:02 |
sonne|work | 5 -> fail | 12:02 |
sonne|work | 6 -> total failure | 12:02 |
blackburn | sonne|work: lol I failed a lot exams probably | 12:02 |
sonne|work | not totally :) | 12:02 |
blackburn | total failure? is it death or something? | 12:03 |
-!- puffin444 [230bf329@gateway/web/freenode/ip.35.11.243.41] has joined #shogun | 12:03 | |
blackburn | sonne|work: actually we use only 3,4,5 here | 12:03 |
puffin444 | Hello | 12:03 |
blackburn | 3 is udovletvoritelno 4 is horosho and 5 is otlichno | 12:03 |
blackburn | sonne|work: you should recall these words ;) | 12:03 |
sonne|work | at university there is no mark 6 | 12:03 |
sonne|work | horosho :) | 12:04 |
sonne|work | otschen horosho | 12:04 |
blackburn | sonne|work: right - you must be kidding you can't recall what you have studied | 12:04 |
blackburn | puffin444: hey | 12:05 |
sonne|work | puffin444: isn't it sth like 6am ? | 12:06 |
puffin444 | Yes it is in fact :) Isn't sth like 11am UTC? | 12:08 |
blackburn | sonne|work: have you lived in DDR or in west one? | 12:08 |
sonne|work | blackburn: both :D | 12:10 |
blackburn | sonne|work: how can that be? | 12:10 |
sonne|work | at some point DDR was gone | 12:11 |
blackburn | ehh yes | 12:11 |
blackburn | but before that great soviet fuck up? | 12:11 |
blackburn | sonne|work: I mean did you manage to live in both parts before 1990 or so? | 12:12 |
sonne|work | no | 12:12 |
blackburn | sonne|work: my friend wants me to ask whether you like DEFA films :D | 12:13 |
sonne|work | of course :P | 12:13 |
puffin444 | Oh oops! Looks like I'm an hour off! :-[ | 12:15 |
sonne|work | puffin444: yeah 7 am is early enough I thought | 12:16 |
puffin444 | UK time != UTC time?! | 12:16 |
sonne|work | of course not | 12:16 |
blackburn | puffin444: nope | 12:16 |
sonne|work | check timeanddate | 12:16 |
blackburn | n4nd0: send me a postcard from spain! | 12:16 |
blackburn | :) | 12:16 |
n4nd0 | blackburn, :D | 12:17 |
n4nd0 | what do you like from Spain? | 12:17 |
blackburn | n4nd0: no idea but that sounds funny | 12:17 |
-!- abn_ [~av3ngr@60-241-222-244.static.tpgi.com.au] has joined #shogun | 12:21 | |
puffin444 | Well I guess I'll be here an extra hour :D | 12:26 |
sonne|work | puffin444: we all don't mind :) | 12:34 |
-!- karlnapf [~heiko@dhcp-160-96.internal.eduroam.ucl.ac.uk] has joined #shogun | 12:42 | |
blackburn | people is coming | 12:42 |
-!- pluskid [6f780bf8@gateway/web/freenode/ip.111.120.11.248] has quit [] | 12:45 | |
blackburn | karlnapf: hey there | 12:46 |
karlnapf | blackburn, hi :) | 12:46 |
puffin444 | karlnapf: hey | 12:47 |
-!- pluskid [~pluskid@li225-203.members.linode.com] has joined #shogun | 12:47 | |
karlnapf | puffin444, hey :) | 12:47 |
wiking | meeeting | 12:47 |
wiking | :) | 12:47 |
wiking | in 13 | 12:47 |
-!- cwidmer [~chris@HSI-KBW-046-005-237-106.hsi8.kabel-badenwuerttemberg.de] has joined #shogun | 12:49 | |
blackburn | first mentor is in | 12:49 |
blackburn | ;) | 12:49 |
puffin444 | cwidmer: Hi! | 12:50 |
cwidmer | hi all! | 12:51 |
n4nd0 | hi! | 12:51 |
uricamic | hi | 12:51 |
-!- vojtech [9320543b@gateway/web/freenode/ip.147.32.84.59] has joined #shogun | 12:53 | |
blackburn | hey vojtech | 12:53 |
vojtech | hi | 12:53 |
blackburn | vojtech: about my mail - sorry I mixed up things there :) | 12:54 |
blackburn | but additional term generalization of ocas is actual - I hope you will get some time to outline it | 12:55 |
@sonney2k | who is missing? | 12:56 |
blackburn | sonney2k: gsomix but he won't be in | 12:56 |
@sonney2k | cheng, gsomix | 12:56 |
karlnapf | arthur, but I dont know if he has time | 12:56 |
@sonney2k | karlnapf, OK | 12:56 |
karlnapf | will meet him later today anyway | 12:56 |
wiking | alex | 12:56 |
karlnapf | will tell him everything that happened | 12:56 |
n4nd0 | I don't think nico is here either | 12:56 |
blackburn | sonney2k: lets wait 5 minutes more | 12:57 |
@sonney2k | yeah | 12:57 |
@sonney2k | puffin444, olivier is also not around yet... | 12:57 |
puffin444 | sonney2k: That's fine. I can wait :) | 13:00 |
@sonney2k | puffin444, not so clear if he makes it though | 13:00 |
@sonney2k | lets please note down who is missing: gsomix, nico, alex, olivier, chang, arthur - anyone else? | 13:01 |
puffin444 | cwidmer: olivier told me you might be comentoring. Is this true? | 13:02 |
cwidmer | yes | 13:02 |
@sonney2k | would be good | 13:02 |
@sonney2k | same timezone at some point :) | 13:02 |
@sonney2k | lets wait 1 more minute and then start | 13:02 |
cwidmer | if there are some design choices to make which oliver isn't sure about, I'm happy to help out | 13:02 |
blackburn | they stole my meeeeentoooo | 13:02 |
blackburn | r | 13:02 |
cwidmer | :) | 13:03 |
@sonney2k | I will hunt down all missing individuals later ;-] | 13:03 |
cwidmer | blackburn, you're more than invided to join potential design discussions, too | 13:03 |
blackburn | cwidmer: hehe yes I watch code things | 13:04 |
-!- magicfly [c07c1afb@gateway/web/freenode/ip.192.124.26.251] has joined #shogun | 13:04 | |
@sonney2k | Alright then lets start! Good morning, afternoon and evening all! | 13:04 |
@sonney2k | Welcome to our kick off meeting. We have 8 students in 6 timezones so apologies to Jacob in the US for having to get up so early. | 13:04 |
@sonney2k | First I would like to thank you all for your hard work even before GSoC started. We are happy to have you in the team and you were selected because we know you will have no problems finishing the tasks with 100% success :-) | 13:05 |
@sonney2k | Nevertheless, some of us {mentors,students} participate for the first time so let me briefly state how things work - lets start with the timeline: | 13:05 |
@sonney2k | - Official GSoc starts May 21 | 13:05 |
@sonney2k | - On July 13 Mentors need to send mid-term evaluations to google (*very important* - students won't get money otherwise) | 13:05 |
@sonney2k | - August 24 end of GSoC - Mentors need to send final evaluations to google (again *important*) | 13:06 |
@sonney2k | - Official Timeline http://www.google-melange.com/gsoc/events/google/gsoc2012 | 13:06 |
@sonney2k | BTW, in case you have questions don't hesitate to ask/interrupt me | 13:06 |
@sonney2k | Since every student has already introduced himself on the mailinglist - I think we can skip this step | 13:07 |
@sonney2k | and continue with a short self-introduction of the mentors | 13:07 |
@sonney2k | vojtech, mind to start? | 13:07 |
-!- magicfly_ [c07c1afb@gateway/web/freenode/ip.192.124.26.251] has joined #shogun | 13:07 | |
vojtech | ok | 13:08 |
blackburn | I wanted to emphasize that this year we want to make it more collaborative | 13:08 |
vojtech | hi to all | 13:08 |
vojtech | I'm currently a research fellow at CTU | 13:08 |
blackburn | so mentors are some general experts there (sorry vojtech for interrupting) | 13:08 |
@sonney2k | blackburn, we will come to that | 13:08 |
@sonney2k | please relax :) | 13:08 |
vojtech | my background is in optimization for learning, structured learning, SVMs etc | 13:09 |
vojtech | I'll mentor Michal Uricar | 13:09 |
blackburn | vojtech: will you be able to help n4nd0 for example? | 13:09 |
blackburn | SO is a big project and you are the expert | 13:09 |
vojtech | what does n4nd0? | 13:09 |
blackburn | SO framework | 13:10 |
vojtech | ok | 13:10 |
vojtech | yes, we may for instance share the benchmark problems for the implemented SO learning algorithms | 13:10 |
@sonney2k | BTW, vojtech has been a visiting researcher at our lab for some time and we published a few papers together. I am very happy to have him in the team :) | 13:10 |
vojtech | I'm also very happy :) | 13:10 |
@sonney2k | vojtech, so thanks | 13:10 |
@sonney2k | cwidmer, mind to continue? | 13:10 |
n4nd0 | vojtech, I am happy I can count on with your help :) | 13:10 |
cwidmer | sure | 13:10 |
cwidmer | so to cut this short, I started typing a minute ago :) | 13:11 |
cwidmer | Hi all, I'm Chris Widmer, have started to become involved in 2008 when I was doing my Master Thesis in Gunnar R?tsch's lab and am now about to finish my PhD in a collab between Max Planck T?bingen/Tu-Berlin/MSKCC NY. My interest is in SVM-centric Multitask Learning algorithms and I'll be mentoring Sergey (blackburn), who i worked with in last year's GSoC already. | 13:11 |
blackburn | cwidmer: so you have expertise in gps and multitask ;) | 13:12 |
@sonney2k | cwidmer, I think blackburn is excited to have you as mentor again :) | 13:12 |
cwidmer | GPs not so much | 13:12 |
cwidmer | same for me | 13:12 |
cwidmer | it's been great to work with him | 13:12 |
cwidmer | and this year will be more closely related to my research, so I'm more than happy | 13:12 |
blackburn | cwidmer: I mean that would be nice if you let students know for what they could ask you | 13:13 |
@sonney2k | Looks like all the other mentors are unavailable right? | 13:13 |
cwidmer | as for the GPs part, I Oli has all the expertice needed | 13:13 |
cwidmer | they can ask me about SVM/Kernel/Optimization stuff, also python related stuff I'm happy to help out with | 13:13 |
blackburn | thanks | 13:14 |
@sonney2k | so let me just briefly say a few words about me - I started shogun together with gunnar raetsch like end of 1999 and did machine learning in the last 10 years | 13:14 |
blackburn | 13 | 13:14 |
@sonney2k | as in research | 13:14 |
blackburn | :P | 13:14 |
@sonney2k | whatever :P | 13:14 |
cwidmer | time flies | 13:14 |
cwidmer | :)+ | 13:14 |
blackburn | it was so exciting that 13 counts as 10 | 13:14 |
@sonney2k | I published quite a bit with cwidmer, vojtech and other mentors | 13:15 |
@sonney2k | and am one of the figures behind creating mloss.org / mldata.org - pushing open source software / openness spirit in machine learning | 13:15 |
@sonney2k | I will mentor gsomix (who couldn't make it due to classes) to overhaul lots of shogun internals | 13:16 |
@sonney2k | alright so much about this - the other mentors will get their chance next time then | 13:16 |
@sonney2k | any questions so far? | 13:16 |
-!- magicfly__ [c07c1afb@gateway/web/freenode/ip.192.124.26.251] has joined #shogun | 13:16 | |
blackburn | no but I had some things I wanted to tell | 13:17 |
blackburn | let me try to recall :D | 13:17 |
@sonney2k | if not I have a very general comment - as blackburn said we want to do things more collaboratively | 13:17 |
@sonney2k | Avoid any private communication to the extend possible, i.e., discuss all issues openly on the mailinglist or here in IRC. This is not the way open source projects work - development and even planning is done in the open. This is particularly important here because not all mentors/students can be experts in everything. For example a mentor might not know about certain data structures that one could use (that are already in shogun). The advantage of asking in pu | 13:17 |
@sonney2k | blic is that other students/mentors can help out - potentially even more timely than your mentor and we are working *together* in this project so there will be synergies (for example the structured output, bmrm SO, latent svm will all need some kind of quadratic optimizer...). We cover enough timezones so you should never be alone - which makes it much more fun too | 13:17 |
blackburn | heh you prepared | 13:18 |
@sonney2k | We are a critical mass of students /mentors this year - so we can only succeed if we work together | 13:18 |
blackburn | yes please guys let us know if you are stucked | 13:18 |
-!- vikram360 [~vikram360@117.192.172.250] has quit [Ping timeout: 250 seconds] | 13:18 | |
@sonney2k | we are really touching various aspects of shogun and some of you are experts in some fields and so helping each other is the way to make progress | 13:18 |
blackburn | nobody wants any of you do something you really don't like | 13:18 |
@sonney2k | thanks btw pluskid, n4nd0, blackburn, wiking for already being around on IRC most of the time | 13:19 |
wiking | \o/ | 13:19 |
n4nd0 | :) | 13:19 |
@sonney2k | we really had some inspiring discussions | 13:19 |
pluskid | :) | 13:19 |
@sonney2k | and I don't mean only about the german language wiking :D | 13:19 |
-!- arthurgretton [9052b95f@gateway/web/freenode/ip.144.82.185.95] has joined #shogun | 13:19 | |
@sonney2k | or vodka blackburn :D | 13:20 |
@sonney2k | Hi arthurgretton | 13:20 |
wiking | sonney2k: btw aren't u swedish by any chance? :D | 13:20 |
@sonney2k | just in time to introduce yourself :) | 13:20 |
@sonney2k | alright looks like arthurgretton prefers to listen - so lets continue with instructions to mentors: | 13:21 |
arthurgretton | I'm arthur, from gatsby unit at ucl, working with heiko on implementation of noparametric statistical tests | 13:21 |
@sonney2k | thanks arthur! | 13:21 |
arthurgretton | and I prefer to listen :) | 13:21 |
@sonney2k | So what is expected from mentors: | 13:21 |
@sonney2k | - Guide your students like any PhD/Master student. Run a tight ship in the first few weeks to get things on track and then things will work w/o a lot of intervention. | 13:21 |
@sonney2k | - Try to keep students happy (answer quickly, monitor happiness). | 13:22 |
@sonney2k | - Encourage students to communicate in the open (this irc channel, mailinglist) | 13:22 |
@sonney2k | - Participate (in relevant) public discussions. | 13:22 |
@sonney2k | - Review student patches at github (give comments) - technical review / coding style etc will be done by mostly blackburn and me. Once you are satisfied notify blackburn,heiko or me to actually do the merge. | 13:22 |
@sonney2k | - AND MOST IMPORTANTLY evaluate your student, once for midterm (deadline Jul 13) and once Aug 24 (final evaluation) | 13:23 |
@sonney2k | Which reminds me | 13:23 |
@sonney2k | On October 20/21st there will be the metnors summit @ google | 13:23 |
@sonney2k | Who of the mentors wants to attend? | 13:24 |
@sonney2k | (either say now or write me an email) | 13:24 |
@sonney2k | Mentors, any questions to that? | 13:24 |
cwidmer | possibly, but since I went last time, I would step back if anyone else wants to go | 13:24 |
cwidmer | it's a fun meeting, though, which I can recommend | 13:25 |
@sonney2k | ok if that is all then lets come to "What is expected from students:" | 13:25 |
@sonney2k | - Most importantly have fun with what you are doing and learn what you always wanted to learn. | 13:25 |
@sonney2k | - Start early and stay in regular contact with your mentors in particular in the beginning. Students tell your mentor or me when you feel unhappy. We can adjust (and have done so in last GSoc) the task to solve. | 13:26 |
@sonney2k | - (now for the annoying part) While GSoC is running, students have to send weekly reports to the mailinglist (due every Monday). | 13:26 |
blackburn | I'll track your happiness! | 13:26 |
@sonney2k | that doesn't have to be a lot | 13:26 |
@sonney2k | just a few sentences | 13:26 |
karlnapf | sonney2k, from the 21 may right? | 13:26 |
blackburn | and pictures if possible | 13:27 |
@sonney2k | karlnapf, yes | 13:27 |
blackburn | it is always fun to see pictures | 13:27 |
arthurgretton | with google mentor attendance, which google? zurich? | 13:27 |
@sonney2k | alternatively write a blog :) | 13:27 |
-!- PhilTillet [~Philippe@vir78-1-82-232-38-145.fbx.proxad.net] has joined #shogun | 13:27 | |
@sonney2k | arthurgretton, not clear yet | 13:27 |
@sonney2k | last year it was in CA | 13:27 |
@sonney2k | mountain view | 13:27 |
PhilTillet | wah, a lot of people here :p | 13:27 |
arthurgretton | ok - well let me know once you have more info | 13:27 |
blackburn | PhilTillet: yes we have kind of meeting :) | 13:28 |
@sonney2k | in case you intend to write a blog tell me to put on you planet shogun :) | 13:28 |
@sonney2k | alright lets continue | 13:28 |
n4nd0 | any suggestion (e.g. platform to use) if we want to start a blog? | 13:28 |
@sonney2k | GSoc is like a normal work day but with more fun, e.g. during (your) normal working hours students have to idle in IRC channel #shogun. | 13:29 |
cwidmer | blackburn: i think we should blog about our project either at mid-term and/or at the end, let's keep that in mind | 13:29 |
@sonney2k | n4nd0, no idea... karlnapf has had a blog last year | 13:29 |
blackburn | cwidmer: yes makes sense | 13:30 |
karlnapf | I did this on wordpress | 13:30 |
@sonney2k | cwidmer, in addition to students - yes | 13:30 |
pluskid | n4nd0: wordpress is good | 13:30 |
blackburn | would g+ work? :D | 13:30 |
n4nd0 | ok, thank you guys | 13:30 |
@sonney2k | blackburn, does it have some rss feed | 13:30 |
@sonney2k | ? | 13:30 |
blackburn | no idea | 13:30 |
karlnapf | but I blogged with too much detail, and then when time pressure kicked in, I did postpone it all the time :) | 13:30 |
karlnapf | But I think its a good idea to to the weekly things in there | 13:30 |
@sonney2k | just short things | 13:30 |
@sonney2k | like the SGVector discussion we had with pluskid or so | 13:31 |
-!- magicfly__ [c07c1afb@gateway/web/freenode/ip.192.124.26.251] has quit [Quit: Page closed] | 13:31 | |
@sonney2k | - If you a planning to go on vacations, or be away for whatever reason (exams, ...) - no problem but please notify us upfront. | 13:31 |
@sonney2k | There is a documentation for mentors / students how gsoc works what is expected, how to succeed: | 13:32 |
@sonney2k | • https://flossmanuals.net/GSoCStudentGuide/ | 13:32 |
@sonney2k | • Mentor manual https://flossmanuals.net/gsocmentoring/ | 13:32 |
@sonney2k | Does anyone have any questions regarding to that? | 13:32 |
-!- magicfly_ [c07c1afb@gateway/web/freenode/ip.192.124.26.251] has quit [Ping timeout: 245 seconds] | 13:32 | |
@sonney2k | blackburn - did I miss anything / does anything else come to your mind? | 13:32 |
blackburn | sonney2k: yes I wanted to encourage student to start with tutorial | 13:33 |
blackburn | and I have suggestion of some doc sprint | 13:33 |
blackburn | should I describe it more? | 13:33 |
@sonney2k | yes | 13:33 |
@sonney2k | please | 13:33 |
blackburn | okay we have shogun-tutorial | 13:33 |
blackburn | as well as shogun-data | 13:33 |
@sonney2k | (in github) | 13:33 |
blackburn | I already posted something about that at the mailing list | 13:34 |
blackburn | so if someone of you want to not only code but write some underlying-math-related-stuff | 13:34 |
blackburn | we can collaborate there | 13:34 |
blackburn | mentors would help as well | 13:34 |
blackburn | it would be nice to have 'a book' containing supported methods | 13:34 |
blackburn | its characteristics and so on | 13:35 |
@sonney2k | I guess it would be easy if mentors contribute some .tex snippets from their thesis / papers | 13:35 |
@sonney2k | about the relevant methods | 13:35 |
blackburn | yes exactly | 13:35 |
@sonney2k | figures even | 13:35 |
blackburn | it would save much time | 13:35 |
blackburn | sonney2k: btw send me your thesis - I'll crop some things and it would be a baseline ;) | 13:36 |
cwidmer | blackburn: I'm happy to contribute some of my stuff | 13:36 |
@sonney2k | I will | 13:36 |
@sonney2k | arthurgretton, vojtech ? | 13:36 |
blackburn | vojtech's thesis is of interest too ;) | 13:36 |
blackburn | I learned some things from it | 13:36 |
blackburn | cwidmer: thanks! | 13:36 |
blackburn | ok as for doc 'sprint' | 13:37 |
karlnapf | arthur and I are already sharing some tex stuff, also I need to write it into my master dissertation anyway, so that will go in the tutorial too | 13:37 |
-!- PhilTillet [~Philippe@vir78-1-82-232-38-145.fbx.proxad.net] has quit [Read error: No route to host] | 13:37 | |
@sonney2k | karlnapf, perfect | 13:37 |
blackburn | lets schedule some week we can spend on documentation | 13:37 |
blackburn | late may or so | 13:37 |
blackburn | *code documentation* | 13:37 |
blackburn | we should remove all warnings | 13:38 |
blackburn | add some descriptions of fields | 13:38 |
blackburn | and write some more consistent @brief of classes | 13:38 |
blackburn | who is in and when you would like to do that? | 13:38 |
@sonney2k | last week of may? | 13:38 |
blackburn | works for me | 13:38 |
wiking | notgoodforme | 13:38 |
n4nd0 | I would prefer the previous week to that one | 13:39 |
blackburn | works for me too | 13:39 |
@sonney2k | n4nd0, puffin444, pluskid, karlnapf, uricamic ? | 13:39 |
n4nd0 | like right before GSoC starts officially | 13:39 |
@sonney2k | ok so just the week before gsoc? | 13:39 |
karlnapf | sorry, I have exams then | 13:39 |
pluskid | I'm fine | 13:39 |
uricamic | I am fine with that | 13:40 |
puffin444 | The week starting May 28th? | 13:40 |
puffin444 | That's fine. | 13:40 |
@sonney2k | karlnapf, well you can join afterwards | 13:40 |
karlnapf | actually, I can join a bit anyway | 13:40 |
karlnapf | so OK for me | 13:40 |
wiking | on the week that starts with may 28th i'm on pakdd | 13:40 |
blackburn | it won't take all your time but we need to focus on doc somehow | 13:40 |
wiking | either before or after | 13:40 |
@sonney2k | lets stretch it out a bit and do it in the last 2 weeks with not 1000% energy then | 13:40 |
blackburn | yes | 13:40 |
@sonney2k | last two weeks of may - the one half that has time in the first week starts there and the others later | 13:41 |
@sonney2k | it can be fun when you work together and try to decipher coding parts relevant to you | 13:41 |
blackburn | okay then lets two weeks starting from 20, May be doc weeks | 13:41 |
@sonney2k | alright then - any other comments/questions? | 13:42 |
pluskid | I have a question: what's the dev style? Shall we work on our own git repo? Or like those pre-GSoC time: we submit small pull requests and wait to be merged into shogun-toolbox? | 13:42 |
@sonney2k | pluskid, like before GSoC | 13:42 |
pluskid | ok | 13:42 |
@sonney2k | but now merging will go a lot faster since you already know the coding style and everything | 13:42 |
@sonney2k | and patches will not be as intrusive | 13:43 |
@sonney2k | (intrusive ones are done this month only) | 13:43 |
@sonney2k | err the next 4 weeks :) | 13:43 |
@sonney2k | more questions? | 13:43 |
blackburn | thanks sonney2k ;) | 13:44 |
@sonney2k | Then when shall we have the next meeting? On May 25 11 UTC? | 13:44 |
puffin444 | Seems fine to me. | 13:44 |
@sonney2k | and then just before midterm / before final... | 13:44 |
n4nd0 | for me too | 13:44 |
cwidmer | fine | 13:44 |
pluskid | fine | 13:44 |
karlnapf | fine | 13:44 |
vojtech | fine | 13:44 |
uricamic | fine for me | 13:44 |
wiking | fine | 13:44 |
blackburn | shoudl be fine | 13:44 |
@sonney2k | great | 13:44 |
magicfly | fine | 13:44 |
@sonney2k | so then that concludes it | 13:44 |
@sonney2k | magicfly, ? | 13:45 |
@sonney2k | who are you? | 13:45 |
n4nd0 | :D | 13:45 |
@sonney2k | olivier? | 13:45 |
n4nd0 | I was wondering that too | 13:45 |
@sonney2k | nico? | 13:45 |
magicfly | Sorry, also on the listening side (and had some trouble with the IP connection). | 13:45 |
magicfly | Yes, 2 line summary. | 13:45 |
@sonney2k | (cheng is usually cheng* so it is not him :) | 13:45 |
cwidmer | Ok, guys, I need to go | 13:46 |
magicfly | I am Oli Stegle and very much look forward to joining the team this year as mentor. I have been using parts of shogun since a long while and will work with Jacob on getting GP support into shogun this year. | 13:46 |
cwidmer | thanks sonney2k for hosting the meeting | 13:46 |
@sonney2k | thanks magicfly! | 13:46 |
magicfly | Intro done, more later! | 13:46 |
@sonney2k | so then thanks everyone for attending | 13:46 |
puffin444 | magicfly: Hi! | 13:46 |
@sonney2k | have fun during the course of gsoc and flip bits not B#$(*&#%$98! | 13:46 |
n4nd0 | sonney2k, thanks to you! it feels good to work with this organization :) | 13:47 |
puffin444 | ok! | 13:47 |
cwidmer | so contrats to all the student | 13:47 |
cwidmer | hope you'll enjoy working with shogun! | 13:47 |
@sonney2k | blackburn, you now have time to take your bear for a walk and drink vodka! | 13:47 |
n4nd0 | I've to go too, there is an exam to do soon :) | 13:47 |
@sonney2k | wiking, please say some German curse words :D | 13:48 |
blackburn | sonney2k: yes exactly but somebody stole my bear | 13:48 |
pluskid | a bear ?! | 13:48 |
n4nd0 | see you guys | 13:48 |
@sonney2k | pluskid, it is like you cat | 13:48 |
blackburn | n4nd0: good luck with your exam | 13:48 |
wiking | sonney2k: scheiseeeee ;) | 13:48 |
@sonney2k | thats what these russians have in siberia :D | 13:48 |
wiking | that's almost the only curse word in german :> | 13:48 |
@sonney2k | as pets of course | 13:48 |
-!- n4nd0 [~n4nd0@wifi-cct-cisco-r252-4.cct.urjc.es] has quit [Quit: Ex-Chat] | 13:48 | |
@sonney2k | n4ndo good luck... | 13:48 |
@sonney2k | wiking, well done :D | 13:49 |
wiking | yeeey :) | 13:49 |
-!- cwidmer [~chris@HSI-KBW-046-005-237-106.hsi8.kabel-badenwuerttemberg.de] has quit [Quit: Konversation terminated!] | 13:49 | |
wiking | sonney2k: seriously, do u know some swedish? | 13:49 |
blackburn | Konversation | 13:49 |
@sonney2k | wiking, no | 13:49 |
blackburn | oh heheh | 13:49 |
wiking | sonney2k: shit, from your name you should :) | 13:49 |
@sonney2k | I have to get back to work too (people are staring at me in this pizza place already) | 13:49 |
blackburn | sonney2k: are you at pizza place? | 13:50 |
@sonney2k | yes sure | 13:50 |
wiking | hahahaha | 13:50 |
karlnapf | lol, pizza place? :) | 13:50 |
blackburn | that should be funny | 13:50 |
wiking | sonney2k: sneaked out from work to a pizza place to do the shogun meeting ;) | 13:50 |
puffin444 | Okay, I got to go too. | 13:50 |
pluskid | have to go back and continue my 64bit OS installation, too | 13:50 |
@sonney2k | next time I will choose the asia palast | 13:50 |
blackburn | heh I take participance instead of doing anything at my job | 13:50 |
pluskid | see you all | 13:50 |
@sonney2k | anyway cu - brb as sonne|work | 13:50 |
karlnapf | same here, see you all guys, thanks sonney2k for hosting | 13:51 |
blackburn | see you all | 13:51 |
puffin444 | yeah thanks | 13:51 |
vojtech | see you | 13:51 |
wiking | see ya | 13:51 |
wiking | who's doing the SGVector now? :) | 13:51 |
uricamic | see you | 13:51 |
magicfly | See you soon, thanks for this great kickoff meeting sonney2k. | 13:51 |
-!- puffin444 [230bf329@gateway/web/freenode/ip.35.11.243.41] has left #shogun [] | 13:52 | |
wiking | blackburn: http://napirajz.hu/files/007_AKRO.jpg | 13:53 |
wiking | if you would understand!!!! | 13:53 |
wiking | :> | 13:53 |
* wiking was crying of laughing for at least a minute :) | 13:53 | |
-!- pluskid [~pluskid@li225-203.members.linode.com] has quit [Quit: Leaving] | 13:53 | |
blackburn | wiking: if I understood what is the $LANG | 13:53 |
wiking | HUN | 13:54 |
wiking | or HU | 13:54 |
wiking | i don't remember the iso code :P | 13:54 |
blackburn | wiking: I wish it was serbian - I would understand more probbably :) | 13:55 |
wiking | hehehe yeah true | 13:55 |
wiking | but it is fucking hilarious | 13:55 |
blackburn | however kurva should be the word I know | 13:55 |
wiking | long story short: the granddad tells to his grandchild what is the essence of life | 13:56 |
wiking | via showing 3 short videos | 13:56 |
blackburn | nagyapa | 13:56 |
blackburn | is a grandy? | 13:56 |
wiking | yep | 13:56 |
blackburn | sounds funny | 13:56 |
wiking | the essence of life: money, cunt and vodka | 13:57 |
blackburn | yees | 13:57 |
blackburn | exact essence of life | 13:57 |
wiking | it's just more funny in hungarian | 13:57 |
wiking | because all of those 3 words are starting with P | 13:57 |
wiking | penz, pina, palinka | 13:57 |
wiking | ;P | 13:57 |
blackburn | wiking: damn you have difficult lang | 13:58 |
wiking | heheh yeah it's hard if you are not native | 13:58 |
blackburn | demigijedtembazmeg | 13:59 |
blackburn | wtf | 13:59 |
blackburn | how to spell it | 13:59 |
wiking | de megijedtem bazdmeg | 14:00 |
wiking | it's like: whoafuckyouvescaredme | 14:00 |
blackburn | wiking: it remind me one phrase | 14:01 |
blackburn | who are you to fucking lecture me | 14:01 |
blackburn | you shall google who said that | 14:01 |
blackburn | wiking: http://www.dailymail.co.uk/news/article-1054850/Who-f--lecture--Russian-ministers-extraordinary-rant-David-Miliband.html | 14:02 |
blackburn | wiking: http://a7.sphotos.ak.fbcdn.net/hphotos-ak-snc7/374147_297070240369128_100001984638925_641792_1458861698_n.jpg | 14:04 |
wiking | loooool | 14:05 |
blackburn | I wonder who came up with idea to boil babies | 14:05 |
blackburn | wiking: do you understand red slogan? | 14:06 |
wiking | yeah | 14:06 |
-!- arthurgretton [9052b95f@gateway/web/freenode/ip.144.82.185.95] has quit [Quit: Page closed] | 14:06 | |
wiking | zdorovje deti | 14:06 |
wiking | zdorovar strana | 14:06 |
wiking | i just cannot fucking put into the context | 14:07 |
wiking | what does that have to do with administracija | 14:07 |
wiking | ;) | 14:07 |
blackburn | wiking: just some PR :) | 14:07 |
wiking | it's from the ministry of | 14:07 |
wiking | autonom ministry | 14:07 |
blackburn | wiking: haha no just some gov't organization cooking food for children | 14:08 |
wiking | ... | 14:08 |
wiking | amazing man | 14:08 |
wiking | :) | 14:08 |
wiking | put the baby in the pan | 14:09 |
wiking | not the food | 14:09 |
blackburn | :D:D | 14:09 |
wiking | you are on the right side :DDd | 14:09 |
-!- PhilTillet [~Philippe@vir78-1-82-232-38-145.fbx.proxad.net] has joined #shogun | 14:10 | |
blackburn | wiking: http://img.artlebedev.ru/kovodstvo/idioteka/i/9EBEA7B0-40C0-4226-BB8A-BA1D558D2A83.jpg | 14:10 |
blackburn | wiking: http://img.artlebedev.ru/kovodstvo/idioteka/i/FD4294FF-A43F-4458-9CDC-F358E80F0918.jpg this one is cool too | 14:13 |
blackburn | march,11 is going to be march,9 | 14:14 |
wiking | :>>>>>>>>>>>>>>> | 14:14 |
blackburn | wiking: http://img.artlebedev.ru/kovodstvo/idioteka/i/08C17374-5E5B-460F-86D1-0EE9EE318CF2.jpg | 14:19 |
blackburn | wiking: http://img.artlebedev.ru/kovodstvo/idioteka/i/321E45F8-57C2-4E24-ADD3-E39E4E53871E.jpg 'clean city plus' on the back | 14:20 |
blackburn | ohh I should stop | 14:20 |
wiking | nyihahahahaha | 14:23 |
wiking | east man east :) | 14:23 |
wiking | ok back to train/test :) | 14:24 |
wiking | something is still bad with my code :> | 14:24 |
-!- blackburn [5bdfb203@gateway/web/freenode/ip.91.223.178.3] has quit [Quit: Page closed] | 14:31 | |
-!- karlnapf [~heiko@dhcp-160-96.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.] | 14:36 | |
-!- PhilTillet [~Philippe@vir78-1-82-232-38-145.fbx.proxad.net] has quit [Remote host closed the connection] | 15:41 | |
-!- blackburn [5bde8018@gateway/web/freenode/ip.91.222.128.24] has joined #shogun | 15:55 | |
-!- vikram360 [~vikram360@117.192.187.42] has joined #shogun | 16:04 | |
-!- blackburn [5bde8018@gateway/web/freenode/ip.91.222.128.24] has quit [Ping timeout: 245 seconds] | 16:06 | |
wiking | damn hail storm | 16:16 |
-!- blackburn [~qdrgsm@188.168.2.179] has joined #shogun | 16:16 | |
sonne|work | wiking: any additional holes in your head? | 16:17 |
wiking | why? | 16:17 |
sonne|work | hail storm? | 16:17 |
wiking | well i'm covered | 16:18 |
wiking | just the window was about to crack :) | 16:18 |
wiking | i literally start to hate this country ;) | 16:18 |
sonne|work | great :-\ | 16:18 |
wiking | living in a tropical area would be better, since then it'd only rain once a day otherwise it would be hot | 16:18 |
sonne|work | turn your anger into productivity :D | 16:18 |
wiking | here it's fucking cold and rains all the thime | 16:19 |
wiking | time | 16:19 |
wiking | yeah i'm just doing that :) | 16:19 |
wiking | trying to fix some stuff since my solver still does not converge into a good solution ;) | 16:19 |
wiking | not even near to it | 16:19 |
wiking | :) | 16:19 |
wiking | sonne|work: btw how is shogun a large-scale ML toolbox? :) | 16:22 |
sonne|work | well I trained an SVM on 50 million dna sequences mapped into some ~1 million dimensional space | 16:24 |
sonne|work | and applied it to the whole human genome (6 billion sequences) | 16:24 |
wiking | same could not be told about gmm | 16:25 |
sonne|work | gmm? | 16:25 |
wiking | gmm clusterer | 16:26 |
blackburn | must not update ubuntu must not update ubuntu | 16:26 |
sonne|work | wiking: not sure what you want to say | 16:30 |
blackburn | sonne|work: he wants to say our gmm sucks^W is not scalable | 16:31 |
sonne|work | ahh could not | 16:33 |
sonne|work | wiking: well sure not every algorithm is optimized to max | 16:33 |
blackburn | scalable gmm is something ambitious I think? | 16:34 |
-!- gsomix [~gsomix@188.168.5.45] has joined #shogun | 16:39 | |
gsomix | hello | 16:39 |
gsomix | blackburn, I had a strange interview today. | 16:40 |
blackburn | gsomix: why so? | 16:41 |
gsomix | blackburn, general questions related to IT and studying. | 16:42 |
blackburn | what is strange about it then? | 16:42 |
gsomix | I thought it would be a technical interview. however, I am happy. :) | 16:44 |
blackburn | gsomix: what is the reason to ask you to write code if they want to teach you how to write code? | 16:53 |
blackburn | gsomix: they should better accept a lot - both I and my friend working @ OPF team are leaving this month | 17:06 |
blackburn | sonne|work: your angry birds scores are too high! | 17:07 |
-!- vojtech [9320543b@gateway/web/freenode/ip.147.32.84.59] has quit [Quit: Page closed] | 17:07 | |
blackburn | nahh I bet you | 17:08 |
blackburn | beat* | 17:08 |
@sonney2k | gsomix, bad news! | 17:09 |
@sonney2k | blackburn, what? no way! | 17:09 |
blackburn | sonney2k: yeah at one level hehe | 17:09 |
blackburn | sonney2k: mikio seems to be angry birds expert too | 17:10 |
blackburn | :D:D | 17:10 |
@sonney2k | gsomix, hmmhh - maybe later then | 17:10 |
blackburn | sonney2k: he is in 2 meter far away | 17:11 |
blackburn | what should I say to him? | 17:11 |
blackburn | :D | 17:11 |
@sonney2k | gsomix, SGVector plans have drastically changed | 17:11 |
@sonney2k | so no longer any references | 17:11 |
@sonney2k | but just the way it is now | 17:11 |
@sonney2k | with some hacky treatment | 17:12 |
@sonney2k | gsomix, you should read the discussion we (pluskid,wiking,me) had this morning in chatlogs | 17:12 |
blackburn | sonney2k: hmm do you want that tricky thing? (it is me still) | 17:12 |
@sonney2k | blackburn, yes - I see no other solution | 17:13 |
@sonney2k | even switching to ptrs would mean we need 4 more bytes | 17:13 |
@sonney2k | 8 | 17:13 |
blackburn | sonney2k: could you please explain to me why it is the solution? | 17:13 |
blackburn | in a few words | 17:13 |
@sonney2k | blackburn, ok so we need reference counting in sgvector - agreed? | 17:13 |
blackburn | sonney2k: yes probably | 17:14 |
@sonney2k | so we need to add some field '#references' | 17:14 |
@sonney2k | to SGVector instead of the do_free | 17:14 |
@sonney2k | now problem is if we keep the system as it is (always copy sgvector objects) | 17:15 |
blackburn | hmm right | 17:15 |
@sonney2k | we have a problem | 17:15 |
blackburn | ah copies of references | 17:15 |
@sonney2k | because counters cannot change | 17:15 |
@sonney2k | so I thought - ok lets use references always | 17:15 |
@sonney2k | but this turns out to be annoying | 17:15 |
blackburn | oh I got it | 17:16 |
@sonney2k | one has to be very careful - argh | 17:16 |
@sonney2k | I think I found another problem *haha* | 17:16 |
blackburn | sonney2k: which? | 17:17 |
@sonney2k | SGVector could actually just return a line of the matrix | 17:17 |
@sonney2k | err column | 17:17 |
@sonney2k | of SGMatrix | 17:17 |
@sonney2k | without any effor | 17:17 |
@sonney2k | t | 17:17 |
@sonney2k | with that hack memory has to be copied | 17:17 |
@sonney2k | this is not good | 17:18 |
@sonney2k | and it is not clear how to tell sgvector to never free this memory | 17:18 |
blackburn | sonney2k: a lot of pain here :D | 17:19 |
* sonney2k suffers in hell | 17:19 | |
@sonney2k | Now I only see ptrs + an additional boolean as the only option | 17:20 |
gsomix | sonney2k, moin. | 17:20 |
gsomix | sonney2k, I'm reading now. | 17:21 |
@sonney2k | gsomix, hey | 17:21 |
@sonney2k | enjoy | 17:21 |
blackburn | sonney2k: oh it would take a while hehe | 17:27 |
@sonney2k | blackburn, yeah a lot of traffic these days | 17:27 |
blackburn | gsomix: could you please ping me by +79178243534 if chris comes? | 17:27 |
blackburn | :D | 17:28 |
gsomix | blackburn, cwidmer? | 17:28 |
blackburn | gsomix: exactly | 17:28 |
* sonney2k leaves the train | 17:28 | |
blackburn | however I'll try to join irc by web | 17:29 |
-!- abn_ [~av3ngr@60-241-222-244.static.tpgi.com.au] has quit [Quit: That's all folks!] | 17:39 | |
-!- blackburn2 [d55787ba@gateway/web/freenode/ip.213.87.135.186] has joined #shogun | 17:43 | |
gsomix | sonney2k, oh. I'm away and am thinking about SGVector. :) | 17:55 |
-!- ckwidmer [~chris@HSI-KBW-046-005-237-106.hsi8.kabel-badenwuerttemberg.de] has joined #shogun | 17:56 | |
-!- uricamic [9320543b@gateway/web/freenode/ip.147.32.84.59] has quit [Quit: Page closed] | 18:10 | |
-!- PhilTillet [~Philippe@vir78-1-82-232-38-145.fbx.proxad.net] has joined #shogun | 18:13 | |
wiking | blackburn here's your super :P | 18:35 |
blackburn | wiking: yes thanks :) | 18:35 |
@sonney2k | gsomix, re | 18:44 |
gsomix | sonney2k, I think pluskid suggested a nice solution. | 19:07 |
gsomix | anyway I cannot offer a better solution. | 19:09 |
-!- blackburn [~qdrgsm@188.168.2.179] has quit [Quit: Leaving.] | 19:23 | |
-!- ckwidmer [~chris@HSI-KBW-046-005-237-106.hsi8.kabel-badenwuerttemberg.de] has quit [Remote host closed the connection] | 19:24 | |
-!- blackburn2 [d55787ba@gateway/web/freenode/ip.213.87.135.186] has quit [Quit: Page closed] | 19:36 | |
-!- harshit_ [~harshit@182.68.247.30] has joined #shogun | 19:42 | |
@sonney2k | gsomix, there is a problem howoever | 20:16 |
@sonney2k | gsomix, when one returns one column vector (part of SGMatrix) then this should never be touched and pluskid's solution requires to copy the whole thing | 20:18 |
@sonney2k | so we cannot use it | 20:18 |
gsomix | sonney2k, around? | 20:57 |
@sonney2k | sure | 20:57 |
@sonney2k | gsomix, whats up? | 20:57 |
@sonney2k | hmmh | 20:58 |
gsomix | sonney2k, pluskid's solution requires to copy the whole thing | i don't got it. can you show small example? | 20:59 |
@sonney2k | gsomix, think of SGMatrix<float32_t> mat | 20:59 |
@sonney2k | it has mat.matrix and mat.nrows mat.ncols | 20:59 |
@sonney2k | so now lets get some column vector | 21:00 |
@sonney2k | and return it as SGVector | 21:00 |
gsomix | aha, new instance and copying. | 21:01 |
@sonney2k | so we would just point somewhere into mat.matrix, to get e.g. the n'th column vector address &mat.matrix[nrows*n] | 21:01 |
@sonney2k | so SGVector of that would just be this ptr and mat.nrows | 21:02 |
@sonney2k | gsomix, problem is that now the 'reference,vector data' is not in there so one would need a copy | 21:04 |
@sonney2k | that sucks | 21:04 |
gsomix | sonney2k, I see. | 21:06 |
gsomix | sonney2k, why isn't this a problem of implementation SGMatrix? | 21:16 |
gsomix | If we return the column as a vector, then we will certainly not able to free memory. We'll have to copy. | 21:16 |
gsomix | *as SGVector | 21:17 |
@sonney2k | gsomix - well with current SGVector you don't have to copy | 21:24 |
@sonney2k | you just say that do_free=false and all good | 21:24 |
gsomix | sonney2k, why not make a SGVector with an "infinite" value of ref_count? I mean, we can use this pointer as a do_free flag (e. g. ref_count == NULL). | 21:29 |
@sonney2k | gsomix, it is not so easy | 21:31 |
@sonney2k | there is the SG_REF / SG_UNREF that could modify things potentially | 21:31 |
@sonney2k | but the biggest issue really is that the refcount is in pluskids approach hidden | 21:33 |
gsomix | sonney2k, hmm, I think, we can do check that the vector is a non-removable. | 21:33 |
@sonney2k | in worst case with some flag | 21:34 |
@sonney2k | but problem is the T* refcount hack | 21:35 |
@sonney2k | so one would need to copy | 21:35 |
@sonney2k | the only alternative I see is to either *always* use references | 21:35 |
@sonney2k | or pointers | 21:36 |
gsomix | sonney2k, dangerous way | 21:38 |
gsomix | always using references, I mean | 21:38 |
-!- blackburn1 [~qdrgsm@188.168.2.179] has joined #shogun | 21:42 | |
@sonney2k | gsomix, yeah I think so too | 21:51 |
@sonney2k | gsomix, if one once forgets to use a refence -> kaboom | 21:51 |
@sonney2k | leak | 21:51 |
@sonney2k | or crash | 21:51 |
gsomix | aha | 21:51 |
@sonney2k | so ptr seems to be the only viable option | 21:52 |
blackburn1 | oh it is the first time I forced myself to not introduce any new idea | 21:52 |
@sonney2k | with some (negative magic number indicating DON'T FREE) | 21:52 |
blackburn1 | (actually I dream about immutability) | 21:52 |
@sonney2k | blackburn1, yeah blackburn0++ | 21:53 |
-!- blackburn1 is now known as blackburn11 | 21:53 | |
gsomix | blackburn11, 228 | 21:53 |
blackburn11 | gsomix: 282 | 21:53 |
gsomix | blackburn11, hoho | 21:54 |
blackburn11 | sonney2k: do you know what ??? in russian is? | 21:55 |
blackburn11 | we came with chris I shaved off fur in the SLEP :D | 21:55 |
@sonney2k | heh | 22:06 |
-!- n4nd0 [~nando@188.Red-2-137-0.dynamicIP.rima-tde.net] has joined #shogun | 22:16 | |
gsomix | sonney2k, so, what to do with it? | 22:16 |
gsomix | n4nd0, hey :) | 22:16 |
n4nd0 | hey gsomix | 22:17 |
gsomix | n4nd0, how are you? | 22:17 |
n4nd0 | gsomix: just fine, how are you? | 22:17 |
gsomix | n4nd0, tired. crazy week | 22:18 |
n4nd0 | definetely | 22:19 |
blackburn11 | n4nd0: so how was your exam? | 22:23 |
n4nd0 | blackburn11: pse not that good actually | 22:25 |
n4nd0 | blackburn11: very litle about PL/SQL and quite a lot of theory | 22:26 |
n4nd0 | I prepared better the lab part | 22:26 |
blackburn11 | n4nd0: what kind of theory? | 22:26 |
blackburn11 | like normalization etc? | 22:27 |
gsomix | blackburn11, do you remember boyce-codd normal form? | 22:28 |
blackburn11 | gsomix: yes slightly | 22:28 |
blackburn11 | that is not really needed so I prefer not to keep it in mind | 22:28 |
gsomix | aha | 22:29 |
blackburn11 | SCHLAFEN | 22:31 |
-!- blackburn11 [~qdrgsm@188.168.2.179] has quit [Quit: Leaving.] | 22:31 | |
n4nd0 | yeah | 22:35 |
n4nd0 | there was an exercise of normalization but I think that was ok | 22:35 |
n4nd0 | where was another part of logical standard design that was not that good :S | 22:36 |
gsomix | sonney2k, what is my task on rest of this week? | 22:49 |
gsomix | it's time to sleep | 23:07 |
gsomix | good night guys | 23:07 |
n4nd0 | good night gsomix | 23:08 |
-!- harshit_ [~harshit@182.68.247.30] has quit [Remote host closed the connection] | 23:30 | |
--- Log closed Fri Apr 27 00:00:19 2012 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!