On Tue, 12 Aug 2008, Jeffrey Horner wrote:

Christophe Dutang1 wrote:
Hi,

I'm currently R porting SF Mersenne Twister algorithm of Matsumoto and Saito. To get the full power of their code, I want to use their fonction fill_array32 which need aligned memory. That is to say I need to use the C function memalign on windows, posix_memalign on linux and classic malloc on Mac OS. In 'writing R extenstion', they recommand to use R_alloc function to allocate memory in C.

Does R_alloc return a pointer to aligned memory?
if not how can I do this?
probably no, because R crashes when I succesively R_alloc and fill_array32 (cf below) on my macbook with R 2.7.1.

You can still do this. Just take the address returned from R_alloc and test for alignment. If it's not, then just use an aligned address beyond the one returned.

We haven't been told what the desired alignment is (and those functions need to be told). On 32-bit Mac OS X, R_alloc is definitely aligned on 4-byte boundaries (on 64-bit OSes it is usually 8-byte aligned).

(But then the question is, which direction beyond the one returned? How does one test for that?)

Addresses always go upwards. So if you want 64-byte alignment you need to allocate a block at least 64 bytes longer than required, and go up to the nearest multiple of 64.

BTW, this is clearly an R-devel question -- see the posting guide.



Jeff

Thanks in advance

Kind regards

Christophe


PS : http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/howto-compile.html provides an example of memalign.

PPS : mac os report

[removed]

--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to