After reading the original post again, it seems that maybe Rcpp could solve
the problem (if it hasn't already) by implementing their matrix API on top
of dispatch to a few functions like [() and dim(). Both of those are
internally generic, so it would not touch R until the actual method call,
and wouldn't need to "see" any R-level S4 generics.

On Fri, Mar 3, 2017 at 9:29 AM, Michael Lawrence <micha...@gene.com> wrote:

> This is along the lines of what I suggested on the board phone call. If
> there is already a C++ library like Armadillo for doing the heavy lifting,
> it would be easy to implement an R-level abstraction on top of it, just as
> was done for HDF5, bigMemory, etc.
>
> On Fri, Mar 3, 2017 at 8:32 AM, McDavid, Andrew <Andrew_Mcdavid@urmc.
> rochester.edu> wrote:
>
>> On C++, Armadillo can be passed a a pointer to memory for the backing
>> store of its objects, so can use memory mapping.  On the R side, package
>> bigmemory provides R access and initialization of memory-mapped arrays.
>> See https://www.r-bloggers.com/using-rcpparmadillo-with-bigmemory/.
>> This doesn’t provide language or platform interchange of the backing store,
>> but would be an easy-ish solution.
>>
>> On Mar 3, 2017, at 10:23 AM, bioc-devel-requ...@r-project.org<mailto:
>> bioc-devel-requ...@r-project.org> wrote:
>>
>> Some comment on Aaron's stuff
>>
>> One possibility for doing things like this is if your code can be done in
>> C++ using a subset of rows or columns.  That can sometimes give the
>> necessary speed up.  What I mean is this
>>
>> Say you can safely process 1000 cells (not matrix cells, but biological
>> cells, aka columns) at a time in RAM
>>
>> iterate in R:
>>  get chunk i containing 1000 cells from the backend data storage
>>  do something on this sub matrix where everything is in a normal matrix
>> and you just use C++
>>  write results out to whatever backend you're using
>>
>> Then, with a million cells you iterate over 1000 chunks in R.  And you
>> don't need to "touch" the full dataset which can be stored on an arbitrary
>> backend.  And this approach could be run even (potentially) with different
>> chunks on different nodes.
>>
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>
>

        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to