From michael.m.spiegel at gmail.com  Mon Dec  5 17:19:30 2011
From: michael.m.spiegel at gmail.com (Michael Spiegel)
Date: Mon, 5 Dec 2011 11:19:30 -0500
Subject: [Rd] serialize/unserialize vector improvement
In-Reply-To: <alpine.LFD.2.02.1110030828220.15986@nokomis.stat.uiowa.edu>
References: <CANwu5-oZXZjThFof++sf9bE2xYt-1g60+HjhA3vogD7Qnm_m6Q@mail.gmail.com>
	<CANwu5-qjBe_3-KOH2QvufgBVnt8URRvnYz4Z9Be7m+g0KdeFVA@mail.gmail.com>
	<alpine.LFD.2.02.1110030828220.15986@nokomis.stat.uiowa.edu>
Message-ID: <CANwu5-rkvsXFCaynUH39hdkytCkMxhKXEQD=jSiuaQPLZwzNqA@mail.gmail.com>

Has there been any movement on this patch? It will improve the
serialize/unserialize performance.

Thanks,
--Michael

On Mon, Oct 3, 2011 at 9:28 AM,  <luke-tierney at uiowa.edu> wrote:
> It's on my list to look at but I may not get to it for a couple of
> weeks. Someone else may get there earlier.
>
> Best,
>
> luke
>
>
> On Mon, 3 Oct 2011, Michael Spiegel wrote:
>
>> Any thoughts? I haven't heard any feedback on this patch.
>>
>> Thanks!
>> --Michael
>>
>> On Wed, Sep 28, 2011 at 3:10 PM, Michael Spiegel
>> <michael.m.spiegel at gmail.com> wrote:
>>>
>>> Hi folks,
>>>
>>> I've attached a patch to the svn trunk that improves the performance
>>> of the serialize/unserialize interface for vector types. The current
>>> implementation: a) invokes the R_XDREncode operation for each element
>>> of the vector type, and b) uses a switch statement to determine the
>>> stream type for each element of the vector type. I've added
>>> R_XDREncodeVector/R_XDRDecodeVector functions that accept N elements
>>> at a time, and I've reorganized the implementation so that the stream
>>> type is not queried once per element.
>>>
>>> In the following microbenchmark (below), I've observed performance
>>> improvements of about x2.4. ?In a real benchmark that is using the
>>> serialization interface to make MPI calls, I see about a 10%
>>> improvement in performance.
>>>
>>> Cheers,
>>> --Michael
>>>
>>> microbenchmark:
>>>
>>> input <- matrix(1:100000000, 10000, 10000)
>>> output <- serialize(input, NULL)
>>> for(i in 1:10) { print(system.time(serialize(input, NULL))) }
>>> for(i in 1:10) { print(system.time(unserialize(output))) }
>>>
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> --
> Luke Tierney
> Chair, Statistics and Actuarial Science
> Ralph E. Wareham Professor of Mathematical Sciences
> University of Iowa ? ? ? ? ? ? ? ? ?Phone: ? ? ? ? ? ? 319-335-3386
> Department of Statistics and ? ? ? ?Fax: ? ? ? ? ? ? ? 319-335-3017
> ? Actuarial Science
> 241 Schaeffer Hall ? ? ? ? ? ? ? ? ?email: ? ? ?luke at stat.uiowa.edu
> Iowa City, IA 52242 ? ? ? ? ? ? ? ? WWW: ?http://www.stat.uiowa.edu



[Rd] serialize/unserialize vector improvement
Michael Spiegel