2010-06-24T05:00:07 *** goffena has quit IRC 2010-06-24T05:03:27 *** goffena has joined #opticks 2010-06-24T05:04:14 *** goffena has quit IRC 2010-06-24T05:05:45 *** goffena has joined #opticks 2010-06-24T05:40:52 *** dsulgrov has joined #opticks 2010-06-24T05:51:27 *** tclarke has joined #opticks 2010-06-24T05:51:27 *** ChanServ sets mode: +o tclarke 2010-06-24T07:49:40 *** yuguess has joined #opticks 2010-06-24T07:49:45 hello, SIr 2010-06-24T08:09:42 hello 2010-06-24T08:20:25 Hi 2010-06-24T08:22:01 I find there seems a problem in MatrixFunctions::invertSquareMatrix2D function 2010-06-24T08:22:24 this function will gradually leak the memory 2010-06-24T08:22:32 when I execute it several times 2010-06-24T08:55:32 *** rforehan has joined #opticks 2010-06-24T09:21:38 yuguess: sorry, I was occupied and just saw your issue 2010-06-24T09:21:46 you can create a bug report in our issue tracker and we'll look into the problem 2010-06-24T09:21:51 en... 2010-06-24T09:22:12 http://issues.ballforge.net 2010-06-24T09:23:57 Hi, tclarke 2010-06-24T09:24:05 have you ever used matlab before 2010-06-24T09:24:16 I wonder how they could make the function so efficient 2010-06-24T09:26:06 for example, I implemented my version of calcaulating covariance matrix 2010-06-24T09:26:31 which require several For loop to copy and caluate the data 2010-06-24T09:28:05 it really cost a lot of time 2010-06-24T09:28:20 since matlab is a commercial product I'm not sure of the implementation specifics, but generally APLs use a number of tricks 2010-06-24T09:28:33 they use what are called views to stack operations and only make calculations when needed...this minimizes copies, etc. 2010-06-24T09:28:52 they also use highly optimized calculations, multithreaded processing and SIMD (such as SSE) to accellerate 2010-06-24T09:30:24 they also tune the memory layout to minimize cache misses 2010-06-24T09:30:44 finally, they generally don't support on-disk processing (with the occasional exception of data which can be memmap()'d) so a lot of optimizations can be made around that 2010-06-24T09:30:53 but data size is limited to contiguous RAM 2010-06-24T09:31:10 en....they are very strict about RAM limitaion 2010-06-24T09:32:31 My algorithm require a lot of matrix operaions 2010-06-24T09:32:48 they run quite well in matlab and the time seems OK 2010-06-24T09:33:11 when implementing with C++, the correctness of my code is no problem, but it really cost too much time 2010-06-24T09:33:15 do you have some suggestion 2010-06-24T09:37:41 nothing specific without looking at your code. There are lots of ways to increase the speed. Multi-threaded is an obvious choice for many algorithms. For matrix operations (gemm, etc.) there are accellerated libraries available such as the Intel performance library (costs money) and the ATLAS BLAS library (open source) 2010-06-24T09:39:27 you can also adjust you visitation patterns to take advantage of cache coherency...this involves making as many calculations as possible on the same block of memory and nearby blocks of memory...this is more difficult as some algorithms require random access 2010-06-24T09:39:48 optimization is a very difficult problem and there are entire course sequences which deal with it...in general the best heuristics are: 2010-06-24T09:41:12 don't prematurely optimize code..this doesn't involve making the code inefficient, but don't optimize until you need too 2010-06-24T09:41:29 profile the code to determine which portions are causing the bottle necks and optimize those first 2010-06-24T09:41:45 run followup timing tests to determine your actual speedup vs. your theorectical speedup 2010-06-24T09:41:59 Mine is convariance matrix and invert matrix calculation 2010-06-24T09:42:04 are you using the Opticks covariance plug-in? 2010-06-24T09:43:46 Sorry, I do not know there is a covariance plug-in 2010-06-24T09:43:47 I will try it 2010-06-24T09:44:00 it may give you a speed up but it may not...should be fairly straightforward to change out 2010-06-24T09:44:07 it depends which version of covariance you are calculating...it may not matter but sometimes it does 2010-06-24T09:45:39 I thought you put all you matrix related function in that MatrixFunctions file 2010-06-24T09:47:46 May I know which solution contains that covariance plug-in 2010-06-24T09:47:54 those are generalized matrix functions (blas type functions) 2010-06-24T09:48:15 covariance is not a generalized matrix function, it's a statistical measure which you happen to be able to calculate with matrix functions 2010-06-24T09:48:25 the plug-in name is Covariance in a module of the same name 2010-06-24T09:49:56 and it calculates a spectral covariance matrix (so if you need spatial covariance you won't be able to use it) 2010-06-24T09:56:45 Ok, I find the code, thank you very much for your help : ) 2010-06-24T09:58:39 *** kstreith has joined #opticks 2010-06-24T09:58:39 *** ChanServ sets mode: +o kstreith 2010-06-24T09:59:02 if you go to the PlugIns tab in opticks and select the Covariance plug-in's Properties 2010-06-24T09:59:06 you'll see information on calling the plug-in 2010-06-24T09:59:14 use ExecutableResource() and pass in the appropriate arguments 2010-06-24T10:40:39 *** gmartin_cn has joined #opticks 2010-06-24T13:14:22 *** GitHub159 has joined #opticks 2010-06-24T13:14:23 coan: master Trevor Clarke * 97ec9a4 (2 files in 1 dirs): Working on blob tracking. ... - http://bit.ly/d7RGL9 2010-06-24T13:14:23 *** GitHub159 has left #opticks 2010-06-24T13:47:16 *** tclarke has quit IRC 2010-06-24T13:51:07 *** goffena has quit IRC 2010-06-24T13:54:10 *** kstreith has quit IRC 2010-06-24T14:21:41 *** dsulgrov has quit IRC 2010-06-24T17:15:41 *** rforehan has quit IRC 2010-06-24T17:15:56 *** rforehan has joined #opticks 2010-06-24T17:21:05 *** rforehan has quit IRC 2010-06-24T19:52:56 *** gmartin_cn has quit IRC 2010-06-24T20:04:23 New news from nightlybuilds: Opticks4.4Dev-Nightly-Linux #27 (SUCCESS) 2010-06-24T23:42:24 New news from nightlybuilds: Opticks4.4Dev-Nightly-Solaris #26 (SUCCESS)