My thoughts in parallelizing the HTM is that it is possible even though the HTM is defined as sequence oriented however:
1101010111010101 ---> is processed from left to right BUT all bits could be processed at once or in chunks equal to the number of cores doing the processing ( x 2 if you figure in the Hyper-Threading in the case of an Intel CPU) This would result in overlaps being calculated, segments being created, potentials being adjust as they are anyway for each single bit. Then when you determine the inhibition, you simply join (zip) all the threads and do your inhibit calculation across the results of the collection of bits - now having been adjusted! You could even get more clever than this for the SpatialPooler because their potential bits are known at initialization time, so you could preconfigure "neighborhoods" of bits (they wouldn't all have to be contiguous) and for all bits participating in a particular neighborhood --> devote 1 thread/core for computing their inhibition! Eazy peasy :P I'm already in the process of parallelizing HTM.java's Encoding process! Come to the developer meeting Friday where I'm going to be talking about it (Google Hangout Problems notwithstanding) Cheers, David On Thu, Mar 5, 2015 at 6:53 PM, Rich Morin <[email protected]> wrote: > On Mar 5, 2015, at 16:23, Tim Boudreau <[email protected]> wrote: > > I'd think running asynchronously would be closer to modelling the > > biology (not to mention making it easier to leverage multiple > > cores), but it would also mean non-deterministic results in > > anything where the results of computation were order-dependent. > > Indeed. However, the main reasons I can think of for wanting a > deterministic result would be debugging, testing, etc. I could > use pseudo-random or even synchronous scheduling for these cases. > > -r > > -- > http://www.cfcl.com/rdm Rich Morin [email protected] > http://www.cfcl.com/rdm/resume San Bruno, CA, USA +1 650-873-7841 > > Software system design, development, and documentation > > > > -- *We find it hard to hear what another is saying because of how loudly "who one is", speaks...*
